A collection of 1-line opinions, mostly about software engineering, but sometimes about life.
Every software problem and every software solution has the same root cause: change
Programming is less about writing code and more about precisely specifying what should happen
Software runs on physical hardware with physical constraints. There's no magic, only tradeoffs and physics.
Software engineering isn't about building everything possible. It's about choosing what to leave undone.
Pick two - the eternal triangle of project management
Your product is revealed not in features, but in restraint—in the functionality you deliberately choose not to ship
The word priority loses all meaning when applied to everything at once
Maximize your data asset while minimizing your code liability—the smaller the codebase that generates the bigger dataset, the better
Stop hiding performance problems and start solving them
Object-oriented programming often adds unnecessary complexity
Good testing requires intuition and creativity, not just coverage
The larger the change, the less you understand its impact. Incrementalism forces you to confront risk.