Debugging
strace for Web Developers: What Your App Asks the Kernel
When your profiler shows nothing and your logs are silent, strace shows you every syscall with timings. Here is a practical subset worth knowing.
Method rather than tooling: forming a hypothesis, choosing the cheapest experiment that falsifies it, and finding the wrong assumption underneath a bug.
Debugging
When your profiler shows nothing and your logs are silent, strace shows you every syscall with timings. Here is a practical subset worth knowing.
DevOps
A plan showing forced replacement of a database is a good moment to stop. Here is how to read why, and the three ways state gets out of sync.
DevOps
Most logs are unqueryable prose written for a human who will never read them. Here is what makes a log line useful during an incident.
AI
Your tool is registered, the agent knows it exists, and nothing happens. Here is how to see what is actually crossing the wire.
DevOps
Not a guide to observability platforms. Just the three signals that, in retrospect, would have given me warning before nearly everything that went wrong.
Kubernetes
nslookup resolves and your application cannot connect. The two use different resolvers, and the difference is where the bug lives.
Networking
A missing timeout turns a slow dependency into an outage. A badly chosen one turns a blip into a retry storm. Both are common.
Performance
Everyone blames the platform. Most of a cold start is usually your own initialisation code, and you can measure exactly which part.
JavaScript
TypeScript gave up. Here is why recursive conditional types hit a wall, and how to restructure so they do not.
Networking
The proxy is telling you your application failed. Here is how to read the error log line and identify which of six things went wrong.
Shopify
Liquid fails quietly by design. Here is where the error actually goes and how to make your theme tell you what went wrong.
Shopify
checkout.liquid is gone. Here is what actually replaces each customisation and which ones have no replacement at all.