There are two hard problems in computer science: cache invalidation, naming things, and off-by-one errors. The naming one is the one that quietly eats your afternoon while pretending to be trivial. I have spent longer naming a function than writing it, and I regret none of that time, because the name is the part the […]
There is a folk wisdom in this industry, written in the blood of ruined weekends: do not deploy on a Friday. It gets passed down like a ghost story, and like most ghost stories it is based on something that genuinely happened to someone. It is not superstition. It is risk management wearing a meme. […]
RTFM is the oldest love-hate relationship in tech. We tell every newcomer to read the manual, in the same breath that we write manuals no human being could love. It is hazing dressed up as mentorship. The honest truth is that half the time the manual is wrong, out of date, or lovingly describes a […]
The first thing anyone learns about vim is that they cannot get out of it. There is a whole generation of developers whose first encounter with vim ended in closing the entire terminal in a quiet panic, and honestly, that is a valid exit strategy. (It is :q, by the way. :wq if you want […]
The daily standup is called a standup because standing up was supposed to keep it short. Tired legs, brief meeting. It was a beautiful idea, briefly. Then someone discovered chairs. And the standup became a sitdown, and the sitdown grew a tangent, and the tangent grew a tangent of its own, and forty minutes later […]
Every piece of critical infrastructure I have ever built was, at some layer of the stack, powered by coffee. It does not show up in the architecture diagram, but it is load-bearing all the same. There is a reason the “powered by coffee” joke never dies. The uptime of the engineer is a hard dependency […]
The four most cursed words in software: “works on my machine.” It is technically true, completely useless, and the documented alibi of a thousand bugs that went on to have rich careers in production. Your machine has eleven undocumented environment variables, a config file you edited in 2019 and forgot about, a globally installed dependency […]
No conflict in human history has been fought over stakes this low and convictions this high. People who agree on everything else — editors, languages, whether to deploy on Friday — will look you dead in the eye and end a friendship over whitespace you cannot even see. I am not going to tell you […]
The most effective member of my debugging team is a small plastic duck. It has no degree, no commits, and no opinions. You explain your code to it, out loud, line by line, and somewhere around line forty you hear yourself say the thing that is obviously, catastrophically wrong. The duck did nothing. The duck […]
“Quick question” is the most expensive phrase in the building. It is never quick and rarely a single question. It is a forty-minute architecture review wearing a trench coat and a fake moustache, and it has found you at your desk. I have learned to hear “do you have a sec?” the way a firefighter […]