Some about a year ago I made an AI-skeptic post where I strongly opposed the then-common AI hype.
A lot of “AI evangelists” were roaming around and constantly blown the hype with misleading suggestions: “You just cook it wrong” (okay), “Just prompt properly” (nope, LLMs are simply dumb af, and I wasn’t hired to mentor AI what’s the difference between unit and integration tests), “They speed up performance” (for sake of postponed collapse of the codebase and cleaning up the AI-generated mess no one actually knows what does exactly). Listening all that bs was irritating my engineering soul as hell.
I then manifestly claimed that I would never let any kind of AI slop slipping into my project.
But time elapsed. And it would be totally stupid of me to omit the significant evolution happened to models and coding agents. Since that post, all the year along I was continuously giving a try to various LLMs and agents.
Today, I must admit that GenAI coding bring much more value than back in November 2025. And I have to pull my strings back.
So, welcome to AI slop?
No.
Yes, I’m about to delegate more routine, boring work to AI coding agents, as it truly speeds up delivery not twice but by a magnitude of order. Without AI, my past 2 months necessary to make the v0.3 would easily turn to 6 months.
But I’m still in charge of the code quality and, most importantly, of the architecture.
My recent plays shown me precisely that GenAI is not yet ready to actually build a proper architecture. Codex Sol, Astra, Claude Opus, Sonnet — they all lack comprehension of what a genuine extensibility should be. They don’t “think” of the future. They are harnessed to accomplish a particular task, and that’s it.
I dropped counting how many times coding agents decided to “simplify” and cut my deliberately envisaged
extension points. “You don’t need to keep XmlSchemaSet-s collection and ExtraType-s in ConfigCoordinator,
just register them all in constructor, keep it easy, man!” (plugins extending config schemas immediately
left the room). Or “I dropped FontAlreadyRegisteredException, it blocks me to register the same font from
a different plugin!” (yeah, maybe because different plugins aren’t supposed to register fonts with conflicting
shared names?). Or “I made a transparent backdrop expanding through the whole screen to catch clicks outside
the context menu. Other stuff became effectively irresponsive to mouse pointer hover, but it’s not the big deal.”
(may I decide what’s the big deal and what’s not?). And many other occasions.
Sometimes they even don’t outline what they have silently dropped. It only becomes apparent on code review.
AGENTS.md, written specs, skills and common instructions somewhat help, but unmaintainable slop or ruining
of my architecture can still easily slip in without a harsh review by my own eyes.
Fortunately, I’m an experienced tech lead at my main full-time job. I know how to manage junior developers. So, I’m keeping an eye after my coding agents.
But ignoring their apparent use and actual performance boost in minor routine tasks would result in inefficient waste of my precious free time. I want to provide a playable instance of Penal Engineer by end of 2026, not 2036. And all that yet keeping the architecture mod-friendly and genuinely extensible.
I believe that today AI coding agents finally can be leveraged — if used with a great caution and responsibly.