Pull The Plug Modeling: A reset before you model

I work as a software architect for an Indigenous organization. Twice a year, we get together offsite for a team retreat. We reflect on our values, challenge our assumptions, and reconnect as a team. We often invite an Elder to open the event with a prayer. I am not a spiritual person. But I have always been struck by what that prayer accomplishes. Everyone arrives carrying something different. Different concerns, different frames of reference, different languages. The prayer does not erase those differences. It suspends them, just long enough for everyone to find common ground before the work begins. ...

March 25, 2026 · 7 min · Maxime Gosselin

In Search of the Missing PDO Interface

Update: This post led to a follow-up. Read Proposing a PSR for PDO Providers for a more accurate framing of the problem and a concrete proposal. PHP’s PDO extension has been the standard database abstraction layer since PHP 5.1. It does its job well: it provides a unified API over multiple database drivers and handles the low-level details of connecting, querying, and fetching results. Yet, after nearly two decades, PDO is still missing something fundamental: an interface. ...

March 1, 2026 · 9 min · Maxime Gosselin

Using the Middleware Pattern to Extend PHP Libraries

If you have been writing PHP professionally for the past few years, you have almost certainly encountered PSR-15. It formalized the concept of middleware for HTTP request handling, and it changed the way we think about extensibility in PHP applications. But here is the thing: the idea behind PSR-15 is too good to leave confined to HTTP. This article is for PHP developers who maintain libraries. If you have ever exposed an extension point in your library using the Decorator pattern, I want to show you a better default. ...

February 27, 2026 · 7 min · Maxime Gosselin