Speaking with software engineers in my team and through my mentoring with The Mentoring Club one question keeps coming up: “What is the next step in my career?”
For everyone that is working in the industry and eager to grow personally, this question is a constant companion.
I want to give you my perspective on how you can advance in your career after you've made the step to a senior engineer. I want to talk about how it's possible to grow further.
What's Next in My Career?
Throughout an engineering career as a software engineer, you usually advance through the roles of a junior, intermediate and senior engineer. It takes you years to learn more and more skills, your salary goes up, your influence on technical topics grows. After you have reached that level, the next step often times is not as obvious as it has been before. So what's next, you ask. Obviously, this is not the end of your work-life.
Let me share with you the three journeys that you can take as a next step:
- Stay as an individual contributor and become more advanced in the tasks that you take on
- Start to grow into a people management related position
- Move into a related discipline
Let's look into each of these in more detail.
In your role as a senior software engineer, you are usually the person who guides the technical decision-making within your team, who is responsible for helping more junior people to advance in the technical understanding. You speak a lot with product managers and designers on how to shape features, and you come up ideas on how to advance your technical stack.
If you feel happy about being the technical go-to person, you can think about growing your career further as an individual contributor.
At some companies, a couple of the tasks described before are taken on by a technical lead. A person who is responsible for driving the decision-making across multiple senior engineers. Often times this role requires more communication and good technical understanding of the domain.
Especially in larger organizations, you will find concepts, where you can then grow into a position as a staff engineer, being responsible on a domain level for several activities, e.g. aligning technical decisions between teams and driving system architecture.
The next step after that, often times a principal engineer who is responsible for aligning company-wide decision-making on a technical basis.
These roles usually involve the work as a software architect, which in some companies is seen as a discipline on its own. If you want to learn more about the role and responsibilities of a software architect, I recommend reading through Nikolay Ashanin's series on the topic.
That being said, there is one trend that I see happening more: A lot of companies removing the concept of junior, intermediate, senior, advancing to staff and so on in favor of using levels to describe the seniority of a role. Take Meta or Google for example. A junior might be considered a level one or two engineer, a senior developer is a level 5. I like this concept since it takes away the obscurity of titles and turns it into a more rational, almost linear way of advancement.
Often times when I speak to senior engineers who want to advance their career, I hear them thinking about a role that is within management. While a management role and leading people might be tempting to pursue, you have to be careful in analyzing if this role is for you.
There are also certain traits that you as a person need to grow into a leadership role. Havard Business Review has published great research on this.
Managing people requires skills that are new to what you have done before in a role of software engineering. Engineering evolves a lot around the technical decision-making. For a role in management you have to take care of all individuals of a team with their strengths and weaknesses, you have to make sure that everybody can develop in the way that they want to, and you have to make sure that people work well together. Your daily problems will be different from what they used to be. You will be sitting in much more meetings, talking to stakeholders, product managers and others. You will be responsible for removing obstacles, helping the team advance and reaching their goals.
One of the entry roles for a people management position, is the role of an Engineering Manager, who is responsible for leading one or multiple teams by taking over the disciplinary leadership. There are multiple concepts of how to live that role. Have a look at the five different arc types of Engineering Managers that Pat Kua describes on his blog.
Moving into Another Direction
A different way is to pursue a role outside of engineering. There are multiple roles which are connected with software engineering, which can be considered for advancing in the personal career. Most of the time, these roles require you to have some interest in a special topic.
If you're working on a team that employs agile methodologies and have done that over a longer period of time, you get familiar with it. If this is the case for yo, you could consider a role as Scrum Master or being an Agile Coach. Those roles require a deep understanding of the methodologies that you employ. Communication and analytical skills come into play as well.
The further you grow in your technical career, the more you are in contact with the ideation phase of a product feature. If this is something that you love to do, you enjoy talking to stakeholders and describing product requirements, setting KPIs and making sure you reach them with your team, a Product Owner role might be interesting for you to look at. There is a multitude of products where a tech-savvy Product Owner can contribute to the product's success immensely.
Technical Project Management
Especially in consultancies and agencies, I've seen roles for technical product managers. These require you to have a lot of interaction with customers by analyzing their needs and leading a team. You play a vital role in leading a project through the product life cycle: setup, planning, execution, monitoring, controlling and completion. To be an effective technical project manager, you must make sure that your communication skills are great, and you are able to manage the technical complexities throughout the duration of a project.
There are more roles that you might want to pursure, these include Sales Engineering, Solutions Architecure and Technical Account Manager.
As we see there are multiple ways on how you can grow beyond a senior engineering position. Analyse carefully what is best for you in order to find the right way forward.
Sometimes when you consider growing in your personal career, you have to come to the conclusion that the current employer is not the right one to let this step happen. It is important to acknowledge this and then act accordingly. Great managers will support you in doing that step because it ultimately helps you and the company best. Otherwise you will not be happy in your job which will reflect on your team and thus the company.
If you are now wondering what would be best for you personally and would like to exchange some opinions and thoughts about it, I want to offer you my help. You can book an appointment with me through The Mentoring Club.
One of the sources that I like to refer to in order to look at a career path is Engineering Ladders. The documentation there guides you through the different requirements for the specific roles. What is the definition for specific roles might differ throughout companies. Engineering Ladders gives a fantastic guidance on what is required in order to advance to a possible the next level.
A great source for comparing different levels of engineers throughout the industry is also Levels.