Software Engineer Pay Heatmap Across the US

Geographic coverage & terminology

  • Map omits Alaska, Hawaii, Puerto Rico, and other US territories; several commenters object to calling it pay “across the US.”
  • Clarification of “contiguous” vs “continuous” US comes up.
  • Some wish it included other countries (Canada, UK, France, Germany).

Regional granularity & methodology

  • Many find the geographic buckets far too coarse: rural and urban areas are merged (e.g., Seattle with remote WA, “Greater Portland Area” reaching to southern Oregon, Ann Arbor lumped with Detroit and rural Michigan).
  • Explanation from Levels.fyi: regions are based on Nielsen DMAs; they acknowledge artifacts (e.g., Denver region bleeding into Nevada) and plan custom regions or MSAs/CSAs.
  • Users report mislabeling (e.g., Columbus showing as Indianapolis).

Compensation patterns & surprises

  • NYC median ($190k) is notably lower than Bay Area ($263k) and Seattle (~$240k); some attribute this to higher FAANG/FAAMNG concentration in the latter.
  • Unexpected high medians noted in places like Missoula, MT and Montgomery–Selma, AL; proposed explanations include defense jobs, energy sector, remote workers moving in, and “fashionable” smaller tech hubs.
  • Some find local callouts odd (e.g., Ann Arbor over Detroit, Traverse City paying more than Detroit).

Data quality, bias, and incentives

  • Strong sense of sampling bias: overrepresentation of large/high-paying tech firms and regions; underrepresentation elsewhere.
  • Selection bias: only people who know/care about compensation and the site self-report.
  • Several note that Levels.fyi sells salary negotiation services and thus may have incentives to show higher comps, though many still find it more accurate than Glassdoor.
  • Concerns that startup equity is valued as if fully liquid and may inflate TC numbers; others point out data can be stale and not reflect recent downward trends.

TC breakdown: base vs equity

  • Numbers represent total compensation, not base salary.
  • In top-paying regions, a larger share is equity; some question whether the equity value is current or historical.
  • Requests for filters to view base-only, stock-only, and to distinguish public RSUs from illiquid startup equity.

Cost of living & location-based pay

  • Several want an option to normalize by cost of living, arguing nominal TC alone is misleading.
  • Comparisons highlight how housing, healthcare, transportation, and taxes dominate expenses and vary far more than globally priced goods (electronics, oil-derived products, etc.).
  • Discussion of rural high earners (e.g., Pike County, PA) living very comfortably relative to big-city peers.
  • Debate over paying based on where employees live: some call it “dumb” or a “con,” others emphasize standard pricing dynamics and executives’ preference for physical clustering of talent.

Labor market & negotiation

  • Some commenters use the map as motivation to ask for raises, but others warn the post-2022 job market is saturated and $200k+ roles are much harder to land, especially outside top hubs.
  • Disagreement over “don’t accept less than $200k if senior”: in many regions that would place someone in the top decile and is seen as unrealistic.
  • Personal anecdotes contradict each other: some senior engineers land $200k+ quickly; others struggle for many months, reflecting domain, niche, networking, and luck.

Fairness and social context

  • Several express discomfort with how high SWE pay looks relative to “everyday Americans,” questioning fairness when most people lack similar opportunities.
  • Others reject guilt, arguing software is now a critical profession whose output scales massively, justifying higher pay.
  • Debate over inequality: some see 2–3x local median income as still extreme; others highlight active altruism and charity rather than reducing engineers’ pay.

Visualization & UX feedback

  • Multiple complaints about color choices: shades of green are hard to distinguish; “Not enough data” looks too similar to the lowest bracket and should be visually distinct or uncolored.
  • Pedantic but accepted correction: the map is a choropleth, not a “heatmap.”