How I got promoted to staff engineer twice
At the beginning of 2021, Zendesk promoted me to staff software engineer. At the end of 2021 I switched jobs from Zendesk to GitHub. In early 2023, GitHub promoted me to staff software engineer. Successfully going through the staff promotion process twice in two years was a pretty interesting experience, and I think it puts me in a good spot to talk about making the jump from senior to staff1.
If you’re just looking to get the staff role, it’s almost always easier to get hired into it than promoted to it. Senior is typically considered a “terminal level” in tech: once you hit it, nobody will think you’re weak for not seeking a further promotion to staff. Internal promotions to staff are less common. If you do want to get promoted, what does it take?
First, we need to understand why senior-to-staff promotions happen in tech companies. They happen for two reasons:
- Company leadership (i.e. your skip-level or above) think a particular engineer is valuable and may leave if not promoted to staff.
- Company leadership want a particular engineer to lead specific cross-org projects that will run smoother if they’ve got the staff role.
Promotions do not happen because a particular engineer is really technically strong and ready for the next level. They do not happen because an engineer has been mentoring a lot and is ticking the boxes on the engineering ladder description. They are a tool for retaining or for empowering valued engineers. So to be promoted to staff, you must be known and valued by your organization.
How can you become valued by your organization?
Every company values engineers who ship (i.e., who successfully execute on the company’s plans and goals). The straightforward recipe for this is to successfully lead small projects, which will build a reputation for you to be assigned and deliver on larger projects, and so on until you’re trusted with high-impact work. This means working on things the company prioritizes. If your company has recently pivoted to the enterprise market, you need to be working on enterprise projects. If your company has recently had a slew of embarrassing incidents, you need to be working on availability.
You are very unlikely to be promoted to staff engineer for working on issues the company does not currently care about, even if you strongly believe they’re important. I’ve heard lots of stories (both in real life and online) of engineers who are simultaneously frustrated that the company didn’t seem to care about the amazing performance/refactoring/etc work they were doing, and frustrated that they weren’t getting promoted. Those two things are related! You are free to disregard the company flavor of the month if you want, but it will materially hurt your chances of getting the staff engineer nod.
As a staff software engineer, you will be judged by success and failure, not by effort. That’s how senior company managers have always been judged, so they are unlikely to be sympathetic about it. (Incidentally, senior engineers are also judged like this, but many don’t know it.) That means that your projects have to succeed. If you’re technically weak, it’s probably a dealbreaker: projects almost never succeed unless someone bends their will to making it happen. If you want the staff promotion, that person has to be you.
What about mentoring, leadership, and so on?
Everyone will tell you that the staff role involves more leadership and mentoring, and less hands-on engineering work. This is broadly true, because the higher you go in an organization the more time you spend coordinating instead of writing code. But in my experience, you do not get to staff by being a great mentor or leader. You get to staff by delivering value for the company.
One caveat: sometimes a good way to deliver value for the company is by mentoring and leading. When I went up to staff at GitHub, it helped that I had been the kernel of a small APAC-based engineering team, because the company was trying to grow engineers. However, delivering value the traditional way - by shipping projects - is not optional. If all I had been doing was interviewing, onboarding and mentoring I do not believe I would have been promoted.
Can you get promoted to staff anywhere?
No, you cannot! Staff promotions only happen at a company that has staff roles, and that has the budget to promote people. If your company doesn’t have staff roles, you’re probably better off switching companies than trying to convince them to open one up just for you.
You can’t get promoted to staff without your manager doing a lot of work: writing the promo packet with you, figuring out for you what senior leaders are looking for, schmoozing senior leaders ahead of time so they know your name, and making sure you’re assigned lead to key projects. That means your manager has to be switched on and fully on board. If your manager is incompetent, or doesn’t like you, or doesn’t think you’re ready for the staff role, you should switch teams or companies before spending six months campaigning for the promotion.
Note that if you’re good and your manager’s smart, they should want to promote you. Having more senior direct reports looks better for them, your success reflects positively on their leadership, and promoting you to staff empowers you to continue making them look good to their bosses.
You also need your skip-level manager to be onside (since it’ll likely be their or their boss’s ultimate call), and a good reputation with the existing staff engineers at your company (since for staff promotions the management team almost always quietly asks engineers they trust about you). If you’ve burnt either of those bridges, don’t expect a promotion until that changes.
Summary
- It’s probably easier to go get hired in as staff somewhere else
- Staff promotions require you to toe the company line more
- You need to have shipped projects that the company cares about - don’t spend time on your pet projects instead!
- Don’t worry too much about mentoring and leading, as long as you’re leading projects successfully
- You need a manager who’s willing and able to do a bunch of work. Don’t invest time in the promo packet until that’s true
-
Every company does things differently. I’m speaking from my own experience - I’m sure other staff engineers have had different roads to promotion. But I’m willing to bet this rings true for most staff engineers and the managers who promote them.
↩