How to Negotiate Your Software Engineer Salary: The Playbook

May 28, 202610 min read
interview-prepcareercommunicationmock-interviews
How to Negotiate Your Software Engineer Salary: The Playbook
TL;DR
  • Levels.fyi is the primary data source; collect 5-10 comp points for your exact role, level, and location before any recruiter call
  • Anchoring is the #1 recruiter trap: never name a number first, always ask for the band
  • Level re-evaluation often yields more than any negotiation within a level — L4 to L5 at Google can mean $50K+ more per year
  • Signing bonuses hit a different budget than base and are often approved the same afternoon when base is stuck at band max
  • Competing offers are your strongest card: recruiters can take a specific number to the comp team in ways personal appeals cannot
  • Negotiate by phone, confirm by email: silence after your ask is a tactic, not awkwardness
  • Check clawback terms before treating a signing bonus as guaranteed income — some windows run 18 months

The offer arrives. You spent months grinding LeetCode, memorized the difference between a min-heap and a max-heap, convinced three separate panels you are, in fact, a real engineer. Now a recruiter is reading you a number over the phone.

Don't say yes.

Most engineers accept the first offer without pushing back. A 2023 Fidelity survey found 58% of workers took the initial number. In tech, salary negotiation for software engineers typically moves the final number 10 to 30% above the initial offer. The company expects you to negotiate. Not doing it doesn't signal gratitude. It signals you don't understand how compensation works.

You're not going to lose the offer by countering. Companies spend weeks evaluating you and months onboarding you. A polite counter is not going to change that.

Know Your Number Before Anyone Calls You

The worst position to be in during an offer call is not knowing what the number should be. Most engineers have a vague sense. "I think I'm worth... more?" is not a negotiating position. Fix that before any conversation starts.

Levels.fyi is the primary source for tech compensation: self-reported, verified, broken down by company, level, location, and year. H1B salary disclosure data gives you a second angle on individual companies. Glassdoor fills gaps for smaller shops where Levels.fyi is thin.

The goal is a specific number at a specific level at a specific company. "Senior engineers make between $120K and $200K" tells you nothing. "Google L5 SWE in New York has median total comp of $380K" gives you something to work with. Collect five to ten data points matching your target role, level, and geography. Then pick a realistic target and a realistic floor.

Also research the level itself. If you're being considered at L4 but you have five years and a strong portfolio, there may be room to push for L5. That conversation changes the entire compensation range, not just the number within it.

"What Are Your Salary Expectations?" Is a Trap

Somewhere in the screening process, a recruiter will ask what you're looking for. The moment you name a number, you've set a ceiling. If you say $150K and they were prepared to offer $175K, you just handed back $25K without any negotiation required.

This happens because of anchoring. Harvard negotiation research confirms the first number introduced sets the psychological reference point for everything that follows. The recruiter has run this conversation thirty times this month. You've run it once. That's not a fair fight.

Don't name a number first. Redirect:

"I want to make sure we're aligned on role and scope first. If you can share the salary band for this level, that would be helpful."

In California, New York, Colorado, and a growing list of states, employers are legally required to provide salary ranges. Even where they're not, most recruiters will share a band if you ask directly.

If they push harder, hold:

"I'm flexible. I'd rather land on something fair once we know more about the full package than anchor too early."

Never volunteer your current salary. It's irrelevant to market rate and illegal to require in many states.

The Offer Arrives. Don't React Yet.

Every instinct you have will tell you to respond immediately. Maybe say "yes." Maybe make an uncomfortable joke. Both are wrong.

When the recruiter calls with the number:

"This sounds exciting. I want to review the full package carefully before responding. Can you send everything over in writing and give me a few days?"

That's it. No reaction to the number. Reacting on the initial call, whether positively or negatively, is the single most common mistake. "That's lower than I expected" starts a negotiation without preparation. "That sounds great" signals you might accept it.

Get the offer in writing before saying anything substantive.

Most companies give three to five business days. Exploding offers are softer than they appear at companies that want to hire you, which is every company that just extended you an offer. "I need to discuss this with my family" is a standard and accepted reason to ask for more time. Use it.

The Biggest Lever Isn't Base Salary

Most guides skip this. The level you're slotted into controls the entire compensation band, and getting re-leveled often yields more than any negotiation within a level.

An L4 at Google has a base range of roughly $140K to $175K. An L5 is closer to $175K to $220K. The floor of L5 is above the ceiling of L4. Negotiating from $150K to $165K within L4 is like haggling over the window seat when there's a better flight. You are solving the wrong problem.

The conversation is easiest when you've performed well in the loop and have evidence to point to:

"I'd like to understand the leveling decision. Is there flexibility to revisit that, or an additional evaluation I could do to demonstrate fit at the next level?"

Some companies say no. Others offer a conversation with the hiring manager. It costs nothing to ask, and the upside can be $50K or more per year. If you're evaluating offers from Google, Meta, or Amazon, ask this question before you touch any other component. The interview structures and leveling criteria at those companies are worth studying in depth. See our guides on Google, Meta, and Amazon.

What's Actually Negotiable

Base salary. Subject to internal pay bands. Typical successful moves run $5K to $25K above the initial offer.

Signing bonus. Often more negotiable than base, because it hits a different budget. A company that can't move base $10K can sometimes approve a $30K signing bonus the same afternoon. The ask: "The base feels light versus what I'm seeing in the market. Would a signing bonus help bridge the gap?"

RSU grant size. Negotiable, especially at senior levels where equity becomes the primary compensation vehicle. If base is at band maximum, shift the conversation to equity. At large tech companies, RSU bands are wider than base bands at senior levels.

Refresher grants. Annual or performance-based equity top-ups that most companies award and almost nobody asks about at offer time. Ask directly: "What does the refresh cadence look like after the initial vest?" Meta is known for generous refreshers tied to level. Google bases them on performance review scores. A four-year grant with no refreshers is a very different deal than one with annual top-ups.

Remote arrangement and geographic tier. Many companies use location-based pay tiers. If base is locked to a tier, push for signing bonus or equity adjustments that sit outside the location formula.

Start date. Often flexible. A later start lets you keep vesting RSUs at your current company if you're mid-cycle.

What doesn't move. Annual bonus targets are fixed by level and company policy. Don't spend energy there.

Competing Offers Do the Work You Can't

The most reliable path to a higher offer is a competing offer. When you tell a recruiter that Company B has offered a specific number, they have something concrete to take to the comp team. Recruiters can put a competing offer in an email to the committee in a way they cannot put your personal feelings about fairness.

A store with "We're Hiring" signage next to five "Warehouse Closing Down" signs in the window

When the recruiter says the salary is firm but the job posting has been live for four months.

If you're in process at other companies, even without offers yet, that's accurate and creates real urgency:

"I'm wrapping up interviews at a few other companies and expect decisions within the next two weeks. I want to be transparent about that timeline."

If you have an actual offer, share the structure:

"I have an offer with a base of $185K and $300K in RSUs over four years. I'd genuinely prefer this team and this problem space. Can you get closer?"

Recruiters verify numbers anyway. Share them accurately.

Make the Ask by Phone

Negotiate by phone. Email feels safer but produces worse results. A conversation creates real-time pressure for the recruiter to engage and problem-solve alongside you. An email can sit, get forwarded, and come back with a form response three days later.

The structure of a counter call is simple:

  1. Express genuine interest: "I'm really excited about this role and the team."
  2. Name the specific gap: "The base feels below what I'm seeing for this level and location."
  3. State the specific ask: "I'd like to get to $195K base."
  4. Stop talking.

State the number and go quiet. The first person to speak after the ask generally concedes. This is the hardest part. Engineers who have just spent a minute asking for something will fill the silence with qualifications, apologies, or worse, a lower number. Don't. If they push back, ask them to take it to the comp team:

"I understand you may not have flexibility right now. Would you be willing to bring this back to the team for a second look?"

After the call, send a short email confirming what was discussed. This creates a paper trail and prevents numbers from drifting.

Pitfalls That Cost Engineers Real Money

Trading base salary for signing bonus. A $15K signing bonus is not the same as $15K higher base. Base compounds through annual raises, bonus calculations (usually a percentage of base), and future negotiations anchored to your current comp. The signing bonus disappears. The base follows you. Only accept this trade if base is genuinely at band maximum.

Treating the offer as a single number. Engineers who anchor on base alone miss equity refreshes, signing bonuses, level conversations, and arrangement flexibility. Each component is a separate budget line with its own room to move. Not asking any of them is real money left behind.

Not checking the clawback period. Most signing bonuses come with prorated repayment if you leave within twelve months. Some companies use eighteen-month windows. Know the terms before you treat the signing bonus as guaranteed income. Oracle in particular has been known to enforce these aggressively.


If you're still in prep and working toward an offer worth negotiating, SpaceComplexity runs voice-based mock interviews with rubric feedback across the exact dimensions interviewers evaluate. Getting through the loop is the prerequisite. The negotiation playbook only matters once you have something to negotiate.


The Short Version

  • Research levels.fyi, Glassdoor, and H1B data before any call
  • Never name a salary expectation first; ask for the band
  • Never give your current salary
  • Get the offer in writing before reacting
  • Ask about level before negotiating dollar amounts
  • Know what moves: base, equity, signing bonus, refreshers, arrangement, start date
  • Know what doesn't: annual bonus targets
  • Competing offers (or in-process interviews) are your strongest card
  • Negotiate by phone, confirm by email
  • Don't trade base for signing unless base is at band maximum
  • Ask about signing bonus clawback terms

Further Reading