I have long encouraged engineers reporting to me to view the transition to Staff Engineer as not a promotion but a role change similar to the change of transitioning into being an engineering manager.
I think that what you said is only true in the same way "there's no single definition of a manager" is true.
Staff Engineers live on the critical path of implementation and directly contribute to their execution.
i think the idea here is that a staff engineer should be identifying what needs to be done, figures out how to do it, works to push the team and project in that direction, and provides insight to the org as to how it is going
In my view it's the responsibility of engineering management is to create alignment on what needs to be built, when, and how. You call your shot and then you have to hit it.
Managers need a lot of information to create this alignment, to set correct goals, and to allocate resources effectively.
The first part of a Staff Engineers job is to help provide that information. That might be through prototyping software to inform what is possible or the tradeoffs of taking different approaches. That might be through having an in depth knowledge of technical constraints, historical decision making, and business domain that the manager can query. That might be through seeing patterns with bugs or inefficiencies on the team and surfacing them. That might be through staying abreast of larger industry trends and thinking about how they apply to your team's software.
It's ultimately about removing unknowns so the manager can negotiate effectively on the teams behalf when setting goals and create a plan that will be successful to achieve those goals.
The second part of a Staff Engineers job is to help make sure those goals are met. That might be through solving complex issues when they arise in development. That might be through directly contributing code to projects that are behind because effort was underestimated. That might be through building frameworks to make the whole team more productive. That might be indirectly through setting an example for other team members to follow or consciously influencing team culture. That might be through picking up responsibilities for an overworked manager like coordinating between different teams or helping the team organize tasks. That might be teaching and up-leveling team members. That might be through providing a second set of eyes from a different perspective to the manager about how the work is going.
Unlike line engineers who are evaluated on if they completed the work assigned to them at a satisfactory level, Staff Engineers like managers are evaluated on if the team shipped the agreed upon software on time or not. But the levers they have to pull to achieve those results are different.
At least that's my take on the role and why I think it's not the path everyone should pursue.
I feel like the job and the skillset required to do it well are sufficiently different for it to be a different path that you need to consciously decide you want to go down.
I feel like once you reach Senior Software Engineer, you can stay there forever. There is no longer an automatic 'next' level you're trying to get prompted to.
> I have long encouraged engineers reporting to me to view the transition to Staff Engineer as not a promotion but a role change similar to the change of transitioning into being an engineering manager.
Does this imply that becoming a manager is also "not a promotion" in your organization?
At the risk of being obtuse, depends on what your definition of “promotion” is…
I’d classify the dimensions as:
- Compensation - obvious one. May vary by org
- Authority - are you officially allowed to give orders? Hire and fire?
- Respect and influence- in your org, do people specifically want EMs to be active in areas ICs are not, like strategy, etc. varies widely.
- Alignment with personal Career goals - some people hate management-type duties - so for them, this EM title change would be “not a promotion” to them
I’d say EM is a promotion in some of those ways and it varies a lot by org for sure.
I think that what you said is only true in the same way "there's no single definition of a manager" is true.
Staff Engineers live on the critical path of implementation and directly contribute to their execution.