This content originally appeared on DEV Community and was authored by Alejandro Navas
Most developers are mediocre.
I don’t mean “average skill level” or “not the next John Carmack.” I mean they produce work that is fundamentally, structurally bad. And what’s worse is they don’t even know it. They move fast, they pivot, they “ship.” They pride themselves on pushing code into production in record time, as if speed was synonymous with quality. It isn’t.
And look, I get it. Early-stage startups practically demand this behavior. At the beginning, you optimize for survival, not correctness. But here’s the trap: most developers never switch gears. They stay locked in this mindset long after the stakes have changed, long after the system has grown into something fragile and sprawling. The company succeeds, the codebase explodes, and the same people who duct-taped the thing together keep duct-taping — except now the cost of every bad decision multiplies. What used to be “clever hacks” become landmines. What used to be “temporary” becomes permanent.
And then there’s AI. Copilot, Cursor, Claude, GPT — they’ve all been trained on the same codebases written by these same developers. You ask them to write code, and they’ll happily recreate the exact patterns that make modern software so brittle: the hidden coupling, the missing invariants, the untested edge cases. AI doesn’t understand what it’s building. It doesn’t know your invariants, your architecture, or where you plan to take the system in six months. It just predicts what “code like this” probably looks like. And since most code on the internet is mediocre, what you get back is, surprise, mediocre code, faster.
The worst part is that this creates a feedback loop. Developers who were already undertrained lean on AI even harder, trusting it implicitly because it sounds confident. The AI mirrors their bad habits, which trains them to stop questioning, which means future AIs get trained on even more garbage. It’s mediocrity at scale.
And here’s the thing nobody wants to admit: writing clean, maintainable, robust software is hard. It requires thought, restraint, taste. It requires saying “no” more often than “yes.” It requires understanding not just what you’re coding, but what happens when someone has to change it a year from now. But if you learned to code in a world that rewarded raw delivery speed, you probably never learned how to build for the long term. And AI won’t teach you. It doesn’t know the difference.
If you want better software, you have to stop coding like everyone else. You have to stop treating AI like an oracle. You have to demand more of yourself — more discipline, more clarity, more foresight. Otherwise, you’re just accelerating toward the same cliff as everyone else, only faster, and with prettier autocompletions along the way.
This content originally appeared on DEV Community and was authored by Alejandro Navas