Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

A natural evolution of engineers losing touch with the customers and users.

I'm noticing some of the concern play out regarding AI weakening the capabilities of software people.

I gave the team an exact solution on a silver platter and they still failed to identify how to go about it after 3 days slamming it into Claude. The resolution is literally 1 line of code that could be arrived at in about 30 minutes of patient, old school troubleshooting.

I think what's happening is the AI system draws poorly aligned and led engineers into this ego inflation feedback loop where they are completely detached from reality because these tools can simulate a better one.

 help



> 30 minutes of patient, old school troubleshooting

This is also the best way to understand a codebase, and it's quite enjoyable.

I think the models are getting too egotistical. They're so confident of their fixes they won't bother suggesting basic techniques like isolation of the problem by disabling code paths, for example. They'll keep shotgunning less-and-less likely fixes with undiminishing confidence until the code is full of fixes that do nothing. Then they'll double down on why these should be kept.


> and it's quite enjoyable

Used to be somewhat enjoyable. Nothing pleasant about digging around codebase that was heavily affected by the last 12-18 months of AI-ing.


We have a tool at work that was entirely spun out of a prototype that itself was entirely driven by a single guy with an unlimited Claude budget. I only touch it on the edges, where I need to integrate it every so slightly into one of my systems. It's a crucial piece of software for the team, though. I've looked over the source, the thing that strikes me the most is the verbosity. Human software engineers would've been much more terse, so the thing has a fucking lot of code that's doing very little. They're trying to deal with that now, while also driving feature requests forward, and from the distance it looks like an unmanageable shit show.

It really depends on the codebase. I remember ~10 years ago trying to learn about some of the big codebases that existed and what struke me was the verbosity. I don't remember if it was a PHP framework or a big JS library, but it was like 20+ lines of comment/explanation for each line of code. I was trying to follow the code flow and it was basically impossible, you could fit like 2-5 lines of actual code per screen.

In all fairness, LLMs try to write the code with all the safeguards imaginable, all exceptions handled and following the SDK/language/framework guidelines.

So a lot of this verbosity is good, even if we aren't used to it, because almost no one writes their code so exhaustively.


I sometimes wonder if the verbosity gives the LLM more “margin for error” when generating text that passes requirements.

It's simpler. The verbosity, the line of code count, is what has gotten people excited about it. So everyone optimizes for verbosity.

This does not strike me as true at all. Nobody's crowing about the verbosity of their AI-generated code. Rather, it seems to me they're impressed by the functionality or capabilities relative to time/cost.

10 lines of checks per line of actual execution. Anxiety for their stable pay

Of course. Those 10 lines of extra code is that much more tokens every time your agents read and use that section of code. The more blot in the project to more tokens your agents will burn.

Reminds me of a subcontracting agency

Depends on the prior state.

For one codebase I work in, LLM written code is noticeably and measurably (we have literally measured it for bugs, performance, etc.) better than what existed before. So the LLM code is a welcome change.


Do you measure anything about complexity or brevity? I'm currently working on importing some LLM code and it's 5-10x bigger than it should be for the actual needs.

One of my open questions is how much that increases over time. It could be that is a constant. But it also could be that, say, coding agents will infer false needs from the excess code/docs and elaborate further.


You always must measure complexity (O-time), brevity, etc.

LLM code that is written to a lower standard has not had the controls put in place.


I've only personally utilized it for code _review_ and always ignored the suggested result code instead to understand the source of the issue and try to arrive at a resolution I find satisfactory for my mental model of the issue and solutions I'd prefer.

My take is that the main difference is the approach to problems the coding agents have. They optimize towards presuming a fully working invocation environment, yet checking everything anyway, and then rolling back any changes and re-testing that such changes worked. Which is great for normal types of software but incredibly tedious for anything aimed at less than a fully hands free automated environment.

In other words, AI is very awesome at scope creep of assigned problems and targeting the validation prompts baked into the review system.


I find this shocking though not unbelievable. Could you share how you measure this accurately? I'm interested in integrating such measurements into our services as well.

We’ve been tracking performance and bugs for years. Including commits those bugs were introduced in. So when LLM-generated code started working its way into our codebases, we have the before and after. And even comparing human generated code today with LLM-generated code today.

I find it unbelievable. I've seen the code LLMs write and it sucks compared to what a typical human produces. The only way an LLM is doing better than human programmers is if your human programmers were producing really terrible work.

I personally find it unbelievable that you have access to all of the public GitHub projects available and still think the typical developer writes good code.

That must be why literally every single AI-powered code review of completely-human-written work turns up something. >..<

Also, regarding your accusation, you need to contextualize- what language, what use-case, what LLM, etc.?


Believe it or not, most programmers by definition are average. Hence, producing code better than them is not a hard feat to achieve for today's models.

What exactly do you mean when you say llm generated code? Are people prompting llms for changes and features without reviewing the code or iterating on it and then comparing that to what human writes? Because if so it's not surprising that you're getting worse results. Humans also write code through iteration. You can definitely get llms to write good code by enforcing guardrails and constraints through tooling and agent.md, and iterative reviews to nudge towards what you want. The first pass will look nothing like the committed code. I don't expect the llm to one shot anything.

What LLM/harness are you using that the results are so terrible?

It also documents itself extensively

But then you’ll use it to change something, and it won’t update any of the extensive documentation. So then it’s filled with lies.

Or worse

It'll mention the old version then the change, and the relating tickets.


That actually hasn’t been my experience. For all that I dislike about LLM code, it maintains comments well.

You need a better harness. LLMs are significantly better at this than humans. Add it as a step in your LLM process and your documentation will always be up to date.

Sounds like human generated code and docs. TBH

I fucking hate it.

It encodes context it needs into doc comments and regular comments that make them in insufferable to read and so verbose because the comments contain info on other parts of the code base (that might have changed since that comment was written) but were useful to the model for its implementation. I have so far found no way to stop claude from doing this. It will sometimes do it with hand holding but the moment a task takes a slightly large amount of context its back to the word barf.


This is certainly a problem with out-of-the-box usage. But easily overcome. Spend time updating your harness. This is not a hard problem to solve and there are many helpful guides out there.

We basically took our documented (human) SDLC process and applied it to the relevant harness hooks. Since our SDLC docs talked about what good comments looked like and what to avoid, we basically had the direction for the tools. Opus 5 did throw us a loop and increase the verbosity and decrease usefulness of the text, but refining our documentation cleared that hurdle within about a day.


'ai slop' is hard for me to complain about when it's better than 95% of code prior. The issue is more people trusting it too much to go too far, and you end up with lots of extraneous bullcrap you don't need. Doing too much and too big of a change is still a problem in the agentic world.

The field is already exploding in SLOC. If LLMs can generate 10x but only produce a 2x productivity boost in reasoning or understanding - each year -then neither humans or AI will be able to keep up with the mountains of slop that power everything from websites, telecom, banking, automotive, aerospace, industrial, medical, and renewables.

Guess we’ll need even more human software engineers to fix it.


> Guess we’ll need even more human software engineers to fix it.

This is what we've been doing for years before LLMs. Hiring a ton of devs to spit out code, which became another's burden. It just took longer and cost more.


Major critical software has always needed thousands of engineers to maintain million line codebases. LLMs can't reason across edge case failure modes, and better yet, LLMs generate compartmentalized modules which exponentially explodes the number of failure modes as LLM based codebases grow. Read how everyone here laments about Sol or Opus or GPT6 generates 10x the required number of lines

> LLMs generate compartmentalized modules which exponentially explodes the number of failure modes

It sounds like you're arguing against modularizing which is an unusual stance. Especially for a million line codebase.



Also if your entire stack is on the cloud, mess of lambdas and other proprietary services, difficult as hell to follow logs, can't really run locally.

Pretty fair. Engineers spoiled the code and now have to deal with it.

I have no evidence at all, but could it be that repeating the same thing over and over again in the context makes models latch on to it wrongly and gives them more confidence despite it being wrong? Kind of like a sunk cost fallacy…

Although I do acknowledge sometimes they too point out something I thought was quite right but turns out of be wrong…


A session is a screenplay between someone called User, and someone called Assistant who is a helpful and competent assistant to the user. Harnesses bring in tools to the screenplay.

A screenplay where a character has done a certain thing is one where they're more likely to do it again.


It's the uncanny valley of AI. It's still not quite good enough yet that you can trust it blindly on a big codebase, so you still have to read and understand everything - which is often harder than just writing it up yourself.

EDIT: don’t get me wrong. I still think AI is incredibly useful for a lot of tasks! But when implementing an architecturally hairy thing, I find it less stressful and equally quick to jump down to the editor level and use AI just for code completion.


Pretty much, The one thing I use it for is as a sanity check, pretty much "Look at <SomeFile>, point out issues you see, summarise them tersely" and it'll spot stuff a code review by a human might have spotted (in the mythical land where people actually do code reviews properly and don't just flag a spelling mistake to "show they looked at it").

Beyond that I don't trust it at all and I still write all my code the meat sack way.

Trust is earned not given and it hasn't earned it yet.


If anything, I think this hype cycle is fast exposing just how many people, teams, and companies just don't care about what is correct. They just wanna feel good about themselves and get paid.

I for one welcome the fact that this whole thing has driven me back to books and deeper into the fundamentals. I have never read so much on math, hardware, and history as in the past 3 years or so.


Much the same here - I have gone back to basics and am studying a lot more than I ever did.

Are you doing those things for your own enjoyment though, or to eventually capitalize on it?

And if it’s just for enjoyment, then doesn’t it make sense other people who want the same would just get a job where they can keep pushing things to an AI, feel good, get paid, then quickly get back to the hobbies they really love?


You are advocating for the kind of compartmentalization that got us here in the first place.

Nothing wrong with compartmentalization. Some people like it, some people don’t. Just different ways to live your life.

I don't think "compartmentalization" does this topic justice. Note, I'm not accusing you, since I don't know your work. My post is about the general milieu and the rhetoric around it. This "compartment" terminology seems to whitewash a dimension that has diligence on one end, and fraud on the other.

I've always worked in high-trust organizations where we depended on each other operating on the diligent side of things, making conservative choices to never wander into the murky area in between. It is horrifying to me how many people seem complacent about or even complicit in a different objective, which seems hell bent on wandering as far into the murk as one can without being caught.

When the person who has a duty of diligence starts rubber-stamping AI outputs, they're veering off into that same murk. They accidentally or wantonly trust the agent as if they have delegated their duty of care. But the AI tool has no such duty and no capacity to care.

I think this worker who has turned themselves into an outsourcing middleman needs to treat the results just like "found code" in a USB drive they found in the parking lot. Its origins and purpose are unclear. It could be flawed or obscurely inappropriate for the intended application, it could have legal entanglements, or it could even be subtly adversarial. The review task to figure this out is not simple. It is not something you do by skimming the result, or worse, asking some other AI tool to review and summarize.

The person importing such code to a project needs a different kind of diligence to try to screen it. For a lot of people, I think this review may be impossible or at least no less laborious than doing the original work themselves with the required diligence.

And, I think this importer needs to be fully liable and responsible for the outcome. But, instead, I think we're seeing frequent appeals to blame the machine and act like it is an honest mistake to let things pass because they've been rubber-stamping the imports. A lazy desire to claim credit for appearance of success, but shirk responsibility for detected failures.


This view is a little idealistic.

Software Engineers have historically not been very liable even for errors they create by their own hands, and companies tend to operate on a “blameless” engineering culture where there is not really a formal consequence for screwing something up. Your peers may not trust you for a bit, but the trust builds back rapidly as they make their own mistakes and then empathize with your past transgressions.

And in the AI era, this attitude has extended even toward code engineers aren’t writing themselves. Everyone agrees not to protest too loudly if someone commits something wrong because tomorrow it might be you who has done so. The days of “obviously bad” slop code are largely behind us and most recent LLMs tend to put out decent code, so it is very hard to catch problems in review phases, you’d have to be very eagle eyed and that’s not scalable to every employee. It is much easier to let the code run wild for a bit and just be ready to fight fires should they come up.


My advice is to try letting the agent fill in the gaps. You can probably architect better than it can. Write your class outlines, explicitly define the public facing bits and what you want APIs to look like. Write the key integration tests that you know ought to pass.

The real advantage is that agents routinely write code without any silly copy/paste mistakes like accidentally accessing x twice on a coordinate operation instead of x and y. You can add some comments for what the function should do, throw in some real/pseudo code and let the LLM figure it out.


> It's the uncanny valley of AI. It's still not quite good enough yet that you can trust it blindly on a big codebase, so you still have to read and understand everything - which is often harder than just writing it up yourself.

You might as well have left it with: "It's still not quite good enough yet that you can trust it". That's the core of the issue. It doesn't matter what you ask it to do, it can't be trusted. Some things are just easier to verify and correct than others.


> That's the core of the issue. It doesn't matter what you ask it to do, it can't be trusted.

I dunno about that - whenever I ask it if I'm any good, I remain confident that it will assure me that I am!


Nah, It's not even good for small code changes.

Try using it with Ansible. It spits back complete buffoonery.


I was investigating an ansible playbook yesterday that had a 45 line comment to explain a single apt install command, completely and utterly useless. I am updating my neovim to just collapse all comments, the noise is unbearable.

I've seen people report cleaner code by forbidding agents from writing comments. Anecdotal, but interesting.

Mozilla's Firefox AGENTS.md begins with:

  Limit the amount of comments you put in the code to a strict minimum. You should almost never add comments, except sometimes on non-trivial code, function definitions if the arguments aren't self-explanatory, and class definitions and their members.

  Do not remove existing comments unless they are directly related to what you are changing.
https://searchfox.org/firefox-main/source/AGENTS.md

Is anybody else concerned that we've gone from exactly specifying to a computer, using an exact language, what to do, to a more sophisticated form of prayer?

Nah, I'm sure it's fine. What could possibly go wrong with abandoning nearly a hundred years of CS knowledge and hard-won lessons and replacing all of it with the equivalent of trying to convince a sociopathic teenager to clean their room?

Something like this seems unlikely to work for a behavior so burned into them. It'd be better to do a second pass to delete all the nonsense comments.

I promise you this doesn't work. Might help but not a lot.

This is exactly what i do, i have a pi extension that blocks all comments.

I'd say it's more about learning how to organize your work more efficiently.

If you think about a product like marble: it's something that most be chiseled out of time.

Some people can chisel better products: the AI is just a better chisel.

Sometime still has to guide the chisel and judge the art/product.

In our cases, the market judges products.


This seems to misunderstand the parent comment. The sibling comment plays along with the analogy and mentions having to fix the mistakes of an automatic chisel, but the original comment is alluding to the fact that it is definitely not an automatic chisel. There is no uncanny valley in an automatic chisel.

Programming up until this point was done by using deterministic tools to build products. LLMs appear to be nondeterministic tools in their current incarnation, at least to humans.

If an automatic chisel had a feature that could switch from chiseling from sedimentary rock to chiseling marble but would randomly and nondeterministically switch to the other mode during its use it would be considered defective. But with LLMs the industry has collectively decided that the nondeterministic automatic chisel builds so fast that the current defect rate from the nondeterminism is acceptable.

It would make sense to isolate the last line of defense from LLMs, ie the tests, but this rarely seems to happen any more. Once the tests are contaminated with LLMs all bets are off.

And people forget that along with atrophying skills and reasoning due to less coding, the skill degradation is hastened because the programmer is faced with the reality that they would have to constantly figure out, review or edit someone else's code (ie, the LLM's) if they truly wanted to maintain a last line of defense. But as this type of task is literally the least liked task in programming, the programmer passes it off to the LLM as well to avoid burnout...


I had a huge post written up to address your points, but I have to get moving, my ass is literally falling asleep.

It's easier just to say: It's all about time, my man. Nobody wants to waste it.


This. Time is money, and if you're not using an LLM you're wasting your employer's.

  > But as this type of task is literally the least liked task in programming, the programmer passes it off to the LLM as well to avoid burnout...
this is my daily life now and its miserable

its an overload spiral that gets worse at each iteration (even while 'gardening' our agents/skills)

the worst part is using the llm to generate the specs/features; its shit from the start and tumbles downhill from there...


I think my point is that its sometimes (!) easier to use the manual chisel rather than go for the automatic chisel and then fix its mistakes.

They say writing engages more of the brain and helps us to remember what's written more than if we just read it, or copy and paste.

When you say it's easier to go manual, it seems you're talking about learning retention. And you're right.

But seniors have learned enough that they're able to iterate quickly with AI.

They know how to organize their work, manage change, tasks. They know how to break a problem down into smaller pieces. They're aware of context windows, token cost, estimated task lengths, etc. And most importantly, and to your point about ease: they have less to learn so retention isn't an issue.

I have no opinion about whether we're in a good or bad situation, just making arguments from the toilet really.


It's not just learning is it, why do people buy hand ground coffee when there quite literally isn't any difference? Or audiophile snake oil? As long as humans are still the consumers, some part of consumption will be emotional. Could be to support local artisans, could be gullibility, could be love, whatever.

Maybe one day artisanal code will be a thing lol. Hand written like calligraphy. Those with refined tastes will have their favorite code artisans. And the plebs can continue with mass produced industrial junk.


It's already a thing among nerds. It's why Zig and Codeberg have their no-AI policies.

> In our cases, the market judges products.

It happens, but it's rare. When last did a product take over a market without 100s of millions, sometimes even billions, of VC dollars?

There is no motivation to build a better mousetrap today, because the drooling idiot with a Claude account will look at how quick you signup users, clone it in a week (hey, it only needs to be superficially the same), and get VC money to dump until you go out of business.


I agree, except for the use of the word "yet" .

I think what's missing is fundamental. I think the reason it sucks so much to work with LLM-generated code is that LLMs will never "know" what it's like to be human. They don't "understand" our frustrations and motivations, and they're missing the vast array of useful mental tactics we've evolved to cope with corporal existence.

At this point I think progress towards a good colleague bot would require a new architecture which allows continuous leaning, and for the LLM to be raised as a human child (maybe in a simulation at 1000x speed or something).


Your assumption is that LLMs will ever leave this uncanny valley.

Maybe unforeseen breakthroughs and different architectures are achieved. Given LLM fundamental shortcomings grounded in mathematics and information theory, I highly doubt they will and we will always need to deal with these issues in some capacity.


Agreed. For AI to be something you can trust to operate autonomously, it needs to actually be able to understand the things it is working with and reason about them. LLMs cannot, by their very nature, do that. There can be no reliability with such a tool.

I think that bigger context windows help, but I feel that for AI to cross this chasm, it needs to be able to encode more abstract context knowledge. I think the holy grail here is online learning.

I think the speed/context size of the large models is a threshold. I've been using a local model and watching it do killer stuff, and also shit out useless things; all in real time, requiring active steering.

I'm seeing this happen in the security space right now. Someone on my team I was helping train and bring along is all of sudden regressing in their understanding of the issues we're working on, and instead focusing on AI tool outputs to do their job for them.

I can share a weird story:

Usually, I take my time to understand each keyword of the code I'm looking at, especially if it is new to me, like terraform.

I work in a team/with one architect, who only did the DevOps/Infra stuff for the past years and I had the expectation he knows what he is doing and talking about.

At around 2 weeks, I noticed how his knowledge has severe gaps and how he takes things at face value or uses terminology interchangably, which confuses me. It sounds plausible, but it does not actually translate into a working system or shared understanding.

Then one day I did some pair programming with him and whenever there was an error or a resource missing, he would type it into the LLM, copy paste it out of it and then brute force error messages. He did not even wait a second to think or reconcile whats happening on the screen or what the exact requirement is. Never taking one step back and questioning any assumption.

Now that the timeline is shifting and everyone starts to be stressed, he continues to vibe code through me and it is so tiring, there is no higher level planning or architecture, its just a reactive type of trial and error to be faster. It feels like these people are so used to talking to bots, that they treat you like an agent they can chat to or talk through monologs with.

It is quite shocking how people went from being humble (learn the basics or close the gaps in understanding) to full on authority on everything and berating people 24/7...

So right now I'm considering quitting IT for a couple of years until people calm down, but I think its pretty futile


I don't think it's generalizable. The kind of person who copy and pastes from the AI is the kind who did the same from StackOverflow before. It's more compelling, and we probably see more of them because of it, but it's the same general thing.

The kind of person who insists on understanding things and working through the problem has always been rarer. It's not "humble", it's "inquisitive" and "persistent".


I'm seeing people who _used to be_ like that losing that understanding without realizing it's happening - they have a superficial idea of what the code is doing, enough to feel like they understand it, but the change is apparent when watching them handle something unexpected.

LLMs reduced interest on tech debt, but it's still there and people who have a tendency to acquire it will go bankrupt eventually.

"The code market can stay irrational longer than you can stay solvent." will probably be a thing.

That's certainly what I expect to happen. LLMs will ruin your software if you don't hand-hold them, but it'll take time for that to happen. And until that does happen, businesses hell bent on using them won't have anything to push them into realizing what a mistake it was to use them.

Two imagined executive responses:

1. "Nonsense, if it was a code-quality issue from the AI stuff, we'd have seen problems sooner, like in the first few months or a year. Oh, sure, some engineers complained, but that was just an adjustment period because they stopped once we told them we didn't care and mandated that they up-skill into the new AI-centric workflow future."

2. "The bold new AI initiative I put into place can't possibly be wrong, this failure is on the engineers who were responsible for overseeing its operation. This is supremely disappointing because we made their jobs so easy, they no longer have to write code, just review several dozens of pages per day with unremitting paranoid vigilance and attention to detail."


This, plus anyone responsible dodging that as soon as possible via job hopping. Harder to do in the current job market but internal transfers are still available, most of the time.

I was pretty early in the LLM stuff and I got called out on using it back in the day, because I showed the exact symptoms we see now, but as soon as management jumped on the train all the coworkers did a 180 and I alt tabbed out into a different department thinking it would change something... well it didn't :'D

I guess it will take some years till we are sane again or not...

I revisit it to see if the promises are unbroken now from time to time with every other update and these days it doesn't look so good. It is non deterministic all the way down.


The difference between the two is that friction is learning.

the less friction the less growth.

So even if they copied from SO they would have better knowledge than an Ai user.

This isn’t speculation either, theres an MIT study which this is based on. https://www.media.mit.edu/publications/your-brain-on-chatgpt...


Learning could be targeted though.

If I know where the error is (a script written by AI in powershell) and it's a logical one, it's ok to let the AI reason about it to get it fixed and move on.

If I have no clue about how this part of the system works, then it's worth reading closely what the error says, in order to understand it first, then have the agent check the assumption you have.

Reduce the friction by having the agent explain what happened and why the fix solved it. I know this might be an intellectual placebo, but sometimes you need to fix something fast to move on. Learning takes longer, and these days everyone expects you to be a 100x engineer with AI.


> I don't think it's generalizable. The kind of person who copy and pastes from the AI is the kind who did the same from StackOverflow before. It's more compelling, and we probably see more of them because of it, but it's the same general thing.

There's an infinity between someone who has to panel beat what they copied off SO and someone who just bangs their head repeatedly against an LLM.


In essence, you are correct. What I see with LLMs is how they will happily make up stuff, meanwhile you can pretty much exhaust SO, until you are forced to understand the problem you are having.

You don't have to be a certain person to fall into this trap, you just condition your brain to accept this workflow somewhere.

Pair this with day to day work stress like time and amount of tasks and you almost give in to a sort of addiction to deal with it all.


> The kind of person who copy and pastes from the AI is the kind who did the same from StackOverflow before. The kind of person who insists on understanding things and working through the problem has always been rarer.

Well, this is where I disagree. I have coworkers who used to insist on understanding and now are doing exactly as OP wrote - copy/pasting from the LLM to brute force error messages. I don't know if it's generalizable but this is what I see in <big tech> working on a frontend team with mid to senior level engineers who I respect.

One example a few weeks ago, I was helping a coworker root cause a bug in a React codebase. Pair programming isn't necessarily common but sometimes you see someone banging their head at a problem and you get curious. It turned out there was an effect (a callback that's invoked whenever some state changes) that invokes an API and this effect caused an infinite render loop because the error handling wasn't written correctly. It was something silly like - Call this API if we have no data -> get error -> update state -> call API again because we have no data...

That was almost immediately what I suspected but my colleague was pulling out all the stops usually reserved for when you're desperate or need a sanity check, like logging to stdout after each line. Both my colleague and the LLM were convinced the problem lied in the pagination logic of the helper that invokes the API. He ended up rewriting that helper imperatively and functionally. To his credit, he rewrote it by hand and implemented the recursion correctly but he was baffled when the problem remained. Completely surprised Pikachu face.

I don't think my coworker changed or suddenly stopped caring. It seems much more likely this is a predictable outcome when you lean heavily into AI authoring code for a sustained period of time. I'd also say that in itself is a consequence of the extreme pressure being exerted across the entire company to ship more code and review more code, faster.


Great comment.

At my place, this is what they want. They want people to smash through things as fast as possible. They don’t want people to sit and craft a solution which takes in to account the whole. They are choosing tools which are low code, and use llm’s to produce what they need. as they say “this is the way things are going”.


Even that would be acceptable. But they still blame the programmer, who was pressured into this, for any fallouts because of it. Basically trying to have it both ways. The unreasonableness of it is infuriating.

Pretty much this, they want to impose one method, but they don’t want to own the mistakes that it creates. Sometimes it felt like the bullies that are saying “why are you making me hurting you?”.

I see it as laying the groundwork for firing. This is bound to blow-up in production eventually which would be a good enough excuse. If it doesn't, reduce token budget and squeeze some more until it breaks.

In today's episode:

"Programmers frustrated that they're being treated like craftspeople or delivery drivers or factory workers, etc, etc."


I don’t understand how this comment is productive for any of the groups involved. Can you explain it to me?

It doesn't try to be productive.

It's exposing the hypocrisy of privileged groups suddenly being treated like regular people, when they did NOTHING for decades to help others or even to protect themselves ("f** you, got mine", rockstar programmer, 10x programmer, talents everywhere, etc mentality). No unions, no collective bargaining, sheer individual greed.


Do you think that all programmers have always existed in the US?

On that note, do you think that all programmers in the US are these Silicon Valley stereotypes?

Plenty of programmers in the US make normal wages for professionals with degrees doing things not at the technology companies famous for their disregard of the rest of humanity.

As someone who has done trades and also “machine shop programming” and jail breaking rural equipment for friends to use I’m wondering why comments like this are focusing on dividing us instead of bringing us together.


It's a universal programmer trait. Let's call them "culturally regular programmers": they are less social than the average person. They lean more libertarian and more selfish.

According to who and what?

I think the entire open source community would like to have to have a word with you.


The Open Source community is programmers sharing with other programmers, and it's largely fueled by corporate interests these days.

The Free Software movement has largely failed by now, as shown by GPL 3/AGPL adoption.

And again, all of this was based on the fact that programmers were a "special breed" of people coddled by corporations. Now that the corporate mask is off and programmers are no longer (as) special, the whining is horrendous. And the libertarianism still won't go away.

> According to who and what?

To me, I've been around the block for several decades.

Again, not everyone, but the culturally regular programmer.


It's a snarky way of suggesting that programmers are complaining about being treated the way professionals and tradespeople always have.

Yeah I get that. But having been both it doesn’t advocate for better treatment for any of them.

Also as far as I’m aware the pay for programmers in the US has always been an isolated thing with the rest of the world ranging from normal to “literal sweatshop”.


What do you mean, "advocating for better treatment"? They're not describing an abuse of tradespeople and professionals. They're adults doing a job.

So, from your comment and your reply, are you just happy that more people are being treated poorly?

That makes no sense. You seem to understand that he was being snarky, so why do you not understand that that snark and desire to see “others” brought down to a lower level just because some were already there doesn’t help anyone? Actually, that division does help people, those people that are putting people there in the first place.

Let’s be clear: for context I’ve been out of the programming game for more than 10 years at this point. I have my own business that I’m set to sell soon and then retire to something more entrepreneurial. But I still don’t desire to see my younger employees suffer any more than the tradesmen I used to work with.


You haven't established anybody being treated poorly, only that they're being treated like professionals and not artisans.

Haha, it seems childish but if you’d like to go that route I’ll just point you to the original posters reply:

>It's exposing the hypocrisy of privileged groups suddenly being treated like regular people, when they did NOTHING for decades to help others or even to protect themselves ("f* you, got mine", rockstar programmer, 10x programmer, talents everywhere, etc mentality). No unions, no collective bargaining, sheer individual greed.

So, I guess since you’re taking that position, Thomas: are you just pro pain for an increasing number of workers or can we agree that adding more people to the pool of mistreated labor isn’t beneficial for anyone?

Personally I’m going to continue advocating for better rights for both.


What "pain" are you talking about? You keep trying to smuggle this framing in. I don't accept the premise.

No smuggling needed. The original poster and I are on the same page and I suspect you’re just playing games to avoid hard questions.

I’m assuming from that that fly.io may not have a great work culture.


What a weirdly hostile and offensive response. I'm always struck by people who think they can namedrop my employers to shut down an argument, like we're just going to believe and profess whatever keeps people on message boards from being mean about the company.

But, no, I feel like throughout this thread I've been pretty consistently putting a question to you (what exactly do you mean by "pain" or mistreatment, given the original comment described other professionals having norms developers seem now to be recoiling from).

We can be done, though, obviously.


Nah it’s relevant, because if you hold these views to the point that you’re willing to avoid answering the question then obviously your world view is warped in what even you would consider a negative direction and therefor it’s important that others get a chance to be steered away from a potentially negative experience.

And to be fair, I don’t know what you expect when you advertise your place of work and then insensitively play games with serious subject matter on public message boards. I think the kids call that a self own.

But I agree, you don’t seem willing to put in writing what you’ve conveyed so this isn’t a growth experience for anyone.


reading through this it is obvious what the "pain" is and it does come across as you just avoiding the question. Just sayin

Maybe you can answer the question then. Is it "having performance judged by output rather than by process or satisfaction"?

> It is quite shocking how people went from being humble (learn the basics or close the gaps in understanding) to full on authority on everything and berating people 24/7...

That was never humility. That was fear. This technology is just enabling people to show their through colors. The unearned confidence is a hell of a drug.


You captured this phenomenon very well in this comment. Appreciate you sharing it because it’s hard to describe exactly what makes this sort of behavior so bizarre.

@backlava12 fyi your comments are all dead in this thread

>> he continues to vibe code through me

So quit pair programming. I never did, never will do that, nor worked at a place that remotely encouraged that. Each to their own, that's how it should be.


I wish this was always possible, but sometimes you do it when stuff is ambigous or the task is almost undefined and you just can't reach far enough for someone to fix it, so going over it and talking is simpler

I don't think this is going to change because it helps automate code production. As in, once we reach a point where this method produces acceptable results, we can fire all engineers and automate the process.

In my mind, this, not copyright or water use, is the best reason to boycott AI. It'll make you incompetent.

I saw this the past year - new employees would put problems into Claude first instead of debugging. A year back I was debug manually first, now I do the same.

The speed AI debugs at is incredible and yes, we lose touch the more we use it like any manager feet up barking orders to their underlings to get things done.


To be fair the cyclical nature of funding and defunding security teams which causes scaling up and scaling down, has always left a race to the bottom in security.

Any CISO or head of security loves the ideal of completely using AI to handle incidents, tune detections, implement mitigations, track vulnerabilities, pen testing, etc. This feels like it driving security teams to have less critical thinking.


At least at my company the OKRs are quite clear and demand heavy AI utilization above all else

When I hear this I do wonder to myself how they're using AI.

For me, as long as I'm properly RPI looping it and not blindly pressing "yes" then it will nearly always reach the solution, usually a fair bit quicker, because it effectively becomes an ideation machine that can keep more thoughts and knowledge in it than my brain can.

However, I'm using it through giving it the context, it has access to the repos, access to the sytems, I'm telling it where the logs are, I have docs to show it what each part of the system is for.

Along with that, it does depend on my own instincts/knowledge for me to read its response and for me to say "no, you've over-thought/engineered this and this is actually the better solution", but its very are nowadays for me that it can't find the 1 liner, as long as I've fed in the right context, mostly pre-done because I've spent a bit of time building out the context tree for the repos/systems in a way that allows it to know what it needs to know.

I'm not doubting that people spin their wheels and couldn't find the one liner, but if its as simple as you say, that does seem like people who aren't great at LLMs along with a lack of instinct/experience.

I guess in essence, I think you can use LLMs in an old school troubleshooting way, and I find it still speeds that up the majority of the time. Its basically how I use it most of the time. And like old-school troubleshooting, if you build out the LLMs context over time, it also grows in capability, as long as its being used as a tool and not blindly trusted.

Should I not assume that most senior developers who are serious about LLMs do this?


In my experience at a large bank with unlimited AI, my spend is in the top 5% and I'm leveraging AI just like you.

I was in a meeting with someone who had a bug in an application that I don't own myself on Friday so I told claude,

"I need you to find this bug the user is experiencing, find out if it's user error or a bug, let the user know and tell the developer what needs to be fixed if needed"

15 minutes later the developer ask me if I want it fixed today or Tuesday.

That user could have done the same thing as me, had access to all the same systems and tools as I have, and also received the same AI training I had. The difference is that some users are just not, for lack of better words, AI native.


> "I need you to find this bug the user is experiencing, find out if it's user error or a bug, let the user know and tell the developer what needs to be fixed if needed" 15 minutes later the developer ask me if I want it fixed today or Tuesday.

Did you find out if it actually fixed the issue? I was on the other end of this last week. Reported an issue to another team, they asked Claude to diagnose, and when they gave me the response back I pushed back cause it didn’t make sense given the behavior we were seeing. Turns out Claude had hallucinated reading a log (it said it did but it didn’t). Sent it down a hole rabbit hole from there.

I’ve had the one shots you describe and they’re great, but they’re the happy path and require almost 0 skill to find. I’ve yet to see a case where developing an expert level knowledge of your domain isn’t the best way to get good at LLMs. Knowledge of how to interface with these tools is helpful but changes (and depreciates) rapidly as the models get smarter and/or other people commoditize it. Deep subject knowledge is still the best way to get a lot out of these tools. This applies to development and other areas I have a deep knowledge of.

“LLM training” is kinda snake oil. Learn your craft deeply and you’ll be able to catch up on LLM training in a few days, but you’ll be light years ahead of a person who’s only expertise is different ways to prompt.


To be clear, that one shot prompt was supported by nearly a years worth of work around developing an enviroment that allows me that level of effortless automation.

The issues was really simple, I knew the application, I knew what the bug was and already had a workaround in my head. I simply stopped at going down that rabbit hole and told claude to deal.

It identified the issue quickly, found the workaround and made the developer aware. All those things I would have done I just watched it do for me, plus, the app is vibe coded anyways, I just need it fixed and regardless of the AI path it was faster shooting out the bug report. Which, was simply poor processing of a spreadsheet.


> The issues was really simple, I knew the application, I knew what the bug was and already had a workaround in my head.

If that's the case, Claude isn't gaining you anything. The hard (and time consuming) part of programming is finding the correct solution, not typing the characters into an editor. When I know the code and have a good idea of the solution, I can write the code to fix it in mere minutes.


If only it was that easy, we are gated behind controls and processes that consume a significant amount of time between finding the bug, and a production push. AI quite literally automates the stuff I don't want to do, like create a fill out a jira ticket in the exact way that team wants it.

I don't have time for that, and neither do the teams that consume these request. As time has gone on me and the other teams I work with are no longer touching code, the AI will follow processes and procedures that pre date AI just fine with some human reviewing and approving.

AI has turned what was weeks at minimum to get a bug fix out, to just doing it all with with some human gating. It's not been a smooth process but watching it play out in real time it's getting faster, more efficient, and less prone to problems.

And that the crux off the situation, patching and securing configurations need to be done much faster than today, project glasswing has shown us that AI can scale to identify and solve those problems faster than a human.


Often though working through a bug teaches the developer something about the relevant abstraction. That knowledge can get lost in this new process.

While you're right, and I'm constantly thinking/worrying about my own processes giving me AI apathy, you can use AI in a way that develops your understanding of a bug. It really depends on your workflow.

When I use AI to debug a problem, I'm constantly questioning the specifics because I want to learn it, and often I'm better than the AI at quickly recognising patterns that point to a specific issue, where the AI will spin for some time trying to work out where to start - even if it has full context.

So I guess I'm half with you, but an LLM used right can still teach you effectively.


Yes. I agree with that as well. If you can intuit that it's (for example) an off-by-one error somewhere in your logic, asking an LLM to pinpoint that issue can save you tons of time that is better spent thinking about your abstractions. Also, I tend to ask high-level questions to the frontier models about best practices with common abstractions. But "the screen flickers here, please fix" is a bad pattern, IMO. Understanding why the screen is flickering is likely to educate you about where your abstractions are leaking.

Claude will happily add a null guard without checking why the null is there in the first place...

I find this story awkward. When Claude "..tell the developer what needs to be fixed" was it impersonating you?

Regardless, why not help the developer use the tools effectively instead?


I explained in another thread, but yeah, it acts on my behalf using my access to take actions with my approval. It has knowledge of all my work and leverages various data sources, (Jira, Confluence various mcp's) to gather information and take actions. If I ever have to correct it, or if the actions it takes are going down the wrong path I make sure and understand why and correct that.

It just got really good over time, especially as new processes get brought it and things change. I can't keep up with that like that AI can, just have it review and go down the path of ensuring that it fit's in my workflow as efficiently as possible and move on.

As far as the developer? I gave him ideas but he's on another team and I got my own guys to feed.


> RPI loop

What's that?


Research Plan Implement.

At the risk of you already knowing this or similar - in essence for a slice of a piece of work, you get the LLM to research the information required into (usually) a research file, which you go back and forth with in-line or via conversation until you're happy.

You then build the plan for the piece of work, again going back and forth with the LLM until you agree with the plan, with the key here being you have a specific set of concrete steps with very limited vagueness. Again this is quite often a plan document.

You then implement the plan with your LLM, following the concrete steps and monitor/evaluate the result.

For me its the 101 mandatory first way to use LLM that turns it from guesswork to genuinely useful. (that or some other similar method, SDD or whatever)

Because without it or something similar you're fully dependent on AI's weaknesses not coming to the fore (context/scoping failures that are silent unless you demand visibility up front and ruthlessly chop/clarify), and you often ascribe bad AI slop as model limitations instead of context/scoping failures.


Ah, that makes sense. I'm doing the same thing but I knew it as Spec Driven Development (SDD, I guess).

I have no idea why you're being downvoted. Your comment makes a lot of sense and I've upvoted it...

What is your relationship to this team? Their manager? A senior colleague? Something about this sounds like a failure of communication or leadership. Why are you stand offish from them? Why are you treating them like children? If they don't know what they're doing why did you hire them? Now that you did why are you treating them like a burden and not an opportunity to mentor, teach, and uplift?

You can't force someone to improve themselves. AI-fueled ego trips are really difficult to sublimate. The only viable solution in this case is to overwhelm the pupil with mastery. Demonstrate that even without AI assistance that you can run circles around their solutions. If someone actually came to me and asked for advice on something, I cannot imagine I would turn it down. Many developers are absolute monsters. Pretending like that is not the case only makes the whole thing worse.

I also read that comment as an adversarial situation at work.

It used to be that when someone else at your company was asking for something that wasn't a priority, you would erect bureaucratic roadblocks to protect your time. Now, the new normal is to just forward their questions to AI and sling the slop back over to them.


Someone outside the team "giving you a solution" is seldom a great thing in my experience

Seldom? There are a lot of solutions used everyday that are great and better than the alternative of building it yourself

I gave the team an exact solution on a silver platter and they still failed to identify how to go about it

I think what's happening is ... poorly aligned and led engineers [in] this ego inflation feedback loop where they are completely detached from reality

A story about a team of humans with some very human problems.


I it usually doesn't get me in this weird state of mind, but I once spent 6 months (all-in) building a thing that I, once finished, just left alone completely (on disk gathering dust). Weird experience. So I'd say AI physchosis is real.

I've felt that AI can figure out and fix 90% issues, but it rarely does minimal, non invasive fixes. That still requires manual effort. But going from a broad to minimal fix is still a different skillset from actual debugging, so in the the end it does lead to skill atrophy.

But was this team capable of patient, old school troubleshooting before they used AI? I’ve seen someone paid as a senior engineer define the root cause of an outage as “that code was written before our team started here”. (I spent half an hour arguing with him and then ended the RCA).

> The resolution is literally 1 line of code that could be arrived at in about 30 minutes of patient, old school troubleshooting.

This critique (if it can be termed such) admits that the code itself has little value especially compared to the work of “30 minutes of patient, old school troubleshooting”.

In my past experience, developers who critique more-junior colleagues in this way work better in isolation than as part of a team because working as part of a team would require mentoring colleagues through the often difficult process of troubleshooting.

Giving “the team an exact solution on a silver platter” may not be helpful if implementation depends on knowledge withheld because one does not have the resources, ability, or motivation to mentor.

Something about giving a fish rather than teaching to fish comes to mind.


> A natural evolution of engineers losing touch with the customers and users.

I disagree. I think this happens as soon as the MBAs come on board, where everything becomes a metric, and you work towards OKRs.


I think LLMs have some of the same risks and benefits of stimulant drugs. They can make you more productive if used effectively as a tool, but they can also delude you into thinking you are better than you are and create a dependence such that you aren't just less productive without the LLM/drug, you fail to be productive at all because you don't know how to function without it.

That sounds somewhat applicable to many tools. Like Vim/Emacs, for example. Or computers and smart phones in general.

Computers - mostly no.

Smartphones - mostly yes.

Smartphones are fully portable which makes them always available and super addictive.

Computers have 10% of that addictive power.


Yeah, like caffeine is to meth

Thank you for this, the hand waving comparisons of AI and anything else is getting out of hand on HN. Your ”like caffeine is to meth” is one of the more succinct and describing sentences I’ve seen describe the difference.

Are your silver platters producing something faster, better, or cheaper?

Do your silver platters give you some competitive edge? If not, then is the ego problem yours, or your coworkers?


It's okay, they'll fix it by asking AI to design their training courses for them. That'll fix everything, right?

I don't think it's engineers, it's the rest of the org insulating the tech workers from every side of the business

I think there are many cases where it was the tech workers themselves who argued for isolation from the customer so that they may focus harder on whatever tasks. I used to be one of these workers. I argued very hard for it. I regret that today.

On the surface it seems rational, but it quickly turns into a system of perverse incentives because now the development team must maintain an illusion that they are constantly overwhelmed with tasks and could never hope to spare a microsecond to assist the customer. This misalignment is how you wind up building your own web frameworks and databases from scratch. It turns into a self serving monster that eventually dominates the entire business. From the perspective of the business, many of these development teams look like they're behind some modern day iron curtain.


Sincerely , I think you're blaming the AI incorrectly there. You just got incompetents on your payroll.

So how do you build competence in a world where AI is preached to be the most reasonable way to solve problems because it's supposed to be faster than humans?

Have a single human AI chef. Everyone else has to write an engineering statement and submit it to the AI chef. All that interaction is outside the codebase. Engineers will take turns - perhaps 1 month stints - being the AI chef.

I guarantee you'll spend less on tokens, have better documentation, better code, and most importantly more competent engineers.


I actually quite like this idea and might try something like it on my team because we're defacto heading in this direction anyway and everyone's a bit frustrated, might be better if it was acknowledged and made official as something to try.

On the other hand, I think this denies the reality (in my experience anyway but I think enough people will agree) that one often solves a problem as they are working on it.

This method seems to presume that a good engineer will submit a well thought-out solution or direction giving the AI an extremely good overview of each problem and enough of a description of what to do that it will do things as expected and they can just review the result.

In my experience it just doesn't work that way in practice. One learns the problem and even the domain while developing the solution. So one would have to submit at least a half developed solution not just "instructions", for there to even be coherent instructions in the first place. And one needs that experience working on the problem to be able to properly evaluate a separately proposed solution.

All in all for me this leads more towards using AI as a co-developer than using it to just implement some fully thought out idea and then check what it did.


> This method seems to presume that a good engineer will submit a well thought-out solution or direction giving the AI an extremely good overview

Yes it does make that presumption - but that's part of the model here, that "prompt review" becomes the new code review and that the team is training on standard prompt semantics.

I'll share my outline - which is basically the one that was drilled into us in engineering school (CMU class 89)

1. Problem Statement

2. Definitions / Assumptions

3. Plan of attack / Options explored

4. Implemetation / Results

5. Limitations / Future Work

> So one would have to submit at least a half developed solution not just "instructions

The outline supports that in that you can fill out that part of the document which has been woeked on - including referencing any existing code.

Any other engineering students here recognize that outline?


The same way people have been doing so for years before ai. You may or may not remember, but the parent comment is basically a 1:1 copy of people complaining about how stack overflow provided young devs all the answers.

Some people took the answers and learned from them, incompetents just copy pasted them and called it a day.

The share of incompetence just went up significantly over the years, so its a lot more noticeable at this point.


That's like asking "how do you build competence in plowing a field with a horse in a world of tractors"

Pretty straight forward really, you keep using horses in parallel: https://www.abc.net.au/news/2025-10-18/heavy-horsemen-keep-f...

That's the other side of the country, but it's how it's done over here also.

Still pull the old plough varieties, still practice shed blacksmithing, etc - even while developing and using autonomous Ag-Bot tractors for spraying, etc.


The article you've linked paints it as life-style, entertainment - rich people hobbies, which is different than doing it because it's more productive.

People will "trad-code", but not because it's the productive thing to do.


It's fun, and it's serious - keeping heavy horses and bullocks, feed, breeding lines, etc isn't trivial - and they are worked.

The serious side is simple enough, local food security - when there's no diesel to seed and harvest with there will be no export crops from here to feed millions across the planet .. but we here will still have smaller crops via animals for our food.

I'm literally in one of the most isolated parts of the globe, WWII, COVID, shortages via Iran clustf*ck, etc have real impacts and we plan to ride those out, like floods, droughts, cyclones, etc.


In a Mad Max world, the people with guns will come and will take away your stuff. So you better become a war lord and invest in your local army.

I'm sure you've considered that, I'm curious if you could share your thinking on this aspect.


Incompetence is implied by slop usage.

incompetent people, surely?

Are your silver platters producing something faster, better, or cheaper?

Do your silver platters give you some competitive edge? If not, then is the ego problem yours, or your coworkers?

Having said all that, I'm aware of the intoxicating effects of feeling empowered from knowledge. There's an old saying: a little learning can be dangerous....


> “A natural evolution of engineers losing touch with the customers and users”

I’m a neophyte to software teams. I work at an accounting consultancy and deal with lots of SaaS platforms. I’m pissing in the wind about this or that product quality issue through the support queue on a weekly basis. There’s prolly an XKCD comic about it.

It’s a rare company that responds to the issues raised through support. Anything that could make engineering more responsive without degrading the product quality would be welcome to us.


That happens all the damn time... Some otherwise competent developer decides to use AI, and falls into the pattern where AI will pretend to solve their problem for a week, while if they would have to think about it for an entire long hour to discover how to solve it by themselves.

As a bonus, that person will spend half of the week asking their peers for crazy delusional stuff.


I think I've heard late-career engineers from the past century say similar things, although I can't remember exactly quotes.

I wonder if every generation of engineers ends up with such hand-wringing about the next.

I'm also genuinely curious what fraction of the time they were right to worry.


If the solution is so simple, why claude did not found it? At this point we can assume, it is better than 90% of engineers (including me).

After three decades of outsourcing to lowest bidder, I do not buy that humans are somehow better!

> patient, old school troubleshooting

I usually see similar arguments around systems with major red flags (no docs, poor CI, decade ago no CVS...). And engineers with private stash of workarounds for job security!

Claude does not do anything special.

Or perhaps claude was misconfigured, it had no access to relevant part of system, and it tryied to work within its limitation. Often it means decompiling binaries in desperate loop...


Claude regular spits out six helper functions instead of... A twenty line for loop. It overengineers most things.

Overabstracting, deduplicating things that don't need to be. Building metaclasses because it saw a single orchestrator in the whole codebase.

If it is a better engineer than you... You need practice.


The funny thing is that if you never understand the codebase then you will keep thinking Claude is doing a great work delivering all this incredible software, when all it has done is created unnecessary tech debt.

Which at some point the developers who actually still do know how to program are either going to have to clean up or in terminal cases rewrite.

In a way all we've done (currently) is drastically expand the amount of technical debt across the whole industry.

Should be profitable for the ones who can still actually program though and haven't let their skills atrophy by letting Claude do everything.

I don't deny there are use cases for LLM's, I just don't buy the hype about them either.

As with all tools, you have to understand how to use them to get done what you need to get done without sticking the chisel through your hand.


But this is leaving out the part where the developers that clean up or rewrite... will do it using LLMs.

Have you tried refactoring or porting codebases larger than a million lines of code pre-gen-AI and again post-gen-AI? It's night and day difference. One would be insane to schedule a team on 8 months worth of grunt work porting from one language or framework to another which can now be done by 1 person in 4 weeks.

Of course the person driving it has to tell it exactly what to do and has to have the requisite knowledge to understand how to effectively structure or fix the software. Maybe new developers don't build this skill so easily anymore. But I don't see why a strong developers skills would atrophy in this case though unless they just never use their knowledge and never give instructions to the AI.

To developers speaking of skill atrophy: are you still making sure that when using LLMs you are actively exercising skills like system design, debugging, reviewing for clean code and just in general doing effective code review? If you are doing that, why do you feel skill atrophy? And if you aren't doing it, why not? What about LLMs prevents us from exercising these skills?


2040.

The demand for real programming skills will become infinite (again).

someone who can actually read, understand, and debug code. when the clankers get stuck.

unfortunately, there will be only be a dozen people.


> A twenty line for loop. It overengineers most things.

Anecdote I like to tell.. I was working on a financial planning software, intentionally purely vibe coded as an experiment.

I eventually discovered AI had implemented seven duplicate copies of tax calculation functions. All of them different. All of them wrong. All of them giving different answers for same input.

Not even the most junior of newbie junior engineers would do something this crazy. But AI was happy to do it. It will solve the immediate problem, efficiently. Even if the most efficient solution is something ridiculous like this.


I have also a weird story to tell that a human did and it is as crazy as this. It happen in 2019 so no LLMs at all.

A person that was hired as an expert in our startup spent more than one week full time working on implementing his solution to the problem we were having. I checked the code after one week to see the progress and was curious how they are implementing an already crazy sounding idea. I found that the whole week was spent re-implementing in python, python's built-in "float" function. That was it, the whole code was just that.

Our problem was related to financial services and their implementation of "float" was not even correct.


It's funny you mention this, I've worked for financial type systems where they spend considerable time removing any floats the from the code base.

I'll leave it up to the reader to figure out why this may be important.


Jesus Christ... and then?

What happened to him? What was the conclusion? Did he get paid?


of course he got paid.

that is the deal for an employee, you put in the hours, you get a check.

today, this individual is CTO- Vibecoding at Uber.


ah. when you wrote „hired as an expert“, I misread it as him being a contractor.

nevermind


They would not do it in the span of a day or a week. But I’ve definitely seen something like that happen over a period of multiple months.

The llm just allows to generate faster.

We can feel smug about that but all it means is that we need to be clearer on our requirements and preferences up front.

State that similar functions should be in one place and there should be only one. Today there has to be compelling reason why that function is different from others. Normalise the function name based on what it does. Why are there different ones?

Then there are all the other guard rails in place.

Better guidance from mentors, reviewers, and automated project tooling helps everyone. Juniors, seniors, and engineers.


Which model though? I have similar anecdotes but all with older models. The jump in capabilities in the last 6 months has been substantial.

> The jump in capabilities in the last 6 months has been substantial.

What I would like to see is a chart graphing the model size against some objective measure of capabilities, specifically for coding.

It's easy to see gains when you're doubling the effort. What I want to know is if the extra effort is opening up more capabilities over time or fewer capabilities over time.


I have literally been hearing that, over and over and over, since '22.

And whilst it is obvious things are growing... Saying that, sounds almost entirely like the person saying it cannot objectively look at the environment. If everything has changed in the last six months, why has the industry not radically changed to match it?

Everything really did change with the Pentium II. It did with 3dfx. It did with Damerau's taken on Levenshtein. Hell, everything changed with React. The AI leap with seq2seq completely revolutionised the entire industry. But... Its kid, the LLM? Really?


For some definitions of efficiency.

Oh and how is it any different than most software engineers?

How many times I heard ORM are bad only to recreate the same shit?

How many times I heard ORM had bad performance and see 1+n stuff everywhere?

How many times I have seen tight coupling in the name of DRY?


Its different, in that when you teach that engineer, they either leave because now they hate you, or they grow. They change to meet the standards of a project, rather than inventing their own.

We don't get seniors, without juniors. I'd say more than half the job, is just... Learning. People grow.


Exactly. People ask how we get seniors with juniors using llm. The answer is the same. Review the code. Analyse write down what is wrong. What you expect to have been better. Force every change to be documented and explained enough.

It just takes forever now. The understanding is lower, the effort is lower, and frankly, I think the interest is lower too. I might be in the last generation who truly had fun working on a 'shrodinger' bug.

Yes. So find someone with intrinsic desire to engineer. Mentor them.

In the mean time put a plethora of guardrails in place to make sure the AI Train doesn’t derail production.

Oh. And keep showing your value. In the end every org can do with less low paid overeager uninterested juniors. Might as well let agents Do those tasks.


> Its different, in that when you teach that engineer, they either leave because now they hate you, or they grow.

Or they just have their own hubris and ignore your (provably better) suggestions because their way is "better/easier/how we've always done things".

And then you end up with someone sprinkling N+1 issues throughout the system and making systems with bad architectures throughout the years, not thinking about backpressure etc., as well as shoving ALL the dependencies into a single codebase cause they're not used to creating new ones, turning patches into eventual month long version upgrades because everything keeps breaking with anything newer than JDK 8 and some of the packages are deprecated and gahhhh I should pick up woodworking as a hobby.

Though, to address the original claim:

>> If it is a better engineer than you... You need practice.

This feels like a thought terminating cliche. Like, it will spit out bullshit every now and then, and make assumptions that I don't think that many engineers would (e.g. since a lot of each app is environment-specific), but at the same time when you guide it and give it examples, it can really be quite good! So not that unlike humans at all, even competent devs might not necessarily know about every pattern in any given codebase, especially when one has been around for 10 years and grown quite a bit.

It can be quite good if you have something like ArchUnit or your own tools for linting project architecture and patterns, alongside proper documentation that doesn't assume that you're a team member with X years of experience on system Y. AI just forces people to be less lazy and ignorant about knowledge transfer, which they should have also been for the sake of other humans!


Thank you for the Archunit recommendation, that library looks incredibly useful in this modern, agent driven world.

I have never had it be every now and then. It is always bullshit, the first time around. Usually followed by, "You ignored the first three rules, and all the examples, try again."

I have worked with some amazingly incompetent devs. Some promoted into place to become someone else's problem, and some parachuted in through connections, and never once have they brought the continuous and unevolving frustration of modern LLMs.

I taught one of our "React SME"s, what Typescript even was. And they, were less likely to throw a ten thousand line fix, where twenty would do. They didn't see that the DB had a list of validation rules, and copy and paste those into seven different files, instead of just querying the DB, so the code would be kept up to date. And whilst I might have had to repeat that the DD is our source of truth, they never argued that implementing the DD wasn't aligned to the intended design.

AI isn't forcing people to be better with knowledge transfer. It's taking conversations that happened in person, that were back and forth and gave both people a better understanding of a thing, and turning it into a half-assed and out-of-date wiki. Without all the things that make a wiki actually useful to onboard the next newcomer.

I do get what some of these frustrations are, and where they come from. I'm the official documentation maintainer, because nobody else ever wrote anything down on expectations. Its fairly thankless. But... All I've seen AI do in that same realm, is exacerbate misunderstanding.

Like when it presented an Apex script (Salesforce) guaranteed to exceed governor limits to our junior, who took it and ran with it. And when it aborted, the AI spent half a day leading the junior around and telling them to change config settings - that the environment was the problem, not the code.

The fix? Toss the three layers of Queueables, and use Database.insert on a list. Job done. PR for 150LoC, instead of the offered 780LoC.

(As a complete aside, can anyone convince Salesforce to fix the documentation for: https://developer.salesforce.com/docs/atlas.en-us.apexcode.m...)


I am former java enterprise dev, so yes I often code this way. Unit testing, decomposition... Some projects CI refuse to merge commits with 20 line loop and duplicated code...

But that is not a point. Claude can code tight compact loops, it just needs to be instructed to do so! If it does "enterprise code", it means it had no instructions about code style.

If your documentation, spec, agent.md does not have proper guidance on coding style... yet another red flag!


> it just needs to be instructed to do so!

Considering how often it overrules, its own rules?


100%

It is my pet peeve with Claude and why I don't prefer it for most stuff

(also the comment spam - but that's a all of them in a way or another)


So after 30 years of outsourcing to the bottom 10%, you think Claude is better than the bottom 90% even though it’s so stupid that it doesn’t even know it should ask for advice or more information when it’s stuck?

It just follows instructions you give it.

Some asian devs will go for weeks without asking for help, all while giving amazing fake status reports. Loosing face etc...


Do you think those devs are in the top 10% of all devs like you said Claude is? Or is the bar suddenly much lower after all?

You're comparing scammers to incompetence

Claude asks me all the time when it's stuck, what are your prompts?

I think some of these anti-claude comments have some face, then I get a peek into how people use them, and it seems all wrong.

The tooling is incredibly configurable, but comes out of the box with a big auto button, because thats what people want. Doesn't mean advanced users have to use it.


> At this point we can assume, it is better than 90% of engineers (including me).

Hard disagree. We absolutely cannot assume that. You can posit it, and we can have an informed debate about it. This is what irks me the most about LLM fans: they constantly try to reframe the debate to have their worldview as the agreed-upon starting point.


Because simplicity is hard and often the result of careful thought. Anybody can keep piling pile of shit on top of pile of shit which is why that sort of code is so common in our industry.

While I actually agree with you (though, outsourcing to lowest bidder would account for much of what you're seeing with humans), I just saw Bug Hunt Bench scores that gave me some pause:

https://x.com/PawelHuryn/status/2095982259761475945

https://bughunt.productcompass.pm/?preset=all

Claude Opus 4.8 ranks near last on this Bug Hunt benchmark, and missed 96% of the deliberately introduced bugs. If you're a developer who has been falling back to Opus 4.8 because of how Opus 5 talks, and Fable 5 being so expensive that it needs to be rationed... well, turns out Opus 4.8 can actually be quite poor for finding bugs.

(Which feels weird to me, because Opus 4.6 fixed a bug that myself and a group of humans had been hunting down for over a decade. Models are spiky.)

Also surprising to me: Luna Max performing better than Fable 5.1 High, at least on this benchmark. But Astra 6 & Fable 5.1 on Max both perform at the top as you would expect.


Still, basic debuging and trouble shooting is where LLM generally shine. Any model can bisect git history and isolate newly introduced bug.

If model can not automatically reproduce bug, while human manually can... you got a problem in CI.

> Luna Max performing better than Fable 5.1 High

Perhaps you are reading too many benchmarks.

Edit for answer :

I agree Luna is great cheap model.

But if Fable was hitting security limits, yet was still included in benchmarks...

What flies better? Elephant or paper plane. You can make objective benchmark about that. But not much value for logistics company


> Perhaps you are reading too many benchmarks.

Maybe, but at least the benchmark provides an objective measurement of the codebase it is tested on. You're also assuming the bugs are newly introduced / regressions.

I can give a concrete example - Fable will not interact with bugs that result in writing to null pointers in C code. That triggers the guardrails and ends the session. If Luna (or GLM Flash, etc) will fix those kinds of memory bugs, that immediately puts it ahead of Fable in some ways, no matter how tiny Luna is. Again, models are spiky.

I still agree with your initial point! It's LLMs all the way down over here. It would need to be a particularly gnarly bug & an exceptionally talented human for me to want to pay another human to work on fixing it now.


That final 10% is the hard part. 90% is easy.

I think people on this website have a way, way to high opinion of themselves. Barring a few exceptions, we are middling developers, or way worse than this. Just read the comments from a year or twoon how chatgpt4.5 is the best at coding or how Claude sonnet 4 is better than a lot of Devs... At least I don't have imposter syndrome anymore.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: