purplesyringa writes code by hand and refuses LLMs, and recently noticed the industry has a word for that: artisanal. The split being sold — serious engineers who care about the end result versus hobbyists who enjoy the act of coding — does not describe the job. Accepting the label, the essay argues, quietly accepted the question of whether AI-free work is engineering at all.
Her own position is about correctness, not nostalgia:
- Tests, LLM review, and provers can establish that code is 99% right — but not that it is optimal, maintainable, readable, and free of reliance on undocumented behaviour
- That last increment comes from deep connection to the code: knowing it is correct by construction rather than by evidence
- Care, attention, and precision are the defining characteristics of engineering — yet the word is being claimed by people drifting toward management
Hillel Wayne’s 2021 crossover interviews with engineers who moved into software found they do consider it engineering, with a qualification: many people who write software are not doing engineering. The field’s real problem is vocabulary. Not everyone who works with electricity is an electrical engineer — many are electricians. Wayne’s naming even points the opposite way from today’s: he calls the people who care engineers and the rest craftsmen.
That inversion is the essay’s sharpest turn. Something flipped without being argued:
- Previous framework and type-system wars were disagreements about which option is more reliable, easier to learn, better designed — everyone arguing inside the same values
- This one reframes AI-assisted coding not as a better approach but as the only sane one, which turns writing code by hand into a personality quirk
- The joke that the antonym of vibecoder is software engineer became comfortable self-description within about a month, propagated at meme speed with no obvious natural cause
The diagnosis is uncomfortable because it is partly self-directed: anti-intellectualism in software culture predates LLMs by decades. Rust was dismissed as just math, Haskell dismissed for monads that Rust later showed are ordinary, pointers dismissed as too hard because you have to learn something first. Wanting things to be easy has shaded into refusing to read.
The prescription is modest, and knows it:
- Say AI-assisted coding when AI is used, and AI-free software engineering when it is not — keep the disclosure, drop the word that reads as play
- Do not flip the script into AI-free being the only correct way; the goal is for it to keep its place in public discussion instead of being reclassified as recreational programming
- Make the case the public already accepts for AI-generated art, and talk about design, collaboration, polish, and the human mistakes behind glitches
The argument never claims LLM users are bad engineers — it claims that a label which recategorises care as a hobby is a losing position no matter how good the tooling gets. That is the version worth arguing with, and it is harder to dismiss than the tone in a few places deserves.