Cool Job: I’m Stack Overflow’s Director of Engineering


When Ben Matthews got one of his first jobs as a developer at an advertising agency, he was building new websites every few weeks. Like most programmers, he relied heavily on Stack Overflow to answer the daily deluge of coding questions.

Stack Overflow is a community-based platform for asking and answering technical questions, and it’s practically ubiquitous in the programming world. “It becomes the number one tool in your toolbox,” Ben says.

Although Ben had been coding since high school, using Stack Overflow really taught him to think like a programmer. “After a while, you learn that coding isn’t so much writing things from scratch, but knowing what’s already out there and how to use it best to fit your problem,” Ben says.

Now, Ben is the Director of Engineering at Stack Overflow, where he leads and coaches a team of about a dozen engineers who work on Stack Overflow’s public-facing community products.

The transition from programmer to manager presented a learning curve and “a whole lot of mental shifts,” Ben says. As a developer, Ben’s instinct is to jump in and solve problems for his team — but as a manager, he needs to give engineers opportunities to grow. “The focus is not on making better code, but making engineers better at what they do,” he says.

Here’s how Ben got developer experience, honed his soft skills as a leader, and landed his job as the Director of Engineering at Stack Overflow.  

What got me interested in the job

“When I went to college, I had no initial interest in programming for a living. At the time, there was a stigma of: If you’re a programmer, you go to work, you sit in a cubicle for eight hours a day with your head down, you move bits around, and then you go home and do it all over again. I like working with people and solving problems on a bigger scale.

My very first job was at a startup, which I was very lucky to do because you have to wear a whole bunch of hats. I started as a quality assurance analyst — I wasn’t around code, but I was helping the website run better. Then I got into development and I started helping out, which just expanded to more and more coding.

I started to see that, even though I am in front of the screen coding, I’m working with sales, product, and marketing folks to help solve problems. Code was just a tool I used. That’s when things really clicked for me, and I started to fall in love with the code. I was helping people execute on problems — not by just sitting in front of a screen all day — but by understanding people and business problems. It really became rewarding.

Working in advertising and for other SaaS companies were great experiences. But there came a point where I couldn’t get excited about waking up to help people buy something I sometimes felt they didn’t need — it wasn’t really motivating me. I was hoping to find something where I could do some good.”

How I got in the door

“I found the role at Stack Overflow, and it wasn’t even so much about what Stack Overflow does as a business that got me interested — it was the company culture, dedication to employee wellbeing, and making sure people are happy where they work.

A lot of the ways that [Stack Overflow] makes money aligns with doing good for other people. If we’re helping people make new communities with our team’s product, that’s helping them be better organizations. Every time that we’re adding new features for how people can ask questions, I’m helping people do that. That’s what really called me.

We have an extremely collaborative environment at Stack: One of the things we ask first in interviews is: How do you work with other people? How do you do code reviews? Or how do you look at the pros and cons to that? It’s a team effort.”

What I actually do every day

“Typically I’m much more on the meeting side of things. I don’t write code that goes to production at Stack anymore. It’s probably for the good of everyone that my code doesn’t go up there anymore.

As a director, I’m really there to enable everyone else in my organization to do better. I’m setting expectations, our goals, and what we need from our engineering teams. Most importantly, I’m making sure that they have all the resources they need to do it — sometimes that’s time, and sometimes that’s just tools or getting things out of their way.

My day-to-day is spent working with sales, product, customer support, and our community team and making sure that we’re all aligned on what we want to build. No day is like any other, and that’s the same for our developers.

We give our developers at Stack Overflow a whole lot of freedom on purpose. We expect them to be able to manage their time and their work, as long as they’re getting the work done and supporting their team. The flip side of that is that comes with a lot of responsibility: making sure that you are available, knowing how to manage your own schedule, and being proactive about helping others.”

Here’s what you need to get started

Whether or not you aspire to become a software engineer or computer scientist, Ben says it’s worthwhile to get exposed to coding “and see if you have a passion for it.”

Don’t be afraid to try a few different programming languages and see what resonates with you. Here are some programming languages that Ben suggests and beginner-friendly courses to check out:

  • C#: This high-level language was developed by Microsoft and can be used to do everything from mobile app development to cloud computing. Our course Learn C# will teach you the fundamentals and get you writing programs right away.
  • Python: Looking for a general-purpose programming language? The nice thing about Python is that it’s versatile and uses English-like syntax, making it relatively easy to pick up. Start with Learn Python 3, which will walk you through fundamental programming concepts.
  • Java: An oldie (it was created in 1995) but a goodie, Java is used for everything from Android app to smart device development. Learn Java is our introductory course for the popular language.

Lastly, Ben’s advice for anyone collaborating with a team is straightforward: Learn from each other. “I have a bunch of great peers here at Stack that have some strengths that are my weaknesses,” he says. “How I really grew as a manager was just trying to see who I could emulate and learn from.”

C# Courses & Tutorials | Codecademy
C# is one of the most popular programming languages. It can be used for a variety of things, including mobile applications, game development, and enterprise software. Knowing C# opens a great deal of doors for you as a developer.

Related articles

7 articles

What is the Waterfall Model?

7 minutes
By Codecademy Team

T​​he waterfall model follows a linear sequential flow where each phase of development is completed and approved before the next begins. Here’s how it works.