Software Engineer Salary in San Francisco — 2026 BLS Data

$220K median base salary · San Francisco
BLS OEWS · 2024 data

Salary distribution

Percentile breakdown of Software Engineer base salaries in San Francisco.

The $220K median base for a software engineer in San Francisco is the headline number, but it hides more than it reveals. Pulled from BLS OEWS May 2024 data for SOC code 15-1252, it covers everyone from a brand-new L3 at a quiet enterprise SaaS company to a 12-year L6 platform lead at a hyperscaler. The spread is enormous — P25 to P90 covers a 3x range — and the BLS number ignores equity entirely, which is where most of the upside lives in this city. Treat $220K as the floor for “I’m being paid fairly as a mid-level IC at a normal tech company,” not as a target.

How Software Engineer salaries compare across major tech hubs

San Francisco still leads the pack on base salary, but the gap to other hubs has compressed sharply since the 2021 peak. SF median base sits at $220K. New York City lands around $200K-$210K for the same SOC code, driven up by finance-adjacent shops (Citadel, Two Sigma, Bloomberg) that pay near-FAANG numbers without the equity tail. Seattle, anchored by Amazon, Microsoft, and Meta’s second-largest engineering office, runs $195K-$210K — within shouting distance of SF on cash, narrower on equity for non-FAANG roles.

Austin sits around $160K-$175K median base. The gap looks dramatic on paper but flattens once you account for cost of living: Austin’s COL index of 119.3 versus San Francisco’s 178.6 means a $170K Austin base has roughly the same purchasing power as $254K in SF. Remote-US roles benchmarked to “national” pay bands typically land $160K-$190K — Anthropic, Stripe, and GitLab anchor the high end here; smaller series-B startups anchor the low.

The compression matters because it changes the calculus on relocation. In 2021 you needed SF or NYC for a real top-of-market offer. In 2026, a senior IC at a profitable remote-first startup can match an SF L5 on cash without the rent.

What drives the spread in San Francisco

Three factors explain why the P25 ($165K) to P90 ($480K) gap is so wide inside one city:

Company tier. A FAANG L4 (Google, Meta, Apple) lands $220K-$260K base with $80K-$140K in annualized equity. The same engineer at a series-B startup might see $180K base and equity that’s nominally worth $200K but practically worth a lottery ticket. An early-stage seed company often pays $140K-$170K and leans hard on equity narrative. Stripe, Databricks, OpenAI, and Anthropic now consistently outpay public FAANG on total comp for senior+ roles — that’s a real shift from five years ago.

Level. L3 (new grad) starts at $180K-$210K total comp at top companies. L4 mid-level: $280K-$350K. L5 senior: $380K-$480K. L6 staff: $500K-$700K. L7 principal: $700K-$1.2M+. The BLS bucket lumps all of these into one occupation code, which is why the percentile spread looks so wild.

Tech stack premium. AI/ML engineers and applied research roles command 20-40% premiums over generalist backend or full-stack roles at the same level in 2026. A staff ML engineer at OpenAI or Anthropic clears $700K-$900K routinely; a staff full-stack engineer at a similarly-sized non-AI company maxes around $500K-$550K. Infrastructure and distributed systems roles sit in the middle.

Total compensation: base vs bonus vs equity

For a typical L4-L5 software engineer in San Francisco, the breakdown looks roughly like this at a public tech company:

  • Base salary: $220K. This is the BLS-tracked number and it’s what shows up on your W-2 line 1. Bands are usually published internally and recruiters have limited flexibility — typically ±5-8%.
  • Target bonus: ~$40K. Most public tech companies pay 15-20% of base as an annual cash bonus tied to company and individual performance. FAANG hits these targets reliably; smaller public companies less so.
  • Annualized equity: ~$60K. This is your four-year initial RSU grant divided by four, valued at grant-date stock price. At an L4 the initial grant is often $200K-$280K vesting 25/25/25/25 or front-loaded 33/33/22/12.

That sums to roughly $320K total comp at L4-L5. Refresh grants — annual top-ups that start vesting in year 2 — add another $40K-$80K annualized once they kick in, which is why year 2-3 comp often exceeds the offer letter number.

At L6 staff: base climbs to $250K-$280K, bonus to $50K-$70K, and equity becomes the dominant component at $200K-$350K annualized. Total: $500K-$700K. L7+ pushes $700K-$1.2M, with equity making up 60-70% of the package. The standard advice — “negotiate equity hardest at senior levels” — exists because that’s literally where the money is.

Signing bonuses are separate and typically $25K-$75K at L4-L5, $75K-$150K at L6+. They’re paid in year 1 only and usually have a clawback if you leave inside 12 months.

Cost-of-living adjusted comparison

San Francisco’s COL index of 178.6 means everything from rent to groceries to childcare costs 78.6% more than the US national average. Austin’s 119.3 means a 19.3% premium. The math:

A $220K SF base, COL-adjusted, has the same purchasing power as $147K at the US average, or roughly $176K in Austin. Flip it: to match $220K of SF purchasing power, Austin only needs to pay you $147K. Most remote-friendly companies that use geographic pay bands have figured this out — which is why Austin offers from coastal companies often land around that mark.

Where the model breaks: rent dominates the COL index but doesn’t scale with income above a certain threshold. A $220K SF engineer paying $3,800/month for a one-bedroom is using 21% of gross on rent. The same engineer in Austin at $170K paying $1,800/month is at 13%. The Austin engineer has more left over for everything else — savings, equity exercise costs, lifestyle. That’s the case for staying remote at senior levels.

Negotiation playbook for SF SWE

Three specific levers that move offers in 2026:

1. Target P75 if you got a clean “yes.” If the recruiter or hiring manager said something like “we’d love to make you an offer” without hesitation or hedging, you’re a strong candidate and they have room. The 75th percentile ($310K total comp equivalent at L4-L5) is the realistic ceiling without burning the relationship. Asking above P90 signals you don’t understand the market and tends to get countered with their initial number.

2. Push hardest on signing bonus. Recruiters have far more discretion on signing than on base bands or equity refresh schedules. Base often requires VP approval to move; equity grants are tied to level guidelines; signing bonuses are usually within recruiter authority up to a posted cap. If you have a competing offer with a $50K signing, asking the new employer to match is the cleanest ask.

3. Negotiate refresh grants at the 18-month mark. Initial grants vest over four years but most companies issue refresh grants annually starting year 2. The size of your first refresh sets the trajectory for years 3-4 — a strong perf review at month 18 plus an explicit conversation about refresh (“I’d like to make sure my comp trajectory matches my performance”) often moves the needle $30K-$60K in annualized equity. Don’t wait for them to offer it.

Caveats with this data

BLS OEWS is the most rigorous public salary source — mandated reporting covering tens of millions of workers — but it has known limitations worth flagging:

  • Equity is excluded entirely. For public-company tech roles, BLS understates total comp by 25-40%. For pre-IPO startup roles, the gap can be larger or zero depending on what you believe the equity is worth.
  • The data is lagged. May 2024 release covers wages paid in May 2024. By the time you read this in 2026, headline numbers at top companies have moved 8-15% higher.
  • SOC 15-1252 lumps L3-L7 together. That’s why the percentile spread looks so dramatic. A “median software engineer” is a statistical artifact, not a real person.

For startup and pre-IPO compensation benchmarking, supplement BLS with Levels.fyi (where the SF Bay Area median total comp sits around $273K across all levels in 2026) or the salary ranges California now requires on job postings. The triangulation of BLS base, Levels total comp, and posted ranges gets you within ~10% of what any specific offer should look like.