With his love for learning, Nathan is right at home at Subspace. He’s brought with him vast expertise in the CDN space, and likes to tackle big latency challenges.
He also has quite an interesting background and WFH setup:
- A job in pharmacology led him to learn HTML
- He could well have become a professional musician
- He has the oldest...keyboard...ever, and still uses it (screenshots below to prove)
- He has a distractingly interesting microphone
The surprises don’t stop with this one. In this brief interview, he shares what made him decide to be a developer, why he loves a steep learning curve, and what excites him most about working at Subspace.
Q&A with Nathan:
Share a bit about the coolest thing you’ve worked on since you joined Subspace.
We move quickly around here. Every few months, I’m on a completely new project with a completely new team. So the learning curve is steep, and it’s a constant challenge.
I’m well into my second “new-to-me” programming language, and it’s this element of constant challenge that’s the coolest thing here.
What’s your favorite part of what you do? Why do you like it?
Every day brings a new task, a new issue, a new problem. The incredible variety in what I’m asked to do is the best part.
I don’t repeat myself, and I don’t get bored. I really like the fact that the level of talent here is so high that I can reach out to deep experts in pretty much any field and get my questions answered quickly. That respect is mutual. I always respond with what I can as well.
This makes for an incredibly collegial environment.
Which problem with the current public internet are you most excited to solve? Why?
Latency, latency, latency. I have spent most of my career in Internet-driven fields where latency is a killer.
More recently, I was in the CDN space, and one of the big problems there is solving for latency to minimize the bandwidth-delay product. Which is a fancy way of saying that the longer the latency is between two points on the Internet, the slower the observed bandwidth between them actually is.
It’s also why I’m so excited about Subspace.
I remember interviewing and realizing that Subspace is solving for low latency using the same approach that I would take. Once I realized how closely aligned we were, I knew I had to help because I knew I had something to contribute.
Describe your work-from-home set-up.
I’m lucky to have a dedicated office complete with a door I can shut if needed. My work desk is powered by a MacBook Pro with two external monitors attached. The MacBook itself sits on a cooling pad as it tends to run pretty hot.
About 20 years ago, I bought a USB-to-ADB adapter, and it still works! I’ve got it in active use connecting my ADB Apple “Nimitz” keyboard from 1995 and an ADB Kensington TurboMouse from 1989. They’re both indestructible and will probably outlast my career.
And I sit in a Herman Miller Aeron chair dating back to the first dot-com world. It will also probably outlast me. My co-workers often point out my very long microphone the first time they see it - have a look:
What’s something that’s a must-have for your workspace?
Good back-lighting. One of the problems with staring at a screen all day is that eye strain can become a real problem. With that and enough monitor desktop space to handle innumerable different windows, I’m all set.
What music (if any) do you listen to while you work? Drop a playlist link!
Believe it or not, I usually don’t listen to music while I work. Part of the reason is that it’s easier for me to concentrate in relative silence, and part of it is that if I start getting too involved in the background music, it stops being background and moves to the foreground, crowding out any other thoughts.
If I do have something in the background, it’ll usually be something classical.
If someone were to meet you at a conference, what conference would that most likely be?
I also really enjoy the niche-oriented tech conferences because you can really start to go into deep dives with an interested crowd. I’m very much looking forward to attending more in the future. There’s always so much more to learn.
If you were presenting at a conference, which Subspace colleague would you want on stage with you?
I’m proud to say that it would be a privilege to present with any of them. That’s one of the real benefits of working with high-caliber people. But I’ll single out William in particular for his combination of stage presence and in-depth knowledge.
What past achievement are you especially proud of?
I’ve been involved with different startups over the years, and I’m always most proud of the ones that don’t just bring a new product or service to market but manage to be genuinely cutting-edge.
It’s difficult, it’s challenging, but the high of the accomplishment can’t be understated.
Do you have any published articles/books/interviews? Share links!
I’ve had a couple of very nice interviews over the years:
What did you want to be when you were a kid?
I was supposed to become a musician. I’m actually a classically trained concert pianist
. I still play occasionally when I can make time.
What made you decide to be a developer?
I’ve always enjoyed working with technology. My interests have taken me all over the field. I’ve worked in roles as an admin of technology that others had written, I’ve done automation work, and I’ve implemented novel ideas and concepts with fast-moving teams.
In all honesty—it was a bit of a journey for me. I’ve always been one to jump on problems and make sure that they get solved. As the complexity of the problems I jumped on got higher, the solution’s demands got higher. Part of this meant understanding the conceptual integrity of the issue, which led me to move beyond just the implementation details in the frameworks and technology stacks that enabled them.
So, I didn’t start out as a developer. Instead, I evolved into the role as the level of challenge I was working to meet kept increasing. This has left me with a unique perspective on the development life cycle.
Tell us about the first programming language you learned and how you learned it.
I can’t believe you’re interested in hearing about BASIC. I was a very small child, and my father brought home one of the early 8-bit computers, running CP/M as the OS, along with a simple BASIC interpreter. It was all so primitive by today’s standards. Networking didn’t really exist, and the fanciest output we had was a dot-matrix printer.
However, it did introduce me to many of the basic concepts. I also remember that actual printed magazines would do things like publish sample BASIC programs to copy and execute on your own. It was a wonderful time to grow up and experiment, despite the limited capabilities of what we had.
Tell us about the first thing you built or coded. (And no, "hello world” doesn’t count.)
I was lucky enough to go to college right after the invention of the world wide web. My first professional project was working as a student researcher, and I was asked to learn HTML.
I worked on the pharmacology department’s static website, doing things like listing out the faculty and their contact information and putting together a simple site map.
We served this up on a Sun Sparcstation, which also began an interest in Unix for me. Since Linux had also just been invented during the same period, I quickly jumped onto that as well to power my home computer.
I started asking, “what else can I do with this?”
From there, it was a hop, skip, and a jump into IP-based networking and all the associated protocols which depend on them. It’s been a never-ending intellectual climb of the technology ladder.
Nathan’s Quick Picks
Favorite IDE: Vim
Favorite Programming Language: Varies depending on the project. Most languages are very domain-specific, so your choice comes down to what problem you’re trying to solve. I like R for analytics and am currently learning Elixir. I enjoyed using Lua as a scripting and control language for OpenResty (based on Nginx) and have enjoyed many others over the years.
What programming language do you think in? I usually use an object-oriented approach to design solutions, so I try to think more in terms of abstractions rather than specific implementations. Once I’ve got the appropriate abstraction defined, I can begin thinking about which language would make the most appropriate implementation.
Visual Preference: Readable. Green fonts on a black background remind me of my childhood when that was all the monitors could output, but usually, I use a white background with black text slightly enlarged so my older eyes can focus more easily.
Functional vs. imperative? I’m most interested in the best fit for the problem at hand.
Tabs or spaces? Since tabs can be overridden to specify the number of spaces they take on, it makes reformatting anything tab-delimited but space-constrained easier.
Nano or Vim? Vim. When I got my start in college back at the dawn of time, I had a professor tell me that Vi would be available on any Unix machine you sit down at, but you might have to ask the system administrator to install Emacs. So she had us all learn Vi, of which the modern descendent is Vim.
Rewrite or copy/paste? Rewrite is better, but both are still not as good as an original implementation, complete with mistakes. So for learning purposes, I read a lot of documentation and even more trial and error. Granted, it’s the slowest way of learning, but you legitimately learn.
Most-used keyboard shortcut: ctrl-w, which conveniently deletes the last word I typed.
Preferred OS: Over the years, I’ve played with many different OSes, and these days I’m incredibly impressed with the level of scale which Linux has accomplished. I run it on my Android phone, on my personal desktop, virtualized in the cloud, and on professional servers.
Favorite subreddit: Kids these days. Do I really need to talk about modern implementations of the old dial-up BBS?
Favorite game (and on what console?): So many years on, and I keep coming back to the evergreen classic Portal and its sequel. When I grew up, my parents worked at various points for these large mysterious defense companies. I didn’t know exactly what they did, but somehow it involved computers and high energy physics and lots of testing. I love games that capture that spirit.
Preferred headset: My lovely, comically large, lime-green, Turtle Beach gaming headset. It’s got an obnoxiously large boom mike attached to it. In our modern age of Zoom meetings, I can count on it to ensure that everyone’s got something to look at besides my face.
Final Notes from Nathan:
How do you keep up with the latest trends, advances, and programming languages?
It’s so important to keep a finger on the pulse of the Industry. The best places to do this are at conferences or through industry organizations一the latest trends always start there, and the professionals who drive them always show up there first.
There is also passive communications media that helps, like appropriate mailing lists and news aggregators. But by the time news has trickled down to them, they simply become additional data points rather than the initial signal.
Anything else we should know about you, or anything else you’d like to add?
I am looking forward to meeting everyone in person at real, live conferences again! As the world reboots itself, come meet up and talk. There is so much going on.