40 MB an hour: the Node memory leak hiding behind setMaxListeners(0)
A postmortem of a slow leak in a Node ingest service: how two heap snapshots, one retainer chain and a silenced warning led us to the bug.
A group engineering blog
Zero-downtime migrations, safe retries, feature flags you own and monorepos that stay fast. Written for engineers who have to defend their choices in a design review.
Start here
A postmortem of a slow leak in a Node ingest service: how two heap snapshots, one retainer chain and a silenced warning led us to the bug.
Width is time, height is call depth, colour means nothing. A practical guide to reading CPU flame graphs from Go's pprof, using a real regression we fixed.
ALTER TABLE ... RENAME COLUMN takes a millisecond and breaks every running pod. A step-by-step expand and contract rename in Postgres, with the trigger we use.
A date test that passed for months failed on a CI runner in Berlin. What we learned about DST, local midnight and testing code that reads the clock.
For most teams, feature flags are a Postgres table, a hashing function and a policy about expiry dates. Here is ours, and when we would pay for a product instead.
We added an index to fix a 1.2 second query and the plan did not change. Here is how EXPLAIN ANALYZE told us why, and the partial index that worked.
Exponential backoff without jitter turns one outage into synchronized waves of retries. Here is a small Go helper that gets backoff, jitter and cancellation right.
About two emails a month. Each one is a full post with code, written by someone who ran it in production first.
Plain text. No tracking. Unsubscribe any time.