Emily Wagner’s career path has had some interesting twists and turns.
“First, I wanted to be a waitress, then a singer,” she said. “I spent the first two years of my undergrad at a music conservatory, where I studied recording and jazz guitar.” She later finished a degree in physics before making the leap to programming.
In this interview, Emily gives us the inside scoop on her love of low-level systems programming, and the driving force behind the work she does at Subspace. She also shares her go-to working playlist—which her dog hates—and gives us a peek at her work-from-home set-up. There just might be a keyboard with teeth-like keycaps involved...
Q&A with Emily
Share a bit about the coolest thing you’ve worked on since you joined Subspace.
It's been an incredible journey working with Subspace on the network software side. One problem we've worked hard to solve is improving the internet. Our prompt was, “How would you build a better internet?” The engineering VP warned us not to sit in front of the fireplace drinking hot cocoa while we thought about it. Instead, we’ve been solving it bathed in the cool light of our second monitors. It’s pretty exciting, and I’m looking forward to seeing where it ends up.
Another problem I’ve worked on recently is how to take the network we’ve built and generalize it to support arbitrary peer-to-peer connections that may be NATted on both sides, in addition to more standard client-server connections.
What’s your favorite part of what you do? Why do you like it?
I love low-level systems programming, and I love learning how things work from the ground up.
The code we write in this space takes into account every layer of the network stack and sits close to the boundary of hardware and software. It pays off to think about how every line of code you write impacts run-time.
On the other hand, improving the internet to support relevant applications is a global problem that butts up against so many invariants—from the Classic Two Generals problem to the speed of light. That has been the focus of my work since grad school. It captures my attention because the internet is at the intersection of many challenging problems.
Building tomorrow’s internet requires graph algorithms, protocol development, hardware, network connectivity, and clever ways of capturing, representing, and reacting to real-time data. Ultimately, Subspace’s improvements in this space have a significant impact. That’s because life these days is mainly experienced over the Internet.
Which problem with the current public internet are you most excited to solve? Why?
I would love to see Subspace emerge as a complete public internet replacement—an improvement that supersedes the existing infrastructure in terms of latency, loss, jitter, and availability.
I love the idea that we can onboard new flows onto a global programmable network by funneling traffic to our anycast space, completely controlled by an API.
I’m excited to see how far we can take this.
Describe your work-from-home set-up.
I’ve got my ultrawide monitor, my Kinesis Advantage 2, and my Alesis speakers.
Here’s what it looks like:
What’s something that’s a must-have for your workspace?
My noisy keyboard with keycaps that look like teeth.
What music (if any) do you listen to while you work? Drop a playlist link!
I listen to a variety of music while I work. Over the past year, I’ve put together a playlist of songs that upset my dog, Marzipan.
If someone were to meet you at a conference, what conference would that most likely be?
I've only been to one conference. So, I guess they'd have met me at ICDCS (International Conference for Distributed Computing Systems) in 2017.
If you were presenting at a conference, which Subspace colleague would you want to present on stage with you?
Logan Lamb! That's because I’d probably be presenting on a cool zero-day, and that’s not who I am. But that'd be a fun alternate timeline.
What podcast do you most love listening to, and which would you most like to be a guest on?
I don’t know a ton of podcasts, but I do like Planet Money.
What past achievement are you especially proud of?
I was super proud when our paper Timely, Reliable, and Cost-Effective Internet Transport Service using Dissemination Graphs won the ICDCS 2017 best paper award.
Do you have any published articles/books/interviews? Share links!
Yes, I do. Timely, Reliable, and Cost-effective Internet Transport Service using Dissemination Graphs, mentioned above.
What did you want to be when you were a kid?
First, I wanted to be a waitress, then a singer.
What made you decide to be a developer?
I spent the first two years of my undergrad at a music conservatory where I studied recording and jazz guitar. However, I transferred to Johns Hopkins to finish my undergrad in physics.
During that time, I took a C course, which I enjoyed. The professor, Yair Amir, offered to let me join his Distributed Systems and Networks Lab for a master’s degree, and I enjoyed it there.
Tell us about the first programming language you learned and how you learned it.
I learned Java in an intro programming course during my junior year.
Tell us about the first thing you built or coded. (And no, "hello world” doesn’t count.)
It was a simple take-home assignment for my Intro to Java course.
Emily’s Quick Picks
Favorite IDE: Vim. Also, Goland, if I’m writing Go.
Favorite Programming Language: C.
What programming language do you think in? C.
Visual Preference: Solarized Dark.
Functional vs. imperative? Imperative.
Tabs or spaces? Spaces.
Nano or Vim? Vim, and I’m scandalized the other option isn’t Emacs.
Rewrite or Copy/Paste? Rewrite
Most used keyboard shortcut: Outside Vim, I use alt-tab to move between applications or control+arrow to move between desktops. Inside Vim, choosing a favorite shortcut is difficult. It's like a wonderland of keyboard shortcuts.
Preferred OS: For everyday use, macOS.
Favorite subreddit: r/catswhoyell.
Favorite game (and on what console?): Right now, I enjoy playing the Last of Us 2 on the PS5 I won in Subspace’s Hackathon.
Preferred headset: Airpods for everyday use.
How do you keep up with the latest trends, advances, and programming languages? Mainly through work-related projects. I dive deep while researching various problems we solve.