About the author
Today we are joined by
. He is a CTO, course instructor at Maven, and author of the newsletter with over 100,000+ subscribers!Throughout his 12-year career in engineering, Gregor has gone all the way from Software Engineer, to Senior Engineer, to Team Lead, to Head of Engineering, to VP of Engineering to CTO.
I’m excited for him to share from his extensive experience on this topic.
Intro
Hey everyone, Gregor here! 👋
Throughout my 12-year career in the engineering industry, I had a lot of conversations with engineers that brought up this concern:
“After growing to Senior Engineer, it feels likes you hit a ceiling, and there are no next steps”.
And I used to believe that as well. I thought that once you become a Senior Engineer, you do that for the rest of your career.
But let me tell you that it’s completely wrong. Getting stuck at Senior is not something you should be afraid of.
Once you become a Senior, your career has just started! There are so many ways where you can grow and get better.
Feeling stuck as a Senior Engineer
When I was a Senior Software Engineer, I was overthinking my career path.
“What is going to be that next step for me?”
“Should I go into management, architecture or should I grow as an IC?”
These questions were always swirling around in my mind.
Personally, I am very goal-oriented and at this time I felt a lot less motivated and driven because I didn’t know what the next step for me was.
My growth was stagnating.
Once it became clear which path I wished to progress towards, I became a lot more motivated and my drive + overall energy grew substantially!
I believe if you know which path or direction you want to go, there’s a much bigger chance you'll actually get there.
To help you with this, let’s jump into some of the paths you can choose to pursue.
What can I expect after Senior Engineer?
My recommendation is to grow to Senior Engineer position first before you think of moving to any other paths.
After that, there are 3 main paths in which you can grow:
IC path (Staff Engineer → Principal Engineer → Distinguished Engineer)
Management path (Team Lead → Engineering Manager → Director of Engineering → VP of Engineering)
Architect path (Software Architect → Senior Software Architect → Staff Software Architect → Principal Software Architect)
Not every company has the exact same title names and paths available, but these are the 3 main paths that are used widely across companies.
Now, let’s get into my recommendation on which particular path you should choose based on your preferences and your strengths.
Which path should I choose?
When to choose IC path:
You like to be deep into the details.
You love learning new concepts and patterns.
You want to be an expert in particular technologies that you work with.
You like to ensure that coding style guides and guidelines are up-to-date and well-defined across different teams.
You believe in mentoring others and helping them grow as engineers by providing them with technical support.
When to choose Management path:
You see yourself as more of a generalist rather than a specialist.
You are very focused on trying to improve the engineering process.
You enjoy communicating with different people regarding the requirements of a specific project.
You like to make sure the team is aligned regarding expectations and deliverables.
You are one of the first people to speak up if something can be improved and are not afraid to take ownership and responsibility for projects.
If you believe that you can contribute to the team’s success a lot more with non-technical skills like communication, alignment, accountability, help, and support, it’s certainly a good path for you.
When to choose Architect path:
You like to stay technical, but have a desire to focus on the big picture more than really fine details.
You still need to be good at understanding the details and good practices, but your main focus is to think about the codebase and architecture ahead of time.
You enjoy defining blueprints and plans that are going to be successful long term.
You like to anticipate and talk about constraints and potential problems before implementing a solution.
I was lucky to have found out the right path for me
After being stuck for a while in a Senior Software Engineer position, I got lucky to get offered the Team Lead position after our company went through restructuring.
I believe some of the reasons I got offered this position are:
I’d developed a good credibility over the years of successfully finishing projects and doing good work consistently.
I was hosting learning sessions across the company.
I’d developed an overall good reputation across the company and I worked with my manager for quite some time, which helped me to develop a good working relationship.
What I didn’t do so well is sharing with my manager the path I wished to pursue.
My manager was surprised when I agreed to accept the Team Lead position, and originally thought I wouldn’t be up for it!
Learning: Keep your manager up to date with your goals / dreams.
6 months into the Team Lead role, I knew that management was the right path for me. I knew this was the path where I wished to progress for years to come.
Don’t make the same mistake I did
In order to save yourself from the mistake I did of getting stuck, and then not keeping my manager up to date, I suggest to at least have an idea of which path you wish to pursue.
Luck as I had rarely comes. I believe that in my case there just wasn’t a better candidate at that time.
If someone knew they wanted to become a Team Lead, and leadership was aware, that candidate would have a much better chance of getting promoted than me.
Here is my recommendation on how to find your path / next steps:
My first recommendation is to create a pros and cons list.
List out what are your pros (strengths) + what are your cons (weaknesses) and try to see if that helps clarify the right path for you.
It’s important that you are honest with yourself.
Once you have that pros/cons list, compare that with “What path should I choose” section that I mentioned above.
Another suggestion is to talk to various people and ask questions. Especially if they are currently in the role you are interested in. That’s how you’ll get more context and started to develop a better idea if that’s the right path for you.
If you’re not sure, try yourself in a certain role
One of the things I regularly suggest for engineers is to just try out a role and see how it feels – especially if you not sure about a certain career path.
Just try it out and see how it feels. None of these paths are one-way doors. You can still switch your path later.
That’s also the reason that as a manager / engineering leader, I try to provide opportunities for my reports to try themselves in different roles.
I like to rotate the Tech Lead role and I like to also give an opportunity for aspiring managers to try themselves in a Team Lead role for a certain period.
It’s unlikely to be 100% sure that a certain path is right for you without even trying it out at all.
Caleb here 👋
If your company doesn’t have any official paths to transition to a new role/path you are interested in, see if you can work with your manager to find a few opportunities to practice what it might be like in that role.
Some ideas include:
Being a tech/feature lead for a project
Working on a large cross-team project with other Staff Engineers / Architects
Running sprint demos or daily standups
Helping plan out a quarter of your team’s OKRs with your EM/PM
Starting to have mentoring 1:1s with aspiring engineers on your team
Career paths are not linear
If you find yourself in a path you don’t end up enjoying, there is nothing wrong with switching to another path.
It’s quite common for people to be a Engineering Manager for a few years, then switch to Staff Engineer, and then go try out an Architects role, before then going back to the management path.
A lot of the skills and things you learn in any of the paths are well applicable to other paths. Skills you develop in leadership, time management, good organization, mentoring, big picture thinking, will help your overall experience a lot.
It’s quite unlikely that your path will be linear. I personally don’t know a LOT of people who have decided to go a certain path and haven’t made adjustments over time.
One of the reasons for that is the engineering industry is always morphing and changing. In 5 yrs, it might look completely different than it looks right now.
Last words
If there is one thing that you should take from this article it is:
Take ownership of your career and don’t rely on luck or others to provide you opportunities. Take action and set up goals for yourself.
Remember, once you become a Senior Engineer → your career has just started!
Caleb here 👋 That’s it for this week!
If you want to do some more reading on my own journey from Senior → Tech Lead → Management. Or how to go from Senior → Staff, checkout these articles.
Until next week 👇🏼
Catch me daily on LinkedIn where I talk about everything software engineering, startups, and growing in your engineering soft skills.
– Caleb
P.S. Don’t forget to like, comment, and share with others if you found this helpful!
very interesting article thanks.
I think I made my first step two weeks ago when I contacted my supervisor and told them I was interested in an open Staff Engineer position inside my company. Now I’m sure 😄 I’m used to working with higher-level requirements, multiple stakeholders, and teams, thanks to my freelancer past. I think this role will be more interesting for me than a senior engineer role. Thanks for sharing your thoughts!