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
Performance & Scale
13 posts
15 Feb 2026
Performance & Scale
Queues Before Autoscaling: Surviving Traffic Spikes on a Budget
Small teams reach for autoscaling when the cheaper fix is moving work off the request path. How I use Laravel queues/Horizon, rate limiting and cache warming to flatten a 10x spike on a sing...
→
12 Feb 2026
Performance & Scale
A Caching Strategy That Works: Layers, TTLs and Invalidation
Most caching advice lists patterns; the real problem is deciding which layer (CDN, HTTP, app, Redis, query) owns each value's freshness. A decision table mapping data types to layer + TTL +...
→
09 Feb 2026
Performance & Scale
N+1 Queries in Laravel: How I Find and Kill Them Before They Ship
The ORM failure mode that turns 1 query into 101 and melts production at 500 concurrent users. Concrete Laravel toolkit: Model::preventLazyLoading() in non-prod, eager loading with constrain...
→
06 Feb 2026
Performance & Scale
Debugging Slow Database Queries: My EXPLAIN-First Workflow
Postmortem-style walkthrough of taking a 4-second endpoint to under 100ms: slow-query log → pg_stat_statements/performance_schema → EXPLAIN ANALYZE → composite index. Anchored in the stat th...
→
03 Feb 2026
Performance & Scale
Fixing INP on Checkout and Forms: Where Slow Interactions Kill Sales
Sites that passed FID at 97% pass INP at only ~65% — and the failures cluster exactly where money changes hands: validated form fields, shipping selectors, payment buttons. Practitioner walk...
→
31 Jan 2026
Performance & Scale
Core Web Vitals in 2026: The New 2.0s LCP Bar and What It Costs You
Google quietly tightened the 'good' LCP threshold from 2.5s to 2.0s in March 2026, and most business sites that passed last year now fail. First-person triage framework: how I audit a client...
→
16 Nov 2025
Performance & Scale
The index you are missing is probably composite
The table had eleven indexes and the query could not use them well. One composite index took the page from 1.9 seconds to 11 milliseconds — here is the method behind it.
→
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.
→