Skip to content

Engineering Taste#

Standards cover the common cases. When they run out, judgment takes over. These are the defaults for the decisions no rule can make for you.

Simplicity over cleverness#

  • The simplest solution that solves the problem wins. Clever code impresses once and confuses forever.
  • Optimize for the next person to read the code. Assume they have no context — it might be a teammate, an agent, or you in six months.

Leave it better, but stay in scope#

  • When you touch an area, leave it a little clearer than you found it — a better name here, a removed dead branch there.
  • Don't go hunting for unrelated cleanup. A focused change is easy to review and safe to revert; a sprawling one is neither. File the follow-up instead.

Don't build what you don't need#

  • No over-engineering, no speculative generality, no abstraction with a single caller. Build for the requirement in front of you.
  • Reach for a general-purpose, proven tool before building a bespoke one. Boring and well-understood beats novel and clever.

Understand before you change#

  • Read the existing code and its context before changing it. Most code is the way it is for a reason that isn't visible at first glance.
  • If you can't explain why the current code exists, you're not ready to replace it.

Weigh reversibility#

  • Reversible decisions are cheap — make them quickly and move on.
  • Irreversible or expensive-to-undo decisions deserve more care: a second perspective and a written rationale. See Principles → make change easy.

When still unsure#

Fall back to the three words: does this make the system easier, let us move faster, and keep us safe? If a choice trades one away, say so out loud and decide deliberately.