How to Negotiate a Developer Salary (With the Actual Email I Sent)

dev.to

Got the offer. Now what?

Most developers accept the first number. Or they counter with a random 10% bump and hope for the best. Both approaches leave money on the table.

I negotiated three offers in the past year. One added $15K to the base. One added an extra week of PTO. One went nowhere because the company had a rigid band system. Here's what I learned about what works and what doesn't.

Before the offer call

Negotiation starts before the number hits your inbox.

Research the range. Check Levels.fyi for your exact title + company (if public). Check Glassdoor salary data. Check Blind for anonymous comp threads. You need three numbers: the bottom of the range, the midpoint, and the top.

Know your BATNA. Best Alternative To Negotiated Agreement. In plain English: what happens if you walk away? Another offer? Your current job? Freelancing? The stronger your alternative, the stronger your position. If you have nothing else, you can still negotiate — just with less leverage.

Decide your priorities. Salary is one lever. Others: signing bonus, equity/RSUs, PTO, remote flexibility, title, start date, education budget, hardware budget. Rank them. Know which ones you'd trade against each other.

The offer call

When they say the number, your only job is to not react.

Don't say "that's great." Don't say "that's low." Don't counter immediately. Say this:

"Thank you. I'm excited about the role. I'd like to take a day to review the full package and come back with any questions."

That's it. You just bought yourself 24-48 hours to think clearly instead of negotiating under pressure.

Crafting the counter

Your counter email should be three things: grateful, specific, and justified.

Here's the structure I use:

Paragraph 1 — Excitement.
Reaffirm your interest. Mention something specific about the role or team. This isn't fluff — it reminds them why they want you.

Paragraph 2 — The ask.
State your counter clearly. One number, not a range. If you say "$110-120K," they hear "$110K." Say "$120K."

Paragraph 3 — The justification.
Why this number makes sense. Options:

  • Market data: "Based on Levels.fyi data for this role and level, the range is $X-$Y"
  • Competing offer: "I have another offer at $X" (only if true — never bluff)
  • Current compensation: "This represents a lateral move from my current total comp of $X"
  • Specific value: "In my previous role, I [specific achievement that saved/earned $X]"

Paragraph 4 — Flexibility.
Signal you're open to creative solutions: "I'm open to discussing how we might bridge the gap — whether through a signing bonus, equity adjustment, or other elements of the package."

Need help drafting? A salary negotiation script generator can create a personalized counter email based on your situation.

What actually works

Competing offers work. Nothing moves a number faster than "I have another offer." If you have one, use it. If you don't, don't fake it — they might call your bluff, and you lose all credibility.

Specific data works. "Levels.fyi shows the 75th percentile for L5 at comparable companies is $185K" is stronger than "I was hoping for more."

Silence works. After you send the counter, wait. Don't follow up the next day. Don't send "just checking in." Let them come to you. The anxiety you feel is nothing compared to their urgency to close the req.

Being likeable works. This surprises people. But the hiring manager is going to bat for your counter with their VP or HR. If they like you, they fight harder. Be professional, warm, and collaborative. Never adversarial.

What doesn't work

Ultimatums. "Give me $X or I walk" only works if you'll actually walk. And even then, it damages the relationship before day one.

Lying about other offers. Small world. They might know. And if you accept, you start the job having lied.

Negotiating every single line item. Pick 2-3 priorities. If you fight on salary AND equity AND PTO AND title AND start date, you come across as difficult, not thorough.

Excessive back-and-forth. One counter is standard. A second small adjustment is acceptable. Three rounds starts to feel adversarial. Know when to close.

Beyond base salary

If the base won't budge, try these:

  • Signing bonus: Often easier to approve because it's a one-time cost, not a recurring line item
  • Equity/RSUs: Ask about refresh grants and vesting schedules, not just the initial grant
  • Review timeline: "Can we schedule a 6-month review with the possibility of an adjustment?" Gets you a second bite at the apple
  • Remote/hybrid flexibility: Has real dollar value (commute, lunch, wardrobe, time)
  • Education budget: Conference tickets, courses, certifications — $2-5K/year is common
  • Start date: An extra week between jobs is worth more than you think

The email template

Here's a real counter email structure (adjust the details):


Subject: Re: Offer — [Role] at [Company]

Hi [Name],

Thank you for the offer. I'm genuinely excited about joining [team/project] — especially [specific thing from interviews].

After reviewing the full package, I'd like to discuss the base salary. Based on market data for this role and level ([source]), I was expecting something closer to [$X]. My [specific achievement/experience] directly maps to the [specific challenge] your team is working on.

I'm flexible on how we get there — whether through base, signing bonus, or equity. I want to make this work for both sides.

Looking forward to discussing.

[Your name]


You can generate a version customized to your situation with the salary negotiation tool. It adjusts the tone and justification based on whether you have competing offers, your years of experience, and the company type.

When not to negotiate

A few cases where accepting the first offer makes sense:

  • The offer is already above your target and above market
  • The company explicitly stated "this is final" AND you've verified they don't negotiate (ask current employees)
  • You desperately need the job and have no alternatives (negotiate anyway, but be prepared to accept)
  • It's a government or strictly banded position where negotiation genuinely isn't possible

Even in these cases, you can still negotiate start date, PTO, or equipment.

The math that matters

A $10K salary increase at age 30 compounds to roughly $500K+ over a career (assuming raises are percentages of base). That one awkward email is worth half a million dollars.

Don't skip it because it feels uncomfortable. Discomfort is temporary. The comp difference is permanent.


What's your negotiation experience? Especially curious about remote-specific negotiations.

Free career tools: Resume Checker | Keyword Extractor | Cover Letter | LinkedIn Headlines | Interview Prep | Salary Scripts | Follow-Up Emails | Resume Bullets

Source: dev.to

arrow_back Back to News