Databases
Finding the N+1 Queries You Do Not Know You Have
The code reads beautifully and issues four thousand queries. Here is how to detect them automatically instead of discovering them in production.
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.
Databases
The code reads beautifully and issues four thousand queries. Here is how to detect them automatically instead of discovering them in production.
PostgreSQL
Connection pooling explained through the failure it prevents, and why raising max_connections is usually the wrong fix.
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.
Networking
How to handle being rate limited without making it worse, and how to implement limits that do not punish well behaved clients.
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.
AI
An honest inventory after a year of daily use: what earns its place in the loop, what I stopped opening, and where these tools are still bad.
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.