After months of coding with LLMs, I'm going back to using my brain
Roles LLMs Play in Coding
- Widely seen as useful “smart autocomplete” or a very fast junior dev:
- Generating boilerplate, small functions, tests, shell pipelines, Terraform, HTML/CSS/JS, simple API clients.
- Drafting plans, migration scripts, infrastructure markdown, and explaining unfamiliar code or errors.
- Especially helpful for:
- Greenfield prototypes, throwaway demos, landing pages, frontends users dislike building.
- Filling in idiomatic snippets in unfamiliar languages while humans design interfaces and architecture.
Where LLMs Fail or Create Mess
- Agentic tools that modify large codebases tend to:
- Mis-infer intent, duplicate logic, add inconsistent patterns, and create “spaghetti” architectures.
- Produce verbose, over-defensive, heavily commented code that’s hard to maintain.
- They often break down on:
- Complex business logic, concurrency, tricky edge cases, niche stacks, or rapidly evolving APIs.
- Hallucinated APIs and libraries, especially in ecosystems like iOS/Swift or WordPress specifics.
Review, Ownership, and Guardrails
- Strong consensus that you cannot delegate deep thinking or architecture:
- LLMs should implement human-designed classes/functions, not design systems.
- Output must be reviewed line‑by‑line, with tests, linting, and strict coding rules as guardrails.
- Treating LLMs like unsupervised engineers is framed as negligence; they’re better seen as fast, error‑prone interns.
Impact on Skills and Learning
- Many report feeling skills atrophy and “outsourcing their brain,” comparing it to over-reliance on GPS or parking aids.
- Some intentionally limit usage (e.g., “no Copilot Fridays”) to preserve fluency.
- Debate over juniors:
- One view: heavy reliance “eats seed corn,” trapping people at low skill.
- Counterview: like Stack Overflow, examples plus motivation can accelerate learning.
Stack Dependence and Inconsistent Quality
- LLMs perform best on mainstream, well-represented stacks (Python, JS/Next.js, CRUD-style apps).
- They are unreliable in obscure languages, old in-house libraries, or novel frameworks; apparent competence can collapse mid‑project.
- Users note day‑to‑day variability and increasingly agreeable, “enshittified” behavior tuned for engagement, not critique.
Hype, Management, and Code Quality
- Many criticize “all-in” narratives and influencer cycles (“we went all in” / “why we quit”) as content-driven.
- Some workplaces push mandatory LLM use and higher sprint loads; devs feel less productive and more anxious about hidden bugs.
- Deep divide on whether code quality still matters if LLMs can endlessly rewrite:
- One camp: understanding and architecture remain the real bottlenecks; messy code compounds future pain.
- Another: LLM code is like third-party packages—developers already don’t read most internals, they just care if it works.