Menu
The notebook

Blog.
notes from real projects

Practical writing on Laravel, AI engineering, token costs, SaaS architecture, and the technology decisions that make software cheaper to run and easier to grow.

All AI & LLMs Cloud & DevOps Industry Insights Laravel & PHP Modernisation Performance & Scale SaaS & Product Security & Compliance
All posts 113 posts
09 Nov 2025 Performance & Scale When a queue backlog grows faster than it drains A client doubled their queue workers twice and the backlog kept growing. The fix was arithmetic, not hardware — finding the real throughput ceiling and raising it. 02 Nov 2025 Performance & Scale Reading a slow query log without guessing Most performance work starts with a guess. Mine starts with the slow query log — how I configure it, digest it, and decide what to fix first on a Laravel application. 28 Oct 2025 Performance & Scale Eager loading is not a silver bullet Eager loading fixes N+1 queries, but with() can also make pages slower and hungrier. Where it backfires — with real numbers — and what to reach for instead. 21 Oct 2025 Performance & Scale Your infrastructure bill is a query problem Before you pay for a bigger server, read your query log. Most Laravel hosting bills are inflated by N+1 queries and missing indexes — and the fix is permanent, not monthly. 14 Oct 2025 Performance & Scale What a Laravel performance audit actually looks for A Laravel performance audit is not guesswork — it is a checklist run in the order it pays off. Here is mine: measure first, queries second, caching third, infrastructure last. 10 Oct 2025 Performance & Scale How I found 3,930 wasted queries in a single page load One dashboard page was issuing 3,982 database queries. Fifty-two of them were doing real work. This is the investigation, step by step, so you can run it on your own Laravel app. 03 Oct 2025 Security & Compliance Answering "can another customer see our data?" architecturally Enterprise buyers always ask whether another customer can see their data. A policy answer loses the deal; an architecture answer wins it. Here is the difference, from a platform that shipped. 26 Sep 2025 Security & Compliance Where tenant-scoped file storage actually goes wrong Your tenant isolation is airtight in the database and full of holes on disk. The five file-storage leaks I keep finding in multi-tenant codebases, and what replaces them. 22 Sep 2025 SaaS & Product Migrating 200 tenant databases without downtime Database-per-tenant means every schema change runs 200 times, and some of those runs will fail. The playbook I use to migrate a whole tenant fleet with the product still up. 15 Sep 2025 SaaS & Product Giving every tenant their own cPanel account Most SaaS isolation is a WHERE clause. On one platform I went further: every tenant gets its own cPanel account — filesystem, database, domain, the lot. Here is why, and how. 08 Sep 2025 SaaS & Product One database per tenant: what it costs and what it buys I run a SaaS where every tenant has its own database. The isolation is real and so is the operational tax. Here is the honest ledger of what the architecture costs and buys. 04 Sep 2025 Laravel & PHP Syncing national company registries: PRH and YTJ in practice I built a continuous sync against Finland's PRH and YTJ registries that enriches company records without clobbering user data. Here is what the docs never tell you.