Caching Strategies for SaaS Backends: Redis, HTTP & CDN
Where to put the cache so it actually helps: application vs. HTTP vs. edge, cache invalidation by version not by prayer, and the metrics that tell you the cache is lying.
Writing
Practical writing on backend architecture, databases, APIs and deployment — the decisions, trade-offs and implementation details behind reliable, maintainable applications.
Featured article
Shared schema, schema-per-tenant and a hybrid mix of both — how to choose a multi-tenant database model from day one, with real trade-offs for PostgreSQL, row-level security and analytics.
5 articles
Where to put the cache so it actually helps: application vs. HTTP vs. edge, cache invalidation by version not by prayer, and the metrics that tell you the cache is lying.
B-tree, GIN, partial and composite indexes — how PostgreSQL actually uses them, when each earns its disk, and the questions to ask before adding another index.
Why the single-stage Dockerfile that runs locally breaks in production — and how a multi-stage build, a non-root user, and a distroless base image shrink your image and your attack surface.
Nouns over verbs, consistent error envelopes, pagination you can't outgrow, and the versioning strategy that keeps breaking changes from breaking your customers.
Why Node.js apps exhaust PostgreSQL connections, how transaction pooling with PgBouncer fixes it, and the gotchas — prepared statements, set_config, and monitoring — that trip teams up.
Work together
I design and build production-ready web applications, SaaS platforms and backend APIs — from data modelling to deployment. If a project or technical challenge is on your roadmap, let's talk it through.