Becoming a Senior Software Engineer

​I used to speak regularly at many of the Chicago-area coding bootcamps and one of the common questions that students posed to me was, “How can I become a ‘senior software engineer’?”

I’ve seen versions of this question countless times on forums and Reddit threads as well, and I suspect it’s because many readers think their careers will just get easier if they have had “senior engineer” in their title.

On the other hand, companies give out this title somewhat arbitrarily.

A few years ago, I caught up with a former student who had just graduated from a bootcamp 3 years ago and had just received his first “senior software engineer” position. While I’m sure he was a standout employee, three years seems like an extremely short road to a title like that.

The truth is that there’s no accepted definition or benchmark that universally makes you a senior engineer-it might take you 3 years at some companies and 15 at others-but I do have some thoughts on this question.

In this piece, I’ll explore the four paths I’ve seen most engineers take to become senior engineers. Along the way, I’ll share some of the skills and benchmarks you might need to hit to get there yourself.

Path 1: Job-Hopping

Early in your career, this hopping around is also good for perspective. You’ll get to see a lot of different code bases, management styles, and team compositions while moving up the ladder every couple of years. Some recruiters (mostly the ones with your employers’ interest in mind) will tell you to be careful that you don’t develop a reputation, but in the first 5–6 years of your career, these short stints are normal.

With some experience and a variety of cultures under your belt, you can start to slow these hops down at some point. I tend to see the most senior engineering leaders staying for 5–10 years, which gives them enough time to run several big projects, get a promotion or two, and decide if they want to stay put or move on again.

Path 2: Grind it Out

Unfortunately, companies tend to take advantage of long-time employees who don’t push for promotions, so you might get stuck in a situation where you’re doing bigger jobs than your title (or paycheck) would imply. If this happens to you, talk to your boss. Figure out what the roadmap is like to get you to your next role and if the company really wants to keep you, they’ll make a path clear.

There are plenty of examples of engineers who spend 5–10 years in a single company to earn a senior engineer title. That said, this path is usually a bit slower.

Path 3: Startups or Self-Employment

I’ll admit, this isn’t extremely common, but in the entrepreneurial circles I run with, close to half my friends have joined or co-founded a startup at some point in their career, so I know this path exists.

Joining a startup can be a great boost to your engineering career, but you also have to consider the downsides. It’s not likely to make you wealthy quickly and the broad experience you get might not transfer to the narrow job specs that large employers want. Still, I found being a startup engineer a great way to quickly progress and many of my coworkers did too.

Path 4: Education

This seems like the least common path these days, likely because of the cost of college (both in raw numbers and opportunity cost) and the speed at which the industry moves. Graduate computer science degrees might prepare you to be the best at a very narrow part of the field, but if that niche falls out of favor, you might find yourself in an awkward position career-wise.

A coding bootcamp, on the other hand, will not help you get closer to a senior software engineering role. Coding bootcamps are now seen as a sign of a junior engineer, so if you’re self-taught and looking to level up, skip the bootcamp. It’s not going to make your resume look any better.

The Skills You Need to Become a Senior Engineer

1. Communication

Likely, this will require some combination of writing and speaking skills.

2. Multiple Programming Languages/Frameworks

The good news is that learning new programming languages gets easier after your first two. I found that after learning PHP and JavaScript, Python and Ruby were relatively easy to understand.

3. Debugging Skills

While they can be important for building new features, they’re also usually the developers with the best debugging skills and most complete understanding of the entire system. This allows senior engineers to add value by helping other engineers get “unstuck.”

If you want to get good at debugging, read more code, learn to use observability tools, and don’t shy away from fixing bugs. This is an essential skill for senior engineers to have.

4. Time Management

I’ve met some senior engineers who weren’t great with time management, but it often held them back at a certain point. Because they’re senior, they have more visibility and are a larger line item in the team’s budget. This means more eyes watching their performance and productivity.

5. Understanding Tradeoffs

  • “microservices are always a good choice”
  • “100% test coverage is essential”
  • “MongoDB scales better than PostgreSQL”

A senior engineer will almost always understand that every tech decision is about tradeoffs. There are very few answers that are always right, but senior engineers will know when to pick one path over another.

Learn to make both sides of important arguments and pay attention to the business needs instead of just the technical needs of each project.

Create Your Own Path

Finally, let me know if you have questions. I’m always happy to share my experience if it can help.

--

--

Former startup CTO turned writer. Founder of Draft.dev

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store