"Exceeds Expectations" Doesn't Mean "Ready for Promotion"
March 13, 2026
You hit “Exceeds Expectations” on your review. Your manager told you the work was great. You’ve been a top performer for two consecutive cycles.
Then you find out you’re not getting promoted to Staff.
This happens constantly. I saw it at Facebook for years. Engineers who were genuinely excellent at their jobs, who had the reviews to prove it, who couldn’t understand why the promotion wasn’t coming. And in almost every case, the reason wasn’t what they thought it was.
“Exceeds Expectations” tells you how well you’re doing the job you were hired to do. It says almost nothing about whether you’re ready for the job above it.
Those are two different questions.
The Performance Trap
Performance reviews evaluate your output within a defined scope. Did you ship reliably? Did you do good technical work? Did you help your teammates? Great. Exceeds Expectations.
Promotion decisions evaluate something different: can you operate at the next level? Not “are you excellent at your current level” but “have you already demonstrated you can handle what the next level actually requires?”
The distinction matters because the Staff Engineer role isn’t just a bigger version of Senior. The scope changes fundamentally. At Senior, you own components. At Staff, you’re expected to define technical direction across systems and teams, often without anyone asking you to. You’re identifying problems that others haven’t framed yet. You’re making decisions that affect engineers you’ve never talked to.
Hitting Exceeds Expectations at Senior means you’re very good at being Senior. It doesn’t mean you’ve operated at Staff.
At Facebook, we had a saying in calibration sessions: “performing at level” means what you’d expect from someone at that level. “Ready for promotion” means you’ve already been working above it, consistently, for long enough that promoting you feels like catching up to reality - not a bet on potential.
What Actually Gets Reviewed in a Promotion Decision
When a Staff promotion goes to the calibration committee at Facebook, the question on the table is specific: where is this engineer operating?
A few things get scrutinized closely.
Scope of impact. Are their contributions affecting one team or several? Is their technical work shaping how the broader org thinks about a problem? “Exceeds Expectations” bullets that are all within one team’s domain are a signal that the engineer is excellent at Senior, not that they’re operating at Staff.
Who’s asking for them. At Staff, other teams seek you out. They want your opinion on architectural decisions. They bring you in when things are hard. If that’s not happening yet, the calibration committee will notice. The question they’re implicitly asking: does the broader engineering community already treat this person as Staff?
Problems identified vs. problems assigned. Senior engineers solve hard problems well. Staff engineers find the problems worth solving. In every strong Staff promo packet I reviewed at Facebook, there was evidence of the engineer surfacing something that wasn’t on anyone’s roadmap - an architectural risk, a scaling bottleneck, a cross-team dependency that was going to cause trouble - and driving it to resolution.
Judgment under ambiguity. Staff decisions are often made without clear requirements or consensus. Has this person made calls in genuinely uncertain situations? Did they hold up? That’s different from executing excellently on well-scoped work.
None of these show up in a standard performance review unless the engineer has deliberately done this kind of work.
The Signal That’s Missing
Here’s the thing most engineers in this position don’t hear clearly enough: if you’re consistently Exceeds Expectations at Senior but you’re not being promoted, the gap is almost certainly about scope, not quality.
Your work is good. Probably very good. But it’s contained.
The fix isn’t to do your current work better. It’s to change what you’re working on and how you’re showing up. Specifically:
Find the cross-team problem nobody owns. Every engineering org has them. The integration point between two systems that’s fragile. The shared library everyone depends on but nobody maintains. The architectural decision that got deferred. Go find it. Propose a solution. Drive it. This is the kind of work that appears in Staff promo packets, because it demonstrates scope by definition.
Make your technical thinking visible. At Facebook, the engineers who got to Staff fastest weren’t always the ones doing the hardest work. They were the ones making their thinking legible to the org. Written design docs. Comments in other teams’ design reviews. Presenting at eng all-hands. If people don’t know how you think about hard problems, they can’t advocate for you in a room you’re not in.
Talk to your manager about what’s actually missing. Not “what do I need to do to get promoted” - that question gets vague answers. Ask: “Here’s the work I’m doing. Is the scope large enough to support a Staff promo? What am I missing?” If your manager can’t answer that specifically, that’s important information too.
Stop waiting for the Staff project to be assigned to you. It rarely works that way. The engineers who get promoted to Staff usually created their own surface area. They didn’t wait for the high-visibility cross-team project to land in their lap - they made the case that the project needed to exist.
The Timing Problem
Even when you’re doing the right things, there’s a timing reality worth understanding.
At Facebook, we generally wanted to see Staff-level behavior for at least two review cycles before promoting someone. One strong cycle could be a good cycle. Two meant a pattern. This wasn’t bureaucracy for its own sake - it was about confidence. Promotion decisions at that level carry real consequences. The committee wants to see durability, not a peak.
This means the work you do this half determines your eligibility next half at the earliest, often the half after that. If you’re just starting to operate at Staff scope, you’re probably 6-12 months out from a realistic promo window, assuming consistent execution.
That’s not a reason to be discouraged. It’s a reason to start now.
One More Thing
If you’ve gotten Exceeds Expectations for two or three cycles and the promotion still hasn’t happened, and your manager can’t articulate clearly what the gap is - that’s a separate problem.
Sometimes the issue isn’t your performance or your scope. Sometimes there’s no headcount for a Staff slot on your team. Sometimes the bar is genuinely inconsistent. Sometimes you’ve outgrown the environment and the right answer is to find a team or a company where your work will be seen differently.
Knowing which situation you’re in matters as much as knowing how to fix it.
Staff engineer promotion decisions are made in rooms you’re not in, by people reviewing evidence you may not know exists. Your job is to make that evidence obvious, undeniable, and already present before anyone has to go looking for it.
“Exceeds Expectations” gets you considered. Staff-level scope is what gets you there.
If you’re navigating this and want a framework for how to position your experience - whether on your resume, in your promo packet, or going into interviews - the SWE Interview System covers how to communicate the kind of impact that actually moves decisions.
1:1 Coaching
Working through this right now?
30 minutes with someone who's been on the other side of the table at Meta - hiring committee, calibration rooms, thousands of interviews. No fluff, just honest feedback on your specific situation.
Book a 30-minute call - $25Free resource
Get the free Interview Prep Preview
What actually separates FAANG offers from rejections - pulled from the full interview system.
Check your inbox - the preview is on its way.
Something went wrong - please try again.