12 min read
You got the offer call and your stomach dropped. Not because the number was insulting. Because you couldn't tell if it was base only, if equity was annual or grant-sized, or whether you should counter on email or jump on the phone. Mid-level SWE negotiation fails on missing structure more than on asking.
The symptom looks like this: you stall, accept fast, or throw out a number from a forum thread you can't defend. The fix isn't a pep talk. It's a checklist: written comp band, full offer packet, right channel, then one counter you can repeat calmly.
Check your resume for free while you're still in process if you're parallel-pathing roles. Strong files get multiple offers, which is when a band matters most. This page diagnoses three failure modes, shows how to tell which one you're in, and gives the fix for each.
Job searching is stressful enough without guessing on comp. This won't turn a below-level offer into a staff package. It stops you from leaving five figures on the table because you negotiated base on a call while equity sat in an attachment you didn't open.
Quick Wins
- Ask for the full offer in writing before you counter. Base, bonus, equity, vest, benefits.
- Write a three-point comp band: floor, target, stretch. Don't negotiate without it.
- Default to email for the first counter so you can't ramble under pressure.
The symptom when salary negotiation checklist steps get skipped
Recruiters can hear it in the first thirty seconds. You say "I was hoping for more" without a number. You counter base before you know the equity grant size. You accept on the call because silence felt awkward. None of that means you're bad at negotiation. It means you didn't run the checklist.
What good looks like: you thank them, ask for the written packet, take forty-eight hours, return with one clear ask tied to your research band, and you stay pleasant while you do it.
Mid-level in US tech usually maps to roughly three to five years of production ownership, not necessarily the literal title on your badge. Level labels differ by company. Your counter should reference scope you discussed in interviews, not a title you want printed on the offer.
Read how to negotiate salary in the US with email and call scripts for channel-specific wording. This page is the diagnostic: which mistake you're making and what to do before you send anything.
Edge case: competing offers with different structures. Normalize to annual total comp on a spreadsheet before you compare. Edge case two: remote role with location-based pay. Confirm which geo band applies before you build your target.
Public employer level pages sometimes list bands by metro. Peer conversations fill gaps when bands are private. Neither source is perfect. You still need three numbers written down before the recruiter calls.
Signing bonus often moves when base is tagged fixed. Ask explicitly. A five-figure sign-on can bridge a base gap without reopening level review. Model tax impact on bonus in your first year cash, not spread over four years mentally.
Three causes, how to tell, and the fix for each
Cause 1: No comp band on paper
How to tell: you can't state a floor and a target within ten seconds. You google mid-level SWE salary during the recruiter call. You feel guilty naming a number.
The fix: build a band from sources you can name in the room: company level guides if published, conversations with peers in your stack and city, and prior offer letters you've seen this cycle. Write floor, target, stretch for base and separately for equity value you would accept.
Before: Recruiter asks range on a screen. Candidate says "flexible" and hopes for the best.
After: Candidate says "Based on my research for mid-level backend roles in Austin, I'm targeting 165k to 175k base with competitive equity. I'll confirm once I see the full packet."
Illustrative numbers in that script are placeholders. Swap in your researched band. The structure matters more than the digits.
Cause 2: Wrong channel under pressure
How to tell: you made your only counter verbally, forgot half the components, and the recruiter summarized your ask wrong in email later.
The fix: use the call to listen and clarify. Use email to counter. On the call, say you're excited, you need the written offer, and you'll follow up in forty-eight hours. On email, state one primary ask and one optional lever.
Before: Phone counter: "I need like twenty more." No mention of equity or sign-on.
After: Email counter: "Thank you for the offer at L4. Based on scope discussed for the payments team, I'm looking for 172k base or equivalent total comp through a sign-on if base is fixed. I'm enthusiastic about joining and can start Nov 3."
Cause 3: Negotiating before the full packet
How to tell: you only saw base on the call. Bonus is "target not guaranteed." Equity is "we'll send details." You already said no to the first number.
The fix: request the breakdown checklist before you counter. Base salary, bonus structure, equity grant shares and vest, sign-on, relocation, start date, level, and benefits premium if relevant.
Copy-paste email to request the packet:
{`Subject: Offer details for [Your Name] - [Role]
Hi [Recruiter],
Thank you for the offer call today. I'm excited about the team and the problems we discussed.
Before I finalize my review, could you send the full offer in writing?
I'd like base, bonus target, equity grant size and vest schedule,
any sign-on, proposed level, and start date.
I'll follow up within 48 hours once I've reviewed.
Best,
[Name]`}
Edge case: recruiter pressures for instant answer. Script: "I want to give you a thoughtful yes. I review written details with my partner tonight and will email you tomorrow by 5pm ET." Edge case two: they refuse writing. That's a signal to slow down, not to improvise on the phone.
How to tell Cause 1 vs Cause 2 on your own: if you freeze when asked for a number, it's Cause 1. If you talked plenty but the recap email omits equity, it's Cause 2. If you countered before attachments arrived, it's Cause 3. Match the fix to the cause instead of repeating the same mistake on the next offer.
Second copy-paste counter email after you have the packet:
{`Subject: Offer review - [Your Name]
Hi [Recruiter],
Thank you for sending the written offer. I'm excited about the team.
After reviewing base, bonus, and equity, I'd like to discuss
total comp closer to [target base] or equivalent through sign-on
if base is constrained. I'm ready to move quickly on a revised package.
Can we reconnect tomorrow afternoon?
Best,
[Name]`}
Swap target base for your researched number. Keep one ask. Mention speed only if you mean it. Bluffing urgency backfires when they call your bluff and you hesitate.
Phone follow-up after email counter: listen first. Repeat their revised numbers back. Ask clarifying questions on vest cliff and bonus payout timing. Do not add new asks on the call unless they open the door.
Where mid-level SWE counters backfire
The pattern: aggressive tone plus vague numbers. Recruiters still forward reasonable counters. They stall vague ones.
Anchoring to a staff-level comp band when interviews scoped mid-level work burns trust. Match the level you proved in loops, or make a level-up case with examples before you ask for staff pay.
Treating RSUs like cash in your head but ignoring vest in your math. A large grant with a one-year cliff is not the same as base. Model four years before you call it a win.
Negotiating every line item in round one. Pick a primary lever. Add a secondary ask only if the first is blocked.
I've seen candidates reject offers over five thousand base while equity differed by six figures over four years. Read the whole packet.
Using fake market stats you can't source. Say what you researched and where. If you only have peer anecdotes, say that. Recruiters smell invented surveys.
Burning bridges on a decline. You may interview there again in two years. "Comp isn't aligned this cycle" beats a rant about underpaying engineers.
For interview performance gaps, read why resume gets interviews but you fail phone screens . Weak loop signal lowers comp flexibility before you ever counter.
Comparing offers from big tech vs startup: startup equity is higher variance. Discount illiquid grants in your floor math unless you truly value the upside. Big tech base is often firmer; negotiate level and refresh language instead of chasing mythical base moves.
Relocation packages are negotiable at some employers. Ask even when base is fixed. A modest relocation line can cover lease break costs without touching salary band politics.
Title inflation requests rarely work at offer stage unless interviews already scoped higher work. If you need Senior on the letter for visa or external credibility, make that ask separate from base and explain why in one sentence.
Don't negotiate benefits you won't use as filler. Recruiters hear noise. Ask about HSA match or learning stipend only if those lines change your decision.
Prep comp context while you're still interviewing
Stronger resume signal can mean multiple offers. That's when the band pays off. Keep tailoring bullet one while you research comp in parallel.
Run a free ATS check on the resume that got you to offer stage. Then score your job match on the role you are negotiating so your counter language mirrors the scope you proved on paper.
If the employer asked for a cover letter during process, keep titles aligned. Generate a cover letter revision only if you need consistent naming before you reference team scope in your counter email.
Run the salary negotiation checklist before you reply
Open a doc tonight. Write floor, target, stretch for base. Add a line for equity and bonus you need to see in writing. When the call comes, listen, thank them, request the packet, and set a forty-eight hour follow-up.
Email your counter with one primary number and one optional lever. Keep tone warm. You're not fighting the recruiter. You're aligning comp with scope you already proved in interviews.
This salary negotiation checklist for US mid-level software engineers is really a paperwork discipline. Bands beat vibes. Email beats rambling. Full packets beat base-only reactions.
If nothing moves and you're below floor, walk. If something moves and meets your target, accept cleanly and stop negotiating for sport. Good candidates lose offers by squeezing after a yes.
Save your final offer letter and your counter email. Next cycle you'll build the band faster. That's the data-driven part without inventing stats you can't cite.
Spreadsheet columns worth building once: company, level, base, bonus percent, equity grant, vest years, sign-on, geo band, remote policy. Fill as packets arrive. Decisions get easier when you're not holding four PDFs in your head.
When you accept, confirm start date and background check timeline in the same email thread. Don't ghost the recruiter after yes. Clean closes help referrals later.
If you're employed, give notice only after written offer is signed and background check path is clear. Verbal offers fail. Notice given too early is expensive.
Ask about annual refresh policy if equity is a large slice of your decision. Some employers won't budge on grant size but will commit to review language in writing. That's worth an email question even when base is fixed.
Practice reading your counter aloud once before you send. If you stumble on the number, the band isn't ready. Rewrite until you can say target base and total comp ask in one breath without apologizing.
Recruiters aren't paid to punish counters. They're paid to close roles. A calm, specific counter with a deadline makes their job easier. Vague discomfort makes it harder.
Copy-paste checklist before any counter goes out:
[ ] Floor, target, stretch written for base and total comp
[ ] Full packet received: base, bonus, equity, vest, sign-on
[ ] Counter drafted in email, not improvised on phone
[ ] One primary ask, one optional lever
[ ] 48-hour review window communicated politely
[ ] Competing offers normalized on spreadsheet
Run the checklist even when you're excited. Excitement is when vague yes answers cost the most.
Hourly vs salaried confusion hits some contract-to-hire paths. Confirm employment type in writing before you compare to prior salaried offers. A high hourly rate with no benefits can lose to a lower base with bonus and equity when you model the full year.
Level down offers happen when interview scope and written level disagree. Ask which level the packet reflects and which promotion path is documented. Countering base without fixing level mismatch repeats the same conversation at year one review.
Read more
Frequently asked questions
Email for your first counter when you need time to compare base, bonus, equity, and benefits in writing. Call when the recruiter invites a conversation and you have your band ready on paper. Never improvise numbers live without notes. Ask for the full offer breakdown in email before you counter, even if you expect to talk later.
Three numbers you can defend: a walk-away floor, a target that matches your research for role level and location, and a stretch you would accept only with extra equity or sign-on. Split base from total comp. Mid-level SWE packages often differ more on equity and bonus than on base alone. Write all components down before you reply to the recruiter.
Companies expect a professional counter on written offers. Risk rises when you anchor to a number you cannot explain, negotiate before you have the full packet, or treat equity like cash. Risk drops when you cite your research band, ask clarifying questions about level mapping, and keep tone collaborative.
You can ask to revisit if the written offer differs from what you heard on the call. It is harder once you signed. Pause at verbal stage until you see base, bonus target, equity grant size, vest schedule, and start date in writing. Say you are excited and need forty-eight hours to review the packet.
Ask which levers still move: sign-on, equity refresh language, start date, level title, remote stipend, or learning budget. Fixed base does not always mean fixed total comp. If nothing moves and you are below your walk-away floor, decline politely. A bad fit on comp early beats resentment at month six.
