Performance
How to Read a Flame Graph in Sixty Seconds
Width is time, stacking is call depth, and left to right means nothing. Once those three facts land, flame graphs become the fastest way to find a bottleneck.
Measuring before optimising: Core Web Vitals, render time, flame graphs and finding the bottleneck that actually matters.
Performance
Width is time, stacking is call depth, and left to right means nothing. Once those three facts land, flame graphs become the fastest way to find a bottleneck.
Databases
The code reads beautifully and issues four thousand queries. Here is how to detect them automatically instead of discovering them in production.
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.
Performance
Everyone blames the platform. Most of a cold start is usually your own initialisation code, and you can measure exactly which part.
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.
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.
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.
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.