Salary Negotiation Guide: Compensation, Equity, and Total Offer Breakdown
Salary negotiation is the process of discussing compensation with an employer after receiving a job offer — covering base salary, bonuses, equity, benefits, and other components that make up your total compensation package.
What You’ll Learn
- How to research market rates for your role and location
- Understanding RSUs, stock options, and equity compensation
- How to evaluate and compare total compensation packages
- Negotiation strategies and tactics that work
- How to choose between multiple offers
Why Negotiation Matters
The single highest-leverage financial decision of your career is your first job offer — and every subsequent offer builds on it. A $10,000 difference in starting salary compounds to over $500,000 over 30 years (assuming 5% annual raises). Yet 55% of software engineers accept the first offer without negotiating. Learning to negotiate effectively is worth more than any LeetCode problem you’ll ever solve.
DodaTech believes in transparent compensation — engineers at Doda Browser and Durga Antivirus Pro are encouraged to negotiate and are provided with market data to make informed decisions.
Learning Path
flowchart LR
A[Interview Questions] --> B[Mock Interviews]
B --> C[Negotiation Guide<br/>You are here]
C --> D[Offer Evaluation]
D --> E[Career Growth]
style C fill:#f90,color:#fff
Total Compensation Breakdown
Total Compensation (TC) = Base Salary + Bonus + Equity + Benefits + Signing Bonus
Example: Senior Engineer at a public tech company
Base Salary: $160,000
Annual Bonus: $24,000 (15% target)
RSUs (vested/yr): $40,000 ($160k over 4 years)
Signing Bonus: $30,000 (one-time)
Benefits: $15,000 (health, 401k match, etc.)
─────────────────────────────────────────
Year 1 TC: $269,000
Year 2-4 TC: $239,000/yearBase Salary
The fixed annual cash compensation. This is the most negotiable component and the foundation for future offers.
Annual Bonus
Typically 10-20% of base salary for mid-level, 20-40% for senior roles. Some companies guarantee first-year bonuses; others are performance-based.
Equity Compensation
RSUs (Restricted Stock Units)
# RSU valuation for a public company
offered_rsus = 1000 # shares offered
current_price = 150 # current stock price
total_value = offered_rsus * current_price # $150,000
annual_vest = total_value / 4 # $37,500/year (standard 4-year vest)
# With 15% annual stock appreciation:
def projected_rsu_value(initial_shares, price, years=4, growth=0.15):
total = 0
for year in range(years):
vest = initial_shares // 4
total += vest * price * (1 + growth) ** year
return total
print(f"Projected RSU value: ${projected_rsu_value(1000, 150):,.0f}")
# Output: Projected RSU value: $187,612Stock Options (Startups)
# Option valuation for a private company
option_count = 10000 # options granted
exercise_price = 2.00 # strike price
current_value = 0.50 # 409A valuation (lower than strike = underwater)
potential_value = 15.00 # estimated exit value
# Current value (if you exercise today)
current_profit = option_count * (current_value - exercise_price)
# Result: negative (underwater — no point exercising)
# Potential value (if company exits at estimated value)
potential_gain = option_count * (potential_value - exercise_price)
print(f"Potential gain at exit: ${potential_gain:,.0f}")
# Output: Potential gain at exit: $130,000Signing Bonus
One-time cash payment, typically $10,000-$50,000 for mid-level, up to $100,000+ for senior roles. Repayable if you leave within 1-2 years (clawback).
Researching Market Rates
Sources
- Levels.fyi — Best for tech company compensation data
- Glassdoor — Salary estimates by role and company
- Blind — Anonymous compensation sharing
- Tequity — Equity benchmarking
- H1B Salary Database — Public data for visa-sponsored roles
Factors Affecting Compensation
| Factor | Impact |
|---|---|
| Location | San Francisco/NYC premium: 20-40% above national average |
| Company size | Large public tech: highest total comp |
| Experience | Each year adds ~5-10% to base |
| Specialization | ML/AI, security, infrastructure: premium skills |
| Competing offers | Single strongest negotiating lever |
The Negotiation Process
Before the Offer
- Know your number: Determine your minimum acceptable compensation and your target
- Have alternatives: The best negotiator is the one who can walk away
- Research: Know the company’s compensation bands and levels
When You Receive the Offer
# Calculate your target based on research
class OfferAnalysis:
def __init__(self, base, bonus_pct, rsu_total, sign_on):
self.base = base
self.bonus = base * bonus_pct
self.rsu_annual = rsu_total / 4
self.sign_on = sign_on
self.year1_tc = base + self.bonus + self.rsu_annual + sign_on
self.yearly_tc = base + self.bonus + self.rsu_annual
def summary(self):
return f"""
Year 1 TC: ${self.year1_tc:,.0f}
Year 2+ TC: ${self.yearly_tc:,.0f}
Base: ${self.base:,.0f}
Bonus: ${self.bonus:,.0f}
RSU/yr: ${self.rsu_annual:,.0f}
Signing: ${self.sign_on:,.0f}
"""
offer = OfferAnalysis(
base=155000,
bonus_pct=0.15,
rsu_total=120000,
sign_on=25000
)
print(offer.summary())
# Output:
# Year 1 TC: $233,250
# Year 2+ TC: $208,250Responding to an Offer
Step 1: Express enthusiasm
“Thank you for the offer. I’m very excited about the role and the team. I’d like to take a few days to review the details carefully.”
Step 2: Present your case
“Based on my research and experience, and considering my competing offer from [Company], I was hoping the base could be closer to $170,000. I have [specific achievements/skills] that I believe justify this level.”
Step 3: Negotiate components
If base is firm, ask for:
- Higher signing bonus
- More RSUs
- Performance bonus guarantee
- Earlier equity refresher
- Title uplift
Scripts for Common Situations
When base is non-negotiable:
“I understand the base is firm at this level. Could we increase the signing bonus or equity to make the total package more competitive?”
With a competing offer:
“I have an offer from [Company] for $Y total compensation. I’d prefer to join your team — can you match or come closer to this?”
At the partner level:
“I’d like to discuss the leveling. My experience [specific examples] aligns more with the senior level. Could we revisit the leveling based on the interview feedback?”
Comparing Offers
offers = [
{
"company": "Startup A",
"base": 140000,
"bonus": 0,
"equity_value": 50000, # Estimated annual value
"equity_type": "options",
"sign_on": 10000,
"benefits": 12000,
"culture_score": 8,
"growth_score": 9,
},
{
"company": "Big Tech B",
"base": 165000,
"bonus": 24750,
"equity_value": 45000,
"equity_type": "rsu",
"sign_on": 30000,
"benefits": 18000,
"culture_score": 7,
"growth_score": 7,
},
]
for o in offers:
tc = o["base"] + o["bonus"] + o["equity_value"] + o["sign_on"] + o["benefits"]
print(f"{o['company']}: ${tc:,.0f} TC | Culture: {o['culture_score']}/10 | Growth: {o['growth_score']}/10")Decision Framework
Beyond total compensation, evaluate:
- Growth: Will you learn? Will your skills grow?
- Impact: Will your work matter?
- Culture: Do you like the people and environment?
- Stability: Is the company financially stable?
- Location: Remote? Office? Commute?
- Title: Does it advance your career trajectory?
Common Negotiation Mistakes
1. Not Negotiating at All
55% of engineers accept the first offer. The company expects you to negotiate — the first offer is rarely their best.
Fix: Always ask for something. Even “could you review the leveling?” opens the door.
2. Negotiating Before You Have an Offer
Discussing salary before the company has decided they want you weakens your position.
Fix: Say “I’d like to discuss compensation once we both agree this is a good fit.”
3. Lying About Competing Offers
Companies may verify competing offers. Getting caught destroys trust and can result in offer revocation.
Fix: Only mention offers you actually have. If you don’t have one, negotiate on market data.
4. Focusing Only on Base Salary
Base salary is important, but equity and signing bonus can be more flexible.
Fix: “If the base is firm, could we increase the signing bonus or equity?”
5. Being Adversarial
Negotiation doesn’t have to be confrontational. The recruiter is on your side — they want to close you.
Fix: Frame it as collaboration: “Help me understand what’s possible so we can find a package that works for both of us.”
6. Accepting Immediately
Even if you love the offer, accepting immediately leaves money on the table.
Fix: “Thank you, I’d like to take 2-3 business days to review the details.”
7. Not Considering Total Compensation
A $10,000 base difference matters less than $100,000 in equity difference.
Fix: Always evaluate total compensation, not just base salary.
Practice Questions
1. What are the five components of total compensation?
Base salary, annual bonus, equity (RSUs/options), signing bonus, and benefits.
2. What is the difference between RSUs and stock options?
RSUs are actual shares granted at hiring, vesting over time. Stock options give you the right to buy shares at a fixed price (strike price) later. RSUs have value even if the stock price stays flat; options only have value if the stock price exceeds the strike price.
3. How do you research market rates for a role?
Use Levels.fyi, Glassdoor, Blind, and the H1B salary database. Factor in location, company size, experience level, and specialization.
4. What should you do if base salary is non-negotiable?
Ask for other components: higher signing bonus, more equity, performance bonus guarantee, better title, earlier refresher, or relocation assistance.
5. How do you handle a situation with no competing offers?
Negotiate based on market data: “Based on my research, the market rate for this role is $X. My skills and experience align with the higher end of this range.”
Challenge: Research current market rates for your role and experience level using Levels.fyi and Glassdoor. Create a compensation target range with minimum, target, and stretch numbers for base salary, bonus, and equity.
FAQ
What’s Next
| Tutorial | What You’ll Learn |
|---|---|
| Mock Interview Practice | Full-length interview simulations |
| Career Growth for Engineers | Advancing your engineering career |
| Technical Interview Strategies | Complete interview preparation guide |
Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. Updated 2026-06-20.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro