Software engineers in the United States are often told their skills are portable. That's true in a narrow sense — you can write TypeScript from anywhere. But your salary is not portable. Where you live changes your comp by five figures. Sometimes six. Geography is still the single largest variable in software engineering pay, even after three years of remote-work normalization.
Here is what BLS Occupational Employment and Wage Statistics data shows for software developers and software quality assurance analysts across major US metros in 2024, cross-referenced with peer-reported data from platforms tracking real compensation:
San Francisco Bay Area (Oakland–Hayward–Berkeley MD)
The numbers: Median annual wage $172,900. The 25th percentile sits at approximately $131,000. The 75th percentile clears $210,000. The 90th percentile for senior and staff engineers at large tech companies exceeds $280,000 in total compensation when equity is included.
San Francisco has been the highest-paying metro in the country for software engineering pay for over a decade, and that hasn't changed. What has changed is the calculus around whether it's worth it. Bay Area median home prices hovered around $1.3 million through 2024. A one-bedroom apartment in the Mission or SoMa routinely runs $3,200–$4,500/month. The cost-of-living index for the San Francisco metro is approximately 189 relative to the national baseline of 100 — meaning your dollars buy roughly half what they'd buy in a median American city.
Cost-of-living-adjusted median in SF: approximately $91,500 in real purchasing power terms.
That number changes the story considerably. The $172,900 nominal median feels more like a $122,000 salary when you account for housing, state income tax (California's top marginal rate hits 13.3%), and the general cost of food, transit, and services.
Still, the upper end of the distribution is genuinely exceptional. A senior engineer at a FAANG company in the Bay Area earning $250,000+ in total comp retains significant purchasing power even after adjusting — especially if they arrived before housing prices peaked, or if they're living with a partner earning at a similar level.
When to take an SF offer: If you're targeting the high end of the distribution — staff engineer, principal, or a senior IC role at a top-10 tech company — the Bay Area compensation ceiling is still unmatched. The delta between a senior engineer's total comp in SF versus Denver is often $80,000–$120,000 per year, which matters more than rent when you're at that level.
New York City (New York–Newark–Jersey City)
The numbers: Median $148,430. 25th percentile approximately $110,000. 75th percentile approximately $185,000. 90th percentile exceeds $220,000 for senior engineers.
NYC is the second-highest paying metro in the country for software engineers and is arguably more interesting than its nominal position suggests. The city's employer base is uniquely diversified: you have finance (Goldman Sachs, JPMorgan, Citadel, Two Sigma — all of which pay meaningfully above SF tech medians for strong quantitative engineers), media and advertising tech, health tech (NYC has a growing cluster of digital health companies), enterprise SaaS, and a maturing startup ecosystem anchored by Manhattan and Brooklyn.
This employer diversity matters. The finance sector in particular runs its own comp benchmarks. A strong quant developer or software engineer at a tier-1 hedge fund or investment bank in New York can earn total compensation that competes directly with senior FAANG engineers in SF, often with more stable employment and clearer bonus structures.
New York's cost-of-living index is approximately 187 — nearly identical to San Francisco. Manhattan rents for a one-bedroom run $3,500–$5,000. Jersey City and outer boroughs are meaningfully cheaper but still well above national norms.
Cost-of-living-adjusted median in NYC: approximately $79,000.
New York State income tax adds up to 10.9% at high income levels; combined with NYC city income tax (up to 3.876%), high earners in the city pay effective state and local tax rates that rival California.
When to take a NYC offer: When the specific employer matters. Finance-adjacent engineering in New York has a different pay curve than software engineering elsewhere. If you're targeting roles where your financial domain knowledge compounds your technical skills, NYC has more depth of opportunity than any other city.
Seattle, WA (Seattle–Tacoma–Bellevue)
The numbers: Median $154,200. 25th percentile approximately $117,000. 75th percentile approximately $198,000.
Seattle sits slightly above NYC on nominal median pay, anchored by Amazon's enormous engineering workforce and Microsoft's campus in Redmond. Amazon alone employs tens of thousands of software engineers in the metro. When Amazon increases or decreases hiring, Seattle's software engineering job market moves.
Washington State has no income tax — zero. That is a material difference versus California or New York. On a $154,000 salary, the absence of state income tax is worth roughly $10,000–$13,000 in additional take-home compared to a California equivalent, depending on exact income and filing status.
Seattle's cost-of-living index is approximately 149 — significantly cheaper than SF or NYC, though still well above the national median. Housing has gotten expensive, but less dramatically so than San Francisco. A one-bedroom apartment in Capitol Hill or Queen Anne typically runs $2,000–$2,800.
Cost-of-living-adjusted median in Seattle: approximately $103,500 — the best-adjusted outcome of any major tech hub in the country.
When to take a Seattle offer: The math is often favorable for mid-career engineers. The combination of strong nominal pay, no state income tax, and lower cost-of-living relative to SF and NYC makes Seattle one of the most financially efficient locations for software engineers in the top half of the distribution.
Austin, TX (Austin–Round Rock–Georgetown)
The numbers: Median $126,800. 25th percentile approximately $94,000. 75th percentile approximately $165,000.
Austin's rise as a tech hub is real. The arrivals of Tesla's manufacturing headquarters, Oracle's campus relocation, and Apple's expanding campus created genuine wage pressure in the market through 2021. But the 2022–2023 tech layoff cycle hit Austin operations meaningfully — Tesla and others cut headcount, several VC-backed companies with Austin offices pulled back, and the frothy job market cooled.
What remains is a maturing market that pays well — but not on par with coastal cities — while offering genuine quality-of-life advantages. Texas has no state income tax, which adds meaningfully to take-home. Austin's cost-of-living index is approximately 124, though it's risen sharply over the past five years as housing costs have climbed.
Cost-of-living-adjusted median in Austin: approximately $102,000.
The 75th percentile in Austin ($165,000) competes more closely with Seattle or Denver at the adjusted level than the nominal gap would suggest. For engineers who are past the wealth-accumulation phase and prioritizing lifestyle — space, outdoor access, lower traffic density than NYC or SF — Austin has become a serious option.
When to take an Austin offer: When the role is with a company that has committed infrastructure in the city (Tesla, Oracle, Apple, Dell, IBM, Indeed), not a satellite office that could close. Satellite offices in Austin were disproportionately cut during the 2022–2023 downturn.
Denver, CO (Denver–Aurora–Lakewood)
The numbers: Median $122,550. 25th percentile approximately $92,000. 75th percentile approximately $155,000.
Denver has benefited significantly from remote-work-era migration. Mid-size tech companies established Denver as a secondary hub, and several larger companies (Amazon, Google, Salesforce, Palantir) have meaningful presences. Denver is also a center of aerospace and defense technology, which creates a parallel engineering job market with strong government contracting pay.
Colorado's flat income tax rate is 4.4% — notably lower than California and competitive with most non-zero-income-tax states. Denver's cost-of-living index is approximately 122, with housing that is cheaper than Seattle but higher than pre-pandemic norms.
Cost-of-living-adjusted median in Denver: approximately $100,000.
The city punches above its nominal weight. For engineers who want outdoor access, a mid-size city feel, and reasonable cost of living without sacrificing meaningful proximity to high-tech employers, Denver is the value case.
When to take a Denver offer: When the company is headquartered there or has a serious engineering team there (not just sales or marketing). Engineering roles embedded in Denver-headquartered companies tend to have clearer career paths than satellite teams.
Chicago, IL (Chicago–Naperville–Elgin)
The numbers: Median $112,640. 25th percentile approximately $82,000. 75th percentile approximately $148,000.
Chicago is the most underrated tech market in the country in terms of purchasing power. The nominal median is the lowest of the cities covered here, but Chicago's cost-of-living index is approximately 107 — barely above the national median. A dollar in Chicago buys nearly what it buys in an average American city.
Cost-of-living-adjusted median in Chicago: approximately $105,000 — higher in real terms than Austin, Denver, or Seattle on this measure.
Chicago's engineering market is anchored by fintech (Morningstar, Citadel, Jump Trading, DRW), logistics and supply chain technology (US Foods, Caterpillar, United Airlines), enterprise SaaS (Salesforce has a major Chicago presence, as does HubSpot), and healthcare technology (Outcome Health, Tempus). This industry diversity protects the job market from the single-sector volatility that affects more specialized tech hubs.
Illinois income tax is a flat 4.95% — higher than Colorado but lower than California or New York.
When to take a Chicago offer: When cost of living matters more than nominal headline compensation. For engineers supporting families, buying homes, or prioritizing financial security over max earnings, Chicago's real purchasing power often wins. The lifestyle trade-off — colder winters, Chicago property taxes, no mountains nearby — is real, but the financial case is strong.
Miami, FL (Miami–Fort Lauderdale–Pompano Beach)
The numbers: Median $102,400. 25th percentile approximately $75,000. 75th percentile approximately $132,000.
Miami is the newest major entrant in the tech hub conversation, driven by the 2020–2021 migration of hedge funds, crypto companies, and some venture capital from New York. The scene has real energy, but the engineering salary data is sobering. Miami pays less than every other city on this list — nominally and on an adjusted basis.
Florida has no state income tax, which helps. But Miami's cost-of-living index is approximately 123, driven heavily by housing costs that have risen dramatically since 2020. What was once a value city is now priced more like an upper-middle-tier metro with lower-tier tech salaries.
Cost-of-living-adjusted median in Miami: approximately $83,000.
When to take a Miami offer: When the role is with a company that compensates at national bands, not local bands. Some companies with Miami offices pay national rates regardless of location — in that case, Florida's tax treatment makes it attractive. If the company benchmarks locally, Miami's pay disadvantage is real.
Atlanta, GA (Atlanta–Sandy Springs–Alpharetta)
The numbers: Median $106,800. 25th percentile approximately $79,000. 75th percentile approximately $138,000.
Atlanta's tech scene has expanded substantially, anchored by major enterprises (Delta, UPS, Home Depot, Coca-Cola — all with significant technology operations), an increasingly serious fintech sector, and a growing number of startups. Georgia's technology incentive programs have attracted company relocations and expansions.
Georgia income tax is a flat 5.49%. Atlanta's cost-of-living index is approximately 108.
Cost-of-living-adjusted median in Atlanta: approximately $99,000.
That's a competitive adjusted number, and the city's trajectory appears upward. Unlike Miami's recent cooling, Atlanta's tech scene has grown organically from enterprise roots rather than a migration surge, which suggests more structural durability.
When to take an Atlanta offer: When the employer is a large enterprise with a real technology department, or an established fintech company with Atlanta as its genuine operational center.
Remote Work: The Broken Promise and the New Reality
The remote work question is the most important variable that isn't captured in city-level data, and the situation has shifted considerably since 2021.
In 2021, some companies announced location-agnostic pay — you'd earn San Francisco rates regardless of where you lived. That is now the minority position. Most companies that offer remote work have moved to one of three models:
- Local market benchmarking: Your salary is set based on where you live. If you're remote in Memphis, you earn Memphis-adjacent rates. This is the most common model.
- National pay bands: Salary is set at a national band that typically approximates a mid-tier market. Not as high as SF, but not as low as rural markets. Companies like Stripe and Basecamp operate variations of this.
- Zone-based pay: Companies divide the US into geographic zones (Tier 1: SF/NYC/Seattle; Tier 2: Austin/Denver/Chicago; Tier 3: other) and pay within those bands. This is increasingly the norm at mid-size tech companies.
The practical consequence: if you take a remote job with local benchmarking and move from Denver to Memphis, expect a salary adjustment offer on renewal. Many companies have explicit geographic adjustment policies now — some require you to notify HR before relocating.
The return-to-office trend has real salary implications. Companies mandating three or more days per week in office are concentrated in the higher-paying cities — Meta, Apple, Amazon, and Goldman Sachs have all tightened return requirements. If you want to capture the high end of the distribution, you're increasingly looking at an in-person or hybrid role in a high-cost city.
Negotiation Windows and When to Counter
The salary range data above doesn't capture something critical: the negotiation window varies by city and employer type.
At large tech companies in SF and Seattle, recruiter initial offers are frequently set at 10–15% below the internal range ceiling. These companies expect negotiation and build room into offers. Walking away from an initial offer without countering leaves real money on the table.
At enterprise companies in Chicago and Atlanta, initial offers are often closer to the internal ceiling. The negotiation window is narrower, but signing bonuses are common and more negotiable than base.
The 75th percentile is your target, not the median. If your experience and skills put you in the top half of candidates for a role, negotiating to the median is under-negotiating. Use the city-level p75 as your anchor. If you can show data — BLS statistics, peer-reported compensation from verified platforms — you transform the negotiation from emotional to evidential.
Specific scenarios:
- You have 2 offers: This is the most powerful negotiating position that exists. Disclose it. "I have a competing offer at $X. Can you meet or beat that?" works. You don't need to name the company.
- You have 1 offer and no other: Counter once, clearly, with data. "Based on BLS data for this role and metro, the 75th percentile is $X. Given my experience in [specific area], I'm targeting $Y." If they decline, decide on the offer as-is.
- You're changing cities: Factor the cost-of-living delta into your counter. Moving from Denver to SF for a $20,000 pay increase is, in adjusted terms, often a pay cut. Request a number that preserves your real purchasing power, not just a nominal increase.
- Accept vs. counter decision tree: Counter if (a) the offer is below the p75 for your city and experience level, (b) you have data to support your number, and (c) you're prepared to accept the initial offer if they don't move. Don't counter if you're not prepared to walk — an empty threat collapses at the first "no."
The National Median Is a Trap
$125,780 is the BLS 2024 national median for software developers. That number is the average of a very wide distribution. It includes engineers in rural markets, small regional companies, and large coastal firms. If you're targeting a role at a company in a major metro, the national median understates your market. If you're in a mid-tier city, it may overstate it.
Use city-level data. Use peer-reported data from people doing your exact role. The national median is a starting point, not a negotiating tool.
Folvr's salary pages show the full distribution — p25, median, p75, p90 — for specific roles in specific cities, built from real peer submissions. The goal is to give you a number you can actually use, not a range so wide it's meaningless.