How to negotiate a software engineer job offer
The time to negotiate a software engineer job offer is after you have it in writing and before you accept it. Thank the recruiter, ask for a day or two, then make one clear counter: a specific number, the reason for it (market data, a competing offer or the scope of the role), and what would make you sign.
Ask about base salary first, then signing bonus, equity, level and start date. A polite, specific counter rarely puts an offer at risk; the usual worst case is a no.
By PickedJobs · Updated · Live figures from 62,231 open jobs, as of (method)
1. Get the whole offer in writing
Before you negotiate anything, make sure you know every part of it:
- Base salary and the bonus target, if any.
- Equity: number of shares or RSUs, the vesting schedule (four years with a one-year cliff is common), and for options the strike price and how long you have to exercise after leaving.
- Signing bonus, and whether you repay it if you leave within a year.
- Level and title, start date, remote or office policy, and paid time off.
2. Find the range
Many listings now publish a salary range: 36% of open tech jobs on PickedJobs do. The range is the company's own statement of what the role pays, so it's your best anchor. Then compare it with the market:
| Level | Median base | Middle half | Listings |
|---|---|---|---|
| Mid-level | $179,500 | $150,000–$225,000 | 3,698 |
| Senior | $193,700 | $168,000–$220,000 | 5,371 |
| Staff / lead | $234,950 | $201,500–$270,000 | 3,624 |
The full breakdown, by level and specialty, is in software engineer salary by level.
3. Decide your number before the call
Pick three numbers: what you'll ask for, what you'd happily accept, and the point where you'd walk away. Ask slightly above the one you'd happily accept, so a compromise still lands where you want. If the offer is already at the top of the posted range, ask about level, equity or a signing bonus instead.
4. Make the counter
Keep it short, warm and specific. For example:
“Thanks again, I'm excited about the team and want to make this work. Based on the posted range and what senior backend roles are paying, I was hoping for a base of $X. If you can get there, I'm ready to sign this week.”
The salary negotiation email generator drafts this for you and shows how far your ask is above the offer.
5. Use real leverage only
- A competing offer. The strongest reason. Share the numbers if you're comfortable; never invent one.
- Your current pay, if the offer doesn't beat it. In many US states and cities, employers aren't allowed to ask for your salary history, but you can share it if it helps.
- Scarce skills the listing asks for and you clearly have.
6. If base won't move
Companies often have more room on one-off money than on salary bands. Ask about a signing bonus, extra equity, a higher level (which raises every future raise), a later start date, or an extra week off between jobs. Compare the options in total with the job offer comparison calculator.
7. Close it properly
When you agree, ask for the revised offer in writing before you accept, and only then resign. Our guide to how much notice to give when resigning covers the next step.