Every week someone posts one of two things. Either it's a thread about how engineers have eighteen months left, or it's a production incident where the root cause, once you squint, is "the AI wrote it and it looked fine." I'm tired of both.
The doom take
"AI will replace engineers" assumes the job is typing code, and typing was always the cheap part. The expensive part is knowing what to build, noticing when one requirement contradicts another, and saying no to the feature that would page someone at 3am for the next two years.
A model can write a function faster than I can, and that's great. It can't sit in the meeting where product explains what they actually meant, though, and it won't be the one asked "why did we build it this way?" six months later. I will.
If your job really was turning tickets into code with no judgement in between, then yes, I'd worry. That was a bad job before the models showed up, too.
The "LGTM" take
The other camp worries me more, because their code ships.
Someone prompts, gets two hundred lines back, skims them, and opens a PR with green tests that were generated in the same breath. Those tests were written by reading the code, so they check what the code does, bug included. The reviewer sees two hundred lines that look like the rest of the codebase and leaves an LGTM, because it's Friday. Nobody in that chain read the thing.
When it breaks, the retro lists the root cause as "AI-generated code." But the model didn't press merge. A person approved code they didn't understand, which is the same failure we had in 2015, when the code came from Stack Overflow instead.
What I actually do
I read every line before I treat it as mine. If I can't explain a line in review, it doesn't go in, whoever or whatever wrote it.
On the hard parts, I don't just ask the model to write it. I ask what could make it fail, and that question is where it's most useful to me.
And I keep the boring checks: types, lint, tests, review. They don't care where the code came from, and they shouldn't.
I wrote a longer, calmer version of this in AI Without Losing Judgment. This one is me being less calm about it.
Use the tool, it's a very good one. Just stop blaming it for a merge button you pressed.