Remote Backend Contractors Are Replacing SF's Revolving Door of $200K Engineers
by Eric Hanson, Backend Developer at Clean Systems Consulting
You hired a backend engineer in March. They left in November. You hired another in January. They left in September. The door keeps spinning and your codebase keeps paying for it.
At $200K a head, the revolving door isn't just frustrating. It's one of the most expensive line items on your P&L.
The door that never stops
San Francisco has a turnover problem disguised as a hiring problem.
The average tenure for software engineers in the Bay Area is shorter than almost anywhere else in the country. Backend engineers are especially mobile — their skills transfer cleanly across industries, and there's always another company offering more money, better equity, or a shinier problem.
You hire someone. You invest three months in onboarding. They become productive. They ship a few features. Then a recruiter from a Series C company or a public tech giant sends a message, and within six weeks they're gone.
The cycle repeats. Each time, it costs you money, momentum, and a little more institutional knowledge.
After three rotations, your backend isn't maintained by a team. It's maintained by whoever happens to be here right now.
What each rotation costs
The direct cost is straightforward to calculate. Recruiter fee: $38K–$50K. Salary during the onboarding ramp when output is low: $50K–$65K over three months. Lost productivity from the senior engineers doing the onboarding: hard to quantify, but real.
One rotation — from departure to the new hire being fully productive — costs somewhere around $120K–$150K in direct and indirect expenses. On top of the ongoing salary.
Two rotations in eighteen months: $250K–$300K in friction costs alone. That's before you count the salary of the people who sat in the seat.
But the direct cost isn't the expensive part.
The knowledge tax
Every time an engineer leaves, they take context with them.
Not just code knowledge — that's theoretically in the repo. They take the reasoning. Why the retry logic works that way. Why the database was partitioned on that key. Why the auth service has that workaround that looks like a bug but isn't.
The next person inherits the code without the context. They read it, make assumptions, and build on top of a foundation they only partially understand. Bugs appear in places that used to be stable. Refactors that should take a week take three because nobody knows what depends on what.
Over time, the codebase accumulates layers of decisions made by people who are no longer here to explain them. Each layer makes the next engineer's job harder. Each departure accelerates the decay.
This is the real cost of the revolving door. Not the salary. Not the recruiter fee. The slow erosion of coherence in the systems your product depends on.
Why SF's market makes this structural
Other cities have turnover. SF has engineered turnover.
The density of tech employers in a thirty-mile radius means an engineer is never more than one LinkedIn message away from a competitive offer. Companies actively poach from each other as a recruitment strategy. Counter-offers are routine. Bidding wars are normal.
An engineer who's happy at your startup still gets four recruiter messages a week. They're not looking. But the market is looking at them. And eventually, one of those messages lands at the right moment — after a frustrating sprint, during compensation review season, or right when a big tech company announces a new office in the city.
You can't loyalty-programme your way out of a market where the next opportunity is always closer than the next promotion.
What the revolving door replaces itself with
Some SF founders have looked at this cycle and made a structural change. Instead of filling the same backend seat every nine months, they've removed the seat.
Not the work. The seat.
The defined backend projects that used to go to whoever occupied that revolving chair now go to async contractors. The contractor doesn't have a seat to leave. They have a project to deliver.
They read the spec. They build the thing. They deliver code. Your team reviews it and merges it. The engagement ends when the project ships.
There's no onboarding to lose when they're done. There's no institutional knowledge trapped in their head, because the engagement was built on documentation from the start. The spec that made the project possible is also the record of what was built and why.
The next project can go to the same contractor or a different one. Either way, the documentation carries the context — not the person.
Why documentation breaks the cycle
The revolving door is expensive because knowledge leaves with people. The fix isn't keeping people longer. It's keeping knowledge independent of people.
Teams that write specs before building — endpoints, schemas, expected behaviour, edge cases — create a record that survives any departure. The reasoning is in the document. The decisions are in the commit history. The context doesn't walk out the door because it was never stored in someone's head.
This habit helps with full-time hires too. New engineers onboard faster when they can read a spec instead of reverse-engineering six months of verbal decisions. Code review is more effective when there's a defined standard to check against.
But the habit pays off most with async contracting, because the entire model depends on it. A contractor can only build what's written down. That constraint forces the discipline that most teams need but never adopt because there's always an engineer nearby to ask.
What stays in-house
The revolving door seat was never the right place for architecture decisions. Those need continuity, deep context, and someone who'll be here next quarter.
Keep your core engineers — the ones who own your most critical systems and shape your technical direction. Invest heavily in retaining them. Pay what the market demands. Give them the work that justifies their presence.
What comes off the revolving door is the second and third backend seat. The one that kept churning. The one you kept refilling because there was always a migration to run, an integration to build, or a service to stand up.
That work is real. It's just not headcount work. It's project work. And project work is what async contractors are built for.
The minimum your team needs
Someone who writes specs. Not perfect specs — clear ones. The kind of document that answers the questions an engineer would ask before building. If your team does this for internal projects, extending it to contracted work is a small step.
Someone who reviews code against the spec. Fast turnaround. Specific feedback. This is the quality mechanism, and it stays entirely internal.
Bounded projects. Work with defined scope, defined output, and a finish line. The revolving door seat was often filled with a mix of project work and ongoing responsibilities. Separate them. The projects go out. The ongoing ownership stays in.
Seeing if the model fits
Clean System Consulting does async backend builds for teams that have the documentation and review process to make outside engineering work reliably. The contact page asks a few questions about how your team operates — who owns specs, who manages delivery, what the handoff process looks like. It's there to figure out whether replacing the revolving door with something more durable actually fits how your team works, because the answer depends on what's already in place.