A Security Engineer costs 15.1% more in San Francisco than in New York. A Staff Engineer costs 0.8% more, which is to say the same. If you run one geographic adjustment across your whole engineering org, it is wrong in both directions at once.
| Role | SF median | NYC median | SF premium | Postings |
| Security Engineer | $235,000 | $204,250 | +15.1% | 283 |
| Machine Learning Engineer | $250,000 | $220,000 | +13.6% | 160 |
| Engineering Manager | $262,500 | $240,000 | +9.4% | 362 |
| Fullstack Engineer | $209,500 | $192,275 | +9.0% | 122 |
| Frontend Engineer | $200,000 | $186,625 | +7.2% | 71 |
| Backend Engineer | $215,000 | $201,150 | +6.9% | 166 |
| Data Engineer | $205,000 | $193,150 | +6.1% | 181 |
| Platform Engineer | $215,000 | $203,000 | +5.9% | 172 |
| Senior Software Engineer | $215,750 | $205,000 | +5.2% | 803 |
| Staff Engineer | $250,000 | $248,050 | +0.8% | 531 |
Security Engineers carry the widest gap of any role we measure. The likely reason is supply rather than demand: security engineering has a smaller candidate pool everywhere, and San Francisco's concentration of infrastructure and AI companies competing for that pool bids the number up faster than New York's financial-sector demand does.
Machine Learning Engineers are second at 13.6%, and that one is straightforwardly about who is hiring. The frontier labs are in the Bay Area, they set the top of the market, and everyone else in that market has to price against them.
If you are hiring either role in San Francisco on a New York band, you will lose candidates and you will not know why.
This is the part most comp models get wrong:
| SF premium |
| Frontend Engineer | +7.2% |
| Backend Engineer | +6.9% |
| Senior Software Engineer | +5.2% |
| Staff Engineer | +0.8% |
The more senior the individual contributor, the less the city matters. At Staff level the two markets have converged almost completely.
Looking for technical talent?
RFS specializes in technical recruiting — placing software engineers, ML engineers, and product leaders at high-growth startups.
Work with us → Browse open rolesThe reason is that senior IC comp is increasingly set against a national — sometimes global — market rather than a local one. A Staff engineer in New York is being recruited by the same companies as a Staff engineer in San Francisco, and remote-era banding removed most of the geographic adjustment at that level.
But converged medians do not mean converged markets. San Francisco's 90th percentile for Staff Engineers is $361,250 against New York's $300,000 — a 20% gap at the top even while the middle is level. The median tells you what a normal offer looks like; it tells you nothing about what it takes to win a contested candidate.We place across both markets and every role in this table. Senior Software Engineer is the role we place most often — 55 placements, 14 of them in the last twelve months, at a median base of $186,000. At Staff and Principal level we have placed 21 engineers, 8 in the last twelve months, at a median of $220,000 and up to $325,000.
Across the firm: 300+ placements, 150+ companies, and a candidate database of 2M+ engineers.
Hiring in San Francisco or New York? Tell us the band you are working with and we will tell you where it sits against the live market for that specific role. Talk to Recruiting from Scratch →Figures come from active US job postings with a disclosed annual base salary between $80,000 and $700,000, denominated in USD, deduplicated across job boards, measured on 12 August 2026. Roles are matched on job title and require at least 30 postings in each metro to be included.
Base salary only — equity, bonus and on-target earnings are excluded, which is why these figures read lower than total-compensation numbers on aggregator sites. When you are setting a band, base is the part you are negotiating.
Tell us about your open roles and we'll start sourcing within 48 hours.