Don't Call Yourself an Artisanal Programmer

title
Don't Call Yourself an Artisanal Programmer
type
summary
summary
purplesyringa argues the "artisanal" label hands the word engineer to AI users, and proposes "AI-free software engineering" instead
tags
llm-skepticism, rhetoric, software-engineering, ai-disclosure
created
2026-09-13
updated
2026-09-13

A post on purplesyringa's blog dated 13 September 2026. The author does not use LLMs, and the reason she gives is reliability rather than enjoyment. Designing a program from the ground up and taking her time, she knows it is correct and that any mistake is a typo. Unit tests, LLM reviews and provers can get code 99% right, but not the last 1%: optimal, maintainable, readable, and not depending on undocumented behaviour. She wants the 100%, believes it takes a deep connection to the code, and refuses tools that isolate her from the low-level details.

The label

The discourse she objects to splits developers into "serious" engineers who care about the result and "artisanal" coders who care about the experience of coding. By that split she is artisanal, which carries the subtext that she is not an engineer, although care, attention and precision are what engineering means. Meanwhile the word engineer goes to people whose work looks more and more like management.

For a better-informed view she goes to Hillel Wayne's 2021 crossover project, interviews with people who moved into software from traditional engineering (part two is at we-are-not-special). His interviewees said software engineering is real engineering, but that many people who write software are not doing it, the way not everyone who works with electricity is an electrical engineer, and that the field lacks words for the difference; "some people propose the word 'software craftsman'." She reads this as Wayne putting the careful people under engineer and the others under craftsman, the reverse of today's usage, and adds that there is arguably more art in prompting than in writing code by hand. The mapping onto AI is hers. Wayne's interviews predate vibecoding and his distinction was about engineering practice in general.

Claiming "artisanal", she argues, freed up "engineer" and conceded the debate over whether vibecoding is engineering. Vibecoding became the default and hand coding the outlier.

A change in kind

She points to how quickly common sense moved. Posts from static-analysis vendors used to be read as advertising, and automated review tools are now admired; the field went from arguing for strong type systems to free-form specifications almost overnight. Old arguments about type systems or frameworks were about which option was more reliable or easier, and even a caricature Rust zealot still counted a PHP developer as a developer. This one presents vibecoding as the only sane option and treats the alternative as a hobby, which she calls an attack on an identity.

Redefining terms so that one side is sane and the other not worth considering is new in software, she writes, and she has seen it before in the fascist playbook, while saying she does not believe this is a psyop. Her evidence for how fast it happened is anecdotal: people joked that the antonym of vibecoder was software engineer, and a month later were comfortably calling themselves artisanal programmers. Composers do not call themselves artisan composers, and the fight over what "programmer" means has not been had. Many gamers who defend artists against AI accept LLM code without a second thought, which she attributes to non-experts following rhetoric rather than facts.

Why programmers lost first

Her explanation is anti-intellectualism in software communities. Rust was dismissed as raw maths before it was popular, Haskell's monads still are although Rust showed they are easy to understand, and even pointers count as complicated because you have to learn something first. The habit of copying from StackOverflow became the habit of copying from Claude. A field that dismisses education, hard work and taking time was always going to call careful work a game.

What she proposes

Not flipping the script to say AI-free coding is the only correct way, which would fail. The goal is to keep AI-free work in public discussion and stop it being equated with recreational programming. Her terms are "AI-assisted coding" when AI is used and "AI-free software engineering" when it is not, which keeps a usage notice while moving the engineering half of the name and dropping a word that suggests play. Beyond vocabulary, she wants programmers to talk about the care they put into software, how they design and collaborate, and their humanity. If someone who cannot draw can feel lied to by AI art, the same should hold for programs.

Where it fits

The framing she objects to appears almost word for word a week earlier in programming-is-art-orchid, written by someone content to leave hand coding to "artists" while he builds startups with AI. Her naming proposal is a disclosure convention moved into a job title, close to human-made-disclosure and no-ai-statements, and like those it rests on the author's word. checking-for-human-writing argues the opposite about writing, that authorship lives in judgement rather than in producing every word; her claim is narrower, about correctness by construction, but a reader sympathetic to Shehu will want her to show that the missing 1% really cannot be reached with the tools. On the anti-llm-discourse map the piece is the craft case argued through rhetoric, with i-will-never-use-ai as the nearest refusal.