SaaS architecture, .NET, and how to build software that scales.
Technical writing from a production engineering perspective. Real decisions, real tradeoffs, real numbers.
Blog log
Written from production, not theory.

I knew AI subscriptions would break. So I built for tokens from day one.
Why flat-rate AI pricing was always unsustainable — and the architecture that makes metered billing actually work.
Why your Lovable MVP will need a rebuild (and how to avoid it)
AI scaffolding is fast. But fast isn't the same as production-ready. Here's where the gaps are and how to address them before they cost you.
Multi-tenancy in .NET: what it actually takes to do it right
Shared schema vs. schema-per-tenant vs. database-per-tenant. The tradeoffs aren't abstract — here's what each one costs in a real system.
Production-ready vs demo-ready: the 7 systems every SaaS needs before launch
Auth, billing, background jobs, email, feature flags, audit logs, and observability. If your stack is missing any of these, you're not ready.
458 req/s on a €4/month ARM VPS — with Postgres and Redis on the same box
Real numbers from real infrastructure. The setup, what I optimised, where the ceiling was, and what the results actually mean.
The outbox pattern in .NET: why I use it for every project
Guaranteed message delivery without distributed transactions. A pattern that eliminates an entire class of bugs from your SaaS backend.
Building SaaS on .NET 10 in 2026: clean architecture decisions
The choices baked into both foundations — and why they hold up better than the alternatives at scale.
Build it once.
Scale on it.
Tell me what you're building, or what your AI-built MVP is struggling with. I reply within 24 hours with an honest read.