Most developers are mediocre.
Not average. Mediocre. As in: they write code that only works because the universe hasn’t gotten around to punishing them yet. Half the systems you depend on right now are standing on a pile of duct tape, broken abstractions, and blind faith, and the people who built them are still out here bragging about “moving fast.”
I get why it happens. Startups train you to ship first and think later. That’s fine when you’ve got five people, no users, and two months of runway. But developers never outgrow it. The company scales, the codebase mutates into an unholy swamp of side effects and “temporary” hacks, and they just… keep going. Those clever shortcuts that were supposed to last a week are still running in prod three years later. Those “we’ll refactor this later” tickets are fossilized in Jira. Nobody remembers how half the thing works, but hey, at least we launched another feature on time.
And now we’ve added AI into the mix, which is like giving a chainsaw to someone who can’t cut straight with scissors. Tools like Copilot, Cursor, Claude, and GPT are trained on the same codebases written by these same developers, which means they’ve absorbed every bad habit the industry has normalized. You ask for “clean, maintainable code” and it confidently spits out something that looks fine, compiles fine, and quietly plants a landmine under your future self’s desk.
AI doesn’t know your architecture, your invariants, your scaling bottlenecks, or the nightmare edge cases that keep you up at night. It just predicts what code “probably” looks like. And since most code out there is mediocre, what you’re getting is mediocre code at lightspeed. Polished junk. Garbage with good indentation.
The real punchline is watching developers treat AI like it’s a genius senior engineer instead of what it actually is: autocomplete with a god complex. They stop questioning it. They stop thinking. They just hit Tab and move on. The AI mirrors their bad habits, they feed those habits back into the system, and the next generation of AI learns from that garbage. Congrats, you’ve built a self-replicating mediocrity machine.
And here’s the part nobody wants to admit: writing good software is hard. It’s supposed to be hard. It takes thought. It takes restraint. It takes looking at the clever trick your AI just suggested and saying, “That’s going to bite someone in six months,” and writing the boring, obvious version instead. But the industry doesn’t reward that. The industry rewards speed. It celebrates shipping. It fetishizes “impact.” And then, when the system inevitably collapses under its own weight, everyone acts shocked — as if we didn’t all see it coming.
AI isn’t going to fix this. It doesn’t know the difference between elegant and awful. It gives you what “most developers would do,” which is exactly the problem. That’s why your codebase already has five half-broken auth flows, three duplicated JSON parsers, two abandoned feature flags, and a migration script from last year that nobody dares to run because nobody remembers what it does.
If you want better software, stop coding like everyone else. Stop trusting an autocomplete engine to think for you. Slow down. Understand what you’re building. Write code your future self won’t want to delete on sight.
Because if you don’t, we’re headed for a future where developers don’t even write bad code anymore. AI writes bad code for them. Faster. At scale. With silly tests. And somehow, we’ll still be standing around asking why everything keeps breaking.