All posts

2 min read ai · delivery · agents

My platforms are built almost entirely by AI agents. Here's the system.

J is a multi-agent development suite I designed: planners, implementers, and a review panel that ships production code for Bono and Firmoscop. The interesting part isn't code generation — it's process engineering.

When I say Bono and Firmoscop are almost entirely AI-built, people assume I mean “I use an AI coding assistant.” I don’t. I mean that most days, the code that reaches production was planned, written, and reviewed by a fleet of AI agents — through a system I call J.

What J actually does

J is a thin orchestrator that routes work to specialized capabilities. The core flow takes a ticket all the way to a reviewed pull request:

  1. Estimate. Before anything is built, a pre-flight agent sizes the ticket (XS to XL) with a confidence score. Tickets that are too vague get bounced back for requirements — exactly like a good tech lead would.
  2. Plan. A planner agent reads the codebase and designs the approach. It has read access and nothing else. Planning and implementation are deliberately separate roles.
  3. Implement. An implementer writes the code on a feature branch, runs the tests, and pushes.
  4. Review. A panel of independent reviewer agents critiques the diff — each with its own lens. Findings block the PR until they’re addressed. No PR skips the review loop. Ever.

Around this loop there’s a set of hard constraints: architecture principles the agents cannot violate, a table of anti-patterns that trigger automatic blocks (N+1 queries, missing transactions, status changes without audit trails), and a definition of failure that treats “works but violates the rules” as broken.

The insight: it’s process engineering, not prompting

I spent a decade designing delivery processes for humans — scaling squads, defining lifecycles, writing working agreements. The surprise of the last two years is how directly that experience transfers to agents.

Agents fail the same way junior teams fail: unclear requirements, invisible work-in-progress, no review discipline, no definition of done. The fix is the same too — make the process explicit, gate the risky steps, audit everything. The difference is that agents actually follow the process, every single time, at 2am, without meetings.

What I’d tell a skeptic

The honest version: the system works because the surrounding engineering is strict. Multi-tenant architecture with shared auth and tenancy, explicit transactions, audit trails on every business mutation, idempotent background jobs. Agents operating inside strong constraints produce boring, consistent code — which is precisely what a fintech platform needs.

Ship velocity is the visible benefit. The underrated one is that my role shifted to where I’m most useful: deciding what to build and why, writing the constraints, and reviewing the exceptions. That’s the job I always wanted anyway.

The case study on J has more detail on the architecture, and BONO is the largest thing it has built.

Get the next essay

Product, growth, and AI-assisted engineering — straight to your inbox, once in a while. No spam, unsubscribe anytime.