A note from a recent Engineering Manager:
I think in general, the management career path can lead to faster short-term gains in terms of career and compensation, but the most senior devs almost always have more interesting work, autonomy, and better compensation (EM's often make less than say, Staff/Principal devs).
I think "impact" is how you level up in either path:
The more senior you are, the more your work impacts larger parts of the organization. As a manager, you level up by running a team, then by running multiple teams, etc. You're a coach who's always helping your team grow & removing impediments to their work.
As a dev, there are multiple options:
- Evaluation of technologies
- Help setting best practices
- Mentoring the team / leveling up the technical skills of others
- Pair programming / answering questions / supporting team members
- Being involved in projects early on in their inception
- "Just being a solid contributor" on critical projects that need a particular level of quality or speed
For better or for worse, I don't think you can get to the most senior levels by "just putting your head down and coding". Both as a maker or a manager, you're going to have to learn the people/organization side to some extent.
The advantage of the technical route is it will often lead to more interesting projects and you still get to code! :)
I think in general, the management career path can lead to faster short-term gains in terms of career and compensation, but the most senior devs almost always have more interesting work, autonomy, and better compensation (EM's often make less than say, Staff/Principal devs).
I think "impact" is how you level up in either path:
The more senior you are, the more your work impacts larger parts of the organization. As a manager, you level up by running a team, then by running multiple teams, etc. You're a coach who's always helping your team grow & removing impediments to their work.
As a dev, there are multiple options:
- Evaluation of technologies
- Help setting best practices
- Mentoring the team / leveling up the technical skills of others
- Pair programming / answering questions / supporting team members
- Being involved in projects early on in their inception
- "Just being a solid contributor" on critical projects that need a particular level of quality or speed
For better or for worse, I don't think you can get to the most senior levels by "just putting your head down and coding". Both as a maker or a manager, you're going to have to learn the people/organization side to some extent.
The advantage of the technical route is it will often lead to more interesting projects and you still get to code! :)