This article is for software engineers who are looking to progress in their careers and wonder what their path should be beyond a Senior level. In this article, I will share my thoughts on this topic based on my own experiences and what I’ve learned.
TL;DR
- It is common to associate potential growth with a management career path.
- There is an alternative career path known as Staff Engineer.
- Staff Engineer is a senior role that does not involve management responsibilities.
- You need to find what works for you best.
- The Ikigai Framework can be a useful tool.
- Read books, find a mentor and talk with your manager.
We all want to grow
As I’ve been working for more years, I got promoted first to mid-level and then to Senior Engineer. The more I worked in the senior role, the stronger I felt the urge to progress further.
Recognition for our work and our continuous efforts is something we all seek. More knowledgeable people also usually bring more value to the company: they have a high-level understanding, domain-specific knowledge, and communication skills. So we are looking to get promoted over time.
And the only way to progress that was available at the time, or at least the one I’ve seen, was to become an engineering manager. There are multiple reasons for that:
- Firstly, the company where I worked was relatively small, so there was always room for a new EM since only three to five people were needed to form a team.
- Secondly, I’ve seen many people who were in senior roles for a long time eventually become managers. So this path seemed like the only way to progress.
As my career in engineering management progressed, I noticed a problem. I’ve seen many people who were great engineers, but not great managers. They were not happy with their new roles, new responsibilities, and the new career path they were forced to take.
Staff Engineer
Over time, I learned there is an alternative career path that is not so well-known: Staff Engineer.
The more we work on something, the better we get. Some people suggest one needs to invest 10.000 hours into something to become an expert, while others say that 1.000 hours would be sufficient. However, no one would argue that the more you work on something, the deeper your knowledge becomes.
Within a specific area, it is common for people to transition into different roles over time. For instance, out of 10 backend engineers starting their careers fresh out of college, probably around six would continue working in that area for the next three years. Two might switch to DevOps, one might switch to frontend, and one might transition into a management role. I am showing a simplified, average case. If you take an extended time period, the likelihood of people switching to different areas increases, creating a funnel effect. As a result, it always gets harder to find people with more experience in a specific area.
As companies look for more experienced engineers, finding suitable ones gets harder. This is why experienced engineers are often rewarded with higher compensation. In general, the compensation for staff roles is comparable to management roles, so you don’t have to worry about this aspect.
Only some people with extensive experience are great engineers. But with the right mindset, an experienced person can unblock a big team and lead without formal leadership.
For bigger companies, it makes sense to employ experienced engineers who can enhance the team’s knowledge and help unblock the team. This role has different names, but it is often called “Staff Engineer” or “Principal Engineer”. The term “Staff Engineer” comes from the old times of engineering when engineers were responsible for constructing material things: a “staff” traditionally referred to a rod or pole used to take measurements during surveying. The term “Staff Engineer” originally referred to a senior engineer responsible for managing a team of engineers and surveyors. 1
What a Staff Engineer does
There are many different definitions of what a Staff Engineer is. Some examples include:
- Providing technical leadership, mentorship, and guidance to development teams.
- Driving innovation and continuous improvement in software development processes.
- Architectural design and system scaling for complex systems.
- Researching and developing new technologies and frameworks.
- Performance optimization to enhance software efficiency.
- Contributing to the company’s technical strategy and roadmap.
- Facilitating cross-team collaboration and knowledge sharing.
- Code and system reviews to ensure quality and security.
Ikigai
Ikigai is a Japanese concept meaning “a reason for being.” The word refers to having a direction or purpose in life that makes one’s life worthwhile and towards which an individual takes spontaneous and willing actions, giving them satisfaction and a sense of meaning to life. 2
So why do we go into the philosophy here?
- It is essential to understand what drives you.
- What is your purpose?
- What is your goal?
- What do you want to achieve? It is much easier to work on things you enjoy doing.
In its essence, Ikigai is a combination of 4 things: what you love, what you are good at, what the world needs, and what you can be paid for.
If you find something that combines all four aspects, you are in a great position. This could be engineering management, but it could also be a staff engineer role. Trying out different roles would give you a unique perspective and help you find your Ikigai.
The Pendulum
It is fair to assume that it is hard to predict if you will be good at something before you try it. It could be that a management career is right for you. But it could also be that you would not like it.
The ideal situation would be for you to find an opportunity to try one of your career paths. Having mentorship and guidance from a colleague already in this role would greatly help. It is OK to try something and then decide it is not for you.
Many engineering managers come from an engineering background. It can be a good idea to have a pendulum approach, where you switch between both paths from time to time. This could give you a unique insight as an Engineering Manager on the technical aspect of the project, and vice versa, and would allow you to understand the management side of the project as an engineer.
Practical Thoughts
Your physical location may limit the career path of a Staff Engineer. As mentioned above, many companies e.g. startups, agencies, etc. have smaller engineering teams compared to large companies. In a small team, there is frequently no room to promote an individual contributor above the senior level.
If there are no bigger companies in the area where you live, you can try to explore remote opportunities. However, this option is not always possible. Considering this, you might have to move abroad to advance in this career path. This is only sometimes possible, especially if you have a family.
Conclusion
This is only a small blog post – I recommend watching talks on this topic and reading books to better look at the potential you can unleash in progressing your career.
Here are some book recommendations:
- An Elegant Puzzle by Will Larson
- The Manager’s Path by Camille Fournier
- Staff Engineer: Leadership beyond the management track by Will Larson
- The Staff Engineer’s Path: A Guide For Individual Contributors Navigating Growth and Change by Tanya Reilly
Finding a mentor within or outside your organization would also be a great help as they could support you on your journey. Make sure to talk with your manager to discuss your career opportunities. There might be an opportunity waiting for you that you are not aware of.
Your career is in your hands, and you can shape it however you want. Don’t be afraid to try something new, and don’t be scared to fail.
If you like what you’ve read and you’re someone who wants to work on open, interesting projects in a caring environment, check out our full list of open roles here – from Backend to Frontend and everything in between. We’d love to have you on board for an amazing journey ahead.