I left tens of thousands of euros on the table in my first few years as a developer. Not because companies were dishonest, but because I did not negotiate. I accepted the first number offered, felt grateful for the offer, and moved on. Here is everything I learned about negotiating developer salaries — the hard way.
The Mindset Shift
Most developers approach salary negotiation as a confrontation. They worry about seeming greedy, about offending the hiring manager, or about losing the offer entirely if they push back.
Here is the reality: negotiation is expected. Recruiters and hiring managers build room into initial offers specifically because they know candidates will negotiate. When you accept the first number, you are leaving money on the table that was already budgeted for you.
Negotiating is not aggressive. It is professional.
Step 1: Know Your Market Rate Before You Apply
This is where most developers fail. They negotiate without knowing what the market actually pays.
Where to research:
- levels.fyi — best for tech companies, especially US-based
- Glassdoor — broad coverage, some self-reported data variance
- LinkedIn Salary — useful for European markets
- Asking people in your network directly (more useful than any website)
The goal is not to find a single number. It is to find a range and understand what pushes someone toward the top versus the bottom of that range (seniority, specialisation, company size, location).
Step 2: Never Give a Number First
When a recruiter asks “what are your salary expectations?” early in the process, deflect it.
What to say:
“I would prefer to learn more about the role and responsibilities first. Could you share the budgeted range for this position?”
Most recruiters will share the range. If they push back, you can give a range — but make sure the bottom of your range is still acceptable to you, because that is where they will anchor.
If you must give a number, give a number that is 15-20% higher than your actual target. This gives you room to negotiate down to what you actually want while leaving them feeling like they won.
Step 3: Get the Offer in Writing Before Negotiating
Never negotiate verbally over the phone without a written offer in hand. Wait for the formal offer email or document, then take 24-48 hours to respond.
This gives you:
- Time to research comparable offers
- A clear anchor number to negotiate from
- A paper trail of what was agreed
Step 4: Counter Effectively
When you receive an offer, do not immediately accept or reject. Counter.
A simple counter script:
“Thank you so much for the offer — I am genuinely excited about this opportunity. Based on my research and experience level, I was hoping we could get closer to [X]. Is there flexibility there?”
Key principles:
- Be specific with your number, not vague
- Give a reason (market research, experience, competing offer if true)
- Stay warm and enthusiastic — you want the job, you just want fair compensation
How much to counter: Typically 10-20% above the offer. If they came in significantly below market, go higher.
Step 5: Negotiate Beyond Base Salary
Companies often have more flexibility in non-salary components even when the base salary is fixed. Do not stop at the number.
Things worth negotiating:
- Remote work flexibility (worth thousands per year in commute savings)
- Extra vacation days
- Learning and conference budget
- Home office stipend
- Signing bonus (often easier to approve than a higher base)
- Equity or stock options
- Earlier performance review date (instead of waiting 12 months for your first raise)
I once negotiated a €3,000 signing bonus, fully remote work, and a conference budget after the base salary was firm. The total package was significantly better than the first offer even though the monthly number did not change.
The Competing Offer Strategy
If you have another offer, use it. Mention it professionally, without making it an ultimatum:
“I want to be transparent with you — I do have another offer I am considering. But this role is my preference, and if we could get the compensation to [X], I would not need to think twice.”
This works. Companies do not want to lose candidates they have invested weeks of process into, and a competing offer is the clearest signal that your market rate is higher than their initial offer.
If you do not have a competing offer, consider interviewing in parallel until you do. The best time to negotiate is when you have options.
What I Wish I Knew Earlier
A few things I learned too late:
-
Your current salary anchors future offers — every company that asks “what do you make now?” uses that to calibrate their offer. Consider not sharing it (in many EU countries, you are not legally required to).
-
The first year is your highest leverage — once you are inside a company, raises are incremental. Your offer negotiation has the highest impact on your total lifetime earnings at that company.
-
Silence is powerful — after you state your counter number, stop talking. Let them respond. Developers are wired to fill silence by walking back their ask. Do not.
-
Rejection is rare — in my experience and that of developers I know, offers are almost never rescinded because someone negotiated. The risk is far lower than it feels.
Conclusion
Negotiating feels uncomfortable at first. But it is a skill like any other — it gets easier with practice and it compounds over your career. The difference between negotiating and not negotiating, over a 10-year career, can easily reach six figures.
You have already done the hard part by getting the offer. Do not skip the last step.