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.