Most outages are not exotic. They are missing timeouts, unbounded queues, or a database that became the chat room for every feature.
When I ship backends — payments, OTP, multi-tenant apps — I start with boring reliability:
1. Idempotent writes for payments and webhooks.
2. Redis for hot paths and rate limits, not as a second source of truth.
3. Clear ownership of failures: structured logs, not silent retries forever.
4. Schema discipline so multi-tenant data cannot leak across customers.
Fancy architecture is optional. Clear failure modes are not.
If you are hiring for backend work, ask candidates how they design for the day traffic is 10x — not how they name folders.