Your Carpenter Hates You, Your Code Sucks | Tobi Okewole
essay
← Back to the blog
The same reason your carpenter hates you and can't seem to join two pieces of wood in a straight line — even though one would expect that to be as basic as it gets for a carpenter — is the same reason the code you write sucks and everyone who reads it mutters fucking retard under their breath.<br>For the past month, I have embarked on the very herculean task of furnishing my new apartment. In hindsight, I could have hired an interior designer. But I suspect an interior designer would hate me. I had a very specific vision of what I wanted the place to look like and feel like, and to achieve that I had to commission a number of custom pieces — a room divider, a credenza, among other things.<br>I did a 3D rendering of my vision. I found a carpenter on TikTok who seemed capable — nice portfolio, clean lines in their previous work. I presented the model, imagining that since I had done the intellectual heavy lifting, all that was left was to join the wood to match the design.<br>And somehow — by what I can only attribute to divine hatred — the carpenter made something that looked largely different from my model which I guess I wouldn't have had much of an issue with if the lines were straight. But there was not a straight line in sight.<br>I don't think the carpenter was incompetent in the traditional sense. I think they just didn't care. They didn't sit with the design. They didn't ask questions. They didn't try to understand why I wanted the proportions the way I wanted them. They saw wood, they saw a shape, they got it close enough to call it done.<br>The whole experience made me realise something: it's often very clear when something is crafted with care and when it isn't. You can feel the difference. The object tells on itself.<br>As a programmer today — especially with increasingly higher speed and output requirements from execs — it is very easy to take on a project, build it out, get it working, and ship it without ever digging deep into the subject matter. You fill in the gaps with assumptions. You paste the error into Claude and move on. You don't ask why the domain works the way it does. You don't sit with the problem. You just join the wood.<br>You could build a document automation feature for a law firm without understanding what a retainer agreement actually is. You could ship a contract review tool without knowing the difference between representations and warranties. You could build an entire compliance workflow without understanding why the compliance exists in the first place — what regulation it maps to, what the penalties are, what the edge cases look like. The AI will help you get the fields right. The tests will pass. The feature will ship. But the moment a lawyer uses it and hits a scenario you didn't anticipate — because you didn't know enough to anticipate it — the whole thing falls apart. And they'll look at your code and know: this person didn't understand what they were building.<br>The code might work. Technically. But anyone who reads it can tell. The naming is off. The abstractions don't map to anything real. The structure reveals that you didn't understand what you were building — you just got it to compile.<br>The best engineers I've worked with were not just code monkeys who wrote a ton of code. They were people with deep knowledge of the domain — the why. When I was at Alpaca Markets, the best engineers weren't just good at writing code. They understood financial markets. They knew how order books worked, how settlement cycles played out, why certain edge cases in trading logic mattered. The business logic made sense because the engineer cared, cared enough to learn the business.<br>Here's the part that should scare you: the carpenter probably looked at his work and thought it was fine. Close enough. The shape was there. He didn't lie awake knowing he'd failed me — he genuinely couldn't see the gap between what I wanted and what he made, because seeing it would have required caring enough to look. That's the trap. Not-caring doesn't feel like not-caring from the inside. It feels like being done.<br>Your carpenter hates you, and your code sucks, for the same reason. Neither of you cared enough to understand what you were building.
Tags<br>essay
Discuss on HNView on GitHub<br>PreviousProfiles in Ignorance: How America's Politicians Got Dumb and Dumber by Andy Borowitz
← Back to the blog