Engineers spend weeks preparing for technical interviews and then improvise the conversation that decides what they'll be paid. That's understandable: the offer call is short, it's awkward, and it comes right at the moment you're most relieved to have made it through. But it's also the part of the process where a little preparation goes furthest.
This guide isn't a set of tricks. Negotiation goes best when you're prepared and calm, and when you're clear about what you want and why. It covers whether to negotiate, how to research your range, what you can negotiate besides base salary, how to make a counter (on a call or by email), and how to handle the pushback that usually follows.
Should you negotiate a job offer?
It's usually reasonable to ask, politely, once you have an offer. Recruiters negotiate all the time and generally expect some discussion; asking for more, respectfully and with a reason, is a normal part of the process rather than a risk to the offer.
How far to push is a different question, and it depends on your situation: how the offer compares with your research, what alternatives you have, and how much you want this particular job. Deciding those things before the call is most of the work.
There are times when negotiating less makes sense: the offer is already at the top of what your research suggests, the company has told you plainly that its offers are fixed by level, or the things you care about most aren't money. Even then, it's usually fine to ask clarifying questions and to check whether anything else in the package has room.
Before the call: three things to decide
1. Your range
Research what the role pays at this level, in this location (or for this remote arrangement). Useful sources include salary data sites that collect self-reported offers, salary ranges in job postings (now required in some places), recruiters who contact you about other roles, and people you trust in similar jobs.
From that, decide three numbers:
- Your target: what you'll ask for.
- Your acceptable number: what you'd be happy to sign at.
- Your walk-away point: below this, you'd rather keep looking or stay where you are.
Base these on the market for the role, not on your current salary. Your current pay is a fact about your current job.
2. Your priorities
An offer has more parts than base salary. Before the call, rank what matters most to you, so you know what to ask for if the first thing you ask for isn't possible. Our next section lists the usual candidates.
3. Your reasons
A counter is much stronger with a reason the recruiter can take back to the team. Good reasons include:
- Your market research for the role and level
- A competing offer, if you have one (only ever a real one)
- The scope of the role compared with how it's levelled
- Specific experience the posting asked for that you bring
"I'd like more" is a request. "Based on what I'm seeing for senior backend roles in this market, and given the on-call scope we discussed, I was expecting a base closer to X" is a case.
What you can negotiate
Base salary is the obvious one, but often not the only lever, and sometimes not the most flexible one. Depending on the company:
- Base salary
- Sign-on bonus, often easier to move than base because it's a one-off cost
- Equity: the amount, and sometimes the vesting schedule or refresh policy
- Level or title, which affects pay now and the bands you'll be in later
- Start date
- Remote or location terms
- Relocation support
- A learning or equipment budget, or extra leave
If the company says base is fixed, asking about the rest of the package keeps the conversation going: "I understand the base is set for this level. Is there flexibility on the sign-on or the equity?"
Level deserves a special mention. If your experience and the role's scope suggest the level above the one offered, that's worth raising, with reasons, before negotiating numbers within the current level.
When the offer arrives
The first offer usually arrives on a call. You don't need to respond to it on that call, and it's often better not to.
- Thank them and say you're pleased to have the offer. Enthusiasm is fine; it doesn't weaken your position.
- Ask for the details in writing: base, bonus, equity (and how it's valued), start date, and benefits.
- Ask any clarifying questions: how equity vests, how bonuses are decided, when salaries are reviewed.
- Ask for time to review it: "Could I come back to you by Thursday?" A short pause to think is completely normal.
What to avoid: accepting on the spot, rejecting on the spot, or naming a counter before you've seen the whole package.
Making the counter
When you come back, be clear and specific. One number (or one set of numbers), one reason, and a sign that you want to make it work.
On a call:
"Thanks again for the offer. I'm excited about the team and the work on the event platform. Having looked at the full package and what similar roles are offering, I was hoping for a base closer to X. If we can get there, I'm ready to move forward."
A few principles:
- Give a specific number, not a range. If you give a range, expect the bottom of it.
- Ask a little above your target, so there's room to meet in the middle without dropping below what you'd accept.
- Then stop talking. Let the recruiter respond. Silence is uncomfortable; filling it by lowering your own ask is the most common way people negotiate against themselves.
- Don't move until they've responded to your number. If they come back with a different figure, that's the moment to decide, not before.
How to negotiate by email
Email is a good option if you find live negotiation stressful, or if you want your reasoning in writing. A counter-offer email can be short:
Hi Sam,
Thanks again for the offer for the senior backend role. I enjoyed meeting the team and I'm excited about the work on the event platform.
I've reviewed the details, and based on my research for senior backend roles at this level, I was hoping for a base of X. I'd also like to ask whether there's flexibility on the sign-on bonus.
If we can get closer to those numbers, I'd be glad to move forward. Happy to talk it through on a call if that's easier.
Best, Alex
It names the role, shows you're keen, makes a specific ask with a reason, and leaves the door open. Recruiters will often reply with a call, which is fine: you've already set out your position.
Handling pushback
Expect at least one of these. None of them means the negotiation is over.
- "This is already at the top of the band." Acknowledge it, then ask about the rest of the package, or about the level: "Understood. Given the scope we discussed, is the level something we could revisit?"
- "What number would get you to sign today?" You can answer with your target if you're ready to commit, but you don't have to decide on the spot. "I'd like to see a revised offer in writing first" is a perfectly reasonable reply.
- "We can't move on base." Ask about sign-on, equity, start date, or other terms.
- "This is our best and final offer." Thank them, and decide. You can still ask for a day to consider it.
- Silence, or "let me check with the team." That's normal. Wait for them to come back.
Throughout, stay friendly and stay calm. You're negotiating with people you might work with, and a respectful negotiation tends to go better for everyone.
Offer deadlines
Some offers come with a deadline. If you need more time, for example to finish another process, ask for it and say why: "I'm in the final stage of one other process and expect to hear by next Wednesday. Could we extend the deadline to then?" Many deadlines have some room. If yours is firm, treat it as firm and decide within it.
How long negotiation takes
The first offer call is often 15 to 30 minutes, and the whole negotiation may run over several calls and emails across a few days to a week or two. You rarely need to settle everything in one conversation.
Practise the conversation
The offer conversation is short and the stakes are real, which is exactly why it's worth rehearsing. Say your counter out loud until it comes out calmly. Ask a friend to play the recruiter, push back, and go quiet at awkward moments. Practise the moment after you name your number, when you stop talking.
This is the last stage of the interview loop, and like the others, it goes better with preparation. Our guide to preparing from the job description includes the negotiation step in a full prep plan.
Hardmode's salary negotiation round plays a recruiter delivering an offer for the role you're interviewing for, then responds to your counter the way recruiters do: with pushback, silence, and "let me check with the team". Sessions run 15–20 minutes, so you can replay the call with a different approach.