By Peter Miller · Published March 24, 2026 · Last updated: September 15, 2026
11 min read
You got the senior offer. Relief hits first. Then you notice the letter only spells out base and a stock grant with no refresh language. Most senior SWE negotiations stall right there because candidates counter on salary alone and never ask how equity replenishes in year two. You're not being greedy when you ask what's missing. You're reading the contract.
Check your resume for free before the compensation call. Hiring managers reopen your file when comp partners question level. If bullet one still reads mid-level scope, your counter fights the title they already picked.
This page won't quote market medians or pretend one number fits every city. You'll get a five-step checklist, two edge cases, before-and-after counter frames, and a copy-paste email skeleton. Job searching's stressful enough without accepting a package you never mapped component by component. If you've only ever negotiated base before, the table in step one is the habit shift.
If you're reading this with an offer letter open, don't reply tonight with your gut number. Run step one below first. Thirty minutes of inventory beats a single base ask you'll regret after grant math.
Quick Wins
- Build a comp table with base, bonus, equity, signing, refresh, and benefits before you call back.
- Ask which components are flexible when the recruiter says the band is fixed.
- Email a written counter with separate lines per component, not one round number.
What total compensation includes for senior SWE offers
US senior software engineer packages mix cash and equity with different clocks. Base pays monthly. Bonus targets pay on a cycle with performance gates. Initial equity vests on a cliff schedule. Refresh grants may arrive later on their own rhythm. Treating the offer like one salary number hides where you're actually leaving value.
The inventory rule: write six rows before you negotiate: base salary, annual bonus target percent, initial equity grant and vesting, signing bonus if any, refresh policy, and benefits you care about (remote stipend, learning budget, PTO, healthcare tier). Empty cells are questions, not acceptances.
I've watched strong engineers accept verbal promises on refresh that never appeared in the letter. Recruiters aren't hiding malice. They're moving fast. Your job is to convert verbal answers into written lines before you resign.
Level codes matter as much as dollars. Senior, staff, and principal bands carry different equity budgets even when titles sound similar. Ask which internal level the offer maps to and whether the band allows movement on grant size without a title change.
Edge case: pre-IPO employer with options instead of RSUs. Add a row for strike price, preferred price context the company will share, and exercise window after departure. You still won't get a guaranteed outcome. You will see what's missing compared to a public RSU letter.
Edge case two: remote role with location-based pay. Confirm which metro band applies and whether relocation later retriggers band review. A counter that ignores band logic gets rejected even when your skills justify more.
For how resume scope supports level conversations, see how resume expectations evolve . Negotiation and resume proof should tell the same seniority story.
Salary negotiation checklist for US senior software engineers: five steps
Work in order. Each step ends with a deliverable you can paste into email or bring on the recruiter call.
Step 1: Build the component table
Open a blank doc. Label rows for base, bonus target, initial equity, signing bonus, refresh policy, and priority benefits. Fill what the letter states. Highlight blanks.
Before: You remember base and stock but not bonus percent or refresh.
After: Every row has a value or a question mark you will ask tomorrow. No silent gaps.
Step 2: Pull three resume proof points for scope
Re-read bullet one under your current role. Pick three lines that show team size, system scope, or business outcome. You'll reuse these when comp asks why you belong at the top of the band.
Before: Counter email says you deserve more because you've worked hard.
After: Counter cites shipped outcomes from your resume: led eight-engineer payments migration, owned on-call for tier-one API, cut incident MTTR with runbook program.
Step 3: Ask band questions before you name a number
On the recruiter call, confirm level, location band, and which components flex. Ask directly: when do refresh grants typically get reviewed, and is refresh tied to performance rating or anniversary?
Do not open with your current paycheck unless a form forces it. Range language tied to level and city keeps equity in the conversation.
Before: You ask only can base move.
After: You leave the call knowing whether signing bonus or grant size is the movable lever this quarter.
Step 4: Send a written component counter
Email a short table with separate asks. Thank them, restate excitement, list each component with your ask and one-line rationale tied to scope proof. Ask for updated letter language on refresh if verbal answers differ from the PDF.
Copy-paste counter skeleton:
{`Subject: [Your name] – [Role title] offer follow-up
Thanks again for the offer. I'm excited about [team/product].
Component | Offer letter | My ask | Notes
Base | [from PDF] | [your ask] | [level/scope line]
Initial equity | [from PDF] | [your ask] | [vesting/cliff ok?]
Signing bonus | [from PDF] | [your ask] | [if blank, ask]
Refresh policy | [verbal?] | [written ask] | [anniversary vs promo]
Bonus target | [from PDF] | [confirm %] | [payout timing]
Happy to jump on a call once you've had time to review with comp.`}
Step 5: Confirm refresh, cliff, and bonus in the final letter
Before you resign, read the revised PDF line by line. Vesting start date, cliff months, bonus target percent, and any refresh sentence should match what you negotiated. Verbal yes with silent letter is a no.
Edge case: they cannot change base but add RSUs. Take the win and document grant size and vesting. Edge case two: competing timeline. Ask for written extension on decision date instead of accepting pressure to skip inventory.
For interview follow-ups that keep momentum while you negotiate, see LinkedIn networking scripts for US senior tech professionals . A polite hiring-manager note is not a counter, but it keeps the thread warm while comp reviews your table.
Where senior SWE counters stall
Base-only negotiation. You ask for higher salary. Recruiter moves a little. You never learn refresh exists or doesn't. Fix: component table in step one every time.
Verbal accept without letter update. Great call, handshake, old PDF. Fix: do not resign until refresh and grant language match the call.
Resume still reads mid-level. Comp partner downgrades level while you argue dollars. Fix: rewrite bullet one before the counter, not after rejection.
Single round number with no context. I need X total.comp partners cannot route opaque asks. Fix: separate rows so they can trade levers.
Ignoring bonus and benefits. High base with capped bonus and thin healthcare tier can lose to moderate base with better bonus target and PTO. Fix: compare rows, not headlines.
Negotiating before you have the written offer. Phone enthusiasm is not an offer. Fix: inventory the PDF first; verbal ranges are hints, not anchors.
Threatening competing offers you cannot document. Bluffing burns trust. Fix: cite real timelines or skip the bluff and ask which components can move.
Skipping the hiring manager alignment. Recruiter routes counters, but managers sponsor exceptions. Fix: one factual note on scope after you send the table if the manager is engaged and supportive.
Prep files before you counter
Negotiation runs on written proof. Make sure your resume and match score align with the senior scope you're claiming before comp reviews your table.
Run a free ATS check on the resume you'll stand behind in the call. Broken parsing should not be the reason a manager reopens a weaker version during comp review.
Generate a cover letter that repeats bullet one's scope metric. Consistency across files helps when a hiring manager forwards your packet to compensation with a one-line endorsement.
Edge case: internal promotion with pay band transparency. You still need component inventory. Internal letters hide refresh timing as often as external ones.
Edge case two: contract-to-hire path. Ask whether conversion refreshes equity from day one of full-time employment or starts a new cliff. Put the answer in email before you sign the contract extension.
Send the written counter
Senior offers reward preparation more than aggression. Build the component table, align resume scope proof, ask band questions, email separate asks, and confirm refresh language in the final letter. That's the whole salary negotiation checklist for US senior software engineers in practice.
Open your offer PDF tonight. Highlight every blank row. Email questions tomorrow before you counter base alone. One afternoon of inventory beats a year of wondering what refresh you never asked about.
Save recruiter answers in the same doc as your table. When the revised letter arrives, diff it against the call. Mismatches are follow-up emails, not assumptions.
And when a component cannot move, note which lever did. A higher grant with flat base still changes year-three pay if refresh is real. Compare packages across offers row by row, not by which recruiter sounded friendliest on the phone.
Job searching is hard. You earned the offer. You're allowed to read it like a contract, not a gift. Polite, specific, written asks are how senior candidates keep respect and improve packages without fantasy numbers.
Block forty-five minutes after the offer lands. Run all five steps before you tell anyone you accepted. Friends and family will pressure you to celebrate early. Inventory first, celebrate after the letter matches the call.
Keep your component table template for the next role. Refresh policy questions you ask once become copy-paste for the next offer cycle. Senior engineers negotiate more than once in a career. Build the checklist once, reuse the skeleton.
When you compare two offers, add a row for manager scope and promotion path. Compensation is not only cash. A weaker package with a team that ships and promotes on schedule beats a richer letter with a dead-end bench role. Write that row honestly before you decide.
After you sign, archive the final letter and your counter email in one folder. Next negotiation starts faster when you remember which questions actually moved the package last time.
Salary negotiation checklist for US senior software engineers is not a one-time event. Anniversary reviews reuse the same component table. Refresh conversations go smoother when you still have last year's inventory doc one click away.
Role-play the recruiter call with a friend who's negotiated before. Have them push on band limits and refresh timing while you practice asking component questions without blurting your current pay. Ten minutes of awkward practice beats a live fumble when the real recruiter says the budget is tight.
When you're comparing public and private employers, add a row for liquidity timeline. RSUs with a known vest schedule behave differently from options with an unknown exit. You're not picking a winner in advance. You're making sure you understand what each row pays and when.
Don't negotiate over text or Slack unless the recruiter invites it. Email gives you a paper trail comp partners can forward. Keep tone warm and sentences short. Long emotional paragraphs slow approval more than a clean table with five rows.
If the company won't move on any component, ask for a six-month compensation review in writing with criteria. That's not a failure. It's a dated checkpoint you can calendar instead of hoping someone remembers verbally. Some packages improve after start date when performance proof lands.
Update bullet one on your resume the same week you send the counter. If comp downgrades level, you'll want scope proof that already matches staff-level work, not a midnight rewrite under deadline pressure from your current employer.
You're allowed to ask for forty-eight hours to review the letter even when you're excited. Inventory beats speed. Recruiters expect senior candidates to read before they sign. A polite delay with a clear follow-up date reads professional, not difficult.
Save a blank component table template in your notes app today. Next offer season, you'll paste the PDF numbers in minutes instead of rebuilding the framework from scratch while adrenaline is high and details blur.
Read more
Frequently asked questions
Ask about refresh policy before you accept, even if the initial grant looks fine. Many US tech employers discuss refresh at anniversary or promotion cycles, not in the opening letter. A written note that confirms refresh eligibility, typical cadence, and whether refresh is tied to level or performance gives you something to compare across offers without guessing.
No, if you present a component table instead of a vague ask for more money. Recruiters can route a structured counter to compensation partners faster than a single number with no context. Separate base, initial equity, signing bonus, and refresh expectations so the company can move on the lever they control.
Only when required by a form and after you understand the band structure. Deflect early phone screens with a range tied to level and location, not your current paycheck. Sharing current base alone often anchors the whole package low because the recruiter stops asking about equity and bonus.
Yes. Hiring managers reopen your file when compensation partners push back on level. Bullets that prove scope, team size, and shipped outcomes support a level bump more than interview charm. Update bullet one before the negotiation call if your resume still reads junior next to the title they offered.
Bands are often fixed on base and flexible on signing bonus, equity grant size, start date, or refresh timing. Ask which components are movable. A firm no on base with a yes on extra RSUs or a six-month earlier refresh review is still a win worth documenting in writing.
