// BLOG

Writing

Essays and field notes on Symfony, open source, and AI tooling, and how software engineering changes when agents join the process.

// MCP
Fetching a stranger's URL without getting burned →
October 21, 2026 · 4 min
Client ID Metadata Documents make connecting an MCP client trivial for users and risky for servers. How I made the fetch safe, and what only real clients showed me.
// RAG
How embeddings and vector stores actually work →
October 15, 2026 · 7 min
An embedding turns text into numbers and a vector store finds what is close in meaning. Here is what that actually does, and the one blind spot that shapes every RAG pipeline.
// MATE
The Mate Journey: how an idea became a tool →
October 05, 2026 · 6 min
The origin story of Symfony Mate, from a moment of quiet rivalry at a conference to a prototype built on a train with no internet connection.
// RAG
Indexing sets the ceiling for retrieval →
September 30, 2026 · 7 min
RAG quality starts at indexing, not at the query. Loading, chunking and enriching the source decide what your retriever can ever find. A field report from symfony/ai.
// RAG
RAG beyond hello world: retrieval is a pipeline →
September 24, 2026 · 7 min
Most RAG demos retrieve something. Real documentation needs the right passages, ranked for what the user meant. Why retrieval is a pipeline, not a lookup.
// BUILD
Symfony AI Spotlight: Mate, an Agent's Way into Your Runtime →
September 14, 2026 · 5 min
Mate gives a coding agent what source code can't: what a Symfony application actually just did. As of Symfony AI 0.13 it's a plain CLI with a discovery layer on top.
// MEASUREMENT
Agents don't reuse what they can't discover →
September 08, 2026 · 8 min
A colleague's agent kept reinventing Symfony components that already existed. What shipped in response, and what a real benchmark found when the claim got tested.
// ESSAY
The hardest code to delete is your own →
August 31, 2026 · 4 min
My first Symfony AI release as a core team member deletes the MCP server from Mate. PR #2380 ships in 0.13, and what it actually cost to ship the answer.
// MEASUREMENT
The Mate Lab: does an agent actually use a dev tool? →
August 25, 2026 · 6 min
I measured whether Symfony Mate actually gets used by a coding agent, not just whether it's available. The result behind the Kill the MCP bet.
// PERSONAL
Joining the Symfony AI Core Team →
August 13, 2026 · 3 min
Chris Hertel asked me to join the new Symfony AI Core Team alongside Fabien Potencier and Oskar Stark. What that actually means to me.
// EXPERIMENT
Kill the MCP →
August 04, 2026 · 10 min
I deleted the MCP server from a Mate prototype and kept the tools. What that cost, what it bought, and why the reflex is the thing worth killing.
// ESSAY
Vibe coding is no-code without a custodian →
July 28, 2026 · 9 min
Vibe coding can produce maintainable software. The harder question is who owns its dependencies, decisions and failures after launch.
// ESSAY
The wrong debate: what PHP taught me about agentic software →
July 22, 2026 · 8 min
MCP or CLI is the wrong fight. What PHP with Composer, PSR and Symfony already learned about building things together, one layer down.
// BUILD
The last mile: distributing Agent Skills to real agents →
July 09, 2026 · 9 min
The polyfill that bridges where the Agent Skills standard is heading and what agents can read today, and why distribution, not the protocol, was the real problem.
// BUILD
Skills over MCP: shipping Symfony know-how with Mate →
July 02, 2026 · 11 min
What an Agent Skill actually is, how you serve one over MCP, and lessons from building a reference implementation against a spec that kept moving.
// ESSAY
What happens to innovation when implementation becomes almost free? →
June 25, 2026 · 8 min
When code, design and content all get cheaper, maybe implementation was never the bottleneck. A note from the classroom on friction, the statistical mean, and where excellence shows up.
// BUILD
Giving AI assistants eyes →
June 18, 2026 · 6 min
Highlights from the Symfony Mate Q&A: the dev-only MCP server that lets AI assistants look inside your running app, and why better context beats more context.
// ESSAY
Why six people are enough and what coding agents have to do with it →
May 19, 2026 · 8 min
Six developers run Sulu, its enterprise projects and its cloud services. That only works because of ownership and context, and those are exactly what coding agents need too.
topics: agents ai career innovation maintenance mate mcp oauth open-source ownership php rag security skills sulu symfony teaching teams vibe-coding