Networking
x509: certificate signed by unknown authority
Your browser trusts the certificate and your application does not. They use different trust stores, and inside a container there may not be one at all.
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.
Networking
Your browser trusts the certificate and your application does not. They use different trust stores, and inside a container there may not be one at all.
Debugging
A test that fails one time in fifty is reporting a real property of your system. Retrying it is throwing away the evidence.
React
React caught the loop and stopped it. Here are the five ways to create one and how the Profiler tells you which you have.
Docker
Distroless and scratch images are great for security and miserable when something breaks. Here is how to investigate a container that ships nothing.
DevOps
A cache with the wrong key restores nothing and uploads everything. A cache with too broad a key restores stale artifacts. Both are common.
JavaScript
The angle bracket is the first character of an HTML error page. Your API returned a page, not JSON, and here is how to find out which page.
Networking
no-cache does not mean do not cache. max-age on a CDN is not what you think. Here is what each directive actually does.
JavaScript
CORS errors are a browser protecting you from a response it already received. Understanding that one fact makes every CORS error obvious.
Tooling
Git is protecting you from combining two repositories that share no common ancestor. Sometimes that is exactly what you want.
Docker
The difference between a container and a microVM is one sentence long, and almost every isolation decision follows from it.
Kubernetes
Two statuses, one underlying problem, and about six causes. Here is how to read the event message and fix the right thing.
Node.js
Memory climbs, the process gets killed, and restarting fixes it for six hours. Here is the diff based method that finds the retainer.