12 min read
The offer email names a base number. It doesn't name whether you're priced as mid-level backend on the core squad or mid-level generalist on a shared platform team. That level-and-scope gap is where mid-level SWE negotiation actually lives. You don't need a spreadsheet full of forum screenshots. You need a band table you can defend, a counter that references the written offer, and a walk-away line you'll set before the recruiter calls back.
Before you reply, check your resume for free against the same req that produced the offer. If your file still lists generic backend duties while the panel discussed payments API ownership, fix the resume before you argue level in email. Recruiters in Workday tie compensation notes to the profile they screened.
Job searching while you're still employed is exhausting. You shouldn't leave money on the table because you countered with a number you can't explain, or because you accepted base at band max without asking about sign-on or refresh. This page walks through five ordered steps, before/after fixes, and a copy-paste counter you can send tonight.
When the portal still wants a letter, generate a cover letter that repeats the same scope language you'll use in the counter. Offer email and application file should tell the same story about squad ownership and stack.
Quick Wins
- Build a private comp band table from your own offers and peer ranges, not forum screenshots.
- Read base, level, equity grant, sign-on, and refresh lines before you name a counter number.
- Send one primary ask and one fallback in email. Finance approves written counters, not verbal lists.
- Set your walk-away floor before the recruiter calls back.
What mid-level SWE offers actually compare
I've attached compensation notes in Greenhouse where the candidate countered with a single base number and never mentioned level, on-call scope, or equity refresh. Finance sent back a polite no. The same candidate, two days later, with an email that mapped interview scope to band language, moved sign-on and grant size without touching base again.
Mid-level in US tech usually means three to six years of shipped production work, not a title on your resume. Employers price on level band, location tier, and total compensation mix. Base is one line. RSU grant, refresh policy, sign-on, bonus target, and benefits fill the rest. A composite backend engineer whose offer looked strong on base but carried a below-band equity grant lost total comp to a slightly lower base with a larger initial grant and clearer refresh language.
You're not negotiating because you're greedy. You're aligning pay with the scope the hiring manager described in the panel. When those two stories diverge, counters stall or you accept a package that reads mid-level on paper and staff-level on call rotation.
Edge case: remote tier adjustments. Some employers pay national bands. Others cut base when you move outside a hub city. Ask which tier the offer assumes before you compare against a friend's Bay Area letter.
For interview scope that supports a level move, read how to prepare for a recruiter screening call . This page applies that scope language to compensation after the offer lands.
Five salary negotiation techniques after the offer lands
Work in order. Research comes before the counter. The counter email comes before you argue equity on a second call. Walking away is step five, not step one.
Step 1: Research comp bands without fake survey numbers
Open a simple table with columns for employer, level, location tier, base, sign-on, equity grant description, and refresh notes. Fill it from sources you can defend on a call: your past offer letters, trusted peer conversations at the same level, employer-published level guides when they exist, and recruiter-shared band hints after the screen.
Before: One screenshot from a comment thread with no level, stack, or location context. You counter with that number and the recruiter asks which band you're citing.
After: Three rows in your private table at your level for backend roles in your tier, with notes on which included on-call for core infra versus product squads. You describe a range tied to level, not a single magic figure.
Split stack and company stage. A mid-level role on a mature payments platform pays differently than the same title at a seed-stage startup where equity is most of the bet. Note whether peers quoted total comp or base only.
Step 2: Anchor from the written offer breakdown
When the offer letter or recruiter email arrives, list every compensation line before you react. Base salary, level or title, equity grant size and vest schedule, sign-on bonus, annual bonus target, benefits stipends, and any review language. Compare that list to what the hiring manager said in the panel about squad ownership, on-call rotation, and system scope.
Before: Reply within an hour: Thanks, I was hoping for a higher salary. No reference to level, grant, or scope discussed with the manager.
After: Thank them, confirm you're reviewing the full package, and ask one clarifying question: which level band this offer reflects and whether on-call for the core payments squad is included in that band.
Your anchor isn't your dream number. It's the gap between their breakdown and your researched band at the scope they sold in interviews. If base sits at band max but grant size looks thin for that level, your anchor sentence names grant and refresh, not base again.
Edge case: verbal offer before written letter. Take notes on the call, send a recap email listing what you heard, and wait for the PDF before you counter.
Step 3: Send the counter email template
Use the phone for warmth. Send the counter in email so finance can approve it. Keep it to one screen. Open with excitement, restate the scope you discussed, name the gap in one sentence, state one primary ask and one fallback, and close without ultimatums.
Before: A five-paragraph essay listing every perk you ever wanted, plus a threat to walk by Friday.
After: A tight note that maps interview scope to band language and asks for a specific move on base, sign-on, or grant with a ready fallback.
Copy-paste block: mid-level SWE counter email
{`Subject: [Your Name] – [Role Title] offer – compensation discussion
Hi [Recruiter Name],
Thank you again for the offer for the [Role Title] role on [Team/Squad]. I'm excited about the scope we discussed: [one sentence on system ownership, stack, or on-call from the panel].
I've reviewed the package. Based on the [level/band] scope and my research for mid-level [stack] roles in [location tier], I'd like to discuss adjusting [primary lever: base / sign-on / equity grant] to better align with the band for this scope.
Primary ask: [specific request tied to your band table, e.g., move base to top of band / increase initial RSU grant / add sign-on]
If base is fixed at band max, I'd appreciate consideration on [fallback: sign-on / grant size / refresh timing / level title].
I'm enthusiastic about joining and can respond quickly once we align. Could we schedule a brief call this week?
Best,
[Your Name]`}
Replace bracketed lines with language from your offer letter and panel notes. Never paste a counter number you cannot explain from your private band table. If they asked for current comp earlier, redirect to range and scope instead of anchoring on your old salary.
Step 4: Pull equity and bonus levers when base is stuck
When the recruiter says base is at band max, stop repeating the same base ask. Move to sign-on bonus, initial RSU grant size, refresh cadence, annual bonus target, or level title that unlocks a higher band. Mid-level SWE packages often flex on sign-on and grant before base moves.
Before: Three follow-up emails asking for higher base after finance already said band max.
After: One email asking for a larger initial grant and a sign-on to bridge the first-year gap, with a question on refresh policy after year one.
Read vest schedule and cliff language. A bigger grant that vests slowly may lose to a smaller grant with clearer refresh after strong review. Ask whether bonus is discretionary or formula-driven. Edge case: sign-on clawback. Read repayment terms if you leave within twelve months.
Step 5: Decide when to walk
Set a walk-away floor before the counter call. Write down minimum acceptable total compensation mix, non-negotiables on level or on-call, and whether you have a second timeline open. Walking away is a business decision, not a bluff to squeeze one more email.
Before: Accepting overnight because the expiration clock scared you, then discovering grant size was below band and refresh was vague.
After: Declining politely when the final package sits below your researched floor and the scope still includes staff-level on-call without staff-level pay.
Walk when the gap is real and unmoving: they won't adjust level despite panel scope, equity terms are unclear and they won't clarify in writing, or total comp sits below your floor after you exercised both primary and fallback asks. Stay when the gap closed on sign-on or grant, or when level title moved to match scope even if base barely changed.
For leveling language that supports step two, see why weak bullet points get ignored . Thin impact bullets make level arguments harder even when the counter email is polished.
Where mid-level SWE counters stall
Countering with a forum number and no level context. Recruiters ask which band you mean. Build a private table first. Cite range and scope, not a screenshot.
Negotiating before you have a written breakdown. Verbal base without grant, sign-on, or level detail is incomplete. Ask for the full package in writing before you anchor.
Repeating base after band max. Finance already answered. Move sign-on, grant, refresh, or level title on the next email.
Ignoring on-call and scope mismatch. A mid-level title with staff-level pager load is a compensation issue. Name it in the counter alongside numbers.
Ultimatums on the first counter. Employers expect a discussion. A polite email with one primary ask and one fallback beats a threat to walk by Friday.
Accepting without reading vest and clawback language. A pretty base with a four-year cliff and no refresh notes costs more than it looks in year two.
This won't fix negotiating when you're priced two levels below the req's scope and they won't move title. It stops qualified mid-level engineers from leaving sign-on and grant flex on the table because they countered base once and stopped.
Match your file to the req before you counter
Compensation arguments land harder when your resume proves the scope you discuss in email. Upload the same PDF and posting to HireFlow's free ATS resume checker . Confirm stack, ownership, and impact language appear in dated Experience lines, not only in Skills.
When you're choosing which offer timeline to prioritize this week, paste each posting into score your job match . A stronger match score on the req that aligns with your band table is often the better counter to exercise first.
Do this now: Build your band table, read the offer breakdown line by line, send one counter email with a fallback, then run a free check on the resume that got you the offer.
Send the counter tonight
Salary negotiation techniques for mid-level SWE offers come down to research you can defend, an anchor from the written breakdown, one clean counter email, equity and bonus levers when base is stuck, and a walk-away line you set before the call. That's the sequence. Skip a step and you'll either leave money on the table or argue from a number you can't explain.
Open the offer letter on your screen. Build the band table. Send the email with one primary ask and one fallback. Then run a free ATS check on the resume that got you to the offer so scope language in Experience still matches what you wrote in the counter.
- Research bands from your own offers and peer ranges, not unverified surveys.
- Anchor from base, level, grant, sign-on, and refresh before you counter.
- Send the counter in email with one fallback lever named.
- Move sign-on and grant when finance says base is at max.
- Walk only when the gap stays real after both asks.
And if a friend asks whether to accept the first number, tell them to read the grant line first. Most mid-level SWE packages flex outside base once the counter email names scope and band language clearly.
Read more
Frequently asked questions
Start research before the first recruiter screen, but hold your counter until a written or verbal offer names base, level, and equity. Early calls need a researched range tied to level and location, not a hard floor. Once the offer lands, switch to scope language: squad ownership, on-call load, and which levers finance can move. Countering before anyone shares a band reads unprepared. Countering after the offer with a one-page email that restates scope reads like someone who read the req.
Use the phone for tone and quick clarifiers on level or band max. Send email for the actual counter. Recruiters in Workday and Greenhouse attach written notes to your profile. Verbal yeses fade after the call. A one-page email that lists base, sign-on, equity grant size, refresh timing, and start date gives finance something to approve without another round of guesswork.
Ask which levers remain open: sign-on bonus, equity grant size, refresh timing, level title, or a six-month compensation review tied to a shipped milestone. Many US tech employers hold base at band max but still move sign-on or refresh for strong matches. Name one primary ask and one fallback instead of a list of twelve perks.
Yes, when your interview feedback supported a higher scope than the level on the offer. Frame it as alignment: the panel discussed ownership of the payments API and on-call for the core squad, which maps to the next level in your career ladder. Ask whether the title and band can reflect that scope. Level moves sometimes unlock budget that base-only counters cannot reach.
Collect ranges from your own offer letters, peer conversations at your level, and employer-published level guides when they exist. Note stack, location policy, and company stage in a simple table. Patterns matter more than a single forum post. Your counter should reference the gap between their offer and your researched band, not a statistic you cannot defend on a call.
