Comment by skrebbel
2 hours ago
I did but it was followed by "holy shit now I gotta review this +3000 -500 LOC PR full of subtly wrong abstractions, needless diversions and incorrect assumptions".
People keep repeating your sentiment here but I simply can't follow, are we even on the same planet? Or did everyone switch to just not caring about maintainability and code quality anymore? Or are your work tasks simply so mindnumbingly, stupidly simple that even an AI can oneshot them properly?
I mean this honestly btw, not dismissively like some sister comments. The gap between the productivity increases people report on HN and what I experience myself is insane. In fact, if I factor in the procrastination I find myself doing on dotting the i's on a supposedly "one-shotted" AI implementation of a nontrivial feature, I think the AI actively slows me down.
The only way I've found that I can actually use AI productively and sustainably is in very small tight loops and, well, at that point it's not that much faster than just typing in the code (with the occasional "Cursor Tab" complete).
Am I doing something wrong?
You have to have a team of agents with different roles reviewing that for you. An Advocate, a Skeptic, an Architect, a Security Engineer, a Disgruntled User, a Single Mom, a Clueless CTO, etc. each provides their unique prospective on the change. Then you have a Remediator and a Consolidator to address the feedback. Finally a Liquidator in case of a catastrophic failure.
You forgot Boot the Dog who simply wakes up periodically to check if the crypto rugpull is ready
Ah, Poe’s law… my favorite
I prefer to have a Clippy agent that identifies code that should be copied and pasted into random locations for no good reason. You may think it's not necessary given how LLMs operate, but I have found it's critical for 10x gains.
I can see how that agent can be useful in certain scenarios. We just introduced a Cheering agent to help with moral.
Very, very senior dev here who has never taken a shortcut in his life. Don't mean to sound like a prick but you're doing it wrong. You have to find your own path through this stuff. It works, promise. I was in your shoes six weeks ago.
Wait, only six weeks ago? That's not long enough to be reporting success, genuinely. Come back in a few months, bare minimum. I'm far from a skeptic, but I've also personally had a number of moments over the past 12 months where I've declared "this is the future!" about some new app I vibe-coded, or some new workflow I started following, only to abandon it a few weeks later. And it's not just me. Check back in on many of the vibe-coded projects or AI tools you see shared and you'll see the same. It's happened at my work too — people taking over entire meetings to discuss their new revolutionary AI workflow and then, a week later, nothing...
A big problem is that these codebases rot. Agents move incredibly fast at first, but then as you pay less attention (or perhaps no attention at all) to the architecture, they slowly fall to bits. So then you decide, I'll use AI to rewrite it! And it gets better for a while until, well, you get it.
That's not to say there isn't value here, there absolutely is, just — chill. A little.
To be fair, a "very very senior dev" wouldn't tell me that I'm doing it wrong without telling me what I'm doing wrong.
I've tried. It's like trying to teach squirrels how to Google. Really, you just have to figure out what works for you. You will be rewarded.
3 replies →
A very very senior dev can use LLMs with confidence and definitely doesn't get surprised by them.
I think to effectively use LLMs in a controlled way, they can help with three things: - Help you pump out boilerplate, or otherwise "obvious" code, that you can review at a glance - Help you gain understanding, either through rapid plan writing/revision or code quality/architectural/security analysis. The gotcha is that it can only help along one axis at a time, or at least can only communicate information sensibly to humans this way - Cross-cutting or fuzzy matching across a codebase. This is the hugest win, like "replace this pattern with the new approach everywhere". This used to be the scariest sort of task, and now it is one of the more stable things LLMs get right.
Where things go off the rail is when you want it to plan AND implement features. The blind spots of LLMs are not where they are for humans and way more work to anticipate. You have to stay on top of the bucking bronco, but you CAN move much faster if you can architect your system so more tasks fall in the "obvious" bucket - that is where the art of engineering still lives. Human understanding remains the goal.
I've had a similar experience on huge codebases written entirely by an aI. It works for very very specific cases (e.g., Opus 5 has helped me with SIMD optimizations) but I wouldn't trust it to do a 10000 LoC project even with agents just because of the complexity problem and the shear amount of code I have to review. Or I'll have to change a bunch of things because the LLM made assumpts I didn't specify and it didn't ask about (e.g.: I have had to repeatedly tell these models to use std::atomic_flag and not std::atomic<bool> for a project I maintain because for some reason I cannot fathom, they love, love using the generic std::atomic<T> template, and they love using std::atomic<bool> where an std::atomic_flag would be better). Just little things add up, and before you know it I'm spending more time fixing it's issues than I am making progress.
People review PRs? LGTM.
Mr lucky over here with an agent that removes code!
Fair, that was unrealistic. One day, maybe!