Chief Technology Officer, William King, shares how his love for puzzles transformed a hobby into a career of building the next generation of technology. We get an inside look at his work-from-home routine, his favourite programming language, and what he calls, “the most intense and long-running hackathon” of his life.
Estimated read time: 10 minutes
Subspace CTO William King didn’t set out to become a developer.
Growing up he wanted to be an Army Officer like his parents but soon realised his joy for reverse engineering new found knowledge like lego bricks presented a path to building the next generation of technology that he couldn’t turn away from.
In this brief interview, William shares some of his biggest accomplishments, his WFH routine, and how his team made it through what he called, “One of the most intense and long-running hackathons ever” to launch a major production in the Middle East.
Q&A with William King, CTO & Cofounder
Share a bit about the coolest thing you’ve worked on since you joined Subspace.
Excluding the tech in process of being patented, the coolest thing that I've worked on since starting Subspace was our initial production launch in the Middle East.
Our Subspace team of about 15 people were able to deploy a production network from scratch that supported a major launch with over 100,000 concurrent gamers. By “from scratch,” I mean that we had no agreements set in stone, no hardware selected or purchased, none of the final production code started, and no connectivity ordered.
Not only was this amazingly scrappy team able to accomplish the successful production launch, going from zero to production basically overnight, but our team was able to do this in under 105 calendar days from 'first conversation.' For me, this experience was like one of the most intense and long-running hackathons ever, and I really got to see what an amazing team we had initially recruited. This core team was then able to attract many more incredible engineers and operators over the course of the next couple years.
Moving Fast in Dubai
Of the many chapters so far in the Subspace adventure, one memory of this launch stands out for me. I was there in Dubai, UAE at a table with several respected senior executives of a national ISP, and we were going over details of an agreement that we signed at the close of the meeting. During the meeting, I had been repeating that Subspace wanted to move far faster than anyone they had likely worked with before, and that we had the talent to succeed at this fast pace.
As we finished signing and stamping the initial agreement, I asked if they could call ahead to the datacenter to confirm:
- Our rack location
- Power availability as well as;
- Fiber connectivity to the local IX (internet exchange).
There was a fun look of surprise from a few of the executives as I clarified,
“Our equipment is waiting outside for me. We’re installing the gear the remainder of the day so that you can be confident that the site will be live and in production before the sun comes up tomorrow morning.”
Having the right team for the project — ready, scrappy, and enthusiastic to execute on our shared mission — is something that I'll never forget. I've seen that same culture and spirit many times by different groups within the company, and it inspires me every single time.
What’s your favorite part of what you do? Why do you like it?
I'm generally pretty 'puzzle motivated' with an insatiable curiosity. I get excited by applied deep learning and by how the solving of challenging problems usually enables fascinating new production use cases.
When I'm talking about applied deep learning, I don't just mean in the machine learning definition, but instead the application of any deeply understood domain knowledge.
Any one of the challenges that cross my desk may require solutions that pull from a breadth of knowledge domains.
It can range from:
- Recognition of macro-economic industry trends → strategic and tactical planning
- Low level packet routing and manipulation → organizational management
- Low latency stream processing → finance and accounting
- Operating system internals → international logistics
- Distributed algorithms → professional development
This is the short list of the things that come to mind from this week's work.
Building teams that are far more capable than I could be as an individual contributor means that I get to learn new things every day about the world around me. Technology and knowledge aren't static, so as XKCD #1053 illustrates, there are always new things to learn, and many more new ways to apply those understandings.
Which problem with the current public internet are you most excited to solve? Why?
The pace of human communication has been advancing rapidly for many decades. It’s gone from old mail delivery carriages, to the telegraph, to radio broadcasts, to the build up of fiber optic networks, to recent low earth orbit satellite ISPs.
Each time there is a significant improvement in how humans communicate, many new use cases are invented and popularized. I'm excited to see how many become commercially feasible once latency becomes much more deterministic and more closely correlated to geographic distance, and once packet loss on the internet becomes a much more rare phenomenon for real time systems.
Describe your work-from-home set-up.
My work from home setup starts with an L-shaped desk where on the longer side I have three 4k monitors (middle one horizontal, and sides are stood vertically). These are connected to a custom built desktop machine running Debian linux. I have a logitech camera, and a Yeti microphone, with a global time zone map in my background.
To my right is my work-issued Macbook Pro, for 'when it is needed,' or when I need to travel, and switch back into my main desktop workstation.
There is almost always an insulated Arctic Zone stein of water or green tea safely off to the side of the desk out of bumping range. On the wall to my left is a large 4' by 6' mounted whiteboard, and above it are several clocks set to different cities across the globe so I can quickly and accurately check the current time at these locations. I still use an old pair of Sennheiser headphones that I've had for years.
What’s something that’s a must-have for your workspace?
First would be enough screen real estate to be able to have dozens of terminals or applications open and monitor parts of systems while I'm working on new code. Second would be the ability to stand up and walk around when I'm taking a phone call. I wish there were small floating drones so that I could walk around while on a video call.
What music (if any) do you listen to while you work? Drop a playlist link!
Usually turn on a youtube list of 'chillstep' with or without vocals. Otherwise I listen to something melodic and upbeat to keep focused and energized. Usually starting with one of these two links:
Sometimes I'll start with a playlist based on Space Yacht, an underground showcase in Los Angeles now responsible for debuting some of the world’s most explosive dance & music talent.
If someone were to meet you at a conference, what conference would that most likely be?
Historically that'd be one of the several open source telecom conferences, a game development conference, a linux conference, or at a NANOG event. Looking at my calendar coming up, odds look good that I'll be at many in-person conferences now that they're being scheduled again.
If you were presenting at a conference, which Subspace colleague would you want to present on stage with you?
I'd enthusiastically share the conference stage with any of our Subspace engineers and operators (this includes the folks in the non-engineering business functions). We recently had a company-wide 2-day hackathon that blew me away with the level of quality and creativity our internal teams presented.
What podcast do you most love listening to, and which would you most like to be a guest on?
In lieu of podcasts, I maintain subscriptions to a variety of science, nature, technology, business, and economics publications. The most recent addition is Delayed Gratification, which takes a deeper look into different topics.
What past achievement are you especially proud of?
A non-technical (on the surface) achievement I'm proud of was taking up Aerial Silks a few years ago. It was a physical challenge, and there is much more to learn, but the physics of it was fascinating.
Do you have any published articles/books/interviews? Share links!
A few of my conference presentations are featured on my Linkedin profile and visible on YouTube. There are more presentations I have given that I don't yet have recordings for. Most of the published works were done without attribution, but that's changed recently.
What did you want to be when you were a kid?
Growing up I wanted to be an Army Officer like my parents. At some point in highschool I realized that the combined roles of a scientist and an engineer would be far more interesting. I enjoy learning the tricks behind puzzles, and the lessons through challenges, then rearranging that new found knowledge like lego bricks to build something far more effective, efficient, and productive than I thought was possible previously.
I think at some point going to technology demonstrations and exhibits made me realize that I wanted to build the next generation of technology to empower others, more than I'd want to use those capabilities for myself.
What made you decide to be a developer?
It wasn't an intentional goal. Really I was just super curious to learn how all the different components of different systems worked. Once I understood the basics and could see the nuances, I found that I could rebuild systems to solve deeply technical problems.
After a while it reminded me of the comic stories around the Marvel character Dr. Strange. Many forms of technology, in use every day, are built on dozens to hundreds of different abstraction layers. Some of those layers were designed, built, and left nearly unchanged for over 30 years (which is an eternity in modern tech lifecycles).
Many of those layers are never clearly documented or written about, and so it takes painstakingly long sessions to meticulously walk through the problems to get the full picture. We need to find out what is actually involved to understand where each bit and byte of information in an IP packet is sourced, where it's used, and when it's changed along the path.
Tell us about the first programming language you learned, and how you learned it.
Assembly was probably the first programming language other than DOS batch scripts.
When I was younger one of my family computers was hit by an internet worm. From there, I was able to capture a sample of this worm on a floppy disk. I learned how computers work based on how the logic behind Assembly functioned in my quest to dissect that internet worm. This led to many years of reverse engineering every technical puzzle and protocol I could get my hands on.
Tell us about the first thing you built or coded. (And no, "hello world: doesn’t count.)
I don't recall specifically what the first application I built was, but I do recall that it was on my mom's old Epson Equity Q501A computer.
I have a faint recollection that it had something to do with trying to understand how the insides of the old game 'Q-bert' worked, learning what made the different enemies tick, and how to survive long enough that the enemies became boring instead of intimidating. While this was less about building something, it was a major effort project that I wrestled with to learn, and shaped how I approached later challenges.
William’s Quick Picks
Favorite IDE: Emacs-nox Terminal IDE so that I can code on a box anywhere in the world, over any old and slow connection.
Favorite Programming Language: Recently Rust, but prior to that it was C and Erlang.
What programming language do you think in? Most often in C, Assembly, or SQL. I find it frustrating dealing with super high level languages that try to be way too helpful, as the results are rarely deterministic.
Visual Preference: Black terminal background with green font. Occasionally black background with programming language syntax coloring turned on.
Functional vs imperative? Functional during design, imperative during implementation and optimization.
Tabs or spaces? Tabs. It saves bytes.
Nano or Vim? Emacs. Nano to edit the apt sources file until I can update and install emacs.
Rewrite or Copy/Paste? Always rewrite so that I actually learn and remember the code and functionality. If I had to look up how to do it, it's time to practice it and code it.
Most used keyboard shortcut: Probably control+b for the tmux screen selection.
Preferred OS: Work and code on Debian, conference calls and ssh into a linux machine from OSX, and if a desktop game doesn't have a linux version on Steam then I'll occasionally boot into Windows.
Favorite game (And on what console?): I recently finished playing Ghost of Tsushima on the PS4, and it was the most beautiful game I've ever played. For the last couple months I've enjoyed playing Valheim with my wife (married 14 years).
Preferred headset: Almost anything that will fit my head comfortably for about 8 hours. I wear a XXXL sized helmet when riding my motorcycle.
Want to start building on Subspace today? Sign up here.