15 October 2026 · 14 min read
A coding agent is a loop, a handful of tools, a memory, a token budget and a few preferences. Here is one for your terminal, in PHP, with Papi doing the heavy lifting.
14 October 2026 · 11 min read
Two Symfony services, a 96 MB file of car returns, and a 128 MB memory limit. Streaming the body with Phunkie keeps the consumer at 2 MB, once nginx and PHP stop buffering it behind your back.
- php
- symfony
- phunkie
- streams
- nginx
2 June 2026 · 17 min read
Why the machines that write our code need the discipline we built for humans, and how PhpSpec 9.0 intends to give it to them.
14 May 2026 · 2 min read
Forget the burrito metaphors. A monad is a design pattern for sequencing computations — and PHP is perfectly capable of expressing it.
- functional-programming
- php
- phunkie
7 June 2017 · 10 min read
Sequencing, choice, recursion, and repetition combinators, assembled into a working JSON parser in PHP.
- functional-programming
- php
- phunkie
- parser-combinators
27 April 2017 · 10 min read
What parsers and combinators are, how to represent them as types in PHP, and the first primitive parsers built with Phunkie.
- functional-programming
- php
- phunkie
- parser-combinators
11 September 2014 · 11 min read
I decided to publish a list of my top ten favourite limitations of PhpSpec, and why I love them so much.
23 July 2013 · 14 min read
Dummy, fake, stub, mock and spy: what each test double is for and how to write them with Prophecy, and why Demeter violations and mocking what you don't own hurt.
- testing
- test-doubles
- prophecy
- php
16 October 2012 · 2 min read
A 2012 RFC draft proposing a short syntax for closures in PHP, with the use cases from Ruby and Groovy that motivated it.
- php
- rfc
- functional-programming
18 March 2009 · 2 min read
ScrumBut is doing part of Scrum. ScrumButBut is a ScrumBut that wants to become less But: inspecting and adapting your own process with Scrum itself.
22 October 2008 · 1 min read
Teams that synchronise often and inside a fixed time box build a resonance that feeds on itself. That resonance is why velocity grows on agile projects.
18 October 2008 · 3 min read
Three ways to talk a waterfall client into an agile project: prove it bottom-up, let demand pull it outside-in, or work your real organisation instead of the formal one.
10 August 2008 · 4 min read
A language is never agile, but PHP's lightness, its testing tools and its continuous integration stack give a team everything it needs to build an agile environment.