Code Quality Without AI

Arguments that experienced developers don't need AI for quality work, concerns about deskilling, and the value of human understanding and code ownership

← Back to Uber's $1,500/month AI limit is a useful signal for AI tool pricing

The debate over AI in software development centers on the tension between "vibe-coding" efficiency and the traditional discipline of human-led craftsmanship, with skeptics warning that over-reliance on LLMs generates a "slop" of unmaintainable code that degrades long-term system health. Critics argue that AI fundamentally lacks the capacity for deep reasoning, resulting in large, fragile pull requests that authors can neither explain nor properly support when systems fail in the middle of the night. Conversely, some experienced engineers view AI as a vital force multiplier for automating tedious technical minutiae, though they emphasize that the tool requires expert "shepherding" to prevent the deskilling of junior staff who may never learn foundational principles. Ultimately, the consensus highlights a growing fear that prioritizing raw speed over human intent and architectural ownership creates a "lose-lose" scenario where developers become mere operators of systems they no longer fully comprehend.

43 comments tagged with this topic

View on HN · Topics
This is a spicy take, unless the business is willing to face some down time, and I am hired to do exactly what you said, I’d never touch any line of code unless I absolutely have to. Different environments don’t help as much. We tend to obsess over software quality when it’s the least important thing for a business. It’s just a means to an end.
View on HN · Topics
Are you some kind of entitled corporate dev that barely has any influence on the codebase? If I fuck up a whole business goes down as I am the only dev there currently. We cant afford that happening. Also why would I mess with anything claude.md related? I just use the CLI tool. LLM enthusiasts always claim how smart these things are so they should figure it out on their own, you know?
View on HN · Topics
Because companies are betting that this spending will allow them to reduce cost by firing people. Right now the AI LLM PRs we're seeing are just introducing more work for other people, while these so-called builders are looking good with their new dashboards and functionality they're demoing. But you can't talk to them about the flow of the code. You can't ask them for their thinking as to why certain things are. It's not built up from the ground with experience from x people taken into account. It's materialized from nothing, with no foundational separation, and barely any abstractions. No one wants to touch it. The PRs are too large, and the 'authors' of the PRs aren't on call with us. They get all the glory, but do none of the work. It's kinda like designing a house and then sending it to an architect and engineer saying: make this work.
View on HN · Topics
> But you can't talk to them about the flow of the code. You can't ask them for their thinking as to why certain things are. You can absolutely do this. It's even right most of the time.
View on HN · Topics
Let's be real. Most of the time you ask an LLM "Why did you do it like this?", it responds with something along the lines of "Oops. My bad. You're right to point this out." You even have a fair chance of getting a response like that when there isn't anything wrong and the question wasn't rhetorical - which perfectly illustrates the level of the genuine understanding LLMs operate at.
View on HN · Topics
When you criticize AI, always remember that the alternative is the average employee. Today's models are pretty good.
View on HN · Topics
I'm not American or ever worked in the USA. It's not a judgement of human value. It's a judgement of work output.
View on HN · Topics
To adequately validate work you must be at least at the same level, so if you were right (which dunning-kruger suggests unlikely) that would mean your "terrible" average employee is given a tool that will 10x their output which they cannot even check for correctness. And correctness will be low if the average employee is bad like you say, because it means they will give badly specified tasks and even with the best of us it's garbage in, garbage out. I am sure there is no way this can backfire.
View on HN · Topics
This has happened to me, so I put this in my global CLAUDE.md, and it seems to help (I don't remember getting the response you mentioned for awhile now): **Lead with the answer when asked how/which/whether.** Name the command/mechanism first; a question seeking understanding isn't a go-ahead to execute. Answer, then offer to act.
View on HN · Topics
That's because of a fundamental misunderstanding of what an LLM is. The only correct answer to "Why did you do it like this?" is that the specific combination of input text and RNG state caused this particular output. There's no reasoning to be had. * EDIT * What's with the downvoting? That's a correct description of what happened. You can't ask an LLM why it did something and expect a coherent response, because there's no thinking chain, and no stored thinking state... At best, you can get a reconstruction of how the context relates to the output (basically a summarization of the context).
View on HN · Topics
Can't remember the last time that happened.
View on HN · Topics
Happened to me at least three times the past 14 days. I point out where it made a design decision that causes data loss. «Oops my mistake»
View on HN · Topics
I encounter it constantly with the latest models. Claude is particularly prone to it. > I shouldn’t have said that with confidence > I got ahead of myself there > I overstepped, allow me to correct that It’s wild seeing how often it’s wrong, and I only know it’s wrong because I am an SME or actually reading the sources. Most of my coworkers are not SMEs with what they are asking and do not read the sources. A huge part of my job now is fixing fuck ups and failures resulting from these slop jockeys who have already moved on to slop up the next task.
View on HN · Topics
I believe the “them” the OP was talking about was referring to the people opening the PRs, not the LLMs.
View on HN · Topics
Sorry, I meant interviewing the PR author for certain choices.
View on HN · Topics
“AI coding is a fad” is not just one big camp of similar-minded people. Different groups have to give up on their pre-existing beliefs in order to be ok with AI coding. Think of people who were very strict with variable names. People who pushed for multiple-levels deep of abstractions for a single API logic that’s not going to be reused. People who believed that coding is craft, rather than just a process to get to the end during work hours. This makes most of these people’s points more-or-less moot. I was in some of those camps, but I’ve seen coding evolve in the last 15 years. So I understand that these priors need to be updated, as most arguments don’t apply to today’s world.
View on HN · Topics
So I accept that “nonsense arguments are nonsense”, but with some minor differences of opinion. Naming of things matters insofar as you care as a human to actually conceptualize the system you’re building. You can call all of this stuff minutiae, and on some level I kind of agree, except for the general vibe of _caring about the quality of the stuff you produce_. That is something that still matters whether it “works”. Like, yes you can get an LLM to gen some junk, but _is it any good_ is still something you are in charge of. As far as “boring systems are boring”, I can tell you from experience that I work on a pretty boring system, and AI is not all that meaningful in terms of its impact, and it’s not for a lack of trying. Can it help me create a migration and add an endpoint and such? Sure. But those aren’t the hard problems. They never were. It’s funny that you think the idea of slowing down is such a bad one, but it is another well-established truth. Slow is smooth, and smooth is fast. This notion of break/fixing your way to prosperity by way of 10,000 ill-conceived PRs is a fool’s game.
View on HN · Topics
What's an int vs a float vs a boolean? What's a function? What's a class? What's a variable ? You don't actually need to know the answer to those questions in order to vibe code. That's a lot of priors to update!
View on HN · Topics
Just to go on record, as of today, I’m a big believer that a person that knows all that stuff is much more productive with AI-coding than a person who doesn’t. I have no idea how we can get people motivated to learn these through trial-and-error when AI coding exists though. I remember the days of spending hours on stupid bugs that AI can resolve within a minute. But I recall learning heavily from those experiences. Oh well…
View on HN · Topics
The question is if you already had intuitive understanding of what those things “are”. The languages and systems have been easier to learn once you picked up a couple. Same applies here as well. The question is, how quickly does a junior with no experience builds intuition without trial and error.
View on HN · Topics
But surely, it's a matter of curiousity? If you are curious you will naturally want to look deeper to understand what is going on. If you are not curious, then you wouldn't have done very well before either.
View on HN · Topics
When I started I learnt something about coding from VBA macros to automate excel. Often that started with the macro recorder. Then you worked out what that "recorded" code/sludge did, removed the crud you didn't need or want, improved the logic and so on. I bought books to understand it better. Now you can ask a (different) LLM "what is this? why is it used? How would I?" etc which is probably a faster learning curve than books, newsgroups and old school personal home pages with good info. I would have been quite surprised when I first used a VBA macro in anger just how far I would go down the rabbit hole. C, asm, verilog, Linux were no part of what I originally signed up for! Some people will specialise in the equivalent of recording macros and go no further. And this will be fine for code that gets it done but doesn't matter too much in the other dimensions (security, reliability, usefulness without the authors' support, etc.) Much like VBA utilities inside companies that were useful way back when. Other people will want what they produce to be better, even good, and they will learn about floating point [1] and all the rest, much as I did. Probably learn pretty fast too. [2] [1] https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.h... [2] Working out how to write an excel vba webserver and using it to collect and and collate summary data from various divisions into reports was seedy as hell, solved the actual business problem (given ridiculous but intractable constraints) and isn't something you can record. We all have stories from a misspent youth that we're simultaneously ashamed and yet somehow proud of.
View on HN · Topics
And, you don't have to vibe code. A competent developer can make great use of AI. I think a developer that can develop the system themselves is the most accelerated user.
View on HN · Topics
> You don't actually need to know the answer to those questions in order to vibe code No, but you do need to know the answer to respond to that 3AM page about prod being down.
View on HN · Topics
Oh, it won't get any better. LLMs already trained on every bit of code ever published, they won't get any more material.
View on HN · Topics
They can be reinforced with best practices and context windows etc will increase.
View on HN · Topics
If anything the snake is eating it’s own tail because now it’s training on vast amounts of its new slop…dragging down the average bar of quality.
View on HN · Topics
>Why there are so many people that still believe that AI coding is a fad? Because there's not a single piece of evidence that this has improved the quality of the delivered software, or for that matter even the speed of features any of these companies produce, in fact if anything the opposite. The point of software development, the hint is in the name, is to develop software, not consume tokens. If Uber was now full of 10x engineers the stock price of Uber would be up, not down on a yearly basis. Hilariously enough the only company whose stock price is up appears to be Antrophic
View on HN · Topics
Because we have spent a lot of time and money using AI to generate code and have been unimpressed with the results. As for why they got accepted so quickly 1) the industry's long running desperation to deskill computer programming 2) the addictive psychology baked into LLMs "That's an elegant solution! Shall I ... ?"
View on HN · Topics
It's not a bottleneck if you care about the actual code.
View on HN · Topics
yea, and understanding that too is important. the idea you dont need to read code or analysis seems to align with the depwndcy addiction being shoved in thw pipe.
View on HN · Topics
Why are smaller non-IT companies "screwed" because they can't pay out the nose for their developers' AI usage? They're non-IT companies, developers are presumably not on their critical path, or not their bottleneck. Developers can keep on writing code the old way, or doing it with a more reasonable AI spend. I don't see how this "screws" any company.
View on HN · Topics
Yeah this seems to be a pretty widespread story, from what I've heard as well. The thing about those janky dashboards and spreadsheets though is that somebody understood them and built them with intent to solve a particular problem. Despite the rickety appearance, they're trustworthy tools. A polished single page app might look nicer but it's harder to debug than an excel sheet, and much less transparent in its internal workings--especially if nobody actually wrote it...
View on HN · Topics
Imo its pretty clear that anyone who is taking the issue at least somewhat seriously knows the amount of value they provide is not non-zero. However, the problems are manifold: firstly, toolchains vary wildly, from fancy autocomplete, to engineers chatting with codebases they're unfamiliar with, to people integrating them into devops and infra, to people doing spec driven development, with a thousand philosophies inbetween. Many people suspect that those above them in the ladder are on the cusp of massive failure due to losing track of the code, and many people higher on the ladder think those below them are overly cautious. I hate to be the guy saying "oh it must be somewhere in the middle", but I will say at the very least I like being able to use it to read docs for me, and to synthesize syntax and simple scripts (give me a join that works across these tables and gives me column x, y and z - give me a python script that parses a file like this example and extracts abc data - given this api spec figure out how I can get this data from this endpoint, go) as for building actually complex software, the art of that is not in simply chaining together such scripts. Its the art of using architecture and testing to shape uncertainty, and developing requirements (and extrapolating sensibly from incomplete requirements). I don't think llms are great at this, but they arent terrible either. A lot of the more active users in the space are doing stuff where theyve realised they need more detailed specs, which like, yeah, we knew this already - better defined problems lead to better software.
View on HN · Topics
The point of a refactor is for you to think deeply about the code you are responsibility for, so you can make it better (faster, easier to work on, more tests, whatever). You’ve gotten a result, but without the work that made you valuable, while deskilling yourself. It’s a lose/lose situation for…I would say anyone employed as an engineer or programmer. I’m not taking responsible for AI output, the same way I won’t try to fix auto-generated code: because you just regenerate it. The only person that wins here is the person who can pay you less because they don’t need you, they just need another “types computer guy”.
View on HN · Topics
> The point of a refactor is for you to think deeply about the code you are responsibility for, so you can make it better (faster, easier to work on, more tests, whatever). Absolutely false. Refactors (in my case) can be as simple as dropping old packages for newer packages with slightly different semantics. It can be moving legacy pages from jQuery to Vue. > You’ve gotten a result, but without the work that made you valuable, while deskilling yourself. I've 25 years coding, trust me, I don't lose anything by not finding out on my own that the semantics of a jQuery promise changed between major versions. > The only person that wins here is the person who can pay you less because they don’t need you, they just need another “types computer guy”. You have no idea of what you're talking about. There are entire classes of K8s networking issues that would have taken me a day to debug which Claude solved in minutes just because it can run 20 diagnostics commands in two minutes and deal with technical minutae that is time-consuming but ultimately irrelevant to my business goals.
View on HN · Topics
I also randomly wrote some code in a bind yesterday, while I was on the toilet, and it felt so strange. That was the first I'd written in probably 6 months.
View on HN · Topics
You don't even make small tweaks by hand? There's so many things that are honestly faster to do by hand than wait for agents to do.
View on HN · Topics
That's not at all negative about LLMs, just negative about his own usage of LLMs. He's still very heavily and unrealistically (unless he has very poor coding standards and skills, which I won't rule out) praising LLMs in the sentences you've quoted. Note that it's not surprising that he finds his own usage (described in the quote) negative, since his real job is as a blogger, not anything else.
View on HN · Topics
It still probably produces better results than some junior engineers in a lot of cases. But yeah, for a company at Uber’s scale, I can see why they would want real engineering discipline around it.
View on HN · Topics
It's probabaly a good things that Uber-developers are now forced to do some coding on their own. Only use AI where it absolutely helps
View on HN · Topics
I still have never hit a ceiling with my Claude Max $100 account, much less the Max $200 account. I'm not burning tokens needlessly, nor running it all day, but I do use CC almost daily. What are these devs doing that they are burning more than $1500 in tokens a month? Maybe it's just me, but I still find that I really have to "shepherd" the AI and work with it to get the results I want. And I read every line of code added and challenge the model's logic. So that limits my token burning. Maybe these people are just "vibe-coding" without really checking the results?
View on HN · Topics
Even more things can be done without any models just as well.