I’m trying to understand realistic salary expectations for software engineers at different experience levels and locations. I’m comparing job offers and don’t want to undersell myself, but online ranges are all over the place. Can you share what you or your team actually make, along with years of experience, location, and company size so I can better judge if my offers are fair?
Quick ranges based on public data (Levels.fyi, Blind, Glassdoor) and what I have seen. All numbers are total comp per year, not only base. All USD.
Entry level, 0 to 2 years
Bay Area / Seattle big tech: 160k to 230k
Other US hubs (NYC, Boston, Austin): 130k to 190k
Mid tier cities (Denver, Atlanta, Raleigh): 100k to 150k
Remote for mid size SaaS: 90k to 140k
Low cost areas or non tech companies: 70k to 110k
Mid level, 3 to 6 years
Bay Area / Seattle big tech: 220k to 350k
NYC and similar: 180k to 280k
Mid tier cities: 130k to 200k
Remote product companies: 120k to 190k
Traditional companies: 90k to 150k
Senior, 6 to 10 years
Bay Area / Seattle big tech: 280k to 500k
NYC etc: 220k to 380k
Mid tier cities: 160k to 250k
Remote: 150k to 240k
Traditional: 120k to 190k
Staff and above
Bay Area big tech: 450k to 900k plus for top staff/principal
Strong product companies: 300k to 600k
Others: 200k to 400k
Rough base salary only ranges
Entry: 80k to 150k
Mid: 120k to 190k
Senior: 150k to 230k
Staff: 190k to 280k
Things to check on your offers. This is where people undersell themself.
-
Total comp
Base
Target bonus percent
Equity value per year and refresh schedule
Signing bonus and clawbacks -
Cost of living
Look at rent, taxes, healthcare. A 200k job in SF might feel like a 130k job in a cheaper city. -
Level mapping
Compare titles with Levels.fyi. Senior at one place equals mid at another. That affects pay bands. -
Remote vs on site
Some remote roles pay 10 to 30 percent less than Bay Area roles for same level. -
Market check for your case
Use Levels.fyi offer tool
Check Blind salary threads for your level and city
Filter Glassdoor by location, title, experience
Easy negotiation script
“Based on my research for [city] and [level], a competitive total comp seems closer to . Is there room to move base or equity toward that range”
If you want specific feedback, post:
City or remote
Years of experience
Industry and company size
Offer breakdown, base, bonus, equity, sign-on
People here can tell you fast if the offer is low, fair, or strong.
Adding on to what @mike34 wrote, here’s a more “how to use those numbers in real life” take, and a couple places I slightly disagree.
1. Think in “bands,” not exact numbers
For realistic expectations in the U.S. (total comp, not just base), I’d mentally anchor like this:
-
Entry (0–2 yrs)
- Top tech hubs (SF Bay, Seattle): ~150k–230k
- Big cities (NYC, Boston, Austin): ~120k–190k
- Mid / cheaper cities or solid remote roles: ~90k–150k
- Small companies / non-tech orgs: ~70k–120k
-
Mid (3–6 yrs)
- Hubs: ~200k–330k
- Big cities: ~160k–260k
- Other: ~120k–200k
-
Senior (6–10 yrs)
- Hubs: ~250k–450k
- Big cities: ~200k–350k
- Other: ~150k–250k
-
Staff+
- Hubs at real big tech: ~400k–900k+
- Strong product companies: ~250k–600k
- Everywhere else: ~180k–400k
These overlap on purpose. “Good” offers sit in the upper half for your band and location.
2. Where I lightly disagree with @mike34
He’s mostly spot on, but in 2024+ you’ll see:
-
More variance by company quality than city.
A strong remote first product company can beat a mediocre SF company. Location is no longer the only “king.” -
Entry levels are wider than people think.
You can absolutely see <70k in low cost areas or non-tech, especially for pure junior / no degree / bootcamp. So if you’re seeing 65k in some random small city, it’s not that the world is broken, it’s that the company is not playing in the same market as FAANG-like comp.
3. How to sanity check YOUR offer without going crazy
Online ranges are all over the place because they mix:
- base vs total comp
- pre-2022 boom vs current market
- FAANG vs small local consulting shop
To keep your sanity, do this:
- Classify the offer:
- Location: hub / big city / mid city / remote / low cost
- Company type: Big tech, strong product company, mid-size SaaS, agency/consulting, traditional enterprise
- Level: entry / mid / senior / staff (map against Levels.fyi leveling, not the title they gave you)
Once you know those three, compare against the ranges above, and @mike34’s numbers, and ignore anything that’s clearly about a different bucket (like Google L5 salaries if you’re looking at a random healthcare company).
4. Percent check instead of absolute number
Quick mental trick I use:
- If your total comp is ~30 to 40 percent under the “big tech hub” range for your level, and you’re in a much cheaper city, that can still be fair.
- If it’s 50 percent+ under and your cost of living is not 50 percent cheaper, there’s probably room to negotiate.
- If you’re within ~10 to 15 percent of those ranges for your “bucket,” that’s usually fine / normal.
5. Red flags that you’re underselling yourself
Even if the number looks okay, these are warning signs:
- No bonus and no equity and below median base for your level/location.
- “We don’t really do levels” combined with “we’ll figure pay out as we go.” Translation: chaos and usually underpay.
- Huge signing bonus but tiny equity, especially at big public companies. That usually means they are trying to patch a weak recurring package.
6. If you want a quick reality check from people
Post something like:
- Location or “remote”
- YOE (years of experience) and rough level (entry / mid / senior)
- Company type (big-tech-ish, startup, boring enterprise, etc.)
- Offer: base, bonus %, equity per year (and years), sign-on if any
People can usually tell you in 1 reply whether you’re in “low, fair, strong” territory.
TL;DR: Use @mike34’s ranges as “what’s possible” at the top and my slightly more conservative bands as “what’s common.” If you’re in the bottom 25 percent for your bucket and you have other options, that’s when I’d absolutely push back in negotiation.
You already got solid “what’s normal” bands from @mike34 and the follow‑up, so I’ll zoom in on how to turn that into leverage when comparing offers, plus a couple spots where I see it differently.
1. Treat offers like portfolios, not single numbers
Instead of “I’m getting 160k, is that good?” break it into:
- Base salary
- Bonus (target % and how realistic)
- Equity (value per year, vesting schedule, refreshers)
- Benefits (401k match, health, PTO, parental leave, training budget)
- Risk factor (startup vs big public, job security, on‑call pain)
Two offers with the same “total comp” can feel very different. For example:
- Offer A: High base, low equity, stable, boring work, 40 hours a week
- Offer B: Lower base, big equity, chaotic startup, 60+ hours
Depending on your risk tolerance, A might beat B even if the headline total is smaller. This is where I slightly disagree with the purely numerical “percent off big tech” view: qualitative stuff can easily be worth 15–20 percent of comp.
2. Use lifestyle bands along with salary bands
On top of the location & level bands they gave, I’d bucket jobs into “lifestyle tiers”:
- High pay, high grind (FAANG‑adjacent, hyper‑growth startups)
- Good pay, moderate grind (strong product companies, solid SaaS)
- Okay pay, chill (internal tools at boring enterprises, gov, edu)
You should compare offers within the same lifestyle tier. A 210k grind‑fest vs a 170k chill job is not an apples‑to‑apples comparison. That 40k delta might effectively be the price of your evenings and weekends.
3. Sanity checking without overfitting to FAANG
Where I differ a bit from the “anchor to big tech hub numbers” idea:
- Market power is lumpy. A random healthcare company is not competing head‑on with Meta for talent. Trying to squeeze FAANG‑adjacent comp out of them often fails and wastes time.
- Instead, aim to be in the top third of their internal band for your level. That usually means:
- You have rare or directly relevant skills
- They see you as solving revenue‑or‑risk‑critical problems
- You’re near their “stretch” budget for the role
Ask (politely) things like:
“For this level and location, is this offer closer to the middle or top of your band?”
You will not always get a straight answer, but you’ll often get a hint.
4. How to pressure test the non‑salary pieces
Questions that reveal real value:
- Equity: “What’s the most recent 409A / current market cap and fully diluted share count?” If they cannot or will not tell you, treat the equity value as heavily discounted.
- Bonus: “How often has the team hit target bonus in the last 3 years?” If the answer is vague, mentally cut the bonus by 30–50 percent in your comparisons.
- Promotions: “What does it usually take to move from this level to the next, and how long does that typically take here?” Slow promo culture can trap you at the lower end of those bands for years.
5. Offer comparison trick: “effective hourly” pay
Quick and dirty:
- Estimate realistic weekly hours (ask the team privately if you can).
- Add likely on‑call, crunch periods, weekend work.
- Compute effective hourly: total comp ÷ (hours per week × 52).
Two offers both at 200k total:
- Job 1: 40 hrs, no on‑call → ~96/hr
- Job 2: 55 hrs, frequent weekends → ~70/hr
That gap is enormous and often more informative than nominal salary.
6. Negotiation framing that tends to work
Instead of “I want 20k more,” use:
-
Market alignment:
“Based on my YOE and similar roles in [city / remote], I was targeting total comp closer to X. Is there room to move the base and/or equity toward that range?”
-
Multiple levers:
“If the base is fixed in this band, could we explore higher equity, a sign‑on, or a stronger bonus target?”
-
Bring evidence, but do not weaponize it:
You can reference general bands like the ones from @mike34 and others, or data points from Levels.fyi / Blind / Glassdoor, without saying “You are underpaying me by 32 percent according to X.” Instead:“Most offers I’m seeing for similar roles land between A and B. I’m excited about this team; if we could get closer to that range I’d be comfortable signing quickly.”
7. When “lowball” is actually fine
There are times when taking the lower edge of those ranges is rational:
- Switching stacks or domains and you’re effectively retooling
- Moving from consulting / agency chaos to a stable, low‑stress internal role
- Getting a big career upgrade in title or responsibility (e.g., first “Senior” title) that can pay off in your next job’s comp
In those cases, you intentionally “under‑optimize” salary now to increase your future band.
If you want more tailored feedback, the fastest way is still what was suggested: post location, years of experience, rough level, company type, and offer breakdown. Given that and the bands already laid out by @mike34 and others, people can usually tell you in one or two replies whether you’re under, fair, or strong relative to your realistic market.