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.
33 articlesEngineering LeadershipThe job changes from writing code to deciding what gets written.
30 articlesLatest
Everything →My clients live in a folder now
Freelance tools are good at the books and bad at everything around them. mavis keeps clients, calls, time and invoices as Markdown files, run from one binary.
8 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.