Skip to main content
ArticlesProjects
Architecture Journals

Technical Articles

Opinionated writing on software systems, strict monolithic domain boundaries, testing strategies, and Laravel performance.

Articles200
Est. Read Time1,885 mins
Topics17
Series Parts51
Aug 20264 min read
Laravel

Every Feature Touches Ten Files

Ten files open for a one line change is either layering working correctly or one idea smeared across a codebase. The count does not tell you which, and git history does.

Aug 20268 min read
Laravel

It Was Fine Until We Added A Second One

Every trigger in this series has been a second something. That is not a coincidence, and it is the only signal in here reliable enough to act on.

Aug 20268 min read
Laravel

Nobody Wants To Touch That Model

Every Laravel codebase has a model people route around. Counting its lines is the least useful thing you can do to it, and extracting traits is how the count gets hidden rather than fixed.

Aug 20267 min read
Laravel

The Interface With One Implementation

You added it so the thing could be swapped out later. Later arrived and nothing was. Counting implementations is the wrong test, and where the interface lives tells you far more.

Aug 20267 min read
Laravel

The Job And The Controller Disagree

The same operation runs from two entry points and they have quietly drifted. In Laravel that drift has a predictable shape, because validation lives at the edge and only one edge has it.

Aug 20268 min read
Laravel

The Rewrite You Should Not Do

You have run the diagnostics and you have a list. Now price the three options honestly, including the one where you do nothing, which is right more often than the other two put together.

Aug 20268 min read
Laravel

Your Test Suite Is an Architecture Report

A slow Laravel test suite gets treated as a tooling problem. It is usually a coupling measurement, and the number worth watching is not how long the suite takes.

Aug 202614 min read
Laravel

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 20269 min read
LaravelAI Draft

Queues you can pause and buckets you can walk away from

Two weeks of Laravel 13: a read-through filesystem driver for zero-downtime storage migrations, a global queue pause switch, debounced listeners, and Redis cluster fixes worth upgrading for.

Aug 202614 min read
Laravel

Controlling Code Quality When an Agent Writes Your Laravel

Specs, ADRs and path-scoped rules. The three layers of context I build around an agent so it writes Laravel the way my codebase does, not the way every tutorial does.

Aug 202610 min read
DevTools

Eighteen Files And One Nix Module: How My Brain Works

The Obsidian vault I use as a system of record for every project, why the checkouts inside it are gitignored, and why half of it is generated from my NixOS flake.

Aug 202612 min read
AI

MCP Goes Stateless: What Changed and Why It Matters

The Streamable HTTP transport replaced HTTP+SSE and quietly made MCP servers stateless. Here is what that means, how the new transport works, and why it unlocks serverless and edge deployments.