Debugging
Recovering Work After a Bad git reset --hard
Your commits are almost certainly still there. Here is how reflog works, what it cannot save, and the recovery path for each case.
Debugging
Your commits are almost certainly still there. Here is how reflog works, what it cannot save, and the recovery path for each case.
Kubernetes
CrashLoopBackOff is not an error, it is a symptom with about nine distinct causes. Here is how to identify which one you have in under three minutes.
Networking
OAuth errors are unhelpful by design, because detailed errors would help attackers too. Here is how to work out what is actually wrong.
AI
You cannot assert equality on a model response. You can assert a lot of other things, and most teams assert none of them.
Debugging
Setting a breakpoint rewrites your program's machine code while it runs. Here is the mechanism, from the 0xCC byte up to why conditional breakpoints are slow.
React
A complete diagnostic guide to React hydration mismatches: the eight real causes ranked by how often they actually happen, with the fix for each.
PostgreSQL
Adding a column should be instant. Sometimes it is not, and the difference is worth knowing before you run it in production.
Debugging
Five years of keeping other people's websites online rewired how I think about failure. Mostly by making the consequences immediate.
Python
The last line tells you what broke. The middle tells you why. Here is how to get a working hypothesis out of a traceback in about ten seconds.
Shopify
You added a metafield, output it in Liquid, and got a wall of quotes and brackets. Here is what metafield_tag does and when you still need the raw value.
AI
It was sharp for an hour and now it is contradicting itself and reintroducing bugs you already fixed. That is context degradation, and it is manageable.
Debugging
Why I started a blog about software failure instead of software success, and what a debugging writeup should actually contain.