Forever curious and daring in the face of novel problems, Matt Ringel embodies his saying that, “all knowledge is connected to other knowledge. The fun is in making the connections.”
He’s not a software engineer by trade, but you wouldn’t know it since he’s been refining his craft as a developer for over 20 years, working on consecutive networks of increasing size.
As a matter of fact, Matt wasn’t technically trained in a lot of areas he’s operated in.
Like wedding photography.
Or singing.
Oops...too much?
Keep reading to find out more about Matt’s journey and learn how he uses his diverse set of skills to build a network optimized for performance at Subspace.
Q&A with Matt:
Share a bit about the coolest thing you’ve worked on since you joined Subspace.
I’d say the single coolest thing I’ve worked on so far was being able to take a large amount of network performance data and actually turn it into specific directions.
We were able to say, “we should deploy here, here, and here, and here is the monetary advantage we can get out of it.”
This involved a bunch of Python (using NumPy and Pandas), a bunch of SQL, and a firm dedication to documenting every single first approximation I made to get there.
What’s your favorite part of what you do? Why do you like it?
To start, I get an incredible amount of joy from finding new ways to look at a problem and thinking to myself, “You know… this should work.”
Sometimes I’m wrong; sometimes I’m right. But staying open to new approaches and being willing to try new things is very important to me.
I love being able to get into data and understand the narratives and patterns that emerge. It’s not enough to analyze the data; you have to make it relatable to people so they understand what to do about it.
As I’ve transitioned from “network engineer'' to “figuring out how to build global networks using performance data to make informed decisions,” I’ve found out how important it is to give other people ways to use data to get their job done… and throwing a “SQL-queryable” datastore at someone is typically not the answer.
At a previous job, I took large swathes of performance data, aggregated it, set it up in a meaningful way, and gave people a giant heatmap of network performance in a way that was easy to understand and to pick up patterns from.
I knew that I had done it right when someone said, “I’ve never dealt with providers in this country, but I know exactly what I’d do based on this data.” Put another way, I don’t need people to be experts on data—I need people to be experts in their own domain and make sure they can make bigger decisions faster and more accurately based on good data.
Which problem with the current public internet are you most excited to solve? Why?
When I was a kid, I was on the phone all the time (analog, wireline), with the phone bills to prove it, and those phone calls were going over copper wires on circuit-switched connections. Still, they sounded amazing!
The person at the other end of the phone sounded like they were right there with you, and that’s something we’ve lost.
Part of the problem is the physics (radio) and economics (highly-compressed voice) of mobile telephony, but it’s also that it’s not the first priority. We’ve all gotten used to people who sound like they’re at the bottom of a well because that’s typically the only voice quality available, even if it’s going over wired connections on the Internet from end to end. I want to see a world where we can do better than that for voice and video.
I’ve been in the network business for a long time and the CDN business for nearly as long— figuring out how to get high-quality, reliable real-time communications over the Internet from anywhere in the world is still a major step into new territory.
It’s one of the reasons I jumped at the chance to go to Subspace. We’re building products that tackle these problems head-on (SIPTeleport and GlobalTURN, to name two), and I’m excited to be a part of bringing this all to life.
Describe your work-from-home set-up.
My current setup is a 4K display in front of me on a primary monitor, and my laptop on an angled laptop stand off to my right for a secondary screen where I can park other work.
The teleconference setup is a Logitech webcam and a Blue Snowball microphone. I use a gaming keyboard with brown keycaps and a gaming mouse. There’s also a USB switch for going between my work machine and my non-work machine.
What’s something that’s a must-have for your workspace?
Some designated place in easy reach where I can write stuff down, as in with a literal pen on actual paper.
I do a lot of my best thinking on paper, where I can get words out of my head and onto some non-volatile medium where I can look at them the next day. Brains are great for CPU, but not so much for RAM.
Fun fact: I’m one of those people who prefer fountain pens to ballpoints. Ballpoint pens have a massive engineering advantage over fountain pens for pretty much everything except actually sitting down and writing a lot. But that’s another article. :)
What music (if any) do you listen to while you work? Drop a playlist link!
If I’m actually heads-down and focused, I’m probably not listening to any music—I just have my noise-cancelling headphones doing their thing and keeping the rest of the world out.
If I’m doing something that requires less Deep Thoughts™ and is more about grinding out code as a result of the former, then there’s a ton of different music I listen to. I’m a big fan of the “they didn’t stop making music after I left college” school of thought. So, let’s see…
An assortment of modern brass band songs (I love a good horn section)
Emperor Norton’s Stationary Marching Band (brilliant and defies description)
Instrumental trance (for when I need some sonic wallpaper with a good beat)
And specifically, Rodrigo y Gabriela (because their virtuoso guitar work is just amazing)
If someone were to meet you at a conference, what conference would that most likely be?
NANOG would be the most likely one. It’s one of the Gatherings Of People Who Run The Internet, and it’s a group I’ve been proud to be associated with for nearly 20 years.
If you were presenting at a conference, which Subspace colleague would you want to have on stage with you?
I think presenting with William King could be fascinating. We seem to complement each others’ presentation styles really well.
What podcast do you most love listening to, and which would you most like to be a guest on?
I’m a big fan of NPR’s Pop Culture Happy Hour. It’s the kind of nerdy analysis of recent TV shows and movies that really appeals to me.
As for which one I’d like to be a guest on… that’s a very good question.
What past achievement are you especially proud of?
The time that I accidentally wrote a compiler. No, really.
When I worked at Tufts University, we had to forklift-upgrade the entire routing infrastructure across three campuses, all over spring break (so, about a week). There was tons of planning, including generating/migrating all of the configs from one vendor to the next. One thing led to another, and by the time I was done, I realized that I’d written a lexer, a parser, an intermediate language to describe things in a device-independent way, and a multi-target compiler that could take a config from the old vendor, and turn it into a config for various different devices…
...in Perl.
Do you have any published articles/books/interviews? Share links!
The first paper I wrote ~20 years ago is still cited! “Adverse Termination Procedures” (or “How To Fire A Sysadmin).” It’s a framework for how to think about cutting off system access for someone who has the keys to everything. I’m pleasantly surprised by how well it has held up.
I do a lot of thinking on how we communicate ideas to others. Here’s a talk I gave at NANOG on how to give a whiteboard talk and the series of blog posts I made on the art of giving a whiteboard talk during the time I was getting trained up as a professional services person at Akamai.
What did you want to be when you were a kid?
I can’t even remember. I think I wanted to be an engineer of some kind from a very early age, but I couldn’t actually tell you what kind!
The whole world of “how do things actually work” appealed to me in a pretty broad way, both in terms of machines and people. That all being said, how systems of machines and people work together has always been something that fascinated me. I learned how to do structured research (with outlines and shoeboxes of index cards) at an early age, and being able to dive into a sea of data to understand what is actually happening has always been a thing I’ve liked to do. In another universe, I would have been a lawyer specializing in contracts. In yet another one, I’d be a chemical engineer.
I thought I wanted to be an academic researcher in computer science, but I ended up realizing that my heart wasn’t really into pure research. Much like my father, I have the mindset of an engineer.
“First, can you do it all? And then, can you do it better and cheaper?”
As much as electrical engineering fascinated me (like father, like son), I realized that I was much more interested in the abstract thought-stuff that programs are made of. Then, I needed to make money, so I became a Unix systems administrator.
What made you decide to be a developer?
That’s a tricky question because I’m not a software engineer by trade. I’m someone who came up through old-school Unix system administration and then went over to work on networks of increasing size.
Amidst all of that, being able to code in multiple languages and do more than just a page or two of scripting to automate stuff has been a key to my success. Being able to think algorithmically and create the exact thing I need (or being able to repurpose/modify others’ code) has given me a tremendous amount of flexibility and speed in how and what I can get done.
(Also, causing rifts in the fabric of space-time with SQL by joining tables to themselves is a fun party trick.)
Tell us about the first programming language you learned and how you learned it.
The first programming language I learned was almost certainly BASIC. The only thing I can tell you about the computer I learned it on is that it was some Motorola microcomputer gear that my father had at the house so he could do work at home.
I typed in programs from magazines (I was six years old, and it was a long time ago) and then started playing around with what I could change and break. It’s amazing how far you can get with (say it with me!) “You know… this should work.”
Tell us about the first thing you built or coded. (And no, "hello world” doesn’t count.)
The first actually coherent, non-trivial thing that I built/coded on my own was much later than my first experiences. For that, we’d have to go to my sophomore year at college, when I was taking a course called Software Design Lab. It was a requirement for the computer science degree and was the second of two “weed-out” courses prior to declaring a major.
The course was designed around a set of projects that were just too large to fit entirely in your head, so you couldn’t brute-force write the whole thing from scratch. In order to succeed, actually thinking modularly and breaking things down was a significant part of the process.
So, I think it was a program that would display a histogram given an arbitrary set of integers in a file, and we had to write it in C. Given all of the requirements, it took a surprisingly large number of lines of code, around 2,000 lines or so.
But code it, I did.
And it worked, and I got a 9.5/10 for it. We were given two weeks for that assignment, and we had two days for the next one, which was to do the same thing in Awk. It took about 60 lines of Awk code, and I wrote it in a couple of hours. That particular lesson of “know the right tool for the job” has stuck with me for a very long time!
Matt’s Quick Picks
- Favorite IDE: Visual Studio or Sublime Text, depending.
- Favorite Programming Language: In terms of lines of code right now, Python. In terms of “actually getting to learn and use it well,” it’s a tie between Go and Rust. Different languages mean different ways of thinking.
- What programming language do you think in? Currently Python. It used to be Perl, and I still think of things in C if I’m working low-level enough.
- Visual Preference: Light mode for reading text (typically black on off-white) and dark mode for working with code (better contrast for syntax coloring/highlighting).
- Functional vs. imperative? Imperative for Getting Something Done Right Now. Functional when I have more time to think through the nature of the problem. Also, declarative languages like SQL are their own fascinating kind of magic.
- Tabs or spaces? Spaces. Tabs are not horrible, but mixed spaces and tabs are a source of pain and suffering, and please don’t do that.
- Nano or Vim? Emacs.
- Rewrite or Copy/Paste? Rewrite. Getting the patterns into muscle memory helps me. Copy/paste is a last resort if it’s still not working, and I want to prove to myself that it works at all.
- Most used keyboard shortcut: Ctrl-A Ctrl-K. See: Emacs.
- Preferred OS: For getting work done, MacOS. For gaming, Windows. For tinkering, some form of Linux, typically Ubuntu.
- Favorite subreddit: It’s a tie between /r/factorio and /r/fountainpens/
- Favorite game (And on what console?) I’m a PC gamer, for the most part. It’s very convenient to use the same hardware for gaming and photo post-production (I was formerly a wedding photographer. Long story). My favorite “think hard thoughts” game is Factorio. My favorite “hack and slash” game is definitely Path of Exile; I love the complexity and power of the character-building system, combined with getting to blow stuff up with magic.
- Preferred headset: For general use during the day on calls, I use a Sennheiser PXC 550 Bluetooth headset. It’s an all-around performer, and I’ve used it for years. If I’m heads-down and just listening to music, I’ll stick to the classics and use a pair of Sony MDR-7506 studio monitors.
Final Notes from Matt
How do you keep up with the latest trends, advances, and programming languages?
A bunch of different sources:
- Friends/colleagues discussing cool things on various chat programs
- Sites like Hacker News to see what a very specific slice of hackers think is trendy/marketable
- The occasional Wikipedia dive if I need general background information
- Conferences for seeing more structured talks on research in the field
- The occasional long conversation with a friend to see what life is like in their part of the industry
Anything else we should know about you, or anything else you’d like to add?
I listen to a lot of music from a lot of different genres, but the only instrument I know how to use well is my voice. To that end, being able to sing the bass part of the Gloria from Handel’s “Dixit Dominus” from memory is a pretty great party trick.
I’ve done a lot of photography over the years (both professionally and personally), and I still get a lot of joy out of showing people what the world looks like through my eyes. Feel free to take a look!
Last but definitely not least, Subspace is doing interesting things with interesting tech, and it’s genuinely fun to work on one of the not-really-solved problems of the Internet.