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 posts
113 posts
10 Apr 2026
AI & LLMs
AI Agents vs Workflow Automation: A Decision Guide for SMBs
A framework for when a deterministic queue/cron pipeline beats an agent and vice versa — variability, judgment, and natural-language inputs are the agent signals — with honest failure-mode a...
→
10 Apr 2026
Security & Compliance
Signed URLs versus the file path anyone can guess
On a healthcare platform, changing one digit in a document URL opened someone else's medical report. How I replaced guessable file paths with private disks and short-lived signed URLs.
→
07 Apr 2026
AI & LLMs
RAG vs Long Context: When You Don't Need a Vector Database
With million-token context windows and prompt caching, corpora under a few hundred pages are often cheaper and more accurate stuffed into context than retrieved — I give the cost/latency cro...
→
04 Apr 2026
AI & LLMs
Why RAG Fails in Production (and How to Fix Retrieval First)
Roughly 73% of RAG failures are retrieval, not generation — a debugging checklist from client projects: inspect retrieved chunks before blaming the model, fix chunking (semantic over fixed-s...
→
03 Apr 2026
Industry Insights
Building a Fintech MVP in the Nordics: Compliance, APIs, Costs
PSD2 APIs, KYC vendors, licence versus agent model — what a Nordic fintech MVP involves beyond code, and how predictably compliance inflates the budget.
→
03 Apr 2026
Security & Compliance
The security pass I run before every handover
Before any codebase leaves my hands, it gets a fixed security pass — unbilled. Here is the actual checklist, what it keeps finding, and why it ships free with every project.
→
01 Apr 2026
AI & LLMs
Small Models First: Why Cheap LLMs Handle 80% of SaaS AI Features
An escalation architecture I use: default every request to a Haiku/Flash-class model at cents per million tokens, escalate to a frontier model only on validation failure or low confidence —...
→
29 Mar 2026
AI & LLMs
Claude vs GPT vs Gemini in Production: How I Choose in 2026
A task-type decision framework instead of benchmark worship: match model class to job (extraction, chat, coding, long-doc), compute total cost per feature rather than per token, and a compar...
→
26 Mar 2026
AI & LLMs
Prompt Caching in 2026: When It Cuts Costs 90% and When It Won't
A mechanics deep dive: how cache pricing actually works across Anthropic/OpenAI/Google, how to restructure prompts so the static prefix caches (system prompt, docs first; user input last), a...
→
26 Mar 2026
Laravel & PHP
Geofencing without destroying the battery
Continuous GPS polling is how location apps earn one-star reviews and uninstalls. The OS-native, server-assisted geofencing setup I use instead — and the numbers behind it.
→
22 Mar 2026
Security & Compliance
Location verification when the prize is real money
I built a live game where standing in the right place wins real money. That turns GPS — a signal designed to be trusted — into a security boundary you have to defend in layers.
→
17 Mar 2026
Cloud & DevOps
CI/CD for a Two-Person Team: A Pipeline That Ships in 5 Minutes
Pragmatic DevOps against the over-engineering trend: the GitHub Actions pipeline I use on freelance projects — lint, test with a real database, build assets, deploy on merge — kept under fiv...
→