Introduction to the role of Staff Engineer
The landing page for your curious neighbor
Where I stand, there is so much written about the role of Staff Engineer. So why another post?
This one is going to be an entry level post with lots of pointers to other resources. Think of it as a landing page for your curious neighbor! 😊
More realistically, however, you may find clarity here because ambiguity is part of the role definition:
“Staff is more of an attitude than a role” — as a former Google Staff Engineer puts it
There even are books written on the topic:
2 years ago, I was the first Staff Engineer to start at a company going through digital transformation. The folks who hired me came from Google and Spotify where this role is well-established, and I had worked at Staff capacity for years prior.
That didn’t stop funny encounters like this:
— “Where can I find the other Staff Engineers?”, I asked during my onboarding.
— “Oh, we have tens of thousands of staff, and many of them are engineers”, someone answered without missing a beat
As the Senior flavor of the role I also had a hand in shaping our Staff requirement process. I also mentored a few great senior engineers on their way to becoming Staff. I felt obliged to clarify this role, especially the expectations. Internally I published multiple write ups and created a dedicated Slack channel for #staff-eng-role
. Externally, I have published multiple articles about technical leadership.
That right there is the first cue!
Staff Engineer is a technical leadership position.
But why do we need a new title then? What does it mean in the context of an engineering organization? For that we have to look at where the word “Staff” comes from.
Where does the word “Staff” come from?
The term “staff” is used in the military to promote great soldiers as role models without giving them extra command and control responsibilities.
Staff officers assist the commanders in planning, analysis, and information gathering. The commanders have authority and accountability over their subordinates. Staff officers don’t. —Beyond Staff Engineer
Let’s use a simple model for a typical engineering organization:
Engineers build a technical solution (e.g. a microsoervice, API, frontend, app)
The tech solves a product problem (e.g. an App for booking a cab)
The Product Manager (PM) impacts the product. The Engineering Manager (EM) impacts the engineers. Staff Engineers impact tech, but tech doesn’t talk or listen. They have to go through both people and products to deliver their impact.
Why isn’t the Staff Engineer in the engineering team? That’s because the EM is supposed to be technical enough to cover both the engineers and tech in the team. Having a Staff Engineer in the team is an anti-pattern even though the Tech Lead is one archetype of Staff that operates in one team.
Inside autonomous teams, the engineers are expected to fully own the product and its technical aspects. Anything else is the sign of a broken ownership.
The real value of Staff Engineer comes from operating across the organization:
When do autonomous teams need alignment? Let’s look at some examples:
The app team wants a certain computation to be done server side whereas the API team believes it should be done client side
A new service is being created but there’s dispute about which technology to use, how it should interact with existing systems, what should be the functional and nonfunctional requirements (NFR), and which team should own it.
Two product teams want to implement the same feature but slightly differently in a way that doesn’t make sense for the company
Too much autonomy creates a fragmented tech landscape which makes it extremely hard for the platform team to support a “golden path”
In the absence of a tech strategy, the teams fall back to “keeping the lights on” without any clear path to significantly improve the product or technology
…
These are all problems that could use technical leadership. By leadership, I have a very specific meaning in mind.
Good leaders:
Are hand-on and practice follow me leadership instead of ordering people.
Have a vision that is larger than one person can deliver (due to time, depth, or scope).
Can unite people towards that vision and can bring the best out of the people (engineers in particular respond logic and depth of argument more than any title or rank)
Great leaders:
Can effectively work with people more skilled than them. They actively seek to be the dumbest person in the room and include a healthy dose of opposition to see their blind spots
Create new leaders (e.g. through delegation, coaching, mentorship, sponsorship)
Can efficiently scale their impact radius across a larger group over time (when the scope grows to hundreds of people, it calls for different toolset e.g. write ups, videos, etc.)
This description fits both Engineering Leaders and Staff Engineers on two different branches of modern engineering job ladders:
How can the impact of Staff Engineers compare with the Engineering Manager when the latter has a mandate over engineers?
It really shouldn’t come to rank and mandate.
Weak leaders pull their rank to the conversation. They may not even talk to people "below them".
Unfortunately, those are the most dangerous leaders because they'd do anything to protect their rank. Strip them from their rank and they're average (or below). They know that and that’s why they treat their rank as their life depends on it. The rank serves as a wall or facade between them and others. Plus, the pay is good! 🤑
Great leaders don’t pull ranks. They talk to everyone humbly because they know that for their vision to be realized, they depend on serving every single individual. They're the ones that if you don't know their rank, you'd still follow them because they are competent and genuine human beings.
So, if it’s not the rank, what is the difference between Staff Engineer and EM?
Depth: EMs spend a large part of their time in 1:1’s, coaching, planning, and administrative activities. Staff Engineers don’t have any of that. What are they expected to do with the extra time in their calendar? Get really deep in the technology to be able to lead the engineering organization to a better place
Scope: the true value of Staff Engineers comes from tackling large technical problems across a large organization. There are tricky discussions that need to be had that a higher rank and deeper understanding of the tech can unblock. However, the company can go really far by hiring technically competent engineering leaders, especially when the technology isn’t that sophisticated to call for a specialized technical leader.
Staff Engineer is an Engineer! Duh!
Staff Engineers are primarily engineers serving as a force multiplier for other engineers. Their true masters are the engineers on the leaf nodes of the organizational tree.
Ivory tower Staff Engineers are detached from the realities of day-to-day life of the very engineers they are supposed to empower. They spend most of their time in meetings with other leaders. Their perception of the tech comes from EM, PM, and other technical leads.
Who is closer to tech than engineers? And who can have an informed opinion about the tech without touching it?
Don't let the title build a wall against who you can meet. It's not "Staff vs Engineer"!
I operate across a large organization. Does that make me a Staff Engineer?
The scope of operation is one part of the equation. But that's not the only thing that defines the role of Staff Engineer. Some roles by nature require an IC (individual contributor) to interact with many teams. For example:
Application Security
Site Reliability Engineers
Platform Engineers
Integrations engineers (CDN, GraphQL, API gateway)
Tools engineers (eg. 3rd party tooling governance
Common components teams (identity, data, UI libs, etc.)
If everyone working at those roles was automatically considered a Staff Engineer:
The recruitment bar for those positions would be unnecessarily too high (Junior SRE would not exist!)
The Staff Engineer would lose its meaning (if everyone is a Staff, no one is Staff)
While the engineers operating at the team level are primarily concerned with tactical and short-term initiatives, Staff Engineers should connect tactical to strategic initiatives across a larger organizational scope.
To lead the organization, the Staff Engineers need to have a clear picture of where it needs to get to. Their concern is beyond one team (e.g. the platform team) and benefits the whole organization. Their definition of success is measure at the org level not at the team level.
Sometimes, the role of Staff Engineer is confused with architect. While architect is an archetype of Staff, being hands on is a requirement:
The Architect role tends to evolve in relatively large companies, companies with exceptionally complex or coupled codebases, and companies that are struggling to repay the technical debt they created in their initial sprint to product-market fit.
There is a toxic preconception that Architects design systems in isolation and then pass their designs to others to implement.
Influential architects dedicate their energy to maintaining an intimate understanding of the business' needs, their users' goals, and the relevant technical constraints.
They use that insight to identify and advocate for effective approaches within their area of focus and do it with organizational authority that they've earned by demonstrating consistently good judgment. —Will Larson,
Staff Engineers don’t have any mandate over people or products, yet their entire impact depends on both. In a future article I’ll discuss some of the tools I’ve picked up along the way to lead without a mandate.
Recap
Staff Engineer is a senior-level technical leadership focused on high-impact engineering projects and technical strategy over a longer time horizon.
Staff engineers possess deep expertise in their domain and are responsible for leading complex engineering initiatives, mentoring other engineers, setting technical standards, and ensuring the quality and scalability of the software architecture.
They often serve as a bridge between the engineering team and management, translating business objectives into technical solutions. Their responsibilities extend beyond coding to include architectural design, technology evaluation, and contributing to the broader technical vision of the company.
You can get far without a dedicated technical leader role, and that’s why many companies don’t need Staff Engineers at all, if they have done their recruitment right and don’t waste their engineering leader bandwidth with administrative work.
Further reading on the topic of Staff Engineering:
My monetization strategy is to give away most of content for free. However, these posts take anywhere from a few hours to days to draft, edit, illustrate, and publish. I pull these hours from my private time and weekends. You can support me by sparing a few bucks for a paid subscription. Right now, you can get 20% off via this link. If you don’t want to spend money, sharing it with a wider audience also helps. Thanks in advance.
This was a great read, Alex!
I'm transitioning out of my freelancing workstyle into a full-time role, and to be honest, that path after the Senior Engineer level was quite confusing. I've seen all these roles in different job postings, but it's not only that I didn't know enough about them; they can also mean slightly different things in other organizations. This post helped me clear up some of my confusion about the staff and EM roles. Thank you!
Great introduction/landing page on a topic that many people talk about but not many fully understand.
One small comment. In the article, you mention that having a Staff engineer on the team *is* an anti-pattern. My understanding is that it *can* be an antipattern, but there are also situations where the system owned by the team has a level of complexity - often platform services - that require Staff engineers permanently allocated to the team.
What's your thought on that?