Every one of these came from something going wrong in a way I couldn’t argue with. I’ve kept the ones that turned out to be about more than the machine that produced them — the rules that only apply to a printer or a mould live in the shop, where they belong. What’s left is the part that travels.

The story under each one is what it cost. Without that they’d just be sayings.

Celebrate by making the next step smaller, not by cheering louder.

A build had been stalled for weeks. Nothing was blocking it and I still wasn’t starting it, because the next step was the whole remaining job. It moved the day I cut that step down to something I could finish in an evening — and then kept cutting. The reward for finishing a piece isn’t a bigger noise about it. It’s a smaller next piece, so there’s something you can actually start tomorrow.

Test in the harsher material.

Every test cast for the drain covers was plaster of Paris, never concrete. Plaster expands as it sets where concrete shrinks — so a plaster cast grows into the mould and grips every surface it touches. That makes it a far worse demould than the real thing, which is exactly the point: a shape that releases in plaster will release in mix. Testing in the easy material would have taught me nothing and I’d have found the problems at full size.

Buy your mistakes at the lowest price available.

Same project, same reasoning applied to scale. The model has a parameter that shrinks the casting while leaving the tooling dimensions alone, so I could print the whole set at half size. Being wrong four times cost a few hours and about 300 g of filament each round. At full size the same four mistakes would have been a day and a half of printing apiece. Nothing about the lessons required the parts to be big.

When something fragile keeps breaking, move what’s around it.

A thin lip on the casting died on the way out of the mould twice. Three redesigns in a row tried to make the cast leave more gracefully — more draft, better corners, better release. The fourth gave up on that entirely and split the mould into two bolted halves, so the cast doesn’t have to come out at all. The mould comes off instead. The next pour came out in one piece.

Three attempts went into making the delicate thing tougher. The one that worked stopped asking it to survive.

A “complete” is not evidence that the thing exists.

The printer once ran an entire job — the full length of the file, every move, a clean finish, a green “complete” — with no filament loaded. Nothing in the software was lying; it faithfully reported that it had executed all of the instructions. It has no idea whether anything came out. A process reporting success is telling you it reached the end of its own instructions, which is a different claim from the one you care about.

The instrument makes a claim. Go look at the object.

The filament runout sensor on that same machine reads true — filament present — when it isn’t plugged in at all. The disconnected state and the everything-is-fine state are the same signal. Now I purge a little at the middle of the bed and look at the spot on the camera, because that’s the only version of the question that can’t be answered by a wire.

Suspect the physical before the abstract.

I have lost whole sessions to driver theories, library versions and configuration when the actual fault was a connection. The tell is inconsistency: a bug that moves, that works once and not twice, that changes when you jostle the bench, is a physical fault until proven otherwise. Software fails the same way every time. Go pin by pin first — it’s boring, it’s twenty minutes, and it’s usually the answer.

One failure upstream looks like every failure.

A board of mine boots in a fixed order — network, then camera, then sensors, then the stream. When the network stage failed, every stage after it failed too, and the dashboard showed a completely dead device. The instinct is to start diagnosing the biggest symptom. The right move is to find the earliest one, because in anything sequential, a single break at the top counterfeits total collapse.

You can’t fix a behaviour by asking. Remove the possibility.

Small language models don’t reliably obey instructions phrased as prohibitions — telling one not to do a thing keeps the thing in front of it. The fix was never better wording. It was deleting the slot so the option didn’t exist. This generalises further than I’d like: if something keeps happening despite everyone agreeing it shouldn’t, the agreement isn’t the control. Change the shape of what’s possible.

Never let the correction hide the thing you’re measuring.

A calibration print exists to reveal a specific defect. If the profile has automatic compensation switched on for exactly that defect, it will quietly correct the error while you’re trying to measure it, and you’ll read the result as a pass. Whenever you build a test, check what in the system is already trying to be helpful about the thing under test.

Name the principle, not the thing.

My written procedures used to name specific equipment — this camera, that port, this file. Then a camera moved to a different machine, and the instruction went on reading as authoritative for weeks after it had quietly become wrong. A rule naming a thing has an expiry date it doesn’t display. A rule naming the reason survives the thing being replaced, and tells you what to do about the replacement.

Check your premise before you indict.

More than once I’ve been sure a tool was flatly wrong, gone to argue about it, and found that it was right and my picture of the situation was out of date. Being confident that something has failed is not the same as having checked. The verification is cheap and the accusation is expensive, and I’ve never regretted doing them in that order.

Collecting doctrine is cheap and feels like progress.

Which is the warning label on this page. Writing a principle down is enjoyable and produces the sensation of having learned something, and it costs nothing, and nothing in the world changes as a result. Everything above is here because it was already paid for somewhere else. A rule that hasn’t cost anything yet isn’t wisdom — it’s just a nicely-worded intention.