System Design
- Start from invariants and user actions rather than classes.
- Make interfaces express capabilities; keep object creation separate from domain behavior.
- Test boundary cases such as duplicate requests, invalid transitions, and concurrency.

System Design · Original AlgoGym revision note with a source for deeper study.