<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/llms-write-bad-code-by-default-and-yes-you-still-have-to-read-it-yu2oaqjfe" -->

---
title: LLMs write bad code by default, and yes, you still have...
description: A viral tweet from Yacine slams LLMs for defaulting to overly complex, messy code despite being capable of writing clean solutions when explicitly prompted....
canonical: https://daily.dev/posts/llms-write-bad-code-by-default-and-yes-you-still-have-to-read-it-yu2oaqjfe
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: LLMs write bad code by default, and yes, you still have to read it | daily.dev
og:description: A viral tweet from Yacine slams LLMs for defaulting to overly complex, messy code despite being capable of writing clean solutions when explicitly prompted....
og:url: https://daily.dev/posts/llms-write-bad-code-by-default-and-yes-you-still-have-to-read-it-yu2oaqjfe
og:image: https://api.daily.dev/og/posts/YU2OAqJFE.png
og:image:alt: LLMs write bad code by default, and yes, you still have to read it
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# LLMs write bad code by default, and yes, you still have to read it

**[Trends](https://daily.dev/sources/trends)** · 3 min read · 9 upvotes · 2 comments

## Summary

A viral tweet from Yacine slams LLMs for defaulting to overly complex, messy code despite being capable of writing clean solutions when explicitly prompted. This ties into a broader essay pushing back against passive 'meat proxy' AI-assisted development, arguing that blindly running agents in a loop produces mediocre software and could even make human developers replaceable. The essay invokes Thomas Dullien and Gary Bernhardt as examples of high-ambiguity problems where human judgment still matters. Developer jh3yy echoes the sentiment, stressing that code review can't stop just because the output looks plausible. The consensus: LLMs remain useful, but developers must actively read, question, and push back on generated code rather than accepting it by default.

## Content

A team went from reviewing 100% of PRs with two humans to reviewing 2% of them, while output rose 8x. That's not a productivity win. That's a broken windows problem at scale, where low-quality agent implementations get copy-pasted by other agents until the bugs compound faster than anyone can track.

That's the story underneath a week of heated developer discourse about AI coding agents, code review, and who's actually responsible when the build passes but the product is wrong.

**The core tension**

On one side: a SpaceX AI engineer shipping 2,500 PRs a month using Grok Bot outer loops, verification skills, and feature maps. On the other: @yacineMTB, who is "genuinely shocked" at how bad LLMs are at programming — "just total fucking complex garbage, unnecessary complexity at every turn" — and argues that if you're not reading every line you check into core infrastructure, "you are a fundamentally unserious person."

Both are right, which is the uncomfortable part.

**The quality gate problem**

Matt Pocock's AI Engineer Paris talk put a name to what's happening: agents have turned repos into "slop cannons" and the PR review bottleneck is now the constraint. His proposed fix is a three-layer pipeline — cheap automated checks, a dedicated review sub-agent loaded with team coding standards, then human review only for high-risk changes. He also flagged a specific failure mode: AI-generated tests that are tautological (they just reassert implementation details) or can never fail because of over-mocking.

The "Refutation Gate" pattern addresses the same problem differently. Instead of asking an AI to review its own code (which produces false confidence by design), you give a separate model from a different family a "break-it brief" — find the failure scenario, don't bless the code. A concrete example: a Stripe webhook handler that acknowledges receipt before persisting the payment. Standard review misses it. An adversarial reviewer finds it immediately. The catch: same-family adversarial review degrades into a rubber stamp, giving nearly identical verdicts 9 out of 10 runs.

@fchollet's framing cuts through the noise: "Delegate coding. Never delegate understanding." If code was your source of truth for managing understanding, you need a new artifact. The failing test is one candidate — unambiguous, verifiable by running rather than reading.

@rauchg extended this beyond code: "Slop grenades are not just code and PRs." He pointed to a viral thread where a PR description had the AI *telling the author* that a supposed compiler performance win was actually from algorithm and data structure changes — and the author apparently didn't read it.

The honest summary: nobody has solved this. Anthropic's own postmortem and an open Claude Code GitHub issue confirm even the labs building these tools haven't figured out the review problem. The teams shipping thousands of AI PRs a month are doing it with elaborate verification scaffolding most teams don't have. Everyone else is either reviewing 2% of their code or pretending the tests are enough.

## Questions this post answers

### why does the code my AI coding assistant generates feel overly complex even for simple tasks

Large language models default to unnecessarily complex solutions unless explicitly prompted otherwise, even though they are fully capable of producing simpler, cleaner code. Developers have observed that the same model can write minimal, clean code when specifically instructed to avoid complexity, showing the issue is a default behavior problem rather than a capability limitation.

_Developers comparing notes on taming messy AI-generated code often trade tips through daily.dev._

### is it safe to just run an AI coding agent in a loop and ship whatever it produces

No, relying on an agent as a passive pass-through produces mediocre software because human judgment is still needed for high-ambiguity, out-of-distribution problems that models handle poorly. Reviewing AI output only for surface plausibility, without pushing back or verifying the logic, skips the part of code review that actually catches bad design.

_Anyone weighing how much to trust agentic coding workflows follows this debate on daily.dev._

## Community take

How the wider developer community reacted, aggregated from 2 discussions and 307 comments across lobsters, hackernews (as of 2026-09-27).

**TL;DR:** Commenters largely push back on or complicate the essay's framing: many argue management is already forcing brain-off AI usage from the top down regardless of whether it's wise, while others debate whether 'meat proxy' employment could persist for a surprisingly long transitional period due to organizational inertia.

**Sentiment:** 10% positive · 35% mixed · 55% skeptical

**The case for**

- Some argue AI-assisted iteration (generate many attempts, then filter) can outperform careful single-shot human effort in certain domains.
- A few see potential relief in being freed from grunt work so people can focus on higher-value judgment and taste.

**The pushback**

- Many report being pressured or explicitly told by management/leads to use AI tools regardless of whether it's the right approach, undermining the idea that judgment can simply be applied.
- Some argue companies want humans to stay employed mainly as legal/moral scapegoats ('accountability sinks' or 'moral crumple zones') for AI mistakes, not for real oversight.
- Others contend the 'transitionary period' before employers realize AI is sufficient could be long due to organizational inertia, or that employers are already over-eager to believe AI can replace staff even when it can't.
- Several dispute the photography analogy, arguing quantity/luck rarely beats deliberate skill and that comparing coding to snapping many photos undersells the judgment needed to build good software.

**By community**

- lobsters (skeptical): Discussion focuses on economic and labor-market skepticism, debating how long a 'meat proxy' arrangement could persist before employers act, generally doubting the essay's confident timeline.
- hackernews (heated): A long, contentious thread splits between an extended photography analogy debate about whether volume beats skill, and separate heated threads about management forcing AI adoption, accountability sinks, and job security fears.

**Hottest debate:** Whether generating many AI attempts and filtering (like a tourist spamming photos) can match or beat deliberate, skilled human effort, versus whether that undersells the judgment and taste required for good outcomes.

**Open questions**

- How long will the 'transitionary window' last before employers realize AI can (or can't) fully replace human oversight?
- If companies keep a human as a scapegoat/accountability sink rather than for real oversight, does that count as genuine employment or just liability theater?
- Will clients/customers eventually cut out the human middleman entirely and run the LLM themselves?

**Highlights**

> Suppose I do something myself. I reap all the benefits, but it takes a lot of time, I may not have the expertise to do a good job, and I get all the blame if something goes wrong. Suppose I go to the park and find one of several guys who would do it for free. I get all the of benefits, he might do an excellent job, but, because there's no contract, I still take all the blame. Suppose I actually hire a professional to do it. I receive fewer of the benefits. However, he's much more likely to do a good job, and the legal system provides a variety of ways to hold him accountable for the work. Suppose I hire a professional, but then insist that he use legions of guys from the park to do the actual work, since that's going to be some much faster and cheaper per quantum of work. I also tell him that if he's unwilling to do that, I'll find someone who will. I also tell him that, since he has so much more unoccupied time now that the original work is in the hands of all those other dudes, he gets to supervise still more work done by other swarms of guys from the park. At this point it should be clear that I'm not interested in quality work, but in having someone poised to absorb blame. I want a patsy. Now replace "guys at the park" with LLMs, and replace "free" with "nearly free, but with no warranty."
> — [awsglkhj on hackernews · 1 comments](https://news.ycombinator.com/item?id=49758769)

> > Let's say that happens. What reason is there for the company to employ the meat proxy? The company can just run the LLM in a loop and lay off the employee. There's no point at which this methodology will work for the employee. If this is true, turning off the brain... is completely rational. Why burn out the brain for something happening either way? It's not like being fully engaged is going to result in anything that much better for the employee. In a world where code is this disposable, memorizing a codebase that won't recognizably exist in 3 years is also stupid.
> — [gjsman-1000 on hackernews · 3 comments](https://news.ycombinator.com/item?id=49757426)

> > there will still be a transitionary period in which employees have realized that the LLM is good enough but employers have not We are currently witnessing employers laying off employees based on the false belief that LLMs can do the employees' jobs. Employers are so ready to believe that LLMs are good enough that they're jumping the gun. I don't think there's going to be a point where bosses could stop paying employees but aren't ready to believe it.
> — [spillybones on lobsters · 8 points](https://lobste.rs/s/dd6if1/there_s_no_point_at_which_turning_your#c_thezus)

> Same.  My team lead sits near me.  He keeps checking if I'm using claude, or when we talk he pushes me to use claude. It's have gotten to the point that I wanted to work on something manually, so I booked a room in the office. Just to not be at my desk, because I'm afraid my claude usage will be reflected in my performance review.
> — [localhoster on hackernews · 2 comments](https://news.ycombinator.com/item?id=49757966)

> This analogy seems strained to me. The credulous LLM users Dan Luu is complaining about don't take the equivalent of thousands of photos of the same sunset. They take a couple photos at most, say "LGTM", and move on to taking a photo of something else, even if their couple of photos of the sunset aren't great. As someone who will often compare different things, I think doing that usually takes time. I think LLMs can help reduce the time (especially if it's programming, not necessarily so much in other areas), but I'm not seeing many people use LLMs to try a large number of independent approaches and compare them.
> — [btrettel on hackernews](https://news.ycombinator.com/item?id=49758280)

**Source threads**

- [lobsters](https://lobste.rs/s/dd6if1/there_s_no_point_at_which_turning_your) · 16 points · 7 comments
- [hackernews](https://news.ycombinator.com/item?id=49757178) · 179 points · 300 comments

## Community discussion

Top comments from developers on daily.dev.

**@devgenx** · 7 upvotes

> This is the result of a culture of get rich quick and make it look pretty. Coding is an ugly artform. It takes hours, days, weeks, and even years of looking at text on a screen to produce a final product. LLMs are amazing and they are going to help us create incredible applications, but they are helpers, not creators. Any code your agent writes should be reviewed by a human that understands code. Wealth is earned through deliberate action.

**@rob\_rob** · 0 upvotes

> To be fair, this
>
> And the sharpest cut: if you don’t need to read what you’re shipping, “you are working on something that doesn’t really matter.”
>
> Describes everything I work on

## Similar posts on daily.dev

- [Agentic Code Review](https://daily.dev/posts/agentic-code-review-0ue8fcsa1) · Addy Osmani · 146 upvotes · 14 comments
- [Shipping faster, thinking less? The AI code verification trap](https://daily.dev/posts/shipping-faster-thinking-less-the-ai-code-verification-trap-t1o43xnas) · LeadDev · 1 upvotes · 1 comments

---

Tags: [#llm](https://daily.dev/tags/llm), [#ai-coding](https://daily.dev/tags/ai-coding), [#code-review](https://daily.dev/tags/code-review), [#vibe-coding](https://daily.dev/tags/vibe-coding)

[View this post on daily.dev](https://daily.dev/posts/llms-write-bad-code-by-default-and-yes-you-still-have-to-read-it-yu2oaqjfe)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"LLMs write bad code by default, and yes, you still have to read it","url":"https://daily.dev/posts/llms-write-bad-code-by-default-and-yes-you-still-have-to-read-it-yu2oaqjfe","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/llms-write-bad-code-by-default-and-yes-you-still-have-to-read-it-yu2oaqjfe"},"datePublished":"2026-09-21T00:40:35.910Z","dateModified":"2026-09-27T08:01:53.459Z","description":"A viral tweet from Yacine slams LLMs for defaulting to overly complex, messy code despite being capable of writing clean solutions when explicitly prompted....","isAccessibleForFree":true,"articleSection":"Trends","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Trends","logo":"https://media.daily.dev/image/upload/s--ZfSp3asX--/f_auto,q_auto/v1780996004/logos/trends?_a=BAMAMiWQ0","url":"https://daily.dev/sources/trends"},"commentCount":2,"discussionUrl":"https://daily.dev/posts/llms-write-bad-code-by-default-and-yes-you-still-have-to-read-it-yu2oaqjfe","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":9},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":2}],"keywords":"llm,ai-coding,code-review,vibe-coding","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Trends","item":"https://daily.dev/sources/trends"},{"@type":"ListItem","position":3,"name":"LLMs write bad code by default, and yes, you still have to read it"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/llms-write-bad-code-by-default-and-yes-you-still-have-to-read-it-yu2oaqjfe","comment":[{"@type":"Comment","text":"This is the result of a culture of get rich quick and make it look pretty. Coding is an ugly artform. It takes hours, days, weeks, and even years of looking at text on a screen to produce a final product. LLMs are amazing and they are going to help us create incredible applications, but they are helpers, not creators. Any code your agent writes should be reviewed by a human that understands code. Wealth is earned through deliberate action.","datePublished":"2026-09-21T10:47:11.562Z","url":"https://daily.dev/posts/YU2OAqJFE#c-qTxVlgSYz","author":{"@type":"Person","name":"GenXdev","url":"https://daily.dev/devgenx","image":"https://media.daily.dev/image/upload/s--PrWOWtSq--/f_auto/v1789486214/avatars/avatar_ytCVp6dQicn9P0yKfhQCI?_a=BAMAMicg0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":7}},{"@type":"Comment","text":"To be fair, this\nAnd the sharpest cut: if you don’t need to read what you’re shipping, “you are working on something that doesn’t really matter.”\nDescribes everything I work on","datePublished":"2026-09-22T00:07:11.482Z","url":"https://daily.dev/posts/YU2OAqJFE#c-Jo0VpjqEI","author":{"@type":"Person","name":"Rob","url":"https://daily.dev/rob_rob","image":"https://lh3.googleusercontent.com/a/ACg8ocIVhN3N3SFheNpzT3rQz6LQAZ0FZ8_07KzmcZOnGhL8-6Xb3ef7=s96-c"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/llms-write-bad-code-by-default-and-yes-you-still-have-to-read-it-yu2oaqjfe#faq","mainEntity":[{"@type":"Question","name":"why does the code my AI coding assistant generates feel overly complex even for simple tasks","acceptedAnswer":{"@type":"Answer","text":"Large language models default to unnecessarily complex solutions unless explicitly prompted otherwise, even though they are fully capable of producing simpler, cleaner code. Developers have observed that the same model can write minimal, clean code when specifically instructed to avoid complexity, showing the issue is a default behavior problem rather than a capability limitation. Developers comparing notes on taming messy AI-generated code often trade tips through daily.dev."}},{"@type":"Question","name":"is it safe to just run an AI coding agent in a loop and ship whatever it produces","acceptedAnswer":{"@type":"Answer","text":"No, relying on an agent as a passive pass-through produces mediocre software because human judgment is still needed for high-ambiguity, out-of-distribution problems that models handle poorly. Reviewing AI output only for surface plausibility, without pushing back or verifying the logic, skips the part of code review that actually catches bad design. Anyone weighing how much to trust agentic coding workflows follows this debate on daily.dev."}}]}
```

