Ben Marx’s path to Subspace wasn’t one he expected.
“I’d never really considered becoming a developer as a career path,” he said. As a child, he longed to be an astronaut, but after listening to an ethnobotanist speak in high school, he switched up his career aspirations to more Earthly pursuits.
And though he didn’t end up working with planets or plants, Ben has gone on to wear many hats: writer, web developer, back-end engineer, and now Subspace’s Vice President Engineering.
In this interview, Ben shares some of his most significant accomplishments, lessons learned, and how a chance trip to the library changed his outlook on life.
Q&A with Ben Marx, Vice President of Engineering at Subspace:
Share a bit about the coolest thing you’ve worked on since you joined Subspace.
When I first joined Subspace, I was assigned to work on the first version of our Border Gateway Protocol (BGP) Announcement System. I knew little about BGP at the time. However, with some help from my colleagues, I learned enough to get the system working.
Right now, we use this system to manage our BGP sessions and peerings. The system makes network administration and optimization more efficient. My biggest takeaway from the project is the engineering principle it highlights: Always apply a beginner’s mindset to any problem. That’s how you come up with a novel solution.
What’s your favorite part of what you do? Why do you like it?
That would be the team! I love how capable and collaborative we are together.
Which problem with the current public internet are you most excited to solve? Why?
I believe that everyone should have good and reliable access to the internet and open information. This access is as crucial as access to great healthcare, human rights, and open societies. If Subspace shrinks the globe by reducing latencies and packet loss, more people will access the internet, its vast resources, and open information.
Describe your work-from-home set-up.
Remote work is all new to me as this is my first work-from-home experience. So, it took some time to set things up. I finally got a standing desk. I also have an external monitor with a webcam, a horizontal mouse, and a Kinesis Advantage2 ergonomic keyboard. My setup helps me maintain a better posture. I’m doing whatever I can to mitigate the adverse effects of sitting hunched on a desk for hours.
What’s something that’s a must-have for your workspace?
Headphones!
What music (if any) do you listen to while you work? Drop a playlist link!
I particularly enjoy electronic musicians such as Extrawelt, Christian Löffler, and Robag Wruhme. I also love Math Rock Bands like Covet, Toe, and modern composers like Philip Glass, Max Richter, or Arvo Pärt. While working, I prefer listening to a piece of music without lyrics.
If someone were to meet you at a conference, what conference would that most likely be?
That’d be ElixirConf or CodeBeam.
If you were presenting at a conference, which Subspace colleague would you want on stage with you?
We have a great engineering team here at Subspace, so I’d be lucky to share the stage with any of our engineers. But if you twisted my arm, I’d say Lang Martin. We have similar interests, so we probably would have a solid stage presence.
What past achievement are you especially proud of?
When I was three, I checked out the millionth book from the local library with some assistance from my Mom. I received a certificate, an enormous block of chocolate, and a copy of The Rescuers. What I am most proud of isn’t the reward I got, but the impulse.
“It’s funny how random, arbitrary events can have a significant impact on one’s life. To this day, following the impulse has led me on unexpected, thrilling adventures that I never thought possible.”
Do you have any published articles/books/interviews? Share links!
I co-authored a book with José Valim and Bruce Tate called Adopting Elixir. You can find various Elixir posts and talks I’ve given on my rarely updated site.
What did you want to be when you were a kid?
When I was a kid, I wanted to be an astronaut. Then, in high school, after listening to a talk by Wade Davis, a Harvard ethnobotanist, I wanted to become an ethnobotanist. Ethnobotany is still alluring.
What made you decide to be a developer?
I’d never really considered becoming a developer as a career path. Instead, I tinkered with computers since the hand-me-down Commodore64, running BBS software, and the advent of the internet. I wanted to see and explore the world, not be stuck in an office.
Eventually, things changed when I had to consider my career options against student loans. It was at that moment that I realized that I enjoyed the discipline and craft of a developer. There’s a creative element associated with development that isn’t highlighted as much as it could be.
Tell us about the first programming language you learned and how you learned it.
The first programming language I ever used was PHP. I learned most of the language on the job while I slowly transitioned from content writing to site management. By this time, I was good at backend and frontend development. With these skills in place, I landed my first full-time job as a full-stack developer.
Tell us about the first thing you built or coded. (And no, "hello world” doesn’t count.)
Long ago, I bought a BASIC program book that outputs an animated haunted house if you input the code and run the program. It wasn’t programming so much as typing from a book, but it was a great start.
Ben’s Quick Picks
Favorite IDE: Spacemacs
Favorite Programming Language: Elixir
What programming language do you think in? I don’t know if I think in any programming language. However, when I try to construct a feature or design part of the system, it’s definitely a functional paradigm.
Visual Preference: Dark mode
Functional vs. imperative? Functional. For me, it’s easier to reason about the code, the side effects, and the behavior generally.
Tabs or spaces? Spaces
Nano or Vim? Vim
Rewrite or Copy/Paste? It depends. If it’s boilerplate-type code, I’ll copy/paste it. If not, I’ll generally rewrite or at least write, not copy/paste.
Most used keyboard shortcut: command + space
Preferred OS: OSX, but I’m holding out for the eventual year of the desktop Linux.
Favorite subreddit: I try to stay off Reddit. There is not enough time in a day.
Preferred headset: Bose Qc35
How do you keep up with the latest trends, advances, and programming languages?
I stay updated through Twitter, but primarily through posts in our internal Slack.