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.”