Salary

How to negotiate a higher salary as a software developer (with a script)

A salary negotiation script for developers, from the first number to the final yes: three facts to prepare, what to trade, the two costliest mistakes.

By the Negosim team · Updated · 6 min read

A developer and a hiring manager negotiate an offer across a table, with holographic icons for salary, bonus, remote work and review date between them

Key takeaways

  • Gather three comparable salaries and write down your target and your floor before the call
  • Ask one question about how the range was set before you give any number
  • Open with one precise number and two reasons, then stay quiet
  • When the base is capped, trade on bonus, review date, remote days and title instead of conceding
  • Never accept on the call: ask for the offer in writing and confirm within 24 hours
In this guide

Short answer: research three comparable salaries, decide your floor, open above your target with a precise number and its justification, then trade on the items that are not the base salary (bonus, start date, remote work, review date) instead of conceding on the base. The script below takes you through each exchange.

Developers negotiate less than almost any other well-paid profession, and the gap compounds: a 10,000 euro difference on a first senior offer is 100,000 over a decade before raises are counted. The conversation itself takes ten minutes.

When to negotiate

The right moment is after you have a written or verbal offer and before you accept it. Earlier, you have no number to work with and the company has not decided it wants you. Later, after a "yes", any request reads as going back on your word.

If a recruiter asks for your expectations in the first call, you can give a researched range for the role ("for a senior backend role in this city, the market sits between X and Y") without committing to a personal number. Keep your precise anchor for the moment the offer arrives.

Before the call: three facts and two numbers

Three facts to gather (one evening):

  1. The salary range for your level, stack and city, from at least three sources (published bands, recruiters, peers, aggregated survey data for 2026)
  2. What you bring that the job description asks for and most candidates lack (a domain, a scale, a certification, a language)
  3. The company's constraint: a grid, a funding round, a hiring deadline, a competitor's offer

Two numbers to write down:

  • Your target, at the top of the range you can justify
  • Your reservation price: the base below which you decline, derived from your BATNA (current job, other offers, savings)

The space between their likely budget and your floor is the ZOPA. If you suspect there is none, the call is still useful: it tells you early, and you can move the conversation to the items below.

The script

They open with a number. "We can offer 95,000."

You: "Thank you, I am glad we are at this stage. Before I react to the number, can you tell me how the range was set for this role?" (One question before any counter. It tells you whether the number is a grid, a guess or a first anchor.)

You anchor. "Based on the three comparable senior roles I have looked at this month and the platform migration experience you said was the priority, I was expecting a base around 118,500."

Precise number, two reasons, no apology. Then stop talking. The silence after an anchor is where most people concede; let them fill it.

They push back. "That is above our range. We could stretch to 100,000."

You: "I understand there is a range. What is fixed in it and what has some flexibility?" Then, depending on the answer: "If the base is capped at 100,000, could we look at a signing bonus that covers part of the gap, and a review at six months tied to the migration milestone?"

You have not conceded on the base. You have opened three other issues, which is what integrative negotiation means in practice.

They make a package offer. "102,000, a 6,000 signing bonus, review at twelve months."

You: "We are close. If the review moves to six months with an agreed target, and two remote days a week are written into the contract, I can say yes today." A concession on timing (saying yes today), in exchange for two specific items. Decreasing steps, each one traded.

Close. "Can you send that in writing? I will confirm within 24 hours." Never accept on the call; a night's sleep costs nothing and catches details.

What you can trade besides the base

ItemWhy it moves when the base does notHow to ask
Signing bonusPaid once, outside the salary grid"Could a signing bonus cover part of the gap?"
First review dateCosts nothing today"Could we review at six months, with a target we agree now?"
Remote daysOften decided by the team, not HR"Can two remote days be written into the contract?"
TitleFree for the company, valuable for your next move"Does the scope match a senior title?"
Training budgetComes from another budget line"Is there a yearly budget for conferences or certifications?"
Start dateUseful to them if they are in a hurry"I can start two weeks earlier if that helps the project"

Pick two or three that matter to you. Asking for all six reads as a list, and lists get trimmed.

The two mistakes that cost the most

  • Conceding in the first reply. "I was hoping for more, but I could do 100,000" gives away 18,500 to nobody: they had not argued yet
  • Naming a range. "Between 105 and 120" is heard as 105. One number, precise, with reasons

If they ask for your current salary

Recruiters often ask what you earn today. The question sets an anchor for them: your current pay, plus a small step. Answer with the market instead.

You: "I would rather talk about what this role is worth. For a senior backend role with this scope in this city, the comparable offers I have seen sit around 115,000 to 120,000, and that is the level I am looking at."

In several countries and US states, employers are not allowed to ask about salary history at all; where they can, you are still free to answer with what you are looking for. If they insist, give your total package (base, bonus, benefits) rather than the base alone, and bring the conversation back to the role: "What matters more to me is whether this role is priced at the market level for its scope."

If you have no competing offer

You still have a BATNA: staying where you are, or continuing to interview. Say neither out loud; simply hold your anchor for two exchanges and ask questions. Most offers move on the second push, and the cost of asking twice is zero.

The email version

When the process runs by email, keep the same structure:

Thank you for the offer, I am glad we got here. Based on three comparable senior roles and the platform migration experience you described as the priority, I was expecting a base of 118,500. Is there flexibility on the base, or on a signing bonus and an earlier first review? I am happy to discuss it on a call this week.

Five sentences: thanks, number, reasons, open question, next step.

Negotiating a raise in your current job

The same script works with your manager, with two changes. The facts you bring are what you delivered over the last year, dated and measured where you can. And the timing matters more: ask before budgets are set (often a quarter before the yearly review), not during the review itself, when the envelope is already split.

Going freelance instead? The logic changes, because you set the price and defend it on every project: see our guide on negotiating a freelance rate.

Rehearse it before the real call

The script reads simply; saying "I was expecting 118,500" to a person who just said 95,000 and then staying quiet is harder than it looks. Negosim's salary negotiation scenarios put you opposite a hiring manager with a hidden budget who pushes back the way real ones do, and the analysis afterwards shows you exactly where you conceded and what you got for it. Our guide on how to practise negotiation alone gives a weekly routine; ten free sessions is enough to run the script until the silence stops being uncomfortable.

Go further

Frequently asked questions

Should I give a number first or ask for their range?
If you have researched the market for your level and city, give your number first, precisely and with the reason; you set the frame. If you are switching to a market you do not know, ask for their range first and anchor from its top. In both cases never give a single number without a justification attached.
What if they say the offer is final?
Ask what is fixed and what is not. Base salary is often locked by a grid, while the signing bonus, start date, remote days, training budget, title and the date of the first review are not. A "final" base with a 10,000 signing bonus and a review at six months is a different offer.
Is it risky to negotiate a first job offer?
A polite, factual counter has never withdrawn a serious offer; companies expect it and budget for it. What does create risk is bluffing about competing offers, or negotiating after you have already accepted. Negotiate once, before you say yes, with real facts.
Should I negotiate by email or by phone?
Make the counter-offer by phone or video when you can, because a conversation lets you ask questions and hear hesitation, then confirm everything by email. If the company runs the process by email only, write the counter as you would say it: one number, two reasons, one open question.
How far above the offer can I ask?
As far as your facts justify, and no further. Your anchor should sit at the top of the range you can defend with comparable salaries and with what you bring to this role. An anchor you cannot explain gets dismissed; one with two solid reasons gets discussed.

Put it into practice

Ten free sessions against an AI counterpart, with a score and a written analysis after each one.