Skip to main content
WritingVideosSpeakingCodeAbout

Writing

Everything I have written down

Articles, reference guides and multi-part series on API design, architecture, PHP and the work around them. All of it free, none of it behind an email form.

Subjects

Five subjects. Each one a hub with a place to start.

Series

Longer arguments, read in order.

Series8 parts · 81 minBuilding Software in the AI Era

Master the tools, habits, and operating models needed to ship high-quality software in a day-to-day workflow shaped by LLMs, moving past outdated sprints and velocity metrics.

Series10 parts · 107 minEngineering Management

Scale your engineering organization and build a high-performing team culture. Learn modern leadership frameworks for managing remote engineers, technical debt, and team coaching.

Series10 parts · 71 minFrom Requirements to Reality

Transition from writing simple code to designing complete architectures. Learn how to shape features, design database entity-relationship diagrams (ERDs), and plan before you build.

Series7 parts · 50 minWhy Is This Hard To Change?

A diagnostic series for Laravel codebases that are clean, modern, well tested, and still expensive to work in. Each part starts from a symptom a team actually reports, works back to the structural cause, and prices the fix honestly, including the times the answer is to leave it alone.

Series6 parts · 50 minBuilding Modern Laravel APIs

Build and deploy production-ready Laravel 13 APIs using PHP 8.5. Design an opinionated, robust architecture that scales under real production load through a step-by-step complete application build.

Series10 parts · 128 minThe Second Pattern

Nine architecture patterns that rarely get named in PHP, and one article on the ones that are not worth it. Each starts with the obvious move, finds the exact point it breaks, then reaches for the pattern that fits. Built in Tempest, aimed at anyone writing PHP REST APIs.

Reference

Patterns to look up, not read through.

Longer reference

The engineering career framework

Six levels from early career to company-wide technical leadership, with the expectations and growth signals for each, for individual contributors and for managers. Free to copy into your own company.

Read the framework →

Topics

Or browse by topic.

Archive

Everything, newest first.

RSS →
Oct 202617 min read
API Design

Most of Your API Has Already Been Designed

Error formats, retries, lost updates, webhook signing: the IETF has already answered them. api-toolbox brings those answers to Laravel, one RFC per feature.

Oct 202617 min read
Engineering Leadership

How to Write Specs, RFCs and ADRs

Spec driven development in practice: what an RFC, an ADR and a spec are each for, the templates I use, and one feature taken through all three from a blank page.

Oct 202612 min read
Architecture

What Actually Constrains a Coding Agent

I had fifteen agents build the same Laravel and Slim API. Written decisions mattered most, the framework second, PSRs barely at all, and Laravel already ships the first.

Oct 202612 min read
PHP & Laravel

Sending And Receiving Webhooks In Laravel

A webhook is a contract between two codebases that never meet. Both ends of it in plain Laravel: what to sign, how long to retry, and how the receiver avoids doing the work twice.

Oct 20269 min read
Shipping & Tooling

My business lives in my vault now

My clients, hours, invoices and articles moved out of FreeAgent, Upwork and my head into plain files in my Obsidian vault, kept by an agent, with Tabstack finding the next client.

Oct 20268 min read
Shipping & Tooling

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.

Oct 202631 min read
PHP & Laravel

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.

Sept 20267 min read
Shipping & Tooling

The Petstore scores 65

The most copied OpenAPI document in the world is a bad API for an agent, and it takes a third of a second to find out. So I built the check I was doing by hand.

Sept 202612 min read
API Design

Your endpoint, as an agent sees it

An agent never reads your API. It reads a flattened projection of it, and the flattening loses things you did not know were losable. Here is how to look at yours.

Sept 202610 min read
PHP & Laravel

The UK is mandating e-invoicing in 2029, and your invoicing code is not ready

From 2029 every UK VAT invoice has to be structured data that passes about eleven hundred rules. What that means for the invoices table you already have, and the four fields that break first.

Sept 20268 min read
Notes

Digital sovereignty is written in PHP, and the UK just made it fundable

The PHP Foundation made the case for funding upstream maintenance through procurement. Their proposals are written against EU rules. The UK deleted the clause that was blocking them.

Sept 202612 min read
Architecture

The Second Pattern: The Ones I Left Out

Five patterns I know well, that come up constantly, and would not reach for in PHP. Not because they are bad ideas, but because of what the runtime does and does not give you.