Skip to main content
  1. Articles/

Salary Negotiation for Software Engineers

Stacks of US dollar bills representing salary and compensation negotiation

Most software engineers leave money on the table because they don’t negotiate — or they negotiate badly. Here’s how to do it well.

The Cardinal Rule: Never Give a Number First #

The moment you name a number, you’ve set a ceiling. If you say $150k and they were prepared to offer $170k, you just lost $20k. Always try to get them to name a number first.

When asked for your salary expectations, try:

“I’m really excited about this role and I’d love to hear what the range looks like for this position.”

If they push harder:

“I want to make sure we’re aligned on the overall package before I give a specific number — can you share the budgeted range?”

Most companies will eventually give you a range. Now you’re negotiating from their number.

Understand Total Compensation #

Base salary is only one component. The full picture includes:

  • Base salary
  • Annual bonus (target percentage and how reliably it pays out)
  • Equity (RSUs, options — vesting schedule, cliff, current value)
  • Signing bonus
  • Benefits (health insurance, 401k match, PTO)

A $170k base with 15% target bonus and $200k in 4-year RSUs is significantly better than a $180k base with no equity and no bonus — even though the base salary is lower.

Always convert everything to annualized total compensation to make accurate comparisons.

How to Negotiate #

Start Higher Than You’ll Accept #

If your target is $160k, open at $175k. You’ll almost certainly get countered. If they come in at $165k, you’ve landed above your target and you can accept gracefully.

Use Competing Offers #

A competing offer is the single most powerful negotiation lever you have. When you have one, say:

“I’ve received an offer from [Company X] for $[amount]. I’d really prefer to join your team — is there any flexibility to get closer to that number?”

Even if you don’t plan to take the other offer, having it removes all uncertainty from the negotiation. They now know you have options.

Negotiate Everything #

If they won’t move on base salary, ask about:

  • Signing bonus
  • Earlier equity refresh
  • More vacation
  • Remote work flexibility
  • Faster review cycle (e.g., 6-month instead of annual)

Any of these has real dollar value.

Get It in Writing #

Verbal offers mean nothing. Do not give notice at your current job until you have a written offer that includes all the numbers you agreed to.

Asking for a Raise #

Negotiating with your current employer is different from negotiating with a new one. The most effective approach:

  1. Come with data — your accomplishments, impact, and external market data (Levels.fyi, Glassdoor, Blind)
  2. Be direct — “I’d like to discuss a compensation adjustment. Based on my work over the past year and market data for this role, I believe [amount] is appropriate.”
  3. Use a competing offer if you have one — this is the fastest path to a raise, though it can also damage the relationship if not handled carefully

The sad reality is that switching companies is often the fastest way to a significant salary increase. Internal raises are typically constrained to 3–10% at most companies, while external moves often result in 20–40% jumps.

The Number You Shouldn’t Share #

Your current salary. In many places it’s illegal to require this information. Sharing it anchors the negotiation to your existing comp rather than the market rate for the new role.

If asked, say: “I’d prefer to focus on the market rate for this role rather than my current comp.”

Negotiation Doesn’t Hurt You #

The most common reason people don’t negotiate is fear — fear of offending the employer, fear of having the offer rescinded. In practice, employers almost never rescind offers over reasonable negotiation. They expect it. The worst that happens is they say no.

Negotiate every time.