Estimated reading time: 8 minutes
A staff engineer is a senior individual contributor who uses their technical skills to solve big-picture problems across teams.
If you’re a developer ready to advance beyond the senior engineer level, you have two paths in front of you. One is the management track. The other track is somewhat less defined but often referred to as technical leadership. Here, you’ll remain an individual contributor, using your skills as needed across the company to solve big-picture problems. Staff engineer is the usual job title for the first position on this track.
A staff engineer will still get their hands dirty writing code, but they’ll spend more time thinking about the business impact of their code and the code written by the teams they work with. They perform a lot of non-glamorous but crucial “glue” roles, coordinating between teams and gathering requirements on big projects. They usually have a good deal of day-to-day autonomy, meaning that a staff engineer must be self-motivated to discover where and when their help is needed most.
What is a staff engineer?
A staff engineer has a leadership role on the technical side of an organization but does not have direct reports. The “staff” in staff engineer is borrowed from military terminology: a soldier is promoted to staff in order to assist a commanding officer by taking on planning and analysis duties. The commander has authority over subordinates, while the staff officers strictly speaking do not, though they “borrow” the prestige and authority of their commander when performing duties on their commander’s behalf.
A staff engineer will help coordinate things for their engineer managers and also work across teams, often keeping up with the technical details of projects in ways that their managers don’t have the time for.
Before we dive into the nitty-gritty of a staff engineer’s job, you’ll sometimes hear the term “staff+” or “staff+ engineer” used. This refers not just to staff engineering jobs proper, but also to roles higher up the ladder on the technical leadership track, including senior staff engineers, principal engineers, and in some organizations, architects. However, our focus will be on the staff engineer role specifically, rather than the track as a whole.
What does a staff engineer do? Roles, responsibilities, and key skills
One of the key roles that staff engineers play is to provide an engineering perspective at higher-level meetings where large projects are being planned. In this role, they form a bridge between the developers toiling away on the code and the project managers trying to figure out how to use that code to further the goals of the organization.
To be effective, staff engineers must be conversant with the tech and business sides of the equation. The staff engineer may attend these meetings as the “right hand” of the engineering manager of the department. Where the engineering manager will speak for their people, explaining what they can and can’t do in the time allotted, the staff engineer speaks for the tech. They provide engineering context and perspective that helps organizations understand what their technology stack is (and isn’t) capable of.
Because of their intimate knowledge of their organization’s codebase or technology infrastructure, staff engineers often resolve disputes on technical strategy and set technical direction over the medium and long term.
For instance, a company’s app and API teams might not agree on whether core functionality should run on the client or server side. Whether settling a client versus server functionality debate, mediating two teams implementing features in different and incompatible ways, or settling disputes about a new service on the product roadmap, staff engineers use their technical background to help drive consensus.
From this description, it should be clear that staff engineers need technical and people skills. The technical background is table stakes: you’ll need to be well-versed in the technology used by your organization, and moreover, you need to know what you don’t know and learn quickly if the company pivots.
You’ll need a good understanding of your organization’s business incentives to better advocate for the right technology applied in a way that furthers those goals. You’ll need the initiative and the organizational savvy to seek out potential problems to solve within the organization rather than waiting for them to come to you. And you’ll need the people skills to bring groups together, align them to your views, and convince them to compromise or collaborate – all by persuasion since, as an individual contributor, you won’t actually be anybody’s boss. In her No Idea Blog, Tanya Reilly calls these duties “glue work,” unglamorous but necessary to holding an organization together.
Will you still be writing code? Yes, sometimes in the course of these duties that will make sense, but coding will no longer be your primary responsibility.
Different types of staff engineers
Each staff engineer, then, will have the nature of their job determined by the nature of their organization. However, certain broad categories define different types of staff engineer jobs. Will Larson, who wrote Staff Engineer: Leadership beyond the management track, breaks these down into what he calls archetypes:
- The tech lead focuses their technical leadership efforts on a specific team, or group of related teams, within the organization. In doing so, they’ll coordinate with the relevant product managers and participate in cross-team discussions. This may be the first place where a newly promoted staff engineer lands, perhaps on the team where they were previously a developer. In fact, some developers may over time find themselves saddled with the responsibilities of a staff engineer in a tech lead role without receiving a formal promotion or bump in pay; keep an eye out for this kind of drift and be ready to advocate for yourself.
- The solver dedicates their energy toward specific complex engineering problems, tackling everything from the overall approach to the nitty gritty of polling. This archetype has less of an organizational role than the others; instead, the solver is dedicated to problems the organization has already decided to prioritize, and can use the authority this grants them to pull in the resources they need to fix the issue. Once the issue is resolved, they will move on to their next task.
- The right hand usually operates in larger companies, serving as a sort of chief of staff for the manager of a department. The right hand may attend meetings in their principal’s stead, make decisions, and delegate tasks on behalf of their boss’s priorities, adding a specific technical expertise that their boss may lack.
More like this
How to become a staff engineer
Because a promotion to staff engineer is the first step up into the technical leadership track, it can be a big hurdle – and getting there doesn’t necessarily come with a road map.
One of the best ways to prove yourself is to begin taking on some aspects of the role in your current job. Volunteer to help coordinate with other groups or departments on big projects. Demonstrate that you understand how your work aligns with the overall goals of your organization, and advocate for those goals as part of your current internal processes. And, of course, you need to demonstrate a high level of technical talent and the ability to learn and keep up with industry changes.
If you’re seeking an internal promotion, this will help you make your case to your management team. If you’re looking outside your company for other staff engineer jobs, you’ll need to weave a narrative of how your experience prepared you for the role, so be sure to document what you’ve done and why you’re ready.
If you’re preparing to make this move, we highly recommend browsing through the “Stories” section of Will Larson’s website. You can read a number of essays from staff and staff+ engineers talking about what they do and how they got there.
Staff engineer salary expectations
Staff engineer salaries vary widely by company and geographic region, though their compensation is usually pretty good as a senior-level position. Pulling from some publicly available sources, here’s what you can expect in terms of pay as of this writing:
- According to Glassdoor, in the United States, the average compensation for a staff engineer is around US$202,000, with around US$146,000 of that being base salary and the rest additional pay in the form of bonuses, stock grants, and so on. That average is part of a typical range that can go from US$160,000 on the lower end to US$261,000 on the high end.
- In the United Kingdom, compensation is lower, according to Glassdoor: the median pay is around £88,000, in a band that ranges from £64,000 to £127,000.
- That’s not too far off from what you’d make in Germany: Glassdoor pegs the average there at €101,000, with an expected band ranging from €87,000 to €117,000.
- If you’re looking for a staff engineer role, the average pay in Australia for this role is A$191,000, according to Glassdoor. That can dip as low as A$172,000 and go up to A$210,000.
- If you’re interested in a staff engineer job in India‘s burgeoning tech industry, Glassdoor says you can expect an average pay of around ₹3,300,000, but that’s part of a wide typical range that can run from ₹2,700,000 to ₹4,500,000.
A staff engineer job represents the beginning of a technical leadership phase in your career, and that means it can be rewarding both monetarily and in job satisfaction. Good luck in making this move!