single-user-factory · design notes
What building ETA's company-scale factory taught me about building a deliberately-stripped one. What to keep, what to drop, and why the two are not a tradeoff.
The tempting model is a slider — buy safety with velocity, or the reverse. That model is wrong, and believing it makes you keep apparatus you don't need out of unease.
Most of what looked like a safety-for-velocity trade in the heavy build wasn't one. The expensive subsystems were calibrated to a specific threat model: an unattended, multi-user worker touching a production ERP, fed by a hostile intake surface. Change the threat model and they don't make you less safe — they stop guarding a danger that isn't present. That's not a point on a curve; it's the curve not applying.
The useful move is to split "safety" into three independent axes. Each one alone tells you which subsystem to keep.
| Axis | Drives | Company factory | Single-user |
|---|---|---|---|
| Blast radius | prevention apparatus | prod ERP for a company | I notice and fix |
| Reversibility | rollback & backup machinery | hard to undo prod damage | git revert, or re-run |
| Trust model | isolation & credential apparatus | hostile intake, untrusted worker | I feed it my own work |
All three collapse toward zero, and each collapse independently deletes a subsystem. That's the whole cost saving — not accepting more risk, but building for a smaller, honest threat model.
Content-trust is a function of authorship, not authentication. The heavy factory's content-trust floor exists because trusted people relay untrusted content — forwarded customer emails, ERP screenshots, third-party source the submitter didn't write. Narrowing who submits barely moves it.
For a single-user factory the floor nearly vanishes — not because there are fewer submitters, but because I author what I submit. That's a categorically better reason to drop it than "fewer users," and it's the reason that generalizes.
Correction worth recording: even at ETA the worker never touched the production database. Verification runs read-only against a redacted preview sandbox over HTTP; the evidence job holds no DB credential at all. The isolation architecture did the containing, not the content floor — so the floor was always more negotiable than it looked, at any scale.
The ranking should drive what you refuse to build.
Items 1, 4, and 5 are stakes-driven, not capability-driven. They don't make the factory better at resolving requests — they make it safe to run unattended, against production, at a company.
Three lessons cost nothing in safety and pay velocity at any scale. They are not on the tradeoff axis.
The failure mode of "minimal factory from a maximal one" is deleting a guardrail and the incident-detection that would tell you that you needed it back. Strip the apparatus — but keep the honest, loud failure signal. At single-user scale you have no reviewer to catch a silent failure, so the run itself has to be honest. It's the one piece of the safety story that gets more important as everything else is stripped away, because you become the only reviewer.