Skip to content

Databases — Modeled and Tuned

Most performance problems I meet are database problems wearing a frontend costume. I design schemas deliberately, measure before optimizing, and pick engines by workload instead of fashion.

Engine choices I actually make

EngineWhen I choose it
PostgreSQLDefault OLTP: panels, APIs, anything with relations and constraints.
MySQL / MariaDBShared-hosting realities and legacy stacks.
MongoDBDocument-shaped, rapidly evolving data — session vaults, logs.
RedisCaching, queues, rate limiting, session state.
Firebase / SupabaseZero-ops products and prototypes that still need auth + data.
  • Schema design — normalization where integrity matters, deliberate denormalization where reads dominate.
  • Query tuning — EXPLAIN plans, index strategy, N+1 hunting.
  • Migrations — versioned, reversible, rehearsed on staging.
  • Backups — automated, tested, and actually restorable (the only kind that count).