I really wanted to call this “The AI trap,” but I try not to ascribe to malice what I could explain with ignorance, apathy, and/or stupidity, and given that I generally don’t ascribe the level of foresight and deliberation needed to execute a “trap” to the types of people running large public companies, “trap” isn’t the right word. But even so, this push to start using AI to do as much as humanly possible has already generated content about the plight of junior devs. What I’m worried about is senior developers (yes, I am technically considered a “senior” dev, so there is some self-interest here) are about to walk themselves into a nasty setup they’re never going to recover from.
The problem works like this, developers are being increasingly pushed to start using AI to do more and more coding (the pressure campaign has already started at my workplace too), up to and including embracing “vibe coding” (of which I am not a fan). Remember – the whole idea is that you just keep prompting the AI to generate code and you just keep accepting it, with decreasing manual editing and (presumably) decreasing active participation in reviewing/modifying of the code itself. Just more and more blindly accepting everything, “embrac(ing) exponentials,” (also known as not giving the slightest s^!+ that the code is nearly impossible to follow), and hardly ever touching the keyboard. Well guess what? A kid who barely scraped by from a coding boot camp is just as qualified to copy and paste the Jira ticket description into a prompt and blindly click “Accept Changes.” Heck, my retired parents can do that too. And here’s the thing, they’re a lot cheaper than the senior developers initially assigned to be babysitting the AI code generation. It’s only a matter of time before companies pushing the “have the AI write the code for productivity” crowd notices that, and take advantage of the “cost savings.”
Now senior developers are out of a job, and are competing directly with junior developers for positions that aren’t actually doing development, but you still need someone with an obstensibly baseline programming skill level for when the proverbial crap inevitably hits the fan. 1 The problem is that the level of “senior” has a correlation with “time spent working,” which means these developers are older. Ignoring the ageism problem in hiring, these developers are the least likely to be able to sustain the pay cut down to entry level as they’re the most likely to have families to help support. So now we have developers who are already in a bad spot in terms of job hunting, with the lowest amount of salary elasticity, competing for jobs that are going to increasingly move to less experienced workers because they’re doing the exact same thing senior developers were, with exactly the same results.
This, for the record, is bad for everyone. Obviously, it’s bad for the senior developers who are losing their jobs to (and competing for new jobs against) junior developers. Job loss sucks, and the struggle to get a new one is going to be rough in a job market that is already depressingly bad for people in the tech industry. Even when they do find work, I’m worried that they’re going to have to take a massive pay cut to do it.
It’s bad for the junior devs, even though in this scenario they end up with better job prospects. Their wage ceiling is going to be much lower if I’m right, as they’re ultimately going to compete with themselves, and companies that can stand to have less experienced kids do the job will tend to prefer high attrition to recruit new rounds of less experienced kids rather than promoting (and raising the pay of) their existing staff. Also, given that these junior developers are directly replacing senior developers, they’re coming in without any of the more experienced engineers to learn from, so the skills they do have don’t get developed (screw it – pun intended), and their ability withers away before they ever have the chance to get good.
The companies lose out too. You can preach whatever copium you want about the superiority of AI-generated code, the fact remains that it’s inferior to what average and above skilled developers write and an inevitable source of problems once it gets merged in. If you’re incredibly lucky, most of them will be testing the code internally, but it’s only a matter of time before this stuff hits production and you have the kind of problems that impact paying customers. And who are these companies going to turn to in order to fix the problems? They let go of the people who were the most likely to be able to help, after retarding their skills to the point they were replaceable by much less experienced engineers. Oh, and what about preventing these issues going forward? Well, once again, the developers who were the most capable of considering systems at the end-to-end level and deep diving into specific parts had their ability to do so atrophied before being replaced by people much less capable for doing that job. This problem compounds for the business, even the worst of those developers still had institutional knowledge about the company, customers, business, and about various points of integration with other teams in the organization. That’s just gone, it’s not coming back, and the re-discovery process ain’t quick.
Of course, there’s an apparent solution to these problems – AI harder. It “wrote” the code in question, it can fix it. In fact, it’s increasingly the only entity that’s at least willing to claim that it really understands the codebase. This creates a perfect storm for these companies where the only possible solution for their software problems is the same as the source of those problems. As a totally random and unrelated aside, if a human put a company in that sort of position, the company would remove that person and replace everything they’d done with something they could maintain going forward. Just wanted to throw that tidbit in somewhere.
I know the biggest argument against this hypothesis is the claim that the job market is going to turn towards junior developers as seniors get pushed out. Big software companies are still laying people off, all the while tech companies are saying that the AI agents they’re using are as good as mid-level developers. So why not replace the humans you have to pay for with a machine that’s at least as good and presumably going to get even better? Think back to what exactly these companies are pushing for in terms of AI adoption. The initial round may be “encouraging” developers to “try” the tools out, but the endgame is that you will use the AI, and you will have it do your job. Remember, the whole premise of this idea is that as more senior developers increasingly just accept whatever slop the AI coding bot generates, they also increasingly fail to distinguish themselves and their value proposition to the company from far more junior developers. While we’re seeing a lot of pressure on junior developers to compete with AI (or pressure on them to pump out as many lines of code as they can using AI), I’m thinking it’s a matter of time before companies are more interested in pushing out senior developers who aren’t doing anything the juniors aren’t, other than costing more money.
So what’s the solution to this? In the short-term, I don’t know. Companies that are hell-bent on increasingly have glorified autocompletes generate lines of code, are going to push auto-completing code and then push the humans out. The only real option to stop someone hell-bent on something is for it to go spectacularly wrong and the people responsible to be replaced with others who aren’t going to continue the problem. At the moment these companies are in the process of setting themselves up for disaster, and we all know how strong corporate accountability generally works…so…yeah, the short-term is people in these companies are screwed.
However, sitting around and deciding we’re doomed isn’t productive, and life does move on. There will still be a need for software developers in the future, and that need will eventually grow in the long-term, either in startups that decided to eschew the AI hype cycle in favor of actually building software themselves, or companies that defied the odds and course corrected (likely long after the drivers of the “AI will replace developers” craze did so quietly, with no fanfare). I think the best way we can position ourselves for this long-term is to build stuff. Build applications, build systems, and build knowledge (both technical and industry). Build ways to test the stuff you’re building to confirm that it works. Build tools to support the stuff you’re building, instead of having to rely on paying for a cloud service to do it for you. Just build…and actually build it yourself.
Ultimately, what you’re building is the ability to spot potential problems and solve them before other people even realize that there was a bullet to be dodged. You’re building the experience that helps you identify the questions that matter (because they’re the questions that ultimately impact the business), and build the tools to answer them before management starts asking. You’re building the (mental) scars, and muscle memory, that lets you find the causes of problems faster, figure out how to fix them quicker, and ensure they don’t come back later. In short, you’re building the things that make you a senior developer.
If my read on this situation is correct, there is a potentially very bright spot for junior developers (aside from being the people actually getting hired to replace seniors who forgot how to make software themselves). The ones that grow and develop their skills are going to be based. They’re not going to have experienced developers teaching them anything (the juniors replaced those guys). That means the junior developers that level up their skills will have had to do it on their own, teaching themselves the whole way. That ability to self-teach, combined with the motivation to do so, is basically a superpower. The generation of senior developers that grow out of this AI bubble are going to have programming skills that were built by fixing performance bottlenecks while massively backlogged, security vulnerabilities during attacks, reliability issues during outages, and finding and fixing bugs while customers are screaming. And, at least to start their careers, they’re going to be doing it all in a crappy code base they had no part in building, which is another valuable skill to develop.
The short term looks nasty, but there’s hope that companies are forced to hire developers that never started letting LLMs do their thinking for them just to clean up the mess made by their AI agents. At this point, the companies forced to hire for this work will likely be in such a bind good senior developers can probably get a healthy pay raise to go with the heavy workload of de-vibing. In all of this we’ll have a new generation of junior engineers, who are independently curious, experimenting and tinkering, fixing the messes their predecessors left behind. They’re re-learning the actual craftsmanship of computers, software, and development, from the ground up. Those developers are going to do some truly great things, and that future is probably the brightest star of this whole AI craze.
- They won’t actually be any more help than snagging the 1 random senior developer actually developing from another team (actually, they’ll be less help than that engineer from another team), but this way it looks like your company isn’t being negligently stupid on paper when you staff the company this way. ↩︎
Sorry, the comment form is closed at this time.