You've worked hard and earned your stripes, you've gotten promoted / upleveled multiple times over the years for your hard work and contributions and now you're at the career level - senior software engineer - something that you've been eager to achieve for years.
Now that you're here, you're leading projects and the tech lead of your team, but the next career step seems less clear. Should you dig deeper technically in a specialized area, or contribute more to open source? Should you start taking on more team management and organizational work? Should you reach into the product and learn how the business works?
The road leading up to the senior engineer role is relatively linear, with marked goalposts, but it's less clear what lies beyond - the road underfoot forks.
In broad strokes, here are some categories -
Staff engineer - be the expert in a technical area or some part of the architecture.
Top skills: deep technical experience (e.g. set up distributed computation infrastructure multiple times with various frameworks, set up tax calculation frameworks for a few fintechs, one of the top contributors to open-source Kafka etc), ability to bring people along to agree on big projects and technical directions.
Engineering manager - bring people together, translate and help teams accomplish company goals.
Top skills: Ability to understand and motivate people and teams, technical experience to understand what team is working on and needs to accomplish
Product Management / Business etc - work directly with customers, turn customer needs into deliverables, bring different company functions to alignment etc.
Top skills: various, but all involve bringing people together and working well with other people and teams
No matter where you go, continuing to uplevel means having a greater impact, and that is accomplished by being able to rally other people to work together on something bigger than what a single person can do.
Q & A
Myths about staff-level engineers
The staff-level engineer  that only writes code is a myth and almost never exists - maybe if you're the only person that can contribute to a highly complex system that the company depends on (hence high impact), and the company has never tried to train or hire anyone else to create redundancy. If you're in that position, ask for a raise!
I want to stay an IC but it seems like engineering management has a better promotion path.
It’s about supply and demand. Notice the ratio of staff-level eng / non staff-level IC, as well as staff-level eng / eng management in your company. Some companies need more staff-level eng because of the company's product or culture, but many companies don't need many staff-level eng.
An analogy: a car factory might need one or two deep experts to come in when the machines break down, but to hire a deep expert per assembly line is excessive and not a good use of resources. Each line still needs a manager, so naturally, there are more managers than deep experts in this factory.
In a company where there are many more engineering manager roles than there are staff engineer roles, it's statistically easier to be promoted as an engineering manager.
However, your personal inclinations and interests matter more. If you know being a technical expert is what you want, find an environment inside the company or at another company that has more opportunities of this type. Being a staff-level engineer is in many ways a more defensible position. You are an area expert, and that is usually much harder to find and replace than managers.
I'm interested in Product but I'm worried about losing my engineering chops.
The truth is there’s a good chance you will start losing your engineering ability as well as your brand as an engineer. There's a large supply and demand gap for engineers, so moving to almost any other function means competition with a bigger pool of qualified people.
However, only you know what's right for you. If there's a chance to try another role with a low switching cost, try it out. As an engineer, you'll bring invaluable insight to product roles that will help you differentiate yourself in your career.
What's the career path that gets me to the exec level the fastest?
It depends. In an engineering-driven company, engineers make more decisions and lead product direction, in a sales-driven org, it might be easier to create impact from sales or operations. You can also start your own company, or join a smaller company so your impact can be proportionally larger.
At the end of the day, which role will allow you to make the biggest impact with your skills and passions? Promotions at the highest levels still work the same way - you have to show you're capable of delivering at the next level.
How do I know if I'm making the right choice?
Having integrity in your decisions to align with what you want is what makes a good life.
If you feel inspired and creative in your work more often than not, you're on a great path. If you feel stuck, then it's time for a reevaluation. No job will be 100% what you want, and what you enjoy may not be the same every year. Most decisions are reversible, so give things a try.
Check in at least every half a year and ask if you're learning, if you’re looking forward to coming to work, feeling connected, and making an impact. Sometimes the answer is clear if we stop and ask.
This post is getting long, so I'll leave out the tactical suggestions on how to change paths to another post if people are interested.