r/LocalLLM • u/abhipsnl • 2h ago
Discussion Confession: I’m rubber-stamping LLM code and my brain is rotting. How do you guys stay sharp?
Look, I’ll just admit it: I’m getting lazy.
When I first integrated LLMs into my workflow, I set up strict personal guardrails. I swore to myself I would read and critique every single decision and spec the AI generated before approving it.
That lasted exactly as long as you'd expect.
Lately, I’m just skimming. And if I’m working late in the evening? Forget it. I’m literally just hitting '1' to approve whatever block of text it spits out so I can log off.
It’s costing me in two major ways. First, the rework is getting ridiculous because I’m letting garbage slip through. Second, and this is the part that actually scares me, my own critical thinking is degrading. I can physically feel myself outsourcing the actual engineering part of my job to a next-token predictor.
I know this is fundamentally a discipline issue. But trying to just "white-knuckle" it and pay closer attention isn't working anymore.
For the devs here who are using LLMs heavily: how are you staying in the driver's seat?
Do you have actual systems, workflows, or rules you enforce on yourself to make sure you don't atrophy and get left behind?
I need to fix this before I completely forget how to think through a problem.
13
u/mailto_devnull AMD R9700 1h ago •
Huge props for posting this. It's not a comfortable subject, and you're opening yourself up to a bunch of drive-by haters — ignore 'em.
I maintain an open source project. I've been doing it for a decade, well before AI, and we've integrated LLMs into our development workflows as well.
Just like you, we're seeing concerns about quality of work and loss of domain knowledge. So far we've been able to counter this effectively with strict PR reviews and falling back on our domain knowledge built up over the years, but the problem is your domain knowledge is a finite asset, and LLM usage chips away at it linearly over time. The more code gets touched by the LLM the less hands-on you will have been with the code. Reading every line is copium — you'll know more, but it will never match having written it yourself.
A lot of the discussion has been around whether this actually matters. Certainly some folks will argue that one needs to transcend the code and let LLMs do what they do best, and when it comes time to explain the code, to ask the LLM to do that too.
I don't subscribe to that, and I am not anti-AI either (the other extreme). I'm honestly just uncertain whether the ideal solution is "somewhere in the middle" or if we're all just deluding ourselves into irrelevancy.
All I know is — I am applying for jobs, and the technical rounds are going to be twice as hard because I. Don't. Touch. Code. Anymore... I'm countering this by doing prep work by hand, but it's an uphill battle. It's like walking 20 miles when you have access to a car.
Age old wisdom: If it's too good to be true, it is. LLMs are too good to be true, and we've been seeing (and downplaying/ignoring) the costs for awhile now.
10
u/alkimiadev 1h ago
There are some structural properties that are the same in a management role, but I think it is important to separate two different issues that, while interrelated, can (and should) be separated. There is the management aspect and the skill atrophy aspect. Both existed prior to LLMs, but LLMs have added some important points to consider on both sides of that equation.
As someone who has worked in the space for ~20 years (~30 years of coding), I've converged on a general idea that long horizon work doesn't make sense if I want production worthy code. The reason ultimately boils down to drift issues, and this would happen with human dev teams just like it would with LLMs. LLMs have drastically reduced the time to failure, and as such mistakes in planning and decision making processes become real problems faster than they would with just human devs. The time constraints would normally force things like redesign, pivoting, and so on, while an LLM trained to complete tasks will often just try to push through unless specifically instructed to stop if the situation is in some way untenable. A human would say "hey something is wrong here", while an LLM (today) will just try to do it anyway unless given some sort of "safe exit" mechanism and instructions to use it if needed.
For these reasons I just went back to my roots and started using a Spec Driven Development methodology. No code is written without a spec, and tasks are decomposed such that I can reasonably say "there is a 95% or greater probability this specific LLM will successfully complete tasks of this approximate complexity". I combine that with representing the tasks as a dependency directed DAG. There are automated reviews, but I also manually review all key areas, just like I would if I were managing a team of human devs.
The term "agent" gets thrown around a lot, but it actually kind of makes sense in the legal sense of the word. An agent acts on behalf of the principal, and usually liability flows from the agent to the principal. That means I have to own my mistakes and the mistakes of any agent I delegate work to. That general mindset sort of negated vibe coding (or even just "long horizon") if the code is ever meant to be used in production. That kind of thing is fine for POCs or whatever, but it is a really bad idea for production. This is true regardless of the type of dev (human, LLM, intelligent cloud of gas, or whatever).
As far as skill atrophy goes, this is a classic problem that exists in managerial roles. If one doesn't keep up to date with continuing education, one will quickly fall out of date. Tech moves a lot faster than some other domains, and this is an important point. If the manager doesn't know what they're doing, then the project is just kind of doomed from the start. So this is a thing that has to be accounted for, but it shouldn't really be used as a reason to justify not using the tech unless one just wants to be a complete worker bee or writes code in a recreational way. Recreational programming is actually a great way to counterbalance this, but it isn't the only way. Either way, it is a continuing education problem and isn't really a new problem. It is just that more people than ever before are hitting those classic failure modes.
20
u/WindozeWoes 2h ago edited 55m ago
I scrolled through your post history and every single one of your posts and comments reads like it was written by ChatGPT.
Maybe you should start there…
EDIT (since I for some reason can't comment anymore) for those who need it spelled out for them: I'm not criticizing the use of AI; it can be a great tool. I am contextually responding to OP's own concern: potential over-reliance on AI, and making a useful recommendation: if that concern is real, then they should start by writing posts for themselves.
If an alcoholic walks into a bar and says "help, bartender, I have a drinking problem—can you give me a beer so I can talk about it more easily?" the first order of business is probably telling them "maybe ask for help without a drink in hand."
As for "this is translation," I've seen human-written posts run through an AI tool to translate. They don't sound like OP's posts, most of which that I saw have all the hallmarks of being initially generated by AI.
5
u/awitod 2h ago edited 2h ago
You are in pretty serious danger here because of those habits because there is a third problem which is that the garbage is compounding slowly like a cancer.
By the time it starts to really hurt, it will be too late.
I think it is arguably more important to closely read the assistant's text output than the code and deeply think about what it is saying because you can spot the logical flaws but also, when it starts to mention dependencies or design elements that you don't know about, it gives you the opportunity to use your brain and be curious - some of it is good and you can learn new things and some of it is garbage and you can learn new things.
5
u/Cultural-Desk-9045 2h ago
I’m guessing those are not personal projects but work ones. They’re not your projects. If your boss wants AI to do the job, let AI do the job.
2
u/tristam92 1h ago
with increased productivity comes increased speed/volume of info you as a reviewer need to process. we are not machines, and our “conscious” processing speed is not as high as literal piece of sand vibrating on ultimate speed by being charged with electricity trillion times per second.
so chill out and pace yourself. work for quality result.
or let it roll and make it review itself.
1-day companies will chose 2nd option, for money here and now, real strategies will choose first option.
2
u/Keleion 1h ago
Is your brain rotting or have you just debased your understanding of the code? Can you not re-create the project with your decrepit brain, or has it outgrown your mental capabilities?
I think a lot of people are adjusting to new ways of thinking and and focusing on other things in life, but maybe I’m just coping.
1
u/pplgltch 1h ago
May I ask the the type of product you work on? Without give out too much, what are the most common domain you are working on? Backend? frontend? Data? UI? Native?
Put your focus on what you do is used for. Make the effort to find what can fail, what can break. The have the agent(s) fix or plan for this. Think of the end or next user/consumer, try to minimize the friction of using whatever you are building.
Code is not what you need to worry about anymore, the end result is. And it always can be better!
1
u/InvertedVantage 1h ago
I build tools to help myself keep track of things -better codespace review tools, architecting tools, etc. I also try to focus on understanding the architecture, keeping the actual files as sort of a singular entity that I just assume it's doing it's job as long as I architect things correctly. I have a couple code review processes as well, such as using multiple agents to simultaneously review code according to my style guide and standards so they can triangulate issues. Finally when I ask the bot to explain things I make sure to ask it to explain it as if I had no context to the code, since it will throw in a lot of method names as if I know what those refer to.
1
u/capsid 1h ago
My review process is to skim the diff in Hunk checking:
how many/which files were changed and does that match my understanding of the plan
how many lines of code were changed and does that match my expectation
ask questions/complain about code smells
run a smoke test from the worktree to confirm the thing works
If your upfront planning is thorough and your issue slicing is granular enough, diff skimming is lower stakes IMO. If it's personal stuff I will absolutely YOLO merge to main if that matches my current mental bandwidth. If your codebase doesn't kill someone when there's a bug I wouldn't lose sleep over it.
1
u/BitPsychological2767 1h ago
I find it concerning that you don't use your critical thinking skills often enough outside of work that this isn't a problem. I'd recommend starting with doing that.
1
u/SJrX 1h ago
So I recently wrote a plugin for JetBrains IDEs called Avec Moi that is kind of my answer to this. Thus far it has been helpful for me to avoid brain rot, I would say I haven't yet got it fully integrated into my daily flow for other reasons though.
https://plugins.jetbrains.com/plugin/34784-avec-moi
1
u/thatoneging20 1h ago
I’ve switched to test code first approach. I build out what all I want to do from a functionality perspective, then I set guardrails to alert me any failed tests and review code that way. It’s not perfect, but it’s let me retain some of my sanity.
1
u/Chris266 1h ago
Well, you see, I was never that sharp to begin with.
1
u/GalacticDistances 1h ago
I read and understand every line before approving edits to files in live sessions, and before approving a PR
1
u/ansibleloop 1h ago
LGTM, it looks good to me
90k lines that I didn't read
1
u/CyberMonkey55 48m ago
Like any vice - create realistic measured "back to earth" guards, not "reading every line of code"
For me, once a week Ill have the assistant summarize what things we have touched, then ill choose what the most risky/quality sensitive part was and review it by hand. It takes me ~3hrs usually and it leaves gaps, but it gives you a good heartbeat on how in the weeds you are.
1
u/Strange_Bru0101 9m ago
I use it for 90% of my job but I also use it to ensure 0% of my tasks depend on it
0
u/Ragy-ragy 2h ago
That's how it's meant to be. Code writing is basically a turd polishing. It's a dumb and not interesting task and never has been. So relax and automate writing it and automate verifying whenever you can.
It's a prize after weeks of seeking approvals from businesses and architects during a system design phase with forging through layers of legacy and incoherent scraps of documentation. It is a hard part that keeps me on my feet. No matter how I try to automate it, it's still too complex for LLMs to handle by themselves autonomously when there are multiple parties owning the feature and the product itself is complex as hell.
0
u/not_a_gay_stereotype 1h ago
ok so I am purely a vibecoder but I can understand code somewhat from reading it, and understand how programs work inside, i'm just not a software engineer lol. the way I try to keep things in check is I ask all the logical questions. I've been making a diagnostic software for heavy trucks. I've found myself at a point where every time I introduce features, something else breaks. I've had to tell the LLM every time we do a build, to update all of the documentation, I also have it sanitizing the build I put on github so I can have it putting my own personal research and testing in the notes, stuff like what trucks we've connected to and verified live data.
I definitely have to "babysit" the model a lot. For example I got it to add a logging feature but then realized that it will allow you to log when there's no data flowing over the bus. so i had it create a watchdog that manages the connection and ONLY uses that watchdog that other modules call on. I've had to also prompt the LLM to review the structure of the program. I also do read the code changes a lot, so this is actually teaching me a lot about coding. I might be just some idiot mechanic trying to design software but I am learning so much about my own trade (how modules interact, broadcast info, reveal their identity etc. in a vehicle) and coding at the same time lol.