

Discover more from Alex Ewerlöf Notes
Senior to Staff Engineer
What are the similarities and differences? What are the criteria for promotion? And some tools and techniques that come in handy.
I work as a Senior Staff Engineer. One of my most important missions is to help grow the next generation of leaders using a variety of tools.
One such tool is mentorship. Mentorship is a two-way street where I get to learn from the experience and questions of someone who has put their trust in me.
Below is an interesting Slack conversation I had with a Senior Engineer about the role of Staff Engineer, promotions, and required skills.
Notes:
The conversation is slightly edited to make it suitable for the public audience.
Our career ladder is roughly modelled after Circle CI but due to the size and shape of the organization, we have 2 levels for Engineer: Software Engineer I & II.
In this conversation, the mentee and mentor are level 4 and 6 respectively. Whereas in Circle CI ladder, they are levels 3 and 5 respectively.
Hard skills?
Senior Eng:
What are the skills I need to develop to get to the staff level?
Me:
Depends on what you mean by skill. Broadly speaking there are two groups of skills:
Hard skills: the programming languages, libraries, frame works, tools, etc.
Soft skills: influence, negotiation, coaching, leadership, etc.
If we only focus on hard skills, the difference between the Staff Engineer and the Senior Engineer is not as large as the difference between Junior Engineer and Senior Engineer:
That is because:
Due to other responsibilities, Staff Engineers have less focused time to learn hard skills.
The pace of learning hard skills slows down as you get deeper into the details.
But when you bring the soft skills into the picture, it starts to make more sense:
Staff Engineer is a leadership role. If Senior Engineer is measured by contributions in the code, the Staff Engineer is measured by their impact radius empowering other engineers to do their job.
Senior Eng:
How do you even measure skill level?
Me:
When it comes to knowledge work, it is very hard to measure skill in an objective manner.
If you hire someone to mow your lawn or lay tiles on the kitchen floor, you can measure output like the time it took to do the job or number of failures.
If you try to apply the same concept to measure software engineering skills, you’ll end up with a vanity metrics like number of lines of code, number of PRs, number of features shipped, etc.
and wrote an insightful post in response to McKinsey which promoted such vanity metrics.
Senior Eng:
Right, we should measure outcome instead of output.
Me:
Output is the stuff we produce; outcome is the impact of that stuff.
For example, if we assume that code is the output of a software engineer, the value it generates for the customer is the outcome.
The higher you go in the career ladder, the more you’re expected to represent the “interests of the business”: how the company makes money, what problems does it solve, and for whom.
Again, it is hard to measure that value. We could try to use money as a proxy metric for value. But it is very naïve to assume a 1:1 relationship between money earned and value generated. This misses many nuances about where Staff Engineers deliver their value.
From the 4 archetypes of Staff Engineer only 1 (Solver) primarily impacts the solution. The impact of the other 3 (Architect, Right Hand, Tech Lead) is primarily delivered through empowering and leading others.
Senior Eng:
Are you saying that Staff Engineers cannot be measured through their direct contribution to the code, but rather how many people they empower?
Me:
Not entirely. Staff Engineer is on the individual contributor (IC) career ladder. This means we don’t have any direct reports.
Unlike product managers, we don’t have any mandate over the product.
Unlike engineering manager, we don’t have any mandate over the engineers.
If you go on that line of thought, we merely have a mandate over the technical solutions.
The technical solution doesn’t live in a vacuum isolated from the problem that the product is solving.
The technical solution is often complex enough to require multiple engineers working together.
The impact of Staff Engineers depends on the things and people they have no mandate over! 😁
I call it “leadership the hard way”. One has to be really good at soft skills to be able to deliver an impact. Otherwise, you’re just carrying the title without fulfilling the expectations. Sometimes you may even get in the way of other people doing their job, instead of empowering them.
Learning Soft skills
Senior Eng:
How do I learn soft skills?
Me:
Unfortunately, this is not taught in most engineering schools. This is the type of skill that you pick up while working as an engineer with other people.
There are a couple of good books if you want to accelerate your learning:
Soft Skills: The Software Developer's Life Manual by John Sonmez
Staff Engineer: Leadership beyond the management track by Will Larson
Software Engineering - The Soft Parts by Addy Osmani
There’s probably more but as you know I am very picky about what I read and tend to focus on practice than theory. You can pick any of those books and end up in a good state. What is important is to use those techniques where you work and adjust your performance to the environment and situation.
Senior Eng:
How is the outcome of Staff Engineer different from a Senior Engineer?
Me:
It depends on the company, product, team topologies, and your own character. The role of staff is vague by definition. You fill a gap that senior engineers normally don’t. For example:
Interview and onboarding.
Mentorship, coaching, and sponsorship.
Acting as a trusted advisor for engineering leadership.
Solving tricky problems that span across multiple teams and technical solutions.
Time & Expectation Management
Senior Eng:
How do I find the time for all of that?
Me:
The downside of Staff Engineering that is rarely talked about is that you are going to spend less time in the IDE (integrated development environment) and more time collaborating with others.
Many Staff Engineers who I’ve met miss coding. Think about it: computers are logical, transparent, and predictable machines. Comparably, humans are much harder to work with. There are emotions, misunderstandings, stress, personal agenda, biases, unbased beliefs, etc. 😂
As a trained Software Engineer, you only have formal education for the computers, but your impact as a Staff Engineer depends on the human part!
It takes time to build trust and alignment with humans. Debugging a relationship is more complex than code.
Staff Engineers also have dotted reporting lines: leaders other than your direct line of report that you need to sync with to achieve an objective larger than your part of the organization.
Obviously, all of this may lead to being overwhelmed. You need to be good at negotiation and managing expectations to have a sustainable career as a Staff Engineer. Otherwise, you can easily end up overworked, exhausted, and burn out.
Senior Eng:
It is not easy to spend the time on soft skills when my performance is primarily judged based on hard skills. I will have more time for that if I am officially a staff engineer. How do I prepare for promotion?
Me:
Companies usually play it safe and expect you to already demonstrate the performance at a higher level before they make it official and promote you.
Sometimes you find it easier to change jobs than go through the whole promotion process.
Apart from that, there needs to be a need for a Staff Engineer in your org. And sometimes that vacancy is filled by you! 😯
Yes, you might be your own career’s worst enemy: as long as you are working in Staff capacity and are not noticed, there won’t be a need for the company to hire someone for that position. This has certainly been the case in my own career.
Senior Eng:
Can my manager help me in any way?
Me:
Apart from coaching and sponsorship, your manager has an outsized role in your promotion. Steve Huynh says you need a manager who:
Manages more than one team.
Has a history of promoting someone to staff level.
Is fully committed to promoting you.
This is not a universal law, however. You might have a single team manager and still be promoted. You might also have a manager that isn’t pushing for your promotion, but your contributions and impact is recognized by others who do push your promotion (remember the dotted reporting lines?).
Hard Skills
Senior Eng:
What about my technical skills? Do I need to improve them to get promoted? Can I slow down learning new technical skills after the promotion?
Me:
Staff Engineer is still an engineer!
You are expected to roll up your sleeves and code when needed.
Staff is on the IC career ladder. Think about your counterparts on the engineering management ladder: they spend more time conducting 1:1s, hiring, planning, team building, vacation approval, salary negotiations, approving time/expense reports, etc.
Staff Engineers don’t have direct reports, and this gives us more time. What are we supposed to do with that extra time? “Sharpen the axe”, as Stephen Covey calls it in 7 habits of highly effective people.
Your impact depends on having good technical knowledge AND leadership without mandate. Like all hard things in life, it’s about the balance.
The balance point depends on your interests, current position, and workload. In my case, I had to come up with a few hacks to minimize the load of meetings to get focused work done, for example.
🔴I also opened my TODO list to manage expectations among other thing. This paragraph will be replaced with a link to that article when it’s out.
Senior Eng:
Do I have to work extra hours to be good at both soft skills and hard skills? 🤨
Me:
You need to optimize your paid time to keep up with the technology while serving in leadership capacity.
Please don’t borrow from your private time to cope with the expectations at your job. That is not sustainable.
In 20 years, the only people who will remember you working hard are your kids. Don’t sacrifice their rights just to go up in the ladder.
If you find the balance between hard & soft skills tricky, you can aim for an engineering management (EM) position. There are a few EM archetypes that are not as demanding technically.
The main selling point for the staff role is technical leadership and one cannot focus on the “leadership” part without being “technical”.
Speaking of sacrificing private time, I’m definitely guilty of that. Right now, I’m sitting with the computer on a beautiful weekend to write this post. I believe it is important to help the software engineering community by sharing real-world experiences and I don’t believe pay-walling the content helps that mission. If you want to support this cause, I appreciate it. 🙏
Senior Eng:
But how much soft skill do you really need? In our team, we’re pretty mature and I’m not sure if there’s enough space to demonstrate soft skills more than anyone else.
Me:
That’s where the scope comes in. You’re right, not every team needs a dedicated Staff Engineer.
Where the staff role really shines value is when the scope of an initiative spans across multiple teams —especially the autonomous teams where there’s a risk of diverging from each other.
You can contribute to:
Prevent things from falling between the cracks (tactical)
Aligning those teams towards a long-term vision (strategic)
Senior Eng:
How do I demonstrate that without the title?
Me:
First of all, you don’t need the title to lead. Title makes it easier but is not a requirement.
You are a leader when you care about a vision larger than yourself and can coordinate others together to achieve that vision.
You can check your company ladder to see what exact treats they consider for leadership.
Don’t focus too much on the ladder, however. Most of them are broken. A better option is to take full responsibility of your career growth and look for opportunities to make an impact larger than yourself.
Look at the adjacent teams and see where things are falling between the crack? Listen to complaints and see which one you can reduce or eliminate.
That first step towards the Staff role can be to take responsibilities like release manager or team lead.
Anyone can complain but only a few are willing to take action and make a change.
If you observe and listen carefully, there are a ton of problems you can solve and pick up new skills along the way:
What are the problems that are Staff level, and their scopes are larger than one team?
How to frame the opportunities to attract other collaborators?
How can you negotiate with managers to motivate these collaborations?
How can you bring attention to a blind spot and add a good solution on the roadmap?
Staff Eng:
I need to think about the next step. You mentioned that you miss spending more time on code. What are the upsides of having the title?
Me:
Having the title certainly opens doors and gives you access to the room where high level decisions are made. The best way to predict the future is to build it. Having a say in where the product goes is a good way to have control over your faith.
You’ll act as the trusted advisor for leadership and get to influence the solutions at a large scale.
But be aware that going up the ladder implies higher expectations and is not for everyone.
Some people think that leadership is about control over others. At least in the Nordic countries (Sweden, Denmark, Norway, and Finland) it’s the reverse: you are supposed to serve other people. Being responsible for people is complex. That’s why many engineers choose to become Staff Engineers to expand their organizational scope without having to manage more people.
While having a career ladder with the option to pick between Staff Engineering and Engineering Management is a good development, I believe avoiding people responsibilities is the wrong motive to go to Staff Engineering. Because:
Staff Engineering is still a leadership position and leadership is about people. It hurts the company culture to put people with low soft skills in a position of power.
Like I said, Staff Engineering is “leadership the hard way”. If a person doesn’t get along with others, they’re in for a rough ride without mandates. I’d argue the more formal mandates of the EM role compensates for the higher demand of leadership skills that the Staff position requires. It’s definitely a controversial take, but at the end of the day people are more likely to take someone seriously when they know that their salary negotiation, vacation approval, promotion, etc. is on the line. It shouldn’t be like that, but this is what I’ve observed.
Update: after I shared this post with a Staff Engineer friend, he pointed out two important points that are missing from my dialogue above. Here you go:
Longer time horizon
Staff Engineers operate over longer time horizons.
If a junior engineer’s tasks are done in days and sprints and a senior engineer’s concerns span 1 months to a quarter, the Staff Engineer is usually involved in anticipating, preparing, and planning for 1-3 years into the future.
One could say that the Staff’s role is more strategic whereas the other roles are more tactical.
Disclaimer: these numbers are not prescriptive and there are certainly junior or senior engineers who also think long term, but this is my observation from teams I have worked with.
Previously I’ve written about the difference between strategy and tactics.
Larger organization scope
Staff Engineers usually serve multiple teams and cover a larger organizational scope.
This contrasts with senior and junior engineers who mainly operate within the scope of one team. There are exceptions for example most engineers in a platform team support multiple teams due to the nature of the team topology but that doesn’t mean that they are all doing Staff level work.
There are Staff Engineers who work within the borders of one team, but their full potential of the role is realized when they operate across multiple teams, break silos, and prevent things from falling between the cracks.
Hope you enjoyed this conversation. This article took about 4 hours to draft, edit and illustrate. If you learned something, I will be thankful for a paid subscription to motivate me share more posts. You get 20% off via this link. My monetization strategy is to primarily keep the content free and rely on donation to support the hours I pull from my private time for this newsletter. Thanks in advance for your support.
You can also share this article within your circles to increase its reach and impact in our community. 🙌