I currently work at an “AI First” 🤢 fintech company, and we’re mandated to program agentically. I was fortunate enough to start working before the AI hype, but the environment right now is daunting.
There’s too much unmaintainable code slop and throw away scripts committed that I can’t keep track anymore. Each PR has so much diffs that it feels like someone had diarrhea and shat all over.
I try to manually review the code, but it feels like best effort at most. Like I may only understand 70% of the thing that I’m reviewing. What ends up happening usually is that I just ask the model and verify the output(which is horrifying I know)
I spend the whole day arguing with AI, reviewing, and pushing back against its output that sometimes I wonder if I am the one driving AI or is it driving me.
–
Recently, I noticed that I’ve becoming more reliant on the model and that my skills have been atrophying. What would’ve taken me an afternoon if I program it by hand, would take me a week now if I do it now. I also find my head hurting and myself glossing over the code in code reviews and prompting claude to do even the basic of commands.
I get that there’s more to programming in software engineering (collaboration, dealing with people, etc etc), but I don’t feel like I am in control of the systems I am building anymore with the engineering aspect being replaced with babysitting and self lobotomy.
–
Off work hours, I try to brush up by reading on system design and architecture books, typing by hand if I’m learning a new technology or stack, but I feel like it’s not enough to prevent from skill atrophy.
How are y’all coping and how do you recover from this? I am afraid on what skills that I’ll be able to bring at my next place of employment if I resign and that I’m becoming a jack of all trades master of none type of thing - having only shallow understanding.
I don’t know but I’m in the same boat except its just killing all of my motivation. I really love software but not like this and it’s making me want to switch fields
Can relate
Play Stationeers. It’s got a neat little assembly language called IC10 inside that directly controls and networks the game’s physical world and it’s fun and challenging to master. Build contraptions, have deadly but hilarious accidents, repeat.
Simple. My job currently being full-time unemployment.
Enforce commit size and quality.
Label PRs:
- xsmall for <25 LOC
- small for 25-75
- medium for 75-150
- large for 150-250
- xlarge for 250-500
Anything above and instantly reject. Do standard exclusions: docs, code comments, tooling (though I’d categorise this separately), etc.
Have very strict rules on creation of new scripts, new tooling, and so on.
At work? Do what they want you to do I guess. If they are mandating you mass produce slop, do exactly that. I’ve tried fighting against it. There’s nothing you can do when your coworker opens a 785 file PR (not an exaggeration) and it needs to be reviewed today. Your carefully crafted code can never keep up with the constant waterfall of whatever the fuck Claude/ChatGPT/whatever calls acceptable these days.
Your best bet at work is to direct the agents others will use. Use a strict linter. Mandate a strict formatter. Add to the instructions that tests must be written and must pass. Do what you can to force it to emit semi-acceptable code (or fail if it can’t).
Outside of work? What’s a coding agent?
Oh my god, the slop PRs with dozens of files abd tens of thousands of loc are insane.
I don’t even know how to review it.
My answer is usually telling them to go back and rethink the design, LLMs hate well encapsulated modules and they’re very good at spaghettifying your dependencies.
They can do a decent job understand the spaghetti, but they have no concept of what exists that didn’t turn up in the last 5 commits or a list of file names. So they reinvent the wheel every time.
I work at a very large company that has pushed Ai. I also have 27 years of professional experience, so I lead position hasn’t changed too much, except reviewing Ai work as well. All your problems sounds like a team issue. People shouldn’t commit things they don’t know how and your commits should be small enough that they are easy to review. I had this issue before Ai. I would tell my team to please make small co.mits because either have to review them. We still do the stuff we enjoy ourselves but use Ai for the coding equivalent of “please read this 200 page document and remove all i stances of dog”. Basically something that requires no skill but an insane amount of time.
That being said, I do worry about the new grads.
People shouldn’t commit things they don’t know how
I don’t use AI, but I read people saying you lose interest when an AI writes it. You check out. So you have less understanding, and it’s not reasonable to expect people to have the same investment. So I don’t believe it is just a team issue.
your commits should be small enough that they are easy to review
Depends on what’s being asked by higher-ups. If there’s management pressure to commit fast, then, again, it’s not a team issue, unless you’re including management in the team.
People shouldn’t commit things without understanding them, but there’s a lot of pressure on people in some of these shops to push out updates at irresponsible speeds. Management is being flooded with messages about 3x, 5x, and 10x production, and you don’t get that with bottlenecks like “understsanding what you’re releasing”.
In a lot of companies, senior management has lost their minds, and have ben fully committed to the slopocalypse.
nothing new here
ai is just a different flvor to the same shit sammich
It’s the pressure to ship things that gets you.
I took over another guy’s work last week and have spent a whole week fixing issues, but his core work needed to get shipped for a major sales deadline. So I got it out the door.
But now I have to bug fix it back to a real solution that aligns with our long term goals which sucks.
I’m currently on a self-enforced break of at least a week from using LLMs for code generation. I’m using that time to pay off technical debt and make sure I have a full understanding of codebases that have grown too fast…
LLMs have let me get stuff done that’s tedious or outside my skillset. I consider the former purely positive, but the latter is dangerous and requires being selective. I don’t care to level up my Google Glass API expertise just so I can have heads-up biking navigation, but I do want to be good at maintaining the self-hosted compiler for the programming language I’m developing.
I don’t know, but I can only say that I share the situation.
My company isn’t mandating AI but he’s only encouraging it. I’ve been able to just not participate luckily
Nice.
Are there complicated problems to solve that the AI can’t handle? Or areas that are too important to risk the slop? You could focus on those. Nothing like a big dumpster fire that only you know how to put out to make people back off with the AI first bullshit.
For example?
One thing that I can think of are people management problems (eg talking with clients etc).
I’m kinda worried because AI will get better down the line and even if the bubble pops, AI will be here to stay.
Performance work, lower level issues that interact with external software, hardware spec implementation, large testing efforts, long-standing customer-side issues. Anything that throwing AI at won’t immediately solve.
Long before AI I’ve built a career around going after the tasks people deemed too difficult or too lenghty. This strategy creates a lot of room to negotiate. Now with AI, I’m seeing people walking in circles feeding one AI text into another and not being able to interpret the AI output. That’s when they stop caring whether I’m using AI or not, as long as the problem gets solved.
You’ll probably write way less code than before still, but at least you get to keep more general problem solving and code analysis skills.
I’ve been working on my own templates and libraries for personal projects, and trying to do it all by hand to really learn the frameworks I’m using. It’s been pretty rewarding and it feels like I’m tapping into those skills that I haven’t used in a while. Focusing on templates/libraries also makes it not feel like throw-away work, as I will likely use it for something at some point.
Programming slowly by hand with only a book (made of paper) for reference and no IDE.
It was a big surprise to find out that I can’t even write and compile a hello world from the top of my head without the IDE creating the demo project for me and the “play” button abstracting many steps away to run the app.
Oh and of course the decades of stackoverflow copy paste and delegating the grunt work to junior colleagues did nothing to help. I was athrophying long before AI.
Side projects. I burnt out and left a client. Now rewriting an improved version of the tech that improves on every aspect of the system, much of which I developed in the fifteen or ao years before I joined.
I’m sorry that you’re in this spot, it’s not easy. I see a lot of what I love as a software engineer as “solving problems” and a big part of that was solving problems by writing code, but that part is changing.
But it sounds like you’ve identified a bunch of problems. I’m seeing how it feels to see these new frictions as a problem to be solved and finding fun in it so far.
Reviewing code wasn’t ever real fun for me but it was managable at the pace we used to write code. So thats a new problem to solve: how can we confidently ship this new pace of code and feel confident about it? Some of that has been trying to design the process around it, some has been writing agents to help me stay sane while juggling the new amount of PRs I have to face.
It feels, so far, like trying to see all these new situations as problems to be solved, and experimenting with ways to solve them, has been fun for now, hopefully well find ways to keep it fulfilling.
I believe we’re passed that point. I used to fight AI,but after giving it to my projects, I found out that it’s doing a good job with it - not always - and I’m slowly losing the will to write stuff manually,especially with service integrations and endpoints contracts and such.
It can achieve something much faster than I, especially boiler plate.
Edit: I pointed it at a micro service and asked Opus to create a UI for it- with a sizeable prompt - and it did and it did it great, but yeah, unfortunately I lack the knowledge to review it and maintenance is a chore, unless I leave it to it’s original creator


