The Jobs Aren't Back. They're Different Jobs.
The headlines are warm again.
Software engineering roles have doubled since mid-2023. Sixty-seven thousand open positions. Listings up 11% year-over-year. Three openings for every qualified candidate. Salary growth averaging 4.2%.
If you're reading those numbers from a hiring desk, the crisis is over. If you're reading them from a couch where you've been sitting for fourteen months sending applications into a void, the crisis hasn't even started being honest with you yet.
The Counting Problem
The Bureau of Labor Statistics counts an opening. It doesn't ask whether the person who just lost their job at that same company can fill it.
Indeed counts a listing. It doesn't track how many of those listings sit open for nine months because the company would rather leave a seat empty than hire someone who needs to be retrained.
When a company says "we have three openings for every qualified candidate," that's not a labor shortage. That's a skills mismatch being reported as a market recovery.
Here's how the math actually works. A Fortune 500 cuts 400 mid-level engineers in January. Posts 200 "AI-native platform engineer" roles in March. The net looks like growth. The headlines report recovery. And 400 people who built production systems for a decade are still unemployed, watching job boards full of openings they don't qualify for.
That's not recovery. That's replacement.
What Actually Changed in Three Years
The job that got eliminated didn't get reinstated. It got restructured into something the person who held it might not recognize.
Three years ago, the market valued the engineer who could write React components and ship features on a two-week sprint cadence. That job is compressed now. AI handles the output layer. What's left is the judgment layer — system design, domain modeling, integration architecture, failure mode analysis, trade-off reasoning under ambiguity.
The people who thrived writing code are not automatically the people who thrive deciding what code should exist.
That's not a semantic distinction. It's a career-ending one for a lot of people who were very good at their jobs.
The Cross-Disciplinary Divide
Watch who's actually landing in the new market. It's not the deepest specialists. It's the widest thinkers.
The developer who also understood product. The backend engineer who also did infrastructure. The architect who'd sat in sales calls and heard what the customer actually needed versus what the ticket said.
They didn't just learn to code. They learned to think across boundaries. And now, paired with AI, those people are producing output that would have required a team of six three years ago.
Meanwhile, the engineer who spent a decade getting exceptionally good at one framework, one layer of the stack, one narrow slice of the pipeline — that expertise was valuable when the floor existed.
The floor is gone.
The Retraining Lie
Every time a market shifts like this, the same reassurance shows up: "People just need to reskill." It sounds reasonable. It's almost never true at the pace the market demands.
Architecture isn't a certification. Lateral thinking isn't a bootcamp. The judgment that makes someone valuable in the current market was built over years of cross-disciplinary work — product decisions, infrastructure trade-offs, customer conversations, failed projects, recovered projects.
You can't speedrun that.
A six-month AI engineering course doesn't give you the instinct to know when an architecture will collapse under scale. Watching a tutorial on system design doesn't teach you how to make trade-offs between consistency and availability while a product manager is staring at you waiting for a yes. Those are skills you earn by being wrong enough times to recognize the shape of the next mistake before you make it.
The people telling displaced engineers to "just learn AI" are offering the same advice as telling a taxi driver to "just become a software engineer" in 2014. Technically possible. Statistically rare. And the people giving the advice are never the ones who have to take it.
Who the Numbers Are Actually Counting
Let's be precise about what "67,000 open positions" means.
It means companies are building AI products and need engineers to build them. It means the demand is real. None of that is in dispute.
What's in dispute is who those jobs are for.
They're for engineers who already think in systems. Who already model domains. Who already design for failure. Who already understand distributed architecture, event-driven patterns, and the difference between structural correctness and semantic correctness.
They're not for the mid-level developer who shipped features reliably for eight years and suddenly finds that "reliable feature shipping" is exactly the job AI compresses first.
The cruelty of this market is that the people it displaced are often genuinely good engineers. They didn't fail. The definition of the job changed underneath them. And the new definition requires a fundamentally different kind of thinking that takes years to develop — years they may not have, because the market moved in months.
The Uncomfortable Part
When someone says "AI won't replace developers, it'll just change what developers do" — that's a comforting lie dressed up as optimism.
AI is already replacing developers. Entire categories of engineering output that required human labor eighteen months ago are now handled by tools that didn't exist then. The companies doing the replacing are the same ones posting those 67,000 job openings. They're not contradicting themselves. They're replacing one kind of engineer with a different kind.
The honest framing isn't "the jobs are back." It's: "new jobs exist, and they require capabilities that a large portion of the displaced workforce doesn't have."
That's not a recovery. That's a restructuring. And a restructuring without an honest accounting of who's left behind isn't optimism. It's negligence.
What the Numbers Won't Tell You
They won't tell you about the senior engineer with fifteen years of experience who's been interviewing for eleven months and keeps getting rejected for roles that didn't exist when they were laid off.
They won't tell you about the teams that post openings they never intend to fill — headcount budget theater for the board while the actual work gets absorbed by three people and an AI tool.
They won't tell you about the companies lowballing experienced engineers 50 to 70 percent below market rate, because a flooded market means someone desperate enough will take it.
They won't tell you that "three openings for every qualified candidate" is an indictment, not a celebration. It means the market broke the pipeline. It spent three years laying off the mid-career engineers who would have been next in line, and now it's shocked that there's nobody to fill the senior roles.
You don't get to gut the middle of the ladder and then complain about a talent shortage at the top.
The Real Question
The real question isn't whether engineering jobs are "back." It's whether the industry is willing to be honest about what it did.
It overhired during a bubble. It cut aggressively to protect stock prices. It blamed AI for decisions that were really about margins. And now it's celebrating "recovery" while a generation of mid-career engineers — people who built the systems these companies run on — sit on the other side of a skills gap that didn't exist three years ago.
The jobs aren't back. Different jobs showed up. And the people who lost the old ones are being told the market is fine while staring at a wall of postings they can't qualify for.
That's not recovery. That's denial with a press release.
Stop counting openings. Start counting placements. The gap between those two numbers is the actual state of the engineering market — and nobody wants to talk about it.
Get new posts in your inbox. No spam, unsubscribe anytime.