Good abstractions

October 3, 2026

  • Show what it does, hide how it does it.
  • Simple, easy to use, no weird gotchas.
  • Its shape should tell you how to use it.
  • Composable, the most important and the rarest.
  • Shaped like the problem, not like how it was built.
  • Make invalid states impossible.
  • Tradeoffs are fine, big compromises aren’t.
  • Good ones feel obvious and disappear.
  • If you don’t understand how something works, it better be a good abstraction.
  • Too many abstractions hurt when they’re bad ones, or when you don’t know why you’re using them.