technology

I Finally Got the Staff Promotion After 5 Years. It Had Nothing to Do with Better Code.

After 5 years stuck at senior, I realized the gap to staff had nothing to do with code quality. It's about which problems you choose to solve.

CR

Carmen Reyes

Principal Engineer specializing in platform engineering and developer experience. Carmen has spent 15 years building the tools and systems that help other developers do their best work.

October 28, 20259 min read
I Finally Got the Staff Promotion After 5 Years. It Had Nothing to Do with Better Code.

Why Your Staff Promotion Keeps Going to Someone Else

You're shipping code faster than anyone on your team. Your pull requests are clean. You mentor junior developers, lead architecture discussions, and everyone comes to you when things break at 2 AM. You've been a senior engineer for five years now.

And yet, that staff promotion keeps going to someone else.

I've watched this pattern play out dozens of times in my fifteen years of platform engineering. Smart, capable senior engineers who check every box on the performance review rubric somehow can't break through to the next level. The difference between a staff engineer and a senior engineer isn't what most people think it is. It's not about writing better code or knowing more technologies.

Nobody tells you this about the promotion table: the gap between senior and staff has almost nothing to do with technical skill. If you're stuck, you're probably optimizing for the wrong things entirely.

Let me show you what actually matters.

The Core Difference: Scope of Ownership

The simplest explanation I can offer: Senior engineers solve problems. Staff engineers decide which problems are worth solving.

That distinction sounds subtle. It's not.

When you're a senior engineer, your team lead or manager hands you a problem. Build this feature. Fix this performance issue. Design this system. You execute brilliantly. You might even push back on the approach and suggest something better. That's exactly what good senior engineers do.

Staff engineers think bigger. They're looking at the entire set of problems facing their organization and asking: Why are we building this at all? The actual business constraint we're solving for, is it even real? Are we working on the right thing?

A senior engineer might spend two months optimizing a database query that saves 200ms per request. Someone at the staff level asks whether that query should exist in the first place, whether the upstream service should be caching that data, or whether the product requirement driving that query is actually aligned with where the company is headed.

Both are valuable. But one has ten times the organizational impact.

The gap between these two levels isn't seniority or years of experience. It's the size of the problems you're allowed to define. [Link: engineering career progression frameworks]

What Staff Engineers Actually Do Day-to-Day

Ever wondered what a staff engineer actually does day-to-day? I'll be honest: from the outside, it can look like a lot of meetings and documents.

The reality from my experience leading platform initiatives at a fintech company with hundreds of engineers tells a different story.

A typical week might include:

  • Reviewing a technical design from another team and spotting a scaling problem they haven't considered yet
  • Writing a one-page proposal for why we should deprecate an internal tool that three teams depend on
  • Sitting in a product planning meeting to inject technical context before roadmap decisions get locked in
  • Pair programming with a senior engineer who's stuck on a particularly gnarly distributed systems issue
  • Sending five Slack messages that prevent two teams from accidentally building the same thing
  • Having a 1:1 with a tech lead who's burned out and helping them prioritize ruthlessly

Notice what's missing from that list? Very little solo coding.

At the staff level, the line between individual contributor and management track gets fuzzy. You're not managing people, but you're absolutely managing complexity across organizational boundaries. Your leverage comes from multiplying the effectiveness of everyone around you.

One quarter, my highest-impact contribution was a single Miro board. I mapped out data flows between eight different services, showed where we had redundant transformations, and proposed consolidating into three. That diagram influenced six months of roadmap decisions across four teams. No code required.

The Four Signals Companies Look for When Promoting to Staff

Nobody in HR will tell you this about making the jump from senior to staff: promotion committees aren't looking at your code quality. They're looking for evidence that you already operate at the staff level.

Signal 1: Cross-team technical influence

Have you shipped something that required coordinating across multiple teams? Not just working with other teams, but actually driving alignment on technical direction when people disagreed? Companies want proof you can build consensus without authority.

Signal 2: Problem finding, not just problem solving

Can you point to a time when you identified a problem that leadership didn't know existed, scoped it, proposed a solution, and saw it through? This demonstrates you don't need to be told what to work on.

Signal 3: Technical decision documentation

People operating at this level leave a paper trail. Architecture decision records, design docs, post-mortems that actually change behavior. If your good ideas live only in your head or in ephemeral Slack threads, you're invisible to promotion committees.

Signal 4: Multiplier behavior

Think about it: how many engineers are more effective because of something you built, wrote, or taught? Someone with staff-level scope is constantly asking, "How do I make this solution work for everyone, not just my team?"

If you can't articulate concrete examples for all four signals, that's your roadmap. Not more LeetCode practice.

Staff Engineer vs. Engineering Manager: Two Paths to Multiplication

People ask me constantly about which path to choose: staff engineer or engineering manager. They treat it like a personality test. Are you technical or people-oriented?

That framing misses the point.

Both paths demand multiplication, strong communication, and yes, lots of meetings. Technical leadership levels in software engineering converge more than they diverge at senior levels.

So the real question becomes: What kind of ambiguity energizes you?

Engineering managers deal with people ambiguity. Why is this person disengaged? Delivering hard feedback, how do you do it well? Advocating for your team's needs while aligning with company priorities requires constant balance.

Staff engineers deal with technical ambiguity. The right architecture when requirements are unclear, what does that even look like? Migrating systems without stopping the business takes a particular mindset. Building now versus later, that's a judgment call you'll make weekly.

Brilliant engineers sometimes become miserable managers because they wanted answers, and people rarely provide clean ones. Warm, empathetic people can struggle in staff roles because the technical uncertainty exhausts them.

Neither path is better. Know yourself. [Link: engineering manager career guide]

Salary Reality Check: The 10–30% Jump (Sometimes More)

Let's talk money, because most career articles skip the uncomfortable details.

The salary jump is real, though it varies significantly by company, location, and circumstances. Across the industry, the typical increase ranges from 10–30% in total compensation. At top-tier tech companies with significant equity components, that jump can reach 30–50% or higher. In major tech hubs at those top companies, we're talking $200K to $300K+ in total comp.

Why the increase?

Staff engineers are rare. Plenty of people can write good code. Very few can operate effectively at organizational scale while staying technical. Companies pay a premium because the alternative is hiring multiple senior engineers who still can't solve the same class of problems.

Negotiating your worth:

When you're interviewing for staff roles externally, don't anchor on your current salary. Research the market using Levels.fyi, Glassdoor, and your network. Come prepared with examples of staff-level impact from your current role.

Internal promotions are trickier. Many companies have tighter salary bands. If your promotion comes with a disappointing raise, ask about equity refresh grants, or start shopping externally. Sometimes getting market rate means getting a competing offer.

This feels uncomfortable. Do it anyway. You're not being greedy. You're pricing your leverage accurately.

Your 90-Day Roadmap: Acting Like a Staff Engineer Before You Have the Title

When should a senior engineer be promoted to staff? When they're already doing the job.

That sounds circular, but that's how promotions work at this level. You demonstrate the behaviors first, then get the title. Start tomorrow.

Days 1–30: Expand your visibility

  • Volunteer to lead a cross-team technical initiative, even a small one
  • Start writing brief design docs for your own team's decisions
  • Attend one meeting per week outside your immediate team
  • Ask your manager: "What's a problem that spans multiple teams that nobody owns?"

Days 31–60: Build your documentation habit

  • Write one architecture decision record for something your team recently debated
  • Create an onboarding doc that helps new team members ramp faster
  • Draft a post-mortem for a recent incident that includes systemic improvements
  • Share these docs broadly (don't hide them in Confluence)

Days 61–90: Demonstrate problem-finding

  • Identify one technical risk or opportunity that leadership hasn't discussed
  • Write a short proposal with clear recommendations
  • Socialize it with stakeholders before presenting formally
  • Be willing to hear "not now" and file it for later

This approach isn't about doing more work. It's about doing different work. You might actually code less during this period. That's okay. You're proving you can operate at a higher level.

The difference between staff and senior comes down to one question: Are you solving the problems in front of you, or shaping which problems get solved?

Technical skills got you to senior. They won't get you to staff.

So what will? Thinking in systems, not features. Building influence, not just software. Documenting your reasoning so it scales beyond your conversations. Finding the problems that matter instead of waiting to be assigned them.

Engineers make this shift in a matter of months once they understand what's actually being evaluated. The skills aren't harder. They're just different.

Start this week. Pick one thing from the 90-day roadmap. Tell your manager you're explicitly working toward staff-level scope. Ask for feedback on your progress.

The title will follow. But only if you stop waiting for permission to act like you already have it.

Related Articles

How I Went From Getting Rejected to Leading a Platform Team (It Wasn't My Code)
technology

How I Went From Getting Rejected to Leading a Platform Team (It Wasn't My Code)

Marcus could code circles around everyone. 7 years experience. Passed over twice. After leading a platform team, I finally get why—it wasn't his code.

MSMaria SantosSeptember 25, 202510 min read
The War Story Tangent That Lost Me a Staff Engineer Offer
technology

The War Story Tangent That Lost Me a Staff Engineer Offer

I've watched senior engineers bomb system design interviews for 2 years. Your production experience might actually be the problem. Here's why.

OHOmar HassanDecember 9, 202510 min read
I Got Rejected for Staff Twice. Here's What Finally Worked.
technology

I Got Rejected for Staff Twice. Here's What Finally Worked.

Got rejected for staff engineer twice before figuring out what committees actually evaluate. Here's the 18-month timeline and packet strategy that worked.

ARAlex RiveraDecember 8, 20259 min read

Comments (0)

Leave a comment

No comments yet. Be the first to share your thoughts!

I Finally Got the Staff Promotion After 5 Years. It Had Nothing to Do with Better Code. | Blog Core