MicroVMs
The Test That Only Failed When It Ran Second
A suite that passed alone and failed in the pipeline. The bug was not in the test, it was in what the previous job left behind on the runner.
I write about why software breaks and how people figure it out. Founder of Krova Cloud, building isolated microVMs on our own hypervisor. Years of Shopify theme work and shared hosting before that. If I have not reproduced it, I do not publish it.
MicroVMs
A suite that passed alone and failed in the pipeline. The bug was not in the test, it was in what the previous job left behind on the runner.
Networking
Flexible gives you an infinite redirect. Full strict gives you a 526. The documentation says Full or higher, and higher is the one that breaks.
Node.js
The quick fix is raising ulimit. The real question is what is holding thousands of descriptors open and never closing them.
MicroVMs
A patched kernel that kept reporting the old version after every reboot. The reboot was working perfectly. My assumption about where the kernel comes from…
Opinion
Positions I argued for, sometimes loudly, that turned out to be mistaken. What changed my mind in each case.
Shopify
The webhook is registered, orders are being created, and nothing arrives. Here is where they go and how to stop being unsubscribed.
Shopify
You cannot attach a debugger to Liquid. Here is the set of techniques that actually works for finding out why a theme is doing something unexpected.
Shopify
A practical migration order, the things that silently break, and how to verify you did not lose content along the way.
Shopify
The storefront cached availability, the customer added to cart, and checkout disagreed. Here is where the state diverges and what to do about it.
Debugging
An error message is read by a person under stress who needs to make a decision. Almost nobody designs them that way.
Bug Hunt
The classic heisenbug. Here is why observation changed the outcome, and the three techniques that found it anyway.
Bug Hunt
Every replica restarted at once during a brief database blip. The health check was working exactly as designed, and the design was wrong.