How to negotiate a software engineer job offer

Most offers in tech have room to move — but only if you negotiate the right things, at the right time, in the right tone. Here is the playbook.

Updated October 28, 2026 · WAVYLON Guides

Key takeaways

  • Never accept or counter on the first call — ask for the full offer in writing and a few days to review.
  • Clarify the level first. The level sets the salary band; negotiating inside the wrong band caps you.
  • Negotiate the whole package: base, equity, sign-on bonus, start date, level and remote terms.
  • Use real leverage (competing processes, scope you have owned) and keep the tone collaborative.

1. Slow the process down

When a recruiter calls with numbers, your only goal is to collect information. Thank them, express genuine interest and ask for the offer in writing, including base salary, equity (amount, type, vesting schedule), bonus, sign-on and benefits.

"Thank you — I'm really excited about this team. Could you send the full details in writing? I'd like a couple of days to review everything and come back with any questions."

Deadlines like "we need an answer by Friday" are usually flexible. Asking for a few extra days to make a careful decision is normal and rarely costs you the offer.

2. Confirm the level before you talk money

Companies pay in bands tied to levels (for example L4 vs L5, Senior vs Staff). If you were leveled lower than your experience suggests, a bigger number in the wrong band will still be capped. Ask directly:

"Which level is this offer for, and what's the range for that level? Based on the scope I've owned — [system/team/impact] — I'd like to understand whether the senior level was considered."

Getting re-leveled is often worth more over time than any single counter.

3. Know your leverage

Leverage is anything that makes the company believe you are worth more or might walk away:

Research market ranges for your level and location using public salary-sharing sites and conversations with peers, and anchor your ask in that data rather than in what you "need".

4. Make one clear, specific counter

Counter once, with a specific number or package, and give a reason. Being precise signals you've done your homework.

"I'm excited about the role and want to make this work. Based on the level and my experience with [X], I was expecting a base closer to $[number]. If you can get there — or make up the difference with a sign-on bonus or additional equity — I'm ready to sign."

Ending with a clear path to "yes" makes it easier for the recruiter to advocate for you internally.

5. If they say "this is our best offer"

Base salary is often the least flexible part. Shift to the components that move more easily:

"I understand base is fixed. Would there be flexibility on the sign-on bonus or equity to close the gap?"

6. Get it in writing, then decide

Before you accept, make sure every agreed item appears in the final written offer. Then decide based on the total package, the team and the growth path — not just the headline number.

Negotiating an offer right now?

Upload the offer screenshot and WAVYLON builds your counter — leverage, numbers and a word-for-word script.

Try WAVYLON for 3 days — $1

Then from $19.99/mo · Cancel anytime

FAQ

Is it risky to negotiate a tech job offer?

A polite, well-reasoned counter is normal in tech hiring and very rarely leads to an offer being withdrawn. The risk is in the tone: stay collaborative and specific.

Should I give my salary expectations first?

If you can, let the company share the range first. If pressed, give a researched range for the level and location and say it depends on the full package.

What can I negotiate besides base salary?

Level, equity, sign-on bonus, start date, remote arrangement, title, learning budget and an early compensation review.