Your API is not slow. One call in it is.
I am Steve McDougall. I find which call is actually costing you, stabilise that one before anything else, and leave your team with patterns they can keep running without me. No rewrite. Everything I have worked out about API design, architecture and PHP is here, free to read.
Read this first
Accepting Data You Don't Control
Webhooks and callbacks you did not design. An ingest server in Laravel 13 that owns the envelope, stores the payload whole, and validates where failure means a retry, not data loss.
Aug 2026 · 14 min read
What I write about
All writing →How APIs outgrow the design they shipped with, and what to fix first.
44 articlesArchitectureRecognising the pattern you already live inside, and pricing the exit.
43 articlesPHP & LaravelThe language got good. Most code has not caught up with it.
51 articlesShipping & ToolingDeploys, local environments, CLIs, and where agents actually help.
32 articlesEngineering LeadershipThe job changes from writing code to deciding what gets written.
30 articlesLatest
Everything →Building a home-education platform with Laravel 13, Inertia and React, and shipping it to Laravel Cloud
A Laravel 13, Inertia and React platform for home educating my son: an append-only learning record, a planner, AI kept on a short lead, and what Laravel Cloud asked of the code.
31 min read
Your API is not slow. One call in it is.
Most "slow API" problems aren't the whole system — they're a single call quietly setting your p95. This is a 30-second look at how to find the one call that's actually costing you, stabilise it first,
0:25
PHP Alive And Kicking: Episode 32 Tessa Kriesel & Steve McDougall
A lively episode talking all things tabstack with Tessa Kriesel and Steve McDougall, oh also Steve wrote a book.
PHP Alive And Kicking
Newsletter
Build notes, straight to your inbox.
One email every couple of weeks with new articles, talks, and practical tools worth trying. No spam, unsubscribe anytime.