I think AI is swapping code debt for tooling debt

I talked with an engineer recently who told me he was single-handedly (or rather, Claude-handedly) paying down tech debt in his company's codebase. And, at the same time, implementing a

Feb 25, 2026
AI

APFS is case-sensitive on first write and case-insensitive afterwards

APFS on macOS is case-insensitive by default. I guess this is done to keep traditions, since HFS+ (its predecessor) was case-insensitive by default too; and I actually think it is,

Jan 29, 2026

TIL: `join` over `(->)`

I discovered a neat pattern: using join with the function arrow ((->)) as a Monad. When you join over functions, you get: This lets you pass the same argument twice:

Jan 23, 2026
Haskell
TIL

TIL: AbortSignal.timeout

For Promise timeouts, I was overworrying about doing setTimeouts with an AbortController, and cleaning them up afterwards to avoid memory leaks: The gods of JS smiled in my favor this

Jan 23, 2026
TIL
JS