Stories of reaching Staff-plus engineering roles
staffeng.com
staffeng.com
Staff promotions are of course given to some people with a good mastery of soft leadership skills, technical thought leadership and related qualities.
They are also given out for a number of other reasons. For example, when someone is perceived as a flight risk, because it makes their manager look good to promote their team, because someone has been given a lot of responsibility, whether or not they're good at handling it, because it's good for team morale to show that promotion is achievable, or because it can make a headache go away for the manager.
These reasons are all perfectly valid. But let's not overdo the Jedi-like "staff-plus" engineer trope.
At one big tech company I worked at, it was never mentioned even once for years and years, and then introduced very suddenly. All existing engineers were grouped into staff versus non-staff based on their existing level, and from then on it was used for recruiting purposes — a superior title to sweeten the offer pot for experienced engineers in a competitive talent market.
I'm personally familiar with some of the people being interviewed on this list and they're fine engineers, but certainly no better than many non-staff engineers at their same companies. And to imply that they're some kind of rare, exotic special species that's totally apart from their non-staff counterparts is in total honesty, just weird.
Nearest I can tell, the term "staff engineer" was an unusual one in use at certain shops, and was popularized big time around 2020. I've kept every recruiter email I've ever gotten since 2018. Prior to 2020, the term "staff" was mentioned in exactly two of them. Starting around Feb 2020, it's now mentioned in 20+ emails a year. Before it, we just used other terms like "principal" instead.
Another related concept is that there really isn’t much written on the subject of “what should I focus on improving” for senior engineers. In a big org you can look to the engineers at the next rung for role models, but at smaller companies there might not be many staff plus, and so the diversity of types of roles may not be clear.
All this is to say that I think this advice is more useful to senior engineers at smaller companies, than it is for those at a similar stage in their career at extremely large companies.
That looks about right. It came along with the increases in hiring and compensation in parts of the industry, the resulting employee's market, the resulting desire to show a long technical career ladder with many more steps than we used to have, and the resulting devaluation of the "senior" title that was once a big deal. For employers to show how much they value the more capable people who used to be "senior" and can take on roles like technical leadership or cross-team architecture, the employers have now adopted titles like staff, senior staff, principal, fellow, etc.
Naturally those positions attract interest for the same reason that "senior" used to. It's the level where a person typically becomes self-sufficient and able to work on more demanding initiatives under only broad direction. It's also the level where those with an interest in technical leadership become capable enough to run larger teams or groups effectively and probably limit their personal technical contributions to more strategic activities or surgical interventions.
I'm not sure how much has really changed apart from the titles, though. There has always been a qualitative shift in emphasis around that level of experience and ability for developers, whatever we choose to call it. And the responsibility and authority you have in your role, often reflected in compensation and how colleagues relate to you, has always said more about your real seniority than any formal job title.
I've never been promoted, nor have I ever promoted anyone to "staff plus" because of warrior-monk like engineering skills. Most often it is a combination of good soft skills and proven decision making around people and organization objectives. Usually it is because the person being promoted had the ability to make the business unit better in some way that is needed. And yes, that does mean that every promotion is really done to make the person a step above the newly promoted person even more effective.
> It’s just another regular step on the ladder you make by doing a reasonably good job
This is the secret. A reasonably good job means you are learning not just how to make software, but also how to lead others that are making software. There's nothing mythic about it. But for many it requires going outside of the comfort of the purely technical.
Big tech company is a huge group that has widely different cultures. Based on these reasons you listed, you likely didn't work at a FAANG or similar company (Uber, Doordash, Lyft, Airbnb...etc). The reasons you listed are responsible for 0% of Staff promotions at these companies (except the "given a lot of responsibility they're not good at handing" reason you gave, assuming the person is taking credit for other people).
I agree that all of your reasons are valid for Senior and lower promotions, but these companies take Staff+ to another level by using a completely different promotion process beyond Senior level (even L5B or Senior II at Uber uses the more strict process).
The reason you see the "Jedi-like" trope is because the strict bar set for Staff plus promotions at these companies. To be fair this Jedi trope is created by the perception of other engineers because of the difficulty of achieving these levels and not knowing what it takes to do it. Career advice including this StaffEng book actually lessen the trope because it makes it clear how you can get these roles and removes all the mystique around the unknown.
The root cause for promotions occurring for the reasons you listed are due to promotion decisions being owned by just the manager or only a single chain of command (manger's manager, director..etc). This is how Senior and lower promotions also work at these FAANG+ companies. To get rid of that bias and gaming, all Staff plus promotions go through a promotion committee, and your manager has no power aside from submitting your promo packet to the committee.
No matter how bad the manager or his director of even Senior director wants to keep the employee or look good, they have no say in the promotion decision. There is a calibration process that ranks all engineers submitted to the committee against each other and only approves a small % at the top rank. Someone who got Staff promo this year might not have next year depending on the competition.
None of this is to say that the process is perfect or removes all bias. But the process is very strict and the promo comitte vigorously applies the rubric which is why you see all of this advice to exhibit skills typical on these rubrics.
I do work at a FAANG company. I'm very much familiar with the promo process, as an individual, as a manager and as a peer reviewer.
Managers cannot unilaterally promote a report, but they have an influential role in helping shape the packet, in getting the right reviews from sufficiently senior employees and in trailing performance reviews. The managers also read the ladder description, not just the committees, and make sure the packets contain "evidence" of all the key points. Nothing broken here, just rigmarole that people on all sides need to follow.
You can choose to believe that the committees can do a good job of ranking applicants, but a large part of this is down to how good the packet itself is.
I should state that nothing is wrong here in my opinion. There's no managerial conspiracy or role inflation. My point is that being a Jedi-like "Staff-plus" engineer is not at all necessary to reach the level.
I think the promo comittees do a significantly better job than relying on managers alone, but they definitely have bias. Not perfect, or even good but still way better because there's less incentive to game the system.
I agree that Staff-plus isn't Jedi-like and there is a trope about that. I assumed your criticism there was about the StaffEng book which doesn't promote that trope, instead it gives a practical guide on what it usually takes to get that promo.
Other companies use “Member of Technical Staff” as a generic job description in place of “Software Engineer”, “IT Analyst”, etc. Then the promotion ranks are called “MTS 1”, “MTS 2”, etc.
Junior engineer:
Take this tightly defined feature & build it
Mid-level engineer:
Take this vaguely defined feature & build it
Senior engineer:
Take this known problem & figure out how to solve it
Staff engineer:
Take this goal & find the problems we should be solving Senior staff engineer:
Define what good goals entail
Distinguished engineer:
Please don’t work for our competitorsDo what you want
Yes, it's true that your title is not your role, and your role is not your job, and your job is not your professional identity. But your title is part of your professional identity, and it's the best shorthand to communicate your status with future employers, or even just with a colleague in a distant branch of your company.
Our profession is young, so it's still in the early phases of defining itself. I'm sure other professions have title bloat too. You still need to play the game, even if you don't like the rules.
Sometimes. I don't even use my actual title. (Mostly because I don't really do what my title says I do so I use something more generic.)
Often titles are a reflection of who’s been at the company the longest or who toots their own horn the most. I have no faith in titles, they’re mostly meaningless.
There's a flip side to consider, though. I've seen brilliant people waste years of their energy and talent on technology ideas that go nowhere due to a lack of ability to ship to a community and gain mindshare among relevant technologists. Folks should dismiss vanity and puffery, but broadcasting opportunities and successes (and interesting challenges that need solutions, even) is undervalued among certain engineers. And it's a critical part of "shipping" for certain kinds of projects.
[*] Consistency is a great goal, but is clearer getting harder and harder to achieve as the company is getting bigger and more diverse in terms of product areas, engineering and other skills etc.
I expect the problem is most severe at mid-sized companies that don't have highly-technical business problems to solve. I think the root cause looks something like this:
- A long chain of relatively non-technical managers exists in the engineering org.
- Promotions, especially to staff, become very political, ie the decision-makers likely haven't worked directly with the candidates for promotions.
- The criteria for promotion to staff effectively becomes whether they contribute to highly-visible, high-level engineering efforts
- If the domain doesn't require them, these highly-visible efforts are likely either lateral shifts or actively unhelpful. The company probably doesn't need to be reinventing the wheel with some staff IC's pet project, especially if the mid-level IC's know what they're doing and can keep the lights on.
- The best engineers eventually leave for greener pastures. Of the engineers that stick around, the ones most likely to get promoted are the ones who are the most enthusiastic about designing (or just talking about) systems that no one wants or needs
Not biasing towards loud people is difficult, but at least at Google, the process is pretty harshly designed to avoid it. The criteria for promotion is clear. The people deciding on it are considering many different promotions at once, so they have a decent sample to look at. The people with incentive to promote don't get to make the decision or they play only a small role in it. There is a strong demand to see evidence that the person's work fits the job ladder description that they are trying to promote to, etc.
It's a lot of overhead and everyone hates it, but it seems to be pretty robust at avoiding arbitrary promotion.
As an aside, I’m really liking the team at my new role as well as the increased breadth of the role to start with.
On management change, you need to re-assert your value, it shouldn't be super difficult, but sometimes it's easier to just leave.
There are so many great tips in this book ranging from leading without role power, daily tactics to drive results, and even when you should make a push for the title whether that is staying or leaving.
The stories are okay and are half the book, but no single story of getting the promo is similar enough. It does help you realize you may not need a “SNAP” project to obtain an prestigious position.
If the book had another hundred pages of being more efficient and strategic, I think it would be a better read. Stories in most tech books are not very helpful at least to me. I find them hard to relate to, but every once in a while a story will match my situation and help me grow.
It’s work that isn’t meaningful, but has leadership buy in and visibility.
https://killedbymicrosoft.info/
The other side is internal initiatives that become priority number 1 for a team and then die over the next year or so.
But am I the only one disappointed that as a book it's only available in paperback? The hardback of "An Elegant Puzzle" is _beautiful_ in both binding and print quality, it wouldn't be a hard decision to spend extra for this one.
Sometimes the work and the title do not match, if the company or department is uninterested in rewarding people with fancier titles. But I knew another org far removed from ours where the manager was a senior director and all of his (half dozen) team had the top programmer titles, yet did not do anything different than we did, and none of it was revenue related.
At small companies, where basically everything is arbitrary, sample sizes are small and there's not enough data to be data driven, titles are perceived as mostly meaningless.
At large companies that do a good job of standardizing how promotion works and what is required to get it, titles are not perceived to be meaningless.
Being at the Senior engineer level now, I find this resource a nice counterbalance against the abundance of existing material aimed at engineering management and the vast ocean of material for Junior engineers.
Really, it is only 2 different ways to contribute to a product and engage in a team. If you can be good at both, why force a career-long choice?
Tech leads are influencers, we focus a lot more on technology and growth of the team in a different way. You forgo all the messy (boring for me) details of project management, and focus more on the technology and getting the right people to move projects forward, but this requires persuasion. There's not one way to do this job, you have to find your own. The hardest part is probably that of picking the right thing to delegate, to maximize growth and project success.
There's some overlap with managers especially as you climb the ladder and your focus is more strategic than tactical.
[0] https://medium.com/@gokulrajaram/the-one-thing-ceos-should-d...
As a technical leader, you don't have direct reports (if you have, you're a manager) and your job is one of leadership through influence rather than formal power (you're -in a sense- an "influencer").
You sell ideas, you nudge people in the right direction, you mentor and help others grow and you help people think clearly and relax in difficult technical situations.
The higher you get on the ladder, the more strategic your work becomes. You look farther in the future, projects take years to crystallize, you build blocks that buy us something now, but work as a stepping stone for a larger goal in the future.
With this type of leadership, comes a surprise to many tech-minded types: your work becomes a lot more about emotions than technology.
You need to project calm, help people think things out. Guide them without giving them the solution so they can grow. Help them through crises and so on.
This applies even to managers above you in the hierarchy. The relationship becomes different, you're no longer a subordinate, you're now a peer (even if the org chart says otherwise).
As you may imagine, it takes a while to get there from just a strong technical background.
Companies are becoming programmable - machines that are slow AI and slowly speeding up that AI and that needs control via code. And the coders build that.
So my theory is that each release of code is effectively a new company (machine). And that the people we call software engineers are writing the rules for those companies - but the non coding managers are not going to let go without a fight.
Staff engineering roles are the front line for this battle. If it's all influence and social respect (like say Linus) then the future of empire building managers is shaky.
The only people I know who got stuck at Senior as they got older were the ones who let themselves get to the point where all they wanted to do was pull a paycheck until they could retire. They stopped giving a fsck when they saw stupid sh-t happening around them and just let it happen.
1. The opportunity to have meaningful impact 2. Important, fulfilling work 3. Recognition of value (including good comp but not just that)
etc
and honestly, even respect one gathers
Once "it's about the internal politics of the organisation" rules it's time to tear down the organisation.
- Have you worked on highly-visible, high-level, cross-org projects?
Are these efforts really needed? Should your organization be reinventing the wheel? I've seen staff IC's get unreasonably attached to their own pet projects and keep pushing them despite universally negative feedback from the engineers that would be affected. The right level of high-level abstraction should come from the actual requirements of the business, not artificially pumped up by engineers because it's required to get promoted.
- Do you mentor other engineers?
Do the engineers on your team actually need mentoring? Most of the people on my current team are not senior (IC2) and the best group of engineers I've ever worked with. We all have 5-10 years of experience. But the IC4 recently assigned to our team feels the need to give use engineering 101 lectures on every single topic, and it's been extremely frustrating.
- Have you led projects?
This one makes sense I know. But it's also often just a proxy for your time at the company if you need to patiently wait your turn to wear the tech lead hat. Glacial promotion opportunities often lead to the best engineers leaving
Mentoring is complex. It's not giving lectures (although, sometimes it may help). It's usually more subtle and is typically related to delegation: pick the correct thing to delegate, choose wisely what to do yourself. The trick is to maximize learning and accomplishment of more junior engineers while at the same time not risking team/company objectives. Besides that, providing emotional support and guidance in a way that most managers cannot. You walked the walk, so you help them think on how improve and get where they want to get (even sometimes help figure out what they want).
Leadership can also be subtle. Managers tend to equate it with project management (i.e. scrum/whatever, task assignment). On a tech ladder role, leadership is much more about influence than actually telling people what to do. You nudge them in the right direction so the goals are met and they grow (see: mentoring).
The best tech leads (staff+ or whatever), get shit done in a way that's sometimes non-obvious, until you miss them. Which makes promotion hard.