I’ve spent more hours than I care to count arguing about types. Not the academic, category-theory kind of argument—the real-world, “why is this pull request taking three days to review” kind. And after all those debates, I’ve noticed something. Most of them circle back to a single, often unspoken tension: the difference between type safety …
Month: June 2026
At 2:14 a.m., the on-call engineer for the payments team got paged: prod-checkout-latency-p99 > 2s. She opened the runbook. It said: “If artifact promotion failed, re-run ship-it from the deploy jump host.” She logged into the jump host, typed ship-it, and got command not found. Tried promote. Nothing. Dug through Slack and found a thread …
I’ve spent way too much time in arguments about types. Not the productive kind where you walk away with a new insight, but the frustrating ones where two developers talk past each other because they’re using the same words for completely different ideas. One person insists they need “type safety,” but what they really want …
What We Actually Mean When We Talk About Types Every developer has been stuck in a room where the word “type safety” gets thrown around like a grenade. One person is talking about runtime crashes. Another is fixated on compile-time checks. A third just wants to know why shipping a simple feature takes three days. …
I’ve spent a lot of time in codebases where the word “type-safe” gets thrown around like a badge of honor. Teams will proudly announce they’ve migrated to TypeScript, or that they’re using strict validation schemas, or that their new library is “fully typed.” But when you actually dig into the code, you find something else: …
I’ve spent way too many hours arguing about types. Not the fun kind—where you geek out over a clever union type or a particularly elegant generic constraint. I’m talking about those draining, circular debates where someone mashes together two completely different ideas: type safety and type convenience. They sound related. They both have “type” in …