Skip to content

Software design principles, post series

This series treats design advice as a set of failure modes. A principle earns its place only when it helps explain what breaks, what coupling grows, or what race appears under load.

Reading order

  1. SOLID principles, what each principle is trying to prevent.
  2. Composition over inheritance, why object graphs usually age better than class trees.
  3. TypeScript async mutex, serializing async writes when JavaScript concurrency looks single-threaded but is not.