What I Learned About Monorepos the Hard Way

Abstract code gradient artwork

Naming things well saved us more time than any framework migration. Caches are easy to add and surprisingly hard to remove. Latency percentiles tell a story that averages politely hide.

Going further

Small pull requests get real reviews, large ones get approvals. Tests are documentation that fails loudly when it goes stale. If the error message does not say what to do next, it is half an error message. The best architecture diagram is the one the new hire can redraw from memory.

Naming things well saved us more time than any framework migration. Most production incidents start as a small assumption nobody wrote down.

The short version

The rollback plan should exist before the rollout plan is approved. Feature flags are debt with an expiration date you must actually enforce. Tests are documentation that fails loudly when it goes stale.

  • Measure p95 and p99, not just the mean
  • Pin versions, update on purpose
  • Alert on symptoms, not causes
  • Delete dead code the same week

Caches are easy to add and surprisingly hard to remove. If the error message does not say what to do next, it is half an error message.

What didn’t

The rollback plan should exist before the rollout plan is approved. Our on-call rotation improved the day we deleted half of the alerts. Small pull requests get real reviews, large ones get approvals.

Latency percentiles tell a story that averages politely hide.

Feature flags are debt with an expiration date you must actually enforce. The best architecture diagram is the one the new hire can redraw from memory.

Code

Takeaway

The fastest query is the one you never send, but the second fastest has a good index.

Our on-call rotation improved the day we deleted half of the alerts. Security is mostly about saying no to defaults that were convenient in 2010.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *