ixsoftum
Software engineer salary by market: what the data actually says for small-team ICs
Career and businessData deepdive

Software engineer salary by market: what the data actually says for small-team ICs

The 'software engineer salary' number everyone quotes is a self-reported, Big-Tech-skewed average. Real BLS and Stack Overflow data, by market.

ixsoftum Editorial·Published 11 Aug 2026·8 min read
Key takeaways
  • The US national median software engineer salary is $135,980 (BLS, May 2025, employer-reported). Self-reported sources like Stack Overflow's 2025 survey put US back-end and full-stack developer pay $2,000 to $39,000 higher, largely a self-selection effect, not a different reality.
  • Market matters more than any single "software engineer salary" headline: BLS's May 2025 data shows a $174,410 median in California against $114,090 in Ohio, a $60,320 gap for the identical occupation code.
  • 57% of employed developers work at companies with fewer than 500 people (Stack Overflow, 2025). Small-team work is the median experience, not the exception the Big-Tech-weighted salary sites imply.
  • No major public survey cleanly crosses compensation by company size. Treat any specific "small company pays X% less" figure, including ones in this piece, as a reasoned estimate from adjacent data, not a directly measured number.

The US national median software engineer salary is $135,980, according to the Bureau of Labor Statistics' May 2025 wage data. That's the number that actually represents the whole labor market. It's also lower than almost every number you'll find by searching "software engineer salary," because the sites that rank for that query pull from self-reported submissions skewed toward large, well-known employers, not from the market a small-team IC is actually paid in.

This piece uses two sources that don't have that skew problem: BLS's employer-reported wage data, and the Stack Overflow 2025 Developer Survey's role-level and company-size breakdowns. Both were pulled fresh for this piece, and neither is a marketing page for a leveling-comparison tool.

Key takeaways

  • National median software engineer salary: $135,980 (BLS, May 2025), the most representative single figure available.
  • Market swing is real and large: $174,410 in California vs. $114,090 in Ohio, a $60,320 gap for the same occupation code.
  • 57% of employed developers work at companies under 500 people. Small-team work is the median case, not a discount tier.
  • No survey cleanly measures salary by company size; be skeptical of any source, including this one, that states an exact small-company pay gap.

The number everyone quotes, and why it's skewed for a small-team IC

Search "software engineer salary" and levels.fyi is usually near the top, currently quoting a $195,000 median for the "Software Engineer" title across the companies on its platform. levels.fyi started as a tool for comparing formal leveling systems across employers, a structure that mostly exists at large, well-resourced tech companies.

Its data comes from self-reported, largely verified submissions, and people submit because they're at a company worth comparing levels at in the first place. That's a real, useful dataset for its actual purpose. It is not a baseline for what a small team pays.

The Stack Overflow 2025 Developer Survey shows the same skew in a smaller, more measurable way. Filtered to US respondents (5,239 of them, 10.7% of the total sample), the reported median for a back-end developer is $175,000 and full-stack is $138,000, both self-reported total compensation. BLS's employer-payroll figure for the entire software developer occupation, every company size, every industry, comes in at $135,980. The self-reported number runs higher because the people who fill out a lengthy developer survey skew toward more senior, more engaged, and more Big-Tech-adjacent respondents than the labor market as a whole.

None of this means the self-reported numbers are wrong. It means they're answering a different question than "what does this job pay," they're answering "what do survey respondents at this job report," and those aren't the same population a small team is hiring from or competing against.

The gap shows up clearly once the roles are lined up side by side:

RoleUS self-reported median (Stack Overflow 2025)BLS all-role national median
Back-end developer$175,000$135,980
Front-end developer$145,000$135,980
Full-stack developer$138,000$135,980
Mobile developer$170,000$135,980
DevOps engineer$165,000$135,980

BLS doesn't break its wage data out by these specific role labels, so the right-hand column repeats the same national figure on purpose. The comparison isn't role-by-role. It's how far above the actual national median every self-reported figure sits, front-end and full-stack included, the two roles closest to the BLS baseline.

Software engineer salary by market: the range BLS actually measures

BLS's Occupational Employment and Wage Statistics breaks wages out by state, and the spread is the real story a single national number hides.

MarketAnnual medianAnnual meanLocation quotient
National$135,980$148,1001.00
California$174,410$186,7701.44
Ohio$114,090$119,8600.74

Location quotient measures how concentrated software developer jobs are in a market relative to the national average. California's 1.44 means the state has 44% more software developer jobs per capita than the US as a whole. Ohio's 0.74 means fewer. Higher concentration correlates with higher pay here: more competition for the same engineers, higher cost of living, and a denser cluster of companies willing to pay for it.

The practical read for a small-team IC: the $135,980 national median isn't wrong, but it averages two genuinely different labor markets. In California, something closer to $174,000 is typical. In Ohio, it's closer to $114,000. Anchoring to the national figure alone can make an Ohio-market offer look low and a California-market offer look generous, when both might sit exactly at their local median.

How to use this range

Three checks, in order, before treating a number as low or high:

  1. Find the state, not just the national figure. BLS publishes state-level data for every state; the two here are examples, not the only two markets that matter.
  2. Check whether the source is self-reported or employer-reported. A self-reported figure above the BLS median isn't automatically more current, it's answering a different, more senior-skewed question.
  3. Ask what the number includes. Base salary alone reads very differently from base plus equity, and small teams rarely offer the equity component that inflates large-company total comp.

How common is small-team work, actually

57% of employed developers responding to the 2025 Stack Overflow survey (28,488 respondents) work at companies with fewer than 500 employees, including 3.9% who are solo freelancers or sole proprietors and 17.2% at companies under 20 people. Read against how salary content usually gets framed, headlined by levels.fyi's Big Tech-heavy dataset or aggregate national averages, that's a useful correction: working at a small team isn't the exception case that salary sites treat it as. It's the median developer's actual situation.

What the data doesn't cleanly answer is how much less that median developer is paid for it. No major public survey crosses compensation directly against company size in a way that produces a clean, citable gap. The honest version of this answer draws on two things instead.

First, BLS's all-company-size national median ($135,980) sits well below Stack Overflow's US role-level medians, which skew toward larger, more recognizable employers among self-selected respondents. Second, equity compensation widens the real gap further. It's common at funded startups and standard at large tech companies, and close to nonexistent at small bootstrapped teams, in ways none of these base-salary figures capture.

Anyone stating an exact "small companies pay X% less" figure is estimating, the same as this piece would be if it tried.

Entry-level and where the range starts

BLS's percentile breakdown gives a real, sourced entry point rather than a guess:

PercentileAnnual wage (national)
10th$82,460
25th$105,210
50th (median)$135,980
75th$171,980
90th$214,670

For a small-team IC hiring or evaluating an early-career offer, the 10th-25th percentile band is a more honest reference range than a median built from senior-weighted self-reported data. Where someone lands in that range still depends on the market-level swing above; a 25th-percentile Ohio offer and a 25th-percentile California offer aren't the same number. The gap between the 75th and 90th percentile nationally, $171,980 to $214,670, is also where the self-reported sites' senior-heavy respondent pool likely lands, another way of seeing why those figures read high against the median.

Career progression from there is a separate question from geography, and it's the one staff engineer vs. senior engineer actually addresses: at a small company specifically, the ceiling on what an IC can earn is usually a scope problem before it's a market-rate problem, worth reading alongside these figures rather than assuming a bigger number always means a bigger title is available.

Outside the US

Everything above is US-specific; BLS is a US Department of Labor agency, and its wage data doesn't cover other countries. The same skew problem applies internationally, and the gap can be larger. The 2025 Stack Overflow survey's global figures show a median engineering manager salary of $200,000 in the US against $118,000 in Germany and $52,000 in India, for the same self-reported, largely senior-skewed respondent pool. A small team hiring or benchmarking outside the US shouldn't apply a US percentage discount to a US figure; it should find that country's own labor-market wage data (a national statistics agency is usually the equivalent of BLS) rather than convert a US number and assume the skew problem scales the same way across a completely different labor market.

The honest verdict

The number to anchor to isn't the one at the top of a Google search. It's the BLS national median if you want a genuinely representative baseline, adjusted for your actual state's figure, with the self-reported sites treated as a signal about large-company pay specifically, not a correction to the more boring, more representative number. A small team paying meaningfully under $135,980 for an experienced hire in an expensive market isn't automatically lowballing, and a number above it in a lower-cost market isn't automatically generous. Check the market line, not just the headline.

Sources
Related