~/blog/guide/craft
Software craft in the AI era
What stays true no matter what tooling arrives. On process, judgement and being able to read code.
What this guide covers
Every few years a tool arrives that is supposed to end the profession. Frameworks, no-code, now agents. The profession keeps outliving the prediction, because typing was always a small part of the work. The core is understanding what needs to happen, judging whether it is right, and carrying the consequences once it runs. This cluster is about that durable part.
I say that without nostalgia. I use the new tools constantly. The more powerful the tooling gets, the more weight lands on the fundamentals it does not replace.
What stays true
Some pieces here are about timeless technique. The magic of tries and DFS is one: making slow software fast by choosing the right data structure. How database indexes work is the other, where every index rule you memorised turns out to be one property of a B-tree restated. That kind of knowledge does not go away however good generation gets, because you have to know what you are looking for to recognise it when it appears.
The same holds for the warning in stop copy-paste engineering: whoever adopts code without understanding it is building on someone else's assumptions. True in the Stack Overflow days, still true with an agent.
It is almost always your process
When AI adoption hurts somewhere, my first question is rarely what the model got wrong. You don't have an AI problem, you have a process problem is the diagnosis that fits most often: AI introduces no new category of failure, it exposes the gaps you already had at a pace you can no longer ignore.
The scaled-up version happens after the writing. Your 10x developer is gated by your pipeline shows where the bottleneck went once code got cheap: to review, deployment and decision-making. That has since grown into a cluster of its own, listed below under the related guides.
Judgement and reading code
To judge what a model hands you, you have to understand what it is. The brilliant parrot problem explains what an LLM actually does when it thinks: next-token prediction, extraordinarily good, and fundamentally blind to truth. Your coding agent has no world model is the practical consequence, and why the coherence you experience is something you supplied.
Once you see that, calibration follows on its own. You stop trusting tone and confidence and go back to the only test that counts: read it yourself, understand it yourself. How that ends when you skip the test is the day Claude deleted my production database, by now my shortest argument for discipline.
Reading is trainable, which is what code reading practice is for: a routine for the skill everyone assumes they already have. And part of judgement is knowing when not to reach for the tool, which when not to use AI for coding works out along exposure rather than difficulty.
The numbers people quote at you
A lot of the noise in this field is measurement gone wrong. Benchmarks said frontier, developers said dumb is the gap between a leaderboard and a working day. Tokenmaxxing is what happens when a team optimises the metric instead of the outcome. The ceiling is made of concrete is about the limit nobody markets, and the meter was always going to switch on about the pricing everyone knew was coming.
There is a control question underneath all of it. The off-switch was never yours: an export directive pulled a top model worldwide in a day, and no retry logic would have saved you.
A durable profession
Which leaves where the profession itself is heading. The most resilient job is eating its seed corn looks at the numbers: engineers turn out to be the most resilient role in tech while the inflow of juniors dries up. Hiring junior developers in 2026 picks that up from the employer's side: the figure everyone quotes for the collapse is not in the paper it gets credited to, and the one large company hiring anyway shows what the job has to become for that to pay off. The skills in this cluster, reading, judging, building process, are exactly the ones becoming scarce.
Learning to program in the age of AI is the prescriptive half: what to learn first, and what you can safely skip. And who is responsible for AI-generated code is where accountability actually lands once a model wrote the line, which keeps turning out to be the person who merged it.
Where this touches quality
Craft without a yardstick stays a feeling. The AI and code quality cluster makes it concrete, and the hinge is speed got cheap, judgement didn't: the economics behind why judgement became the scarce resource. The rest of that guide is under related topics below.
Below are three starting points, then every post in this cluster, newest first.
Best entry points
- You don't have an AI problem. You have a process problem.
The diagnosis that fits most often: AI exposes the gaps in your process, at speed.
- The brilliant parrot problem: what AI actually does when it 'thinks'
What an LLM actually does when it thinks. The foundation under any realistic judgement of AI.
- The day Claude deleted my production database
The story that makes it all concrete. What happens when trust replaces discipline.
All articles in this topic
Hiring junior developers in 2026: the collapse is a hiring decision
Junior developer hiring stopped, and the number everyone quotes to explain it is not in the paper it gets credited to. What the research found makes the collapse a decision, and one large employer is now betting the other way.
How database indexes work: the B-tree under everything you shipped this week
A B-tree explained from the shape up, and why every index rule you memorised is that shape restated: leftmost prefix, sargable predicates, covering indexes, slow inserts.
When not to use AI for coding: the tasks I still do by hand
Knowing when not to use AI for coding is already a skill you practise, unconsciously and badly. It is also what wrecked METR's follow-up study. Here is the dividing line I actually apply, and why difficulty is the wrong axis.
Who is responsible for AI-generated code? You are, and 2026 wrote it down
Accountability for AI-generated code stopped being a philosophical question this year. In January California barred "the AI did it" as a defence, Europe makes software a product in December, and no vendor indemnity covers your code being wrong.
Learning to program in the age of AI: what I would learn first
Every junior skills list for 2026 says the same thing: learn the agent. That advice is worth about two weeks. Here are the four things I would actually learn first if I started developing today, and why the market is short on exactly those.
How to get better at reading code: a practice routine
Everyone diagnoses AI skill atrophy. Nobody trains the fix. Reading code is a muscle you can drill: a concrete practice routine with a merged PR a day, predict-before-you-run, and explaining code back without the AI.
The most resilient job is eating its seed corn
New data says AI did not kill engineering jobs, engineers are the most resilient function in tech. Read the footnote: the same report shows the junior on-ramp has collapsed. Resilience now is borrowed against a senior shortage later.
The off-switch was never yours
Fable 5 did not crash. It was recalled. A US export directive pulled Anthropic's top model worldwide on June 12, for every customer at once, and no amount of retries or fallbacks would have saved you.
Your coding agent has no world model. You built it one.
Yann LeCun says the path to real intelligence runs through world models, not LLMs. He's probably right. And it explains exactly why your agent loop works.
The meter was always going to switch on
GitHub Copilot went usage-based on June 1. Developers are angry. But the anger is pointed at the bill, not the thing that created it: two years of subsidised pricing that made an uneconomic habit feel like a productivity gain.