Inside theSoftware Factory
The Shopify reception desk at an office, lit in the company's green.

Photo: Shopify

ecommerce · CA · 1000+

Inside Shopify's software factory

The famous CEO memo wasn't the whole record. Underneath it sits a Slack-native agent coauthoring one in eight merged PRs, a security harness that requires proof by exploit, and a refusal to count AI-authored lines of code.

Shopify at a glance

The company

Sector"A complete commerce platform to sell online or in person" 10
Employees~7,600 worldwide, as of December 31, 2025 8
CustomersNot disclosed as a discrete count
Revenue$11.56bn revenue, $378.4bn GMV (fiscal 2025) 9

Shopify does not publicly disclose a merchant count; GMV is the closest disclosed proxy for scale 9.

The engineering organisation

Engineering size~7,600 employees company-wide; no separate engineering headcount disclosed 8
AI tooling sinceApril 2025, when the CEO memo made AI usage a stated expectation 4
Tool policyMandated baseline expectation, mixed tool choice underneath it 4,7
Agents in the SDLCSlack-native coding agent coauthoring PRs; exploit-gated security scanning 1,2
Reported adoptionRiver coauthored 1 in 8 merged PRs; 59,918 agent sessions in a 30-day window 2
Published metricsPR reversion rate, not AI-authored LOC or PR count 5

Shopify explicitly states it does not track AI-authored lines of code or PR counts as a success metric 5.

1 in 8merged PRs coauthored by River
59,918agent sessions in a 30-day window
300+security findings from Dispatch, each proven by exploit
2x–30xcheaper/faster via the distillation pipeline

People

Farhan ThawarVP & Head of Engineering
Javier MorenoPrincipal Engineer
Burke LibbeyPrincipal Engineer
Zack DeveauShopify engineering
Obie FernandezAugmented Engineering DX team

What they set out to solve

Two problems appear in the record, from two different altitudes. From the top, the CEO's April 2025 memo names a cultural one: reflexive AI usage was not yet the default, so Tobi Lütke made it an explicit expectation, tied to performance and peer reviews, and to how headcount requests get justified 4. That memo, alone, is a mandate, not a mechanism. It says nothing about how agents would actually touch the codebase.

The engineering blog describes three narrower, more concrete problems instead, each addressed by a different system built independently of the memo. Human security review of AI-generated and human-generated code alike couldn't scale, and a theoretical finding without proof wastes a responder's time, so Dispatch was built to treat a security finding as a claim that must be proven rather than asserted 1. Separately, River's authors describe it not as a tool but as a teaching surface: it runs only in public Slack channels so that a session becomes a searchable transcript, and, in Tobi Lütke's own framing, "a teaching workshop for all of Shopify" 2. And the risk of losing expensive intermediate work to a crash or a retry drove Roast, which lets deterministic code and AI steps interleave with every execution session-replayable from any step 3.

No source states a single unifying motivation connecting the memo to the engineering systems underneath it. The memo and the mechanisms are presented separately, in separate posts, by different authors, months apart.

Maturity level

L4 · AI-nativeof 5
TraditionalAI-supportedAI-assistedAI-nativeAI-autonomous

Assigned by testing published facts against fixed criteria, and capped by what the sources state.

How Shopify's software factory works

Shopify's agent stack has no single entry point. It is four separately-built systems, each solving a different problem, running in production at once.

River lives only where it can be watched. It operates exclusively in public Slack channels, never direct messages, so that every session becomes a searchable transcript by construction 2. It reads code, runs tests, opens pull requests, queries the data warehouse, inspects production traces, and can push back on a plan it judges bad. In a 30-day window, Shopify recorded 59,918 agent sessions across 5,170 Slack channels, involving more than 7,000 employees, and 3,536 River-coauthored pull requests merged; across the wider record, 1 in 8 of all merged pull requests carries River as a coauthor 2.

Underneath River sits Aquifer, a purpose-built hosting platform, not agents bolted onto CI. Aquifer separates three concerns: a durable, Postgres-backed session (the canonical event log of what happened), a disposable harness (the agent loop itself, cheap to recreate), and a disposable sandbox (where code actually runs, filesystem and shell included). The harness "lives outside the sandbox," in the authors' words, which they credit with three properties: the agent can't destroy what it's isolated from, models can be swapped without disrupting the sandbox, and the entire decision stream stays observable in one place 2. Sessions run as ephemeral "session cells," described as "cattle, not pets": idle, a cell exits; the next interaction gets a fresh one, sometimes on a different host, with the actual work persisted in Postgres rather than the process 2. Agents work against World, Shopify's monorepo, which the source describes as containing not just code but skills, conventions, intent documents, runbooks, and AGENTS.md files 2.

River Slack-native coding agent Harness agent loop, disposable Session durable event log, Postgres Sandbox disposable, runs the code World monorepo: code, skills, AGENTS.md The harness lives outside the sandbox: the agent isn't where the code runs
River and Aquifer, as described in the "Under the River" writeup [2]. Hover a box to trace its connections. Original diagram, not a reproduction. Click to enlarge.

Dispatch treats a security finding as a claim that must be proven, not asserted. Its pipeline runs nine stages: test bootstrap, architecture documentation, file cataloging, partitioning, hunting, verification, post-processing, reporting, and remediation 1. A finding that can't be backed by a generated integration test that actually exploits the issue is rejected or downgraded; theoretical findings don't count. The verification stage deliberately uses a different model than the hunting stage, an adversarial cross-check the authors credit with reducing noise and blind spots. Deterministic, non-agent code owns credentials, git operations, and storage, "so the agents don't have to" 1. Over an unspecified period, Dispatch produced more than 300 findings, including two the authors say would have rated as Critical, which the post values at more than $400,000 in bug-bounty-equivalent terms 1.

Testbootstrap Archdocs Filecataloging Partitioning Hunting Verificationdifferent model Post-processing Reporting Remediationexploit-proven only
Dispatch's nine-stage pipeline, as described in the agentic-harness writeup [1]. The verification stage runs a different model than hunting did, an adversarial check. Hover a box to trace its connections. Original diagram, not a reproduction. Click to enlarge.

Roast, and the internal Boba workflow built on it, interleave deterministic and AI steps by convention rather than by framework lock-in. Roast is an open-sourced Ruby gem combining YAML configuration with Markdown prompts; every workflow execution is saved, so a crash or a retry doesn't repeat expensive steps 3. Boba applies this to Sorbet type-annotation backfill: deterministic cleanup handles what it can, and an AI step resolves the remaining type errors across thousands of test files 3.

A single internal LLM proxy sits underneath all of it. It routes every AI request, regardless of which tool originated it, through one gateway, giving Shopify bulk-provider leverage, automatic failover if a provider degrades, PII masking, and prompt-injection detection 5,6,7. Spend is not capped per team; instead, a long-running session burning tokens triggers an alert asking the user whether the spend was intentional, described in one account as a check at the 10-hour mark and in another as a $250-a-day threshold 5,6. A separate internal tool, referred to as UDP, distills a larger "teacher" model down to a smaller fine-tuned target using supplied training data and evals, which engineers reported yielding results "2x cheaper and faster" in typical cases and "30x cheaper and faster" in extreme ones 6.

Operating the software factory: teams, roles, and skills

No single team owns agents as a function within Shopify's engineering organization. River traces to a team that includes at least two Principal Engineers, Javier Moreno and Burke Libbey 2, while Dispatch, Roast, and the internal LLM proxy each trace to different posts by different authors, with no stated organizational chart connecting them 1,3,5.

Hiring and performance both treat AI fluency as a baseline skill rather than a specialization. Director-level and above candidates do live coding interviews in which AI tool use is explicitly permitted and expected: "You let them use whatever they want... If they don't use a copilot, they usually get creamed," in Farhan Thawar's account, with judgment, not raw output, as the thing being assessed: "I want you to be like 90 or 95%... able to go in and look at the code and say, oh yeah, there's a line that's wrong" 7. That standard for senior hiring sits inside the same company-wide expectation the April 2025 memo set 4.

The same permissiveness extends to spend. Thawar frames the absence of a per-team token budget as deliberate: "why AI tools aren't the place to pinch pennies" 6,7.

Implementation journey

  1. June 18, 2025
    Roast is open-sourced, an internal convention for interleaving deterministic and AI workflow steps 3.
  2. April 7, 2025
    Tobi Lütke's memo makes "reflexive AI usage" an explicit company-wide expectation, tied to performance reviews and headcount justification 4.
  3. April 2, 2026
    Bessemer Venture Partners publishes an account of Shopify's engineering playbook, quoting Farhan Thawar on PR reversion rate, comprehension debt, and a 20% productivity estimate 5.
  4. May 28, 2026
    "Under the River" is published, detailing River, Aquifer, and the World monorepo, alongside 30-day adoption figures 2.
  5. June 24, 2026
    VentureBeat publishes an account naming the UDP distillation pipeline and its cost/speed claims 6.
  6. July 29, 2026
    "Building an agentic harness that outlasts the model" is published, detailing Dispatch's nine-stage pipeline and its bug-bounty-equivalent findings 1.

Measuring the software factory

Shopify states directly which number it chose not to chase: no tracking of AI-authored lines of code or PR counts as a success metric, with leadership favoring weekly demos over throughput statistics instead 5. What it tracks instead is PR reversion rate: AI-assisted engineers ship more pull requests per week, and, in Thawar's account, "the reversion rate of those PRs has remained roughly the same" 5. That is a claim about stability, not output, and it is offered with no published baseline number or measurement window.

Where usage is counted at all, the counts run to sessions and merged pull requests rather than code volume, as the session, PR, and finding totals described above for River and Dispatch already show 1,2. Quick, a different kind of tool entirely, is cited by comparison at more than 50,000 sites 5. Thawar's estimate of a roughly 20% productivity gain carries an explicit caveat in his own words: "a humble estimate" 5.

Lessons learned

The richest operational detail in the record is also the least independently verifiable: proxy internals, hiring changes, and distillation economics come from press interviews, including a VC firm's content arm with a direct incentive to present the story as more mature than it is, rather than from Shopify's own engineering blog 5,6. That sourcing gap compounds a second one, since the self-reported figures throughout the record carry no disclosed methodology, and no source defines what counts as a "coauthored" pull request or a "verified" security finding 1,2,6.

Two further risks are about mistaken identity rather than missing data. Quick's adoption figures describe a company-wide, non-engineering-specific prototyping tool, but secondary coverage routinely cites it as evidence of engineering practice specifically 5. And a separate, unrelated product carries the same branding risk: the Shopify AI Toolkit is a merchant- and developer-facing product, not evidence of internal engineering practice, though secondary blogs sometimes conflate the two.

What's next for Shopify's software factory

No source lays out a roadmap for Shopify's agent stack. The clearest forward-looking statement in the record is philosophical rather than a shipped plan: Thawar's framing of "comprehension debt," the risk that engineers lose system understanding through over-reliance on AI, paired with a stated countermeasure of maintaining knowledge "two or three layers below" their normal working level 5. Whether that countermeasure is enforced by any system, or is a stated value only, is not described.

Gaps in the record (8)
  • No unified inventory names River, Dispatch, Roast/Boba, and Quick together as one governed fleet.
  • River's "1 in 8 merged PRs" and Dispatch's "$400,000 in bug-bounty-equivalent value" are self-reported, with no independent audit and no stated definition of "coauthored" or "verified finding" 1,2.
  • The distillation pipeline's "2x-30x cheaper" figure carries no disclosed methodology or sample size 6.
  • Farhan Thawar's "roughly 20% productivity gain" is self-labelled "a humble estimate" 5.
  • The richest operational detail (proxy internals, hiring changes, distillation economics) comes from press interviews and a VC firm's content arm, not Shopify's own engineering blog 5,6,7.
  • Quick's adoption figures (50,000+ sites, cited in 5) are single-sourced and describe a general-purpose internal tool, not an engineering-specific one.
  • No stated percentage of AI-authored code anywhere in the sources.
  • The primary source for the April 2025 cultural memo is a tweet from a paywalled platform; its text is corroborated verbatim by multiple independent press outlets, but no independent engineering account was found describing how the mandate is enforced day to day.
Sources (10)
1
Building an agentic harness that outlasts the model
Zack Deveau · Shopify engineering · 2026-07-29
2
Under the River
Javier Moreno, Burke Libbey · Principal Engineers, Shopify · 2026-05-28
3
Introducing Roast: Structured AI workflows made easy
Obie Fernandez · Shopify, Augmented Engineering DX team · 2025-06-18
5
Inside Shopify's AI-first engineering playbook
Bessemer Venture Partners, quoting Farhan Thawar · VP & Head of Engineering · 2026-04-02
6
How Shopify built an AI stack that doesn't care which models survive
VentureBeat, quoting Farhan Thawar · Head of Engineering · 2026-06-24
7
How AI is changing software engineering, with Farhan Thawar
Gergely Orosz, interviewing Farhan Thawar · Head of Engineering, Shopify · 2025-07-02
8
Shopify Inc. Form 10-K, fiscal year ended December 31, 2025
Shopify Inc. · SEC filing · 2026-02-11
9
Shopify fourth-quarter and full-year 2025 financial results
Shopify Inc. · SEC filing exhibit · 2026-02-11
10
About Shopify
Shopify Inc. · corporate disclosure

Read next

An Uber self-driving test vehicle, fitted with sensor and lidar equipment, parked on a residential street.

Inside Uber's software factory

Six platform layers, an agent registry that makes every agent action traceable to a person, and the most honest published account of what AI measurement got wrong.

AI-native
Interior of a Zalando fulfilment center, with orange crates on a conveyor system.

Inside Zalando's software factory

Agentic engineering across 250+ teams since January 2024, with no mandated tool and a risk classifier that auto-approves a third of pull requests.

AI-assisted