I was doing a code review this week. There was nothing wrong with the code in terms of structure or performance, but it was doing this really weird operation with an ID after DB insert. I asked about it and the author was like "yeah, that's weird; I don't know why the AI did that. I'll remove it." My dude, I know you can write good code. Don't be lazy!
post
You only have to snorkel through the mile of shit if you let the shit-pipe in in the first place.
In my experience, AI is an amplifier.
Good engineers will produce more good code, because they ask the right questions, know what good looks like and check the output.
Bad engineers will produce reams more bad code. The mistakes they make will be amplified. They will give wrong and incomplete instructions, won't see what the problems are with the result and will ship it anyway.
This amplification also means people will spend a larger proportion of time reviewing than coding, which I think is less interesting.
All of this is stuff that can, to some extent, be addressed with policy. You help and instruct juniors, encourage people to better understand and own their code, or at worst reprimand them if they don't.
You can adjust expectations of product managers and explain to them that more is not better, as it always has been. Faster development can often come with bugs and tech debt and this is more of the same.
All I've said above is puts aside the ethical arguments of using or not using AI of course. That's a separate can of worms entirely.
Good engineers will produce more good code, because they ask the right questions, know what good looks like and check the output.
Best code is the code that is never written in the first place. But that concept is difficult to explain and measure for management purposes. Just because "AI" can automate well-structured, tested boilerplate for "good" developers does not mean all that boilerplate should be there.
Amen. And LLMs have a bias for producing text. And the more questions I ask it, for example to solve more edge cases, it quickly escalates on the existing suggestion rather than find a new approach.
Right. When management counted lines as progress, the software was sluggish because of bloat.
Bad & meh engineers get praised because they "waste" less time directing ai and reviewing output - barely working is good enough in the race to market.
I've seen things as serious as a privileged user for one customer having admin access to all customers being discovered during the last minute pentest literally days before the planned product launch. That product is supposed(and likely will) to move 250M USD for customers in the second half of this year. Under the current policy at my day job, coming all the way from the top, reviewing ai generated code at all should be an exception reserved for 0.1% most critical code. Yes, in finance.
The major difference is that payment processors and money transfer agents are heavily regulated and require a government issued license to operate. At least KYC is not yet handled by ai..
Insane stuff.
Hopefully, those are the sorts of companies that should fail or get sued, so they learn their lesson. Not holding my breath though.
Companies have been doing insane shit for the sake of saving a buck or getting to market fast for decades, it's nothing new. AI may or may not just make it worse.
The neck of the finance woods my employer is in is highly regulated.
Just failing to notify a regulator on time you blocked a transaction attempt involving a sanctioned individual means hundreds of thousands in fines per transaction (not up to, flat 6-digit fine) + potential prison time (can't remember if it was up to 15 or 20 years)
It can work as you say, but some companies are pushing 10x (or whatever) with fewer people, so quality is guaranteed to go to shit.
I've read that because they have less and less experience actually writing code junior developers are having trouble analyzing the code produced.
Nah, good engineers are retiring, bad engineers are running rampant. You give yourself away calling us engineers, we were never, except for some yearly title increase instead of money. Just programmers, and that is fine. Engineer is a whole other thing from the steam age, my BSc was in Math, worked fine to get me in.
Engineer is a whole other thing from the steam age, my BSc was in Math, worked fine to get me in.
As a mechanical engineer, I would beg to differ. When you strip away all the fancy math, engineering is ultimately about critical thought and solving problems/achieving functionality with limited resources. As one of my professors liked to say, "Anyone can build a bridge to support a load, but only an engineer can design a bridge that just barely holds that load."
Engineering is an ancient domain that goes back to the very beginnings of civilization and continues to grow with our needs as we progress. Where once it was just mechanical, we now have domains like electrical, materials, and biomedical engineering. If we've hit a point where we need engineers who specialize in software, why shouldn't we welcome in a new domain?
While it does feel weird calling software developers 'engineers', that is arguably what they do. It's no less reductionist to suggest they are just programmers than it is to suggest that mechanical engineers are simply CAD and Excel jockeys. There's a layer of comprehension about the systems in play and how they can be manipulated that gets lost in the reduction.
My only real sticking point about software engineers where I tend to push back is that Professional Engineer is a legally protected title and indicates licensure, at least in the US. It requires the right degree(s) and several years of work supervised by a PE to qualify for that licensure. The importance of the PE license is that you are recognized as an authority in your field- for good or ill. You can make big decisions, but you will also be held accountable if something goes wrong.
In my experience, many software engineers brush aside the importance of those types of qualifications because their field wasn't quite as rigorous to enter. As we continue to develop a society where software mistakes can absolutely kill people (e.g. self-driving vehicles, robots, automated decision tools in medicine and insurance, etc) or cause massive economic damage, it's critical that we decide how software engineers play a role in preventing those things and how we hold them accountable when they don't.
Wow, that was a screed, (a worthy one) and yeah, an engineering degree should be special IMO, as perhaps a (pure) Math one. should also be. We have a tendency to regard you lesser, in self defense,, but that professional responsibility is significant, a more elegant weapon from a more civilized age. I do apologize,, the steam age thing was out of line (but meant with heart, trains rock, and IMO is where 'engineering' started) has it's roots.
As a software developer who also has a background in civil engineering and an EIT, I rue the fact that NCEES got rid of the software engineering PE exam before I had a chance to take it.
I didn't know NCEES even entertained doing a software engineering license, interesting. When was that?
You clearly have a lot more experience than me- I'm fairly fresh out the gate. Like you, though, I work in a field where licensure isn't super relevant (manufacturing).
It was drilled into my head in school and by my dad (cheme but does civil work and is on the committee that writes the cheme PE) that that for some domains, like civil and chem, it's nigh impossible to find work without a PE (even entry level often requires at least the EIT accreditation).
Our system is, frankly, still very wild-west in terms of accountability for engineers in emerging fields.
It's deeply unfortunate that your experience with the accountability side of things went the way it did. That's another thing that they drilled into my head at school- if you sign a drawing and that part killed or hurt someone, the victims could call on you in a court of law to explain or even include you as a defendant in the suit. Does that always happen? Obviously not, but at least the possibly is there I guess.
Agreed, but software has already had life-safety-critical and massively financially impactful roles in society for 50+ years now, and I see precious little progress toward formal accountability.
Fully agreed here, I was just struggling to think of older life-critical examples after travelling for 22 hours lol (long day yesterday).
Does the same argument apply to calling janitors custodians "sanitation engineers"? I've seen that some places.
Like, if the word "custodian" is too offensive, then maybe it's just because the job sucks and comes with stigma, and anything you call it is going to sound derogatory after a few years...
I get that it's a critical job, and the people in those roles should be treated with dignity and respect like everyone else. The social stigma is wrong, for sure. But simply changing the title doesn't solve anything...
What? That's a very different situation than what I was talking about with software development. I thought I pretty clearly outlined the core of what it means to be an engineer- Custodians aren't doing engineering work. As you said, that doesn't make the role less important or less deserving of dignity.
Just calling someone an engineer because it sounds better is silly and demeans both the actual role and the work that engineers do.
Okay, so the argument does not apply to that situation. A simple "no" would have sufficed...
It is more useful to explain why something is wrong
Yeah the explanation was fine but the "What? That's a very different situation" seemed unnecessarily hostile. But maybe it just have my panties in a bunch today, it could be me
I wasn't intentionally trying to be rude, it genuinely took me aback. I'm sorry to have come across that way.
From my perspective, tt felt like you hadn't actually read my argument and were responding in bad faith, since this comparison is the sort of thing that people say to dismiss software engineering as a sort of thought-terminating cliche.
Oh, my bad. I didn't really need to take offense to it, I was probably just grumpy and didn't know what else to say. It wasn't that big a deal.
But no, I wasn't trying to be dismissive of your argument qua software engineering, but I see how it came off that way. I think it was a good argument, I was just bringing up something tangentially related out of nothing more than free-association style banter. In hindsight it wasn't really that relevant to the conversation anyway...
Any shaved ape can code. One thing that distinguishes worthwhile coding from crap is adherence to engineering principles. Nitpicking about the semantics of the word "engineer" avoids the incontrovertible fact that empirically derived principles and best practices exist and that software engineering is a thing.
Coincidentally, my MSc is in mathematics and statistics, after a dual BSc in math and physics, so we're from similar starting points. My education as a software engineer and later as a systems architect only came once I began coding. There's a considerable body of empirical knowledge in the literature (along with too much irreproducible fluffy bullshit), but in my experience, the general awareness of that knowledge is worse among the newer generation of coders than older ones. I suspect that's because they generally assume that the toolchain and processes do it for them.
The widespread adoption of Scrum has been another source of knowledge loss: it's used in a number of situations where it does more harm than good, and even where it could succeed, it's often misapplied (partially because some agile principles are impossible to implement in most real-life organizations, so misapplication is the only posssible kind of application). There are times when architecture and design matter greatly, and some agile practicioners seem to actually believe that they can be done on the fly or major shortcuts can be taken. "We're not doing waterfall!" You know what? I've been in the business since before some of those fools were born, and I've never done a waterfall project. It was already an anti-pattern in Fred Brooks's 1970 magnum opus. Agile vs waterfall was always a false dichotomy. It's just that some of the OG agile people were too ignorant to know that, or too self-interested to admit it.
In my experience the time spent getting AI to do what I want can just be used to write good code in the first place.
I was just planning to do some sort of write up on this topic, although it will be internal only.
Of the three projects I’m currently on
- existing code base where AI sometimes has good ideas but almost never able to implement them successfully. This is legacy code, all human generated, and is probably too tightly coupled. Test framework is tightly coupled to the environment so ai cannot run it
- new tool implementation to give cheaper and faster context across all repos (Spotify Backstage)
- new code base almost entirely ai generated. Much more loosely coupled. There is no test /mock framework available, so it’s all scripts, which the ai is able to run at will to refine its guesses
There’s definitely distinct conditions where ai can be the right tool and can succeed vs when it can’t. In managements blind rush to vibe code everything, they need to better understand where it works and where it doesn’t
In particular, functionality I’m working on this week
- existing code base ”modify function x to cover scenario y” at best gives a useful strategy
- new code base “implement function x similar to existing code base, but that also covers scenario y” seems to work
This is the first comment section i've seen on lemmy with a reasonable discussion about AI use that wasnt instantly downvoted into oblivion for being pro-AI
Usually this place is full of the "EVERYTHING IS SLOP" crowd without any nuance as to how it is being actually used to do small tasks well under the supervision of a qualified person.
This comment thread reads 100% like AI astroturfing. AI is not an amplifier, there’s literally no evidence from any study that’s been done that backs that. That’s just AI company marketing.
"AI IS AMAZING AND INEVITABLE!!!" = astroturfing
"AI sucks at X, but sometimes useful at Y... use with caution." = astroturfing
"AI SUCKS AT LITERALLY EVERY TASK!!! ITS ALL SLOP!!! SLOP SLOP SLOPPITTY SLOP!!!" = only organic discussion and reasonable take....
Look, there are 100s of valid reasons why AI sucks and is unethical... in fact, it's pretty much 100% built on unethical methods, no doubt...
But "AI sucks at everything and literally has zero good use cases" is not a real argument, but it seems to be the most popular opinion around here.
I disagree with 90% of the pro-AI stuff out there, i'm just pointing out that its rare to hear a reasonable discussin on the topic here that isnt just 100% hate
If AI actually adds value, it should be trivial to demonstrate that value-add in a way that passes scientific rigor.
The underlying problem is that we don't have a good way to measure code value. Software quality is most closely coporable to a weird combination of scientific paper, mechanical diagnostic, and toy instructuon. And we don't have good ways to measure those, either.
There was apparently one study from Stanford:
Note that the headline is misleading -- stanford apparently trainded an AI model to "rate code" in a way that agreed with some of their staff and then ran that on a bunch of projects. The "good at simple and new, bad at complex and old" matches my intuition, but isn't really a stronger test than counting minutes spent in a project or dollars spent on programming with or without AI.
And all AI output is slop. It's just that for some things slop is good enough.
Which really should be an argument more for discarding those things than boiling oceans to generate more of them, but capitalism loves doing wasteful things
Provlem being is that it is not an equal amplifier.
Good engineer spends a morning going back and forth and maybe gets something done that wild have taken them all day.
Bad engineer puts first draft slop in production in a couple of minutes.
Bad engineer gets to put out something every few minutes, good engineer works too make it actually right instead of merely looking specifically right.
That's true, but spaghetti code was always faster to write than good code before as well. I will agree that the speed gap probably has grown though. That's why tools like AI need discipline.
If managers and engineers don't understand that their code will turn into garbage and the business will get reputational harm and lose customers / get sued / have more tech debt to fix and they'll eventually learn their lesson. In the meantime it's going to be a painful process where upper management see extra speed, expand their scope or downsize their staff, then learn that they have crumbling foundations and need to adjust. This has publically happened a few times already. Things will stabilize in time.
Complication is, broadly speaking, much of the decision making only thinks to when their current bonus stock vests. So long term thinking is not well rewarded. If you think long term, then your short term thinking competitor screws you up long enough anyway.
I strongly suspect the next step is for a dramatic reduction in the compensation for software development. If it's not really significantly any more profitable than another trade, then you won't see as many people who seem to actively hate it trying to do it anyway.
Reminds me of a conversation I overhead, a guy trying to impress a girl with how much money he was going to get back in college. He was going into software development to make big money. Girl asks "but I thought you were majoring in communications, why do that if you want to do software?". "Oh, well, I tried but I couldn't understand the course work, so dropped it, figured I'd just get some degree, and then just get some certification and do software development for the money without the dumb coursework". Basically since the late 90s we've had a flood of those types, and this phenomenon just exacerbates the problem.
Good engineers will produce more good code, because they ask the right questions, know what good looks like and check the output.
So what's the point then ?
There have been coding frameworks like game engines for decades, if system coding is beyond your ability.
If AI can't write usable code from the start its worthless.
Maybe you've misunderstood something.
No matter what framework or language you are using, AI can make the development process faster. It can help you debug a problem, write tests and refactor code. In some situations, it will be faster than writing code yourself, in others not.
No it's not because it causes brain damage. If you look at slop all day you no longer produces good code even you're good engineer, you're producing slop code because your standards keep getting lower and lower until you become bad engineer but you even haven't figured it out. If good engineers would produce good code with AI we would have working software. Look how quality of software lowered after AI. We used to say that developers from coding bootcamps were bad now we're lowering standards even more to praise investors.
Yep... I'm leaving the industry after 20+ years because of this industry hellscape
If I got an AI-written codebase hard to navigate, I'd bill the AI usage it took to clean it up and, on top of it, the hours I have to put to actually do the job. We can definitely use AI to write good code, but it takes the kind of professional criteria that vibe coding lacks in order to do that.
We can definitely use AI to write good code
Get a different job. Now!
have you seen some human written code before? Someone who knows what they're doing with AI can definitely generate better code
- it's not AI, it's statistical word prediction with ZERO understanding of context
- yes. statistical word prediction can be better than some idiot programmers. But I don't compare my kitchen machine skills with those of a toddler either.
Computers are too powerful. Any kind of horrendous slop is now capable of running acceptably.
Until it doesn't and you don't understand the code.
No one understands the code. It's far too complex and abstracted. In any case, just get another computer and/or toss in more code. There's 4TB of storage and 64GB of RAM, so what? You want a purple circle, that's going to take at least 55 library calls through dozens of languages.
The actual article: https://futurism.com/artificial-intelligence/software-engineers-crisis-drown-ai-code
im pretty sure this isn the reason, its the dread of being laid off, and unable to find another job, because these companies think AI replaced them. i had one person i know that was laid off since 2023, and another had been put on hold indefinitely.
There can be different reasons for different people. I personally have zero fear of being laid off (strong worker protection laws in Germany) and finding a new job this year was surprisingly easy (50-ish applications with no cover letters -> 3 interviews -> 3 offers) and I still feel the exact dread that is described in the article. The industry sucks in multiple different ways rn.
It seems I'm the only software engineer on Lemmy who loves having AI. It's not perfect, but it's so much better than doing everything from scratch and it's far more reliable for solving obscure runtime errors than chasing down all the typically dead-end results on a search engine for the stack trace. Or maybe I'm just the only one willing to endure the down votes. Either way, AI has been an exceptional boon in my daily workload.
When 60-80% or so of your PR can be refactored away then it’s a crap PR and honestly never should have been one.
So their time savings in getting AI help to write their code means that you spend more of your presumably more expensive time doing reviews and educating them about slop removal instead of some higher-value activity. Sounds like you're veering into negative ROI for the AI use if that's true.
Luckily, I don't review PRs very often, I have people to do that. But the general principle is that the content of a PR is the responsibility of the submitter, regardless of its source. Wrong algorithm? Their fault. No-good UTs? Their fault. Inappropriate or unsafe dependencies? Their fault. Slop? Their fault.
Luckily, with the work we do, there's often nothing someone could train an LLM on, so we don't see all that many PRs with AI-generated content, unless we're using some well-known commodity library or framework in a common way. And that was always the easy stuff anyway.
A slop PR should be the submitter’s responsibility, but if they’re trying to push out unreviewed slop, you know they’re just going to ask an LLM to refactor it instead of looking at it themselves. The best response is just to reject it outright and have someone else work on a new solution.
I see an LLM as my good-but-not-perfect assistant, there to code up boring bits "loop thru this data and extract...", "improve this bit of code please", and to help with errors "why does this code give that error".
I never let it do big slabs of code, and always run and check its code incrementally.
It is my code and the LLM just makes it easier to do. Thanks LLM.
This is probably a fine and responsible way of using LLM, but sadly the loudest voices are those crowing about coding being a "solved" problem and bragging about being 10x more productive by doing very little and certainly not reviewing refactoring and understanding the generated code.
Only gotcha for this is LLM is being offered well below cost, will you still want yo use it at 5x or 10x the cost?
No. I stopped using Copilot after the price increase. Now I do everything locally using Qwen. There's a significant decrease in quality, not because Qwen is inherently worse, but because I only have 12GB of VRAM, but at least it's affordable, and still better than no AI.
I tried using LocalAI to get some kind of agent not being used to entrench fascism and destroy the environment and consume irreplaceable clean water and haven't had much luck. Even on a beefy machine with a chonky graphics card, it's slow. That was after trying it on my laptop and damn near burning my legs off with the graphics card going nuts and the fans spinning up like jet turbines.
I did an experiment where I tried to get it to write some code that I had already written myself, just as a test case. Even when I found a model that worked more quickly, the code it produced didn't do the thing I had told it to do. I had to tell the LLM that, contrary to its "thinking," inline HTML does, in fact, make for valid Markdown, and that it could actually do the thing I had already explicitly told it to do.
The second iteration worked, but the code was far from ideal. If I had been in a professional situation where i would have been putting that up for review, it would have taken me even longer to make the code presentable and up to my standard. In the end, the code I wrote was better by a mile and I wrote it maybe twice as fast as the LLM.
I'm sure this is faster if I use Claude or something and engage the Torment Nexus, but that's kind of my point. It takes so much juice to make these things viable, and the hardware you need at home to replicate that usefulness is expensive and becoming less available. And removing the energy cost from the user's machine (where you can literally hear and feel the energy consumption) to some bank of servers you'll never see in person does a lot to distance a user from the effects of their usage of the tool. Running a local agent only made my view on AI lower than it already was.
I did not try the Qwen model, though I suppose I ought to since I've now seen you claim success with it a few times on here. Will I finally be impressed? Man, I doubt it, but I'll give it a go.
When working with a local micro, be sure to use a prompt to seed itl. Inform it that it is an expert in whatever language you're using, and that it is methodical, professional, intelligent, knowledgeable, and accurate; and that it produces only highly efficient, well-documented code that compiles and utilizes best practices. Throw whatever adjectives or descriptors you think are appropriate in there. This goes double if you're using an MoE, as it primes the model to know which layers/sub-models to activate, so you don't have code being written by the wrong aspect, such as junior programmers and examples of poorly written code.
I recently helped evaluate it for company use. My test considered of vibecoding an App that takes a Pipewire screencast and does some basic image processing on each frame. In C#, which doesn't have great options for talking to Pipewire. I did several runs with various iterations of Claude.
On the upside, it had few problems navigating DBus to negotiate a screencast handle. So that's one annoying API out of the way.
On the downside, all attempts at taking to libpipewire through P/Invoke failed, usually because Claude hallucinated parts of the API or set constants to incorrect values. I only got a working program when I allowed the use of a prerelease Pipewire NuGet package.
The generated code was of acceptable quality but I wouldn't allow it into a codebase without a refactor. The code has zero consistency and one time the whole solution didn't have any namespaces. The fact that the LLM writes and rewrites the code during a single prompt means that you can get mild spaghetti as an initial state.
Honestly, I can see it for something like rapid prototyping or implementing basic scaffolding for an annoying API. But damn is Claude bad at detail work.
I agree, but that's a result of fascism, not technology. How it's being utilized should be the target of ire, not the technology itself. The benefits of AI should be shared by all of society, but instead it's being used to create even more wealth disparity. That actress should have access to Universal Basic Income and be able to do the work she feels passionate about, no matter what it is. Instead we have oligarchs extracting ever more from a suffering populace.
try talking with an out of work actress about how it's being utilized, their only answer is to ban it all.
I know, it's irrational anger and misplaced.
As should we all have had for the past 25 years... keep wishing.
Agreed. And since the alternative is giving up hope,I will indeed keep wishing 🤞
Yeah, I use it to spar with when deciding on solving something. I ask it what are the domain-or-language-typical, idiomatic or best-practice ways of solving something. I trace errors by using AI. I even take whole-sale code it produces if it isn't "serious" like just wanting the HTML or CSS lines that will do the trick.
It will definitely suggest things that I don't think are correct and then I ignore it. It definitely wastes my time sometimes. I definitely don't learn things well enough when using it. But I only have so much time and too many problems I need to solve.

all 100 comments