Reading the standard library
Theo M. · Sep 8
Most retry logic I've removed turned out to be hiding a real bug. The retries made the failure invisible, and the bug compounded for months in the background.
Caches solve a problem and create three new ones: invalidation, observability, and the slow drift between what the cache thinks is true and what the source thinks is true.
I used to add a layer of abstraction the first time I saw a pattern repeat. Now I wait for the third. The waiting is uncomfortable, but the abstractions that survive that wait tend to last.
When a system surprises me, my first instinct used to be to fix the surprise. Now my first instinct is to figure out which mental model of mine was wrong, and update that.
Most of the trouble I see in production comes from boundary cases someone promised would never happen. The code is fine. The plan is fine. The promise is what ages badly.
I trust monorepos more in the second year than I did in the first. Most of the early friction goes away once the tooling catches up.
← back to index