Networking
GraphQL Returns 200 With Your Error Inside It
Every response is a success as far as HTTP is concerned. That one design decision breaks monitoring, retries, and error handling unless you plan for it.
Method rather than tooling: forming a hypothesis, choosing the cheapest experiment that falsifies it, and finding the wrong assumption underneath a bug.
Networking
Every response is a success as far as HTTP is concerned. That one design decision breaks monitoring, retries, and error handling unless you plan for it.
Bug Hunt
A weekly export failed every Tuesday and worked every other day. Three wrong hypotheses later, the cause was a date format string nobody had looked at in…
Performance
Width is time, stacking is call depth, and left to right means nothing. Once those three facts land, flame graphs become the fastest way to find a bottleneck.
Debugging
Your commits are almost certainly still there. Here is how reflog works, what it cannot save, and the recovery path for each case.
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.
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.
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.
Databases
The code reads beautifully and issues four thousand queries. Here is how to detect them automatically instead of discovering them in production.