Becoming Staff Engineer
I prepared my thoughts about the Staff Engineer title in preparation for a podcast recording. These are my notes on the subject.
A lot depends on the company. Hiring a Staff Engineer or promoting someone to that level is answering a company's need for technical leadership. It often doesn’t make much sense under a specific size (say, less than 20 engineers). Start with the requirements and behavioral description of your current company.
Two key factors: impact * time. Impact on the people, the technology, and the product. Time in the industry and track record at the company.
Archetypes: Tech Lead, Architect, Solver, Right Hand. Two Staff Engineers can do very different things based on this specialization.
Impact
People impact and all related soft skills
More important in my experience than hard skills at this level. Lack in one of these areas can be a dealbreaker because the risk is too high for a company to compromise on a high-impact position like this. A Staff Engineer is a role model for a big group of engineers, they must display behavior that’s in line with company culture.
Main areas: Empathy; communication; pragmatic, efficient decision making; leadership, but also influencing without authority; being collaborative; ability to handle pressure; autonomy and proactivity.
Technological and product impact
All the hard technical skills are here — these are what most people think about when talking about a Staff Engineer role. Deep understanding of complex computer science concepts; algorithm theory; system architecture; etc. Being up-to-date on the latest developments of the tools and technologies used, or potentially interesting for the company. Conceptual-level understanding of a wide technical area.
Beyond hard technical skills, a Staff Engineer needs to understand all the aspects of the software development lifecycle and have a solid knowledge of areas only distantly related to their position. (For example, a Staff Engineer in web development should understand the architecture and main properties of the mobile product, and vice versa.)
Being this high on the Engineering career ladder requires a level of product thinking too. The person needs to be familiar with the product of the company, who their users are, and what problems the product is solving for them.
Time
It’s not just about tenure, it’s simple maths: there are so many aspects in software development that a minimum time (5-10 years) is necessary to reach deeper expertise. It’s true at the company level too: there’s a need to have a solid track record. Success has many components, a lot can be attributed to luck. Proof of repeatable, high-level personal achievements is necessary.
It can be frustrating for an ambitious Senior Engineer to hear that they are checking all the requirements for the Staff level, but they haven’t spent enough time on the Senior level yet. The frustration comes from the apparent lack of means to impact these criteria, but this is not always the case. Of course, time cannot be sped up, but if the requirement is reframed as “track record”, then there are more opportunities. Strong and proactive support from the manager helps, in finding challenges the person could take upon, but if everything is aligned, repeated success in key areas can propel someone to a Staff promotion in a short time.
Jumping titles and companies
While it might be tempting to get hired for a Staff level with extensive Senior Engineering experience, and in a better job market and good interviewing skills, it’s doable. However, the bar in this case will be much higher, because the person needs to build trust, prove themselves, get familiar with a new product, tech stack, and culture, and quickly provide technological value, all at the same time. Highly stressful, big risk of impostor syndrome and burnout.
Resources
- Will Larson’s Staff Engineer book and website;
- Requirements of the Staff Engineer role: 30+ Engineering Career Ladders / progression.fyi
- Engineering Ladders framework, I liked the approach of this chart to capture where someone is currently and track their progress in time:
I write about Engineering Leadership topics similar to this one. Sign up here to receive my future articles by email.
Update: We've discussed this article with Jeremy on our weekly podcast The Retrospective, adding thoughts on the topic. Check out the episode here, the segment discussing Staff Engineers starts around the 35th minute.