AI
Multi Agent Systems Fail in the Handoffs
Each agent works fine alone. Chain them and quality collapses. The failure is almost always at the boundary between them.
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.
AI
Each agent works fine alone. Chain them and quality collapses. The failure is almost always at the boundary between them.
JavaScript
Same code, same package.json, different bundler, different result. The difference is resolution conditions and how strict each tool is.
PostgreSQL
You added the index and the query is still slow. Here is how to read a Postgres query plan properly and find the row estimate error causing it.
Python
Your async service handles ten requests a second and pegs one core. Somewhere a synchronous call is blocking the event loop.
Bug Hunt
p99 jumped on one service. The database was fine, every dependency reported healthy, and the flame graph pointed at nothing. That turned out to be the clue.
Bug Hunt
The dashboard looked right. The numbers were wrong by a few percent every day, and the reason was one implicit conversion in a reporting query.
Shopify
Add to cart stopped working, the layout shifted, or the page throws a console error. A systematic way to find which app did it and what to do about it.
Engineering Culture
They are genuinely useful and every one you leave in place multiplies the number of code paths nobody tests. Here is how to keep the benefit.
Networking
At-least-once delivery means duplicates are normal operation, not an edge case. Here is how to build a handler that survives them.
Shopify
Liquid has no query log, so N+1 problems are invisible until the page is slow. Here is how to find them with Server-Timing and how to restructure the loops.
Databases
Reading from cache is easy. Knowing when to remove something is where the bugs live, and most of them are races.
Deep Dive
Traditional VMs take thirty seconds. Firecracker takes 125 milliseconds. The difference is everything it refuses to do.