You are a Senior Engineer, now what? (Part 1)
Tags: softwareengineering, mentorship, seniority, coding
Published: 2024-05-08 03:15:39

First of all, congratulations! You’ve earned the rank of Senior Engineer. That's no small feat, and you should be proud of your hard work and dedication.

Now, you might be wondering, "What's next?" This is not only a common question but also one that I frequently get asked. As a Principal Engineer, I have the great opportunity to mentor many seniors and tech leads. That's precisely why I'm writing this blog post—to extend my personal observations to more people who are trying to navigate their next steps in their technology career.

But the truth is, becoming a senior engineer is only the beginning of a new chapter in your professional journey. So, there's no need to be afraid! I'm here to help, I will delve into some insights on how you can continue to thrive and achieve even greater success as a Senior Engineer. Let's dive in! 👏

Now that you are a senior, the junior days are over, does that mean that you should know everything? Absolutely not. Being a senior is about knowing how much you don't know. However, that also means you should be constantly seeking more technical knowledge in both depth and breadth, but what... what does that mean?

## Technical Depth and Breadth

![Pyramid with technical dept at the top and technical breadth at the bottom.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eil6c6qyh1xmcdth4hjt.png)

### Technical Depth

**Technical depth** refers to a software engineer's deep understanding of a specific area or technology. This means that they have extensive knowledge and expertise in a particular programming language, framework, or tool, which allows them to optimize it, solve complex problems related to it, and work efficiently in that area.

Your technical depth, includes for example, your main programming language, the packages you use the most, what package manager you use, what frameworks you use, what databases you use, what cloud provider you use, etc. This is the area where you are the most comfortable and where you can solve problems the fastest!

For example, a software engineer who specializes in Java may have in-depth knowledge of the language, the Spring framework, and deployment on Tomcat in various configuration scenarios. This enables them to quickly and efficiently troubleshoot issues and optimize not only their work, but also the team's work and sometimes even assist company wise with the general developer experience.

### Technical Breadth

On the other hand, **technical breadth** refers to a software engineer's broad understanding of multiple areas or technologies. They have a good understanding of various programming languages, frameworks, and tools, and can work on different projects that require different skills and knowledge.

I like to explain technical breadth as the technologies you know exist, you know how they work, what they are good for, but you never had the opportunity to use them directly on your day-to-day.

For example, if you are a Javascript engineer, you know there are a lot of different libraries and frameworks, each with its own specific use case. You know what they are good for, you know what problem they solve, you never had the opportunity to use them, but you could pick it up and start using it in a small time frame if the right opportunity arises.

While technical depth and breadth are distinct, they're not mutually exclusive. In fact, the most successful senior engineers have both. They have a strong foundation of technical depth in one or more areas, which enables them to tackle complex problems and optimize their work.

At the same time, they also have technical breadth, which allows them to adapt to new technologies and projects, and collaborate effectively with colleagues from different technical backgrounds. So, strive to develop both technical depth and breadth, and become a well-rounded and versatile senior engineer.

Besides technical skills, there are also plenty of soft skills that you'll need to master over time. But, I'll save that conversation for another blog post. For now, let's focus on how you can continue to improve your technical skills and stay up-to-date throughout your career.

## Keep grinding

![A determined gopher grinds away at work, intently focused at a cluttered desk in a charming black and white sketch.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jrgczmtcdabc0y4nz1ej.jpg)

Okay, so here's the deal: once you hit that senior level, the path to seniority is pretty similar across the board, unless you decide to transition into a management role. It's like leveling up in a video game - you're always striving to get better and better, but the gameplay stays pretty consistent.

Now, don't get me wrong - when you start taking on tech lead, staff engineer, or principal engineer roles, you're going to need to add some new soft skills to your toolbelt (I will write another blog post on this). Things like leadership, mentorship, and influence become increasingly important. But when it comes to hard skills, the path stays pretty consistent. So let's say that reaching principal engineer status just makes you a "more senior senior" - you're still building on the same foundation of technical skills that got you to where you are.

Stay tuned for Part 2 of our blog series, where we'll dive into one of the most crucial topics for advancing your seniority: software architecture and design.