Training your replacement
If you were working a corporate job in the mid-to-late-2000’s, you’ve probably experienced “offshoring.”
The leadership team brings in a bunch of new remote employees in a country with much cheaper labor costs and less stringent labor laws that yours. They ask you to help train them and teach them everything you know so they can “get up to speed quickly.”
And then six months later, they lay off your whole team and keep the offshore workers. You trained your replacement.
If it didn’t happen to you directly, you almost certainly saw it at a company you worked at, or had it happen to a friend.
This is an article about AI.
(I’m so fucking sick of thinking about, writing about, and talking about AI. Please stop making me do this!)
Gleefully making yourself obsolete
I’m amazed at how many developers are gleefully, enthusiastically training their own replacement.
If the hype is to be believed. I’m not sure it is.
But if the people so aggressively pushing AI as a revolutionary technology that will completely change how we work are right… why the fuck are they so eager to accelerate development of the tool that will put them out of work?
That future makes sense in a world where we then have lots of free time to enjoy leisure and pursue our passions.
That’s not the world we live in.
Under capitalism, no work means no money means no food or shelter or clothing (and in America, no healthcare).
A loss of craft
Remember when the stuff your purchased used to work well and last a long time?
Nearly everyone I know owns at least one home good that belonged to their parents (or grandparents) and still works really well: a clock or electric can opener or hot plate or fridge.
Forty year old electronics, still chugging along doing what it was built to do.
If you’ve purchased any home goods recently, you know that modern electronics last ten years at most.
We used to build things well. Work used to have craftsmanship.
The era of mass-produced automation has brought us cheap, disposable, poorly made and poorly designed things that end up in the trash after little use.
We’ve been here. We’ve done this. We know it sucks.
We’ve seen it happen already to our code. React (and its brethren) was the first step. And now, every website and app we use it slower, buggier, and just overall worse than ones built a decade ago.
AI glues the puzzle piece into place. Why would we want this for our code?
Short-term gains
AI code can be generated fast, producing short-term gains with massive long-term costs.
Code you don’t understand is a liability. It’s code you can’t test. It’s code you can’t touch. It’s code that can blow up on you in unanticipated ways.
If you’ve been a developer for a while, you’ve almost certainly run into parts of a large code base that no one will touch because the developer who wrote it left the company years ago and no one still working there knows what it does.
AI-generated code is like that. Jeremy Keith explains it perfect…
The issue isn’t with the code itself, but with the understanding of the code. If the understanding of the code was in one developer’s head, and that person has since left, the code is dangerous and best left untouched.
This, as you can imagine, is a maintenance nightmare. That’s where I’ve seen the real cost of abstractions. Abstractions often really do speed up production, but you pay the price in maintenance later on. If you want to understand the codebase, you must first understand the abstractions used in the codebase. That’s a lot to document, and let’s face it, documentation is the first casuality of almost every project.
I worked on a code base like that for years. It fucking sucks. Never again!
Can I ride this out?
I’ve had a lot of people recently tell me AI is “inevitable.” That this is “the future” and “we all better get used to it.”
For the last decade, I’ve had a lot of people tell me the same thing about React.
I didn’t properly learn React until January 2025, because I needed it for a client project. I used it for six months. I haven’t touched it since.
And over that decade of React being “the future” and “inevitable,” I worked on many, many projects without it. I’ve built a thriving career.
AI feels like that in many ways. It also feels different in that non-technical people also won’t shut the fuck about it.
Can I ride this out, like I did React?
I’ve seen agentic AI (AI that remixes shit from creative work stolen from people) do some impressive things. I’ve seen it generate some abysmal code.
I think this is a bubble. I think it’s going to pop. I think I could be wrong. I think I’m right.
I like writing code. I hate reviewing code. I like knowing what my code does. Like Jeremy, I hate magic boxes of abstraction. I’m a craftsperson in a world that’s pushing for more and more automation.
I’m hoping I can ignore this long enough that it doesn’t matter, like I did React. It’s definitely a gamble.