devlk
Salaries

How to Negotiate Your Developer Salary (With Scripts)

How to negotiate a developer salary: research your market rate, answer the expected-salary question, and use word-for-word scripts for offers and raises.

Many developers accept the first offer they get, often because negotiating feels awkward or risky. In reality, a polite, well-prepared negotiation is expected by most employers and rarely costs you an offer. A small increase at the start also compounds, because future raises and offers are often based on your current pay.

Here is how to prepare, what to say, and what to avoid.

Step 1: Know your market rate#

You can't negotiate without knowing what is fair. Build a realistic range for your role, level, stack and location (or remote market) from several sources:

  • Colleagues and friends in similar roles. Ask in private; many people will share when asked respectfully.
  • Community salary threads. We collect anonymous data in c/salaries; please add yours too.
  • Recruiters. Ask them directly what the budget for a role is.
  • Job posts that list salaries, especially for remote roles.
  • Salary sites such as Levels.fyi, keeping in mind their data skews towards large international tech companies.

Write down three numbers: your walk-away minimum, your target, and an ambitious but defensible number.

Step 2: Handle the "expected salary" question#

Recruiters often ask early. You have three reasonable options.

Ask for their range first:

"I'd like to understand the role better before naming a number. What's the budgeted range for this position?"

Give a researched range, with your target near the bottom:

"Based on my research for similar roles and my experience with X and Y, I'm looking at a range of [target] to [ambitious]."

Defer until you know the full package:

"I'm flexible depending on the whole package (salary, bonus, benefits and growth), so I'd prefer to discuss numbers once we're both sure it's a good fit."

If you must name a number, always use a range and make sure the bottom of it is a number you'd genuinely be happy with.

Step 3: When the offer arrives#

  • Thank them and show enthusiasm. You want them to feel you'd like to join.
  • Don't accept on the spot. Ask for the offer in writing and a day or two to review it. That's normal.
  • Review everything: base salary, bonus, increment cycle, leave, health cover, allowances, equipment, remote-work terms, notice period and probation.

Step 4: Make your counter-offer#

Be specific, polite and grounded in value, not in personal needs. A script:

"Thank you, I'm really excited about this role and the team. Based on the scope of the position, my experience leading X, and what similar roles pay, I was hoping for a base salary of [number]. If you can get there, I'm ready to accept."

Why it works:

  • It is positive: you want the job.
  • It is specific: one number, not "a bit more".
  • It gives reasons tied to value.
  • It signals commitment: if they meet it, you'll accept. Only say this if you mean it.

Then stop talking and let them respond.

Step 5: If they say the salary can't move#

Base salary is often the least flexible part. Ask about other parts of the package:

"I understand the base is fixed. Would there be flexibility on a sign-on bonus, an earlier salary review at six months, or additional leave?"

Other things you can negotiate:

  • A guaranteed salary review after probation
  • Job title or level
  • Learning budget, certifications or conference costs
  • Equipment, internet or remote-work allowance
  • Start date and notice period buy-out

Negotiating with multiple offers#

Competing offers are the strongest leverage you can have, but use them honestly:

"I've received another offer at [number]. I'd prefer to join you because of [reason]. Is there any flexibility to get closer to that?"

Never invent an offer. It is easy to check and can end the conversation. When you have several offers, compare them properly; see how to compare two job offers.

Asking for a raise in your current job#

The same principles apply:

  1. Collect evidence: what you've delivered, extra responsibilities, market data.
  2. Ask for a meeting specifically about compensation, ideally before budgets are set.
  3. Make a specific request and explain it in terms of value.
  4. If the answer is no, ask: "What would I need to achieve to reach that, and by when?" and get it in writing.

If the answer is still no after you've delivered, read when to switch jobs.

Mistakes to avoid#

  • Accepting immediately without reviewing the full offer.
  • Giving a single low number too early.
  • Basing your request on personal costs ("my rent went up") instead of value.
  • Ultimatums or aggressive tactics. You'll be working with these people.
  • Lying about your current salary or other offers.

Key takeaways#

  • Research a realistic range from several sources before any conversation.
  • Use ranges, ask for their budget, and never accept on the spot.
  • Counter politely with one specific, justified number.
  • If base salary is fixed, negotiate the rest of the package.
  • Be honest, positive and specific throughout.

#negotiation#offers#salary

Written by

devlk Team

Editorial team

The devlk team writes practical career guides for software developers: salaries, interviews, remote work and getting paid from abroad.

Get new guides by email

Salaries, remote jobs and career guides for developers. One email when something new is published. No spam.