Staff Engineer Expectations
Helping Senior Engineers form an understanding of what is needed to reach Staff Engineer
With this post I try to express my current understanding of how to communicate expectations for Senior Engineers. I might to update this post as I learn and receive feedback.
About a year ago I moved from Engineering Manager to Staff Engineer at a time when the definition for the role was very vague. There was a career framework but a career framework would never be able to fully express what would be required of me. It meant that I was very much part of setting the expectations of my new role and doing so by building an understanding of how the role was defined in the wider software community. My goal with this post is to, in a condensed format, help guide Senior Engineers and Engineering Managers in discussion around Staff Engineer roles.
A bit of a disclaimer. There is a lot to say on this topic and many have written about it before, see links in resources. To make something more condensed I will make some assumptions to narrow down the scope.
Mid-size/smaller companies (say 30-70 engineers)
Product Engineering makes up the majority of the engineers.
Primarily need for Tech lead and Architect archetypes
Let’s first talk about the terminal level
Many companies use the Senior Engineer level as the terminal level, i.e. the level where the organization doesn't have expectations that engineers will move on to the next level. The reason to have a terminal level is because after level the expectations change a lot. What got you to be a Senior Engineer is most likely not what will get you promoted to staff+ roles. But remember that Senior Engineers are super valuable, for some staying and improving in this role is a much better fit for everyone. Most companies also express this by letting the salary band of Senior Engineer level reach well into the salary band of Staff Engineer level.
For an Engineering manager a good initial sign would be that the Senior Engineer shows interest in technical leadership and wider technical impact. If they are seeking promotion without showing interest the engineer might be much better off to keep improving/staying as a Senior Engineer.
Business impact over codebase impact
At a high level I think the change in expectations can be expressed as a stronger focus on business impact over codebase impact. Roughly, the Senior Engineer implements a new feature for teams to use and tell them through slack before continuing with other work. But the Staff Engineer will make sure that the functionality is getting used and making the teams more successful. Basically a much greater focus on outcome instead of output.
Technical skills are still essential but apart from the Solver archetype it will not be enough to reach the expected impact. The lever that enables the expected impact requires a whole lot of soft skills, i.e. ability to gain impact through others.
Expectations
I have come to realize that I think there are two sets of expectations that any engineer aspiring for Staff Engineer level should consider. There’s the expectations on what it will be like to work as a Staff Engineer and if you will enjoy it. And then there’s all the expectations from the organization before they are ready to promote you.
Expectations when being a Staff Engineer
Here’s a short list of what you can expect to be doing or experiencing as a Staff Engineer. I think it could be used as a starting point for anyone interested in the Staff+ levels. If you're still interested after reading this list I suggest picking up one of the books mentioned in resources.
You own and continuously realign your job description
You probably are involved in more than one initiative at the time. Some big, some small.
Prioritize your time and avoid snacking
Problems are ambiguous in nature and it’s your job to bring clarity
Effectively network to build organizational context
Coach and mentor engineers towards increased productivity/effectiveness
Imposter syndrome only gets worse
Might write code but most often avoiding the critical path and seldom will it be the highest impact action that you can take.
You are a leader and a role model
Expectations for becoming a Staff Engineer
As a Senior Engineer you will need to prove to leaders in your organization that you are capable of delivering the expected impact. That is what will finally decide if you get the promotion, trying to check boxes on a career framework will not get you there.
A way to show that you can deliver expected impact could be to have shown:
Proven tech lead with sole technical responsibility for a team
Ability to implement change that is not technical in nature. For example, successfully change how a team works with bugs
Through a “staff project” shown that they have the required technical leadership skill. In most cases, showing ability to use soft skills together with technical knowledge to reach business impact.
Resources
Five Behaviours of Successful Staff Plus Engineers
Transitioning into the Staff+ Engineer Role - from Player to Coach
Senior Engineer to Staff Engineer
Staff Engineer: Leadership beyond the management track by Will Larson (Book)
The Staff Engineer's Path by Tanya Reilly (Book)