Inside theSoftware FactoryWhat is a software factory?
Software factory pattern

The background agent

What a background coding agent is, why companies build rather than buy one, and what to look for when deciding on one.

What it is

An agent that opens pull requests on its own, started by a prompt rather than a human typing code: a Slack message, a ticket, a CLI command, an automatic trigger from a flaky test. It runs in the background, not inline in an IDE session, and every company in this roster that has one built it in-house rather than buying it, though "in-house" stretches to include forking someone else's open-source agent and making it your own.

Fig. 1
bounded retries, e.g. ≤2 rounds Prompt Slack, CLI, ticket Background agent built in-house Pull request opened, not merged Human review required, every time Merged ships to main
The agent iterates against its own attempt within a bounded loop before it ever opens a pull request, and the pull request still goes through the same human review as any other change. Hover a box to trace its connections. Original diagram, not a reproduction. Click to enlarge.

Why you need it (in a large team)

  • A human writing every change doesn't scale past a certain volume of small, well-understood work. Toil, migrations, flaky-test triage, the stuff that steals focus without being interesting.
  • A background agent takes a prompt and does that work asynchronously. The same way a junior engineer would pick up a ticket, except it can run continuously and in parallel across however many prompts arrive.
  • None of the four companies that built one started at high volume. Ramp's Inspect authored about 30% of merged PRs at launch and grew to roughly 75% over six months, the kind of curve that only shows up once trust in the agent's output builds through repetition, not from a single rollout decision.

How it should work

The agent should be reachable from wherever people already work, not a destination they have to remember to visit. Ramp's Inspect takes prompts from Slack, a Chrome extension, or a hosted web VS Code, all syncing into one multiplayer session regardless of entry point. What varies more interestingly is where a company chooses to let it live. Shopify's River operates exclusively in public Slack channels and is never available over direct message, a deliberate constraint stated plainly: it turns every session into a searchable transcript by construction, rather than leaving oversight to whoever happens to be watching.

Iteration has to be bounded somehow, or a bad run just burns time and money without anyone noticing until later. Stripe caps Minions at two CI rounds per attempt, a hard ceiling rather than a suggestion. And "built in-house" turns out to be a spectrum, not a single choice: Stripe didn't start from zero, it forked Block's already-open-sourced Goose and built Minions on top of it, a middle path between writing an agent from scratch and buying one off a vendor.

Where it fits into a software factory

This is the layer that actually produces the change, the part every other pattern in this series exists to support rather than replace. The MCP gateway gives it something to reach; spend control gives it a ceiling; shared context gives it something to know before it starts. Strip those away and a background agent still opens PRs, just worse ones, more expensively, with no one able to say why a given run behaved the way it did.

What you should look for when deciding on one

  • Where the agent is allowed to run, decided early, as a governance choice. Shopify's Slack-only constraint isn't a limitation it settled for, it's the mechanism that makes every session auditable without extra tooling. A background agent that can operate silently in a DM or a private branch gives up that property for nothing.
  • Where it sits on the build-fork-buy spectrum, honestly assessed. Writing an agent from nothing is expensive; forking a capable open-source base, the way Stripe did with Goose, gets most of the control at a fraction of the cost. Neither is obviously right, but pretending you're building from scratch when you're really forking, or vice versa, will throw off every cost and timeline estimate that follows.
  • What "share of PRs" actually counts, before you believe the number. This roster's own record shows why: Uber's agent-authored PR share appears as 11% in one first-party talk and as over 70% in another, five months apart, measuring different things that were never reconciled. If a vendor or a team quotes you a single adoption number for this pattern, ask what the denominator is before you believe it.

Companies running background coding agents

Zalando is the one company in this roster without a named background coding agent in the public record. That may be a real gap or just an undisclosed one; the sources don't say which.

← All 9 organisations