AI Engineer Summit
November 12, 2026Main stage4 min read

Software Engineering Is Becoming Factory Engineering

Running several coding agents on a laptop changes how much work one developer can attempt.

Zach LloydWarpFounder & CEO

Day 2 livestream · 1:01:22–1:19:24 on YouTube. The player starts and stops at this session’s boundaries.

Introduction

Zach Lloyd, founder and CEO of Warp, describes a software factory as a system whose behavior can be measured, changed, and tested like other engineering infrastructure.

Running several coding agents on a laptop changes how much work one developer can attempt. It still leaves that developer supplying the prompts, choosing the tools, and noticing when something goes wrong. Multiply that arrangement across a company and the platform team inherits many different models, skills, security settings, and definitions of success.

Lloyd sees three limits in that setup: human prompting throughput, inconsistent cost and productivity, and fragmented governance. Moving the same agents to the cloud only solves part of the problem. The useful transition is to a system that can learn from its own work.

1:04:38 ↗

Put the factory under version control

At 01:04:38, Lloyd defines his target as a code-defined, closed-loop system for measuring and improving cloud coding agents. The components might include shared skills, automated triggers, or agent teammates, but a collection of those components does not yet provide the loop.

The first requirement is a declarative description of how work happens. Which agents exist? What triggers them? Which repositories and tools may they use? How does an incoming issue move through triage, specification, implementation, verification, and monitoring?

Lloyd compares this to infrastructure defined in a Terraform-style configuration. The benefit is more than convenient setup. A code representation can be branched, compared, tested, and rolled back. It also gives a coding agent something concrete to modify when the team asks it to improve the process.

The second requirement is feedback. Work enters from people or automated signals, progresses through the configured stages, and produces evidence about the result. That evidence should inform the next version of the workflow rather than disappear when the pull request closes.

1:09:40 ↗

Record the material needed to diagnose a run

The factory stack places factories-as-code below data and context, compute, inference, improvement, orchestration, and access.

Lloyd's stack at 1:09:40 makes improvement an explicit layer. A workflow engine moves work, but the lower layers supply the reproducible configuration and evidence needed to assess it.

Lloyd's architecture begins with the factory definition and the records of agent work: conversations, generated artifacts, screenshots, and videos. The records are the raw material for investigating why a task succeeded, failed, or consumed more resources than expected.

Above that sit execution environments and inference. Sandboxes make runs more repeatable and constrain their access. Models and harnesses become variables to test rather than permanent allegiances. Claude Code, Codex, Pi, Warp, or an internal harness may have different strengths on the organization's actual tasks.

Orchestration moves work through the stages. APIs and MCP access let people and other agents use the factory from the places where work already arrives, including issue trackers and team chat. Lloyd treats these integration points as part of the system rather than requiring every request to originate in a dedicated interface.

His demo shows a shared view of ongoing agent activity. Seeing a colleague's live session is useful for collaboration, but his stronger reason for centralizing the records is longitudinal: the team can examine how its agents behave without separately instrumenting every developer's laptop.

1:14:07 ↗

Measure the defect you want to remove

At 01:14:07, the measurement discussion moves beyond output counts. Cycle time, throughput, cost, and human interactions per pull request answer different questions. A high-volume factory can still consume too much human attention or produce expensive changes that are difficult to review.

Lloyd then adds online evaluations over the saved sessions. Another agent examines completed or ongoing work and scores a particular behavior. His example is redundant tests: an agent may add tests that do not contribute meaningful coverage. An evaluator can identify those runs so the team can inspect the pattern and ask what in the workflow encouraged it.

The score is a diagnostic signal. Its useful output is a question the team can investigate: did the instructions push for quantity, did the agent misunderstand an existing test suite, or is some other process change needed? A general declaration that the factory is getting better would be much less actionable than a measured failure mode.

This is why the new toolset includes evaluations and benchmarks alongside traditional engineering skills. A developer still owns whether the product solves a customer problem. Factory engineering adds responsibility for the system producing the changes.

1:16:12 ↗

Make improvement a proposed change, then test it

At 01:16:12, Lloyd closes the loop. An agent examines failed scores, looks for recurring causes, and proposes a solution as a pull request against the factory definition.

The sequence matters: recorded work produces an observed problem; the problem motivates a configuration change; that change can be evaluated before it replaces the baseline. The factory being code-defined turns process advice into an inspectable artifact. It does not by itself prove that the proposed change is beneficial.

That is the role of replayable benchmarks. Lloyd argues that model rankings, fashionable skills, and harness recommendations cannot answer the local question without local data. A team should take representative tasks from its own workload and replay them against competing configurations. The experiment might change a model, switch a harness, remove a skill, or alter the workflow while comparing cost and quality.

The resulting tradeoff chart is useful precisely because the tasks are the organization's own. A cheaper configuration that loses important behaviors is not necessarily an improvement; a more capable one may justify its cost on some tasks and not others.

Lloyd reports that Warp uses this cycle continually to improve throughput and reduce costs, without offering a universal gain for other organizations. His invitation is to treat agents as a new engineering primitive: establish a baseline, instrument the behavior, diagnose failure, test a change, and keep the improvements that survive contact with the workload.

Full transcript 331 timestamped passages

Machine-generated source transcript; recognition errors remain. Timestamps and subtitles use the selected source recording’s clock, not clip-relative time. Section links use cited source moments; sections without a verified moment return to the talk start.

1:01:22All right. Hi, everyone. Excited to be here. And today I'm going to chat about the evolution

1:01:28of software engineering and how it's becoming factory engineering. So excited to do this.

1:01:35First, a little bit about me. I've been an engineer for a long time. I was a principal

1:01:40engineer at Google. I used to lead engineering on the Google Docs suite, helped scale that

1:01:46product to hundreds of millions of users.

1:01:48I'm currently the founder and CEO of Warp.

1:01:51Warp builds a platform for companies to build their own

1:01:56internal software factories.

1:01:57I'm going to show a little bit of that today.

1:02:00Warp is also well known for our open source agentic terminal.

1:02:05It has about 65,000 GitHub stars.

1:02:07It's used by almost a million developers.

1:02:10Our mission has always been helping developers ship better

1:02:13software more quickly and it's cool to evolve what we're doing as the world changes around

1:02:18us.

1:02:20is where I think we're still mostly at.

1:02:24Most developers that I talk to, most platform teams, they're working with individuals who

1:02:31are running their own coding agents locally.

1:02:34Maybe they're running multiple of them at a time.

1:02:38It could be through their terminal.

1:02:39It could be through an agentic development environment.

1:02:43Just a show of hands quickly, actually.

1:02:45How many people in here are mostly working in this fashion?

1:02:48Local, multi-threading.

1:02:51Okay, so still most people, but actually not everyone.

1:02:56I think that this is going to change,

1:02:57and it's starting to change already.

1:03:01The reasons are, there's a few of them.

1:03:03So one is, like, if you are doing local interactive prompting

1:03:07is your main way of working with coding agents.

1:03:10You're kind of limited by human throughput, really.

1:03:14You cannot automate if every agent needs

1:03:18to be interactively prompted.

1:03:19There's a second reason, too, that I hear a lot

1:03:22from platform teams and from engineering leaders.

1:03:26This mechanism of everyone choosing their own local setup,

1:03:30their own models, their own skills,

1:03:33makes it very hard to actually make sure

1:03:35that you're using these agents efficiently from a cost perspective and a productivity

1:03:40perspective. And then finally, there's a big security problem and governance problem when

1:03:46everyone is setting up and running their own local agents. And so the thing that is coming,

1:03:52I loosely call a software factory. That means different things to different people.

1:03:59I'm curious for people in this room, how many folks are currently trying to build or building

1:04:05or using their own internal software factories?

1:04:07Show of hands.

1:04:09Okay, so I would say that's almost more

1:04:12than the interactive agents at this point.

1:04:13That's super cool.

1:04:16So I'm gonna define what I think of as a software factory,

1:04:20but I'll start by saying what I think

1:04:21a software factory is not.

1:04:24I think it's not just a loose set of automations.

1:04:29I don't think of a software factory

1:04:30as a collection of AI teammates.

1:04:34I don't think it's a shared set of skills and MCPs, and I also don't think software

1:04:38factories are personal agent swarms.

1:04:40I think these are all useful primitives, but they're not the end state that we should be

1:04:47shooting for.

1:04:48And so to me, the way that I define software factory is very specific, and I'll unpack

1:04:55this, but I define it as a code-defined closed-loop system for continuously measuring and improving

1:05:02cloud coding agents.

1:05:04So that's a mouthful, but let me unpack it.

1:05:06So if you want to build a software factory and really scale it, I believe the first thing

1:05:12you need to do is fully encode it in a declarative language.

1:05:17So you need to say, okay, these are all of the coding agents that I want to run.

1:05:22These are how they're triggered.

1:05:24When work comes into this factory, this is the workflow from triage to spec, whatever

1:05:30your workflow is.

1:05:31you need to specify what MCPs are available,

1:05:34where your agents run,

1:05:36really as much as you can

1:05:38in a Terraform-style declarative, you know,

1:05:42set of code files that define your factory.

1:05:44And I'll talk about why this matters in a bit.

1:05:47The second part of it

1:05:48is a continuous closed loop of improvement.

1:05:51And that closed loop can look something like this.

1:05:54This is the typical one.

1:05:56This is just really the SDLC,

1:05:58where you have ideas that come in from people

1:06:02They could come in from automated signals

1:06:04And then your agents do some amount of work

1:06:08Taking that issue through various stages

1:06:11From triage, implementation, verification, monitoring, and so on

1:06:15The important piece here is really this closed loop concept

1:06:18Where the more that your agents run

1:06:21The more efficient you can make this loop

1:06:24And I'll talk about how you do that in a second

1:06:27The third really key aspect

1:06:29if you're building a software factory

1:06:31is that everything needs to be measurable.

1:06:34If you're just going on vibes

1:06:36in terms of how you deploy coding agents,

1:06:39you can't be confident that you're actually

1:06:41getting the best, highest quality outputs

1:06:45at the best cost.

1:06:46You can't be confident you're maximizing throughput.

1:06:48So you really need a measurement mindset

1:06:50and measurement capabilities.

1:06:53so if there's one thing

1:06:55that I'm hoping people walk away from this talk with,

1:06:59it's the idea that the way to work with coding agents

1:07:03and the way to think about them

1:07:04is that there's a really cool fundamental new engineering problem,

1:07:09which is how do you take this magic new primitive

1:07:13that we all have, that we've got in the last year,

1:07:16that you have these intelligent agents,

1:07:18and how do you engineer a system around them

1:07:21to use them most effectively?

1:07:23To me, it's not about growing a garden

1:07:26or following a recipe.

1:07:29we're all engineers.

1:07:30We've spent our careers

1:07:32learning how to solve problems from an engineering mindset.

1:07:35And when you think of coding agents

1:07:36as a new engineering primitive,

1:07:39then you naturally want to,

1:07:41you'll naturally start to build

1:07:43a certain way of using them.

1:07:45That's the mindset.

1:07:47So yeah, just to unpack that a bit,

1:07:49so there's continual measurement

1:07:51and continual learning,

1:07:53but there's also a new set of tools.

1:07:56And so when I was learning how to become a better engineer at Google, you know, I really

1:08:02had to get good at using things like debuggers and profilers and Chrome DevTools.

1:08:07And basically, there were all of these tools of the trade for building software by hand

1:08:12that maybe are not as important now, but they really separated the best engineers from the

1:08:19okay engineers.

1:08:20And in the new world of factory engineering, there's a new set of tools that everyone should

1:08:26be trying to master.

1:08:27And so those are things like evals.

1:08:30It's can you set up self-improvement loops that work?

1:08:34Can you write benchmarks?

1:08:36Can you A-B test your factory?

1:08:39And that's a really important skill set.

1:08:42And mastering that skill set is something that I think of as factory engineering.

1:08:48Now, that doesn't mean that that's the only kind of engineering you're going to be doing.

1:08:53You're still going to be doing product engineering, meaning you as an engineer should still feel

1:08:59responsible for, you know, does the product you ship actually solve a real user or customer

1:09:05problem?

1:09:06But the best engineers, and I would say like every engineer really, is going to need to

1:09:11learn this new tool set of how do you improve the system, not just build the product.

1:09:17And so what does that look like?

1:09:20If you think from first principles about how do you engineer an agentic system, I think

1:09:25you come up with something like this.

1:09:27It doesn't have to be exactly this, but it's kind of an infrastructure stack that you're

1:09:32going to want to use to engineer your agents.

1:09:34And so at the bottom of this is what I call factories is code.

1:09:38I talked about this earlier.

1:09:40It's defining all of your coding agent workflows in a code format.

1:09:45And the value of that is that you get the ability to branch off it and test different factory configurations

1:09:51you can roll back and

1:09:54then crucially it opens up the way for self-improvement

1:09:57Which is the ability for coding

1:10:00agents themselves

1:10:00to suggest changes to how your factory works to get that continual loop going.

1:10:07Above that is a layer of data and context. This is also crucial. So if you are running

1:10:13coding agents at scale in an organization, you really must be recording everything that

1:10:20those agents are producing. So all of their conversations, all of their artifacts, the

1:10:24videos that they make, the screenshots. And the reason for doing that is that's the raw

1:10:29material that you will use to improve the way your factory works over time. On top of

1:10:36that is a compute layer. So you need to have sandboxing. Sandboxing increases security.

1:10:42It makes your factory more repeatable. Your sandboxing should be probably multi-platform.

1:10:47On top of that is the inference layer. The way that I would think about inference and

1:10:52models in a factory is they are a degree of freedom to test.

1:10:57And so your factory, however you build it, should support multiple models.

1:11:03It should also support multiple coding agents because, you know, Cloud Code might be better

1:11:08for some things.

1:11:09Codex, Pi, Warp, these harnesses all have different properties.

1:11:13You might want to write your own coding agent harness that has some of your organizational

1:11:17context baked in.

1:11:19So your platform should support that.

1:11:21On top of that, you need an orchestration layer.

1:11:23So this is what actually moves work through the factory.

1:11:26In some ways, the least interesting part, but you need that.

1:11:29And then finally, your factory should be all API and MCP first.

1:11:34So that it can be used not just by, you know, people, but it can be used by other coding

1:11:39agents.

1:11:40And it can go to where the work is being done.

1:11:43So your factory should integrate into things like Slack, Linear, Jira, GitHub, and so on.

1:11:50I'm going to give a quick demo of what some of these tools look like in the context of

1:11:55warp factories, but this stuff I'm going to show I think applies also if you're building

1:12:01your own.

1:12:04So let me start here.

1:12:06So at the foundation I mentioned earlier is factories in code.

1:12:12And so I'm going to show some code.

1:12:14It's not going to be that interesting, but if you're familiar with something like Terraform,

1:12:18you will get what's going on here.

1:12:20You basically want a declarative way of saying,

1:12:24this is my factory.

1:12:25My factory has certain policies.

1:12:28It accesses certain repos.

1:12:30It has certain triggers.

1:12:32It has a sort of blueprint that defines the workflow

1:12:35of work going through it.

1:12:37And then if you zoom out,

1:12:39all of these other things that are part of the factory

1:12:41also have code definitions.

1:12:44The second thing, moving up a layer,

1:12:47is the idea that everything that you do in the factory

1:12:58should be tracked across your entire team.

1:13:03And so think of what I'm showing here.

1:13:06This is a sort of Google Docs style live view

1:13:09of what every coding agent on Warp's team

1:13:11across all of our engineers are doing at all times.

1:13:15And so I could click it and I could see,

1:13:17okay, I don't know what Maggie is working on,

1:13:19but I know I could look at it.

1:13:21She's implementing Opus 5.5 on the high plan.

1:13:23She's doing it from Slack.

1:13:25It has this artifact.

1:13:26I could look in and see the actual conversation here.

1:13:29I could see what it's generated.

1:13:31And so I could see this in real time, which is cool.

1:13:34But the really important thing

1:13:35is that you gather all this information

1:13:37so that it can be used for improving the factory.

1:13:42And so that brings me to the third thing,

1:13:45moving up the stack here.

1:13:46is once you have all of this information

1:13:48that's being stored centrally,

1:13:51you get the ability very easily,

1:13:53without doing any, like, install stuff

1:13:56on everybody's laptop, anything like that,

1:13:58to understand how these coding agents are working.

1:14:02And you can think of that in terms of, like,

1:14:04traditional output metrics, like your DORA metrics,

1:14:07like, okay, cycle time.

1:14:09But you can also think of that in terms of, like,

1:14:11how automated am I, like, how many human interactions per PR,

1:14:15what's your throughput.

1:14:16you should be able to see data very clearly here

1:14:20on, like, what's your cost.

1:14:22Again, surfacing this, if you don't have this data,

1:14:26you're kind of flying, uh-oh.

1:14:30You're kind of flying blind.

1:14:32So this is really important.

1:14:33And then there's this next layer of data,

1:14:37which is also really important that I mentioned earlier,

1:14:39which is the ability to set up online evals

1:14:42that run across all your coding agent sessions.

1:14:44And so what I mean by this, an eval is just like,

1:14:48as these coding agent sessions are running

1:14:50and they're recording their output,

1:14:52you want the ability to go back and have another agent

1:14:56look at them and score them on some dimension

1:15:00that might indicate how well they're doing.

1:15:02And to make that more concrete,

1:15:04so it's like we have an eval, a score here that we use

1:15:08that is looking for redundant tests.

1:15:10This is a good example.

1:15:11And so one common failure mode of coding agents

1:15:14is that sometimes they will write tests that are unnecessary.

1:15:17We want to catch that, and that's what this eval does.

1:15:21We want the ability then to see,

1:15:23okay, when it's writing too many tests,

1:15:26why is it doing that?

1:15:28And is there a mechanism that we could change

1:15:31in the factory for improving that?

1:15:33And so, again, just to kind of recap here,

1:15:36you want a way of recording all the runs.

1:15:40When these runs run, I didn't show this,

1:15:42but all of the runs are, you know, you want a way of specifying

1:15:49what is the sort of, like, actual loop that they're running through.

1:15:52You want to be able to see where they are in that loop.

1:15:55As the runs work, you want to be able to gather their data.

1:15:59Once you gather their data, you want to be able to set up these online evals.

1:16:03And then these online evals give you a sense of, like,

1:16:05okay, where are there opportunities for improvement?

1:16:08Once you have that in place,

1:16:10You can do something that we call self-improvement

1:16:12Which is rather than having humans

1:16:15Look at the outputs of these scorers

1:16:16You have agents look at the output

1:16:18And so the way to think about self-improvement

1:16:21Is like it looks at the score output

1:16:24It says okay we saw some number of failed runs

1:16:30Let's try to look for patterns

1:16:32In those failures

1:16:33And suggest a possible solution

1:16:37And then the form that that solution takes is as a PR against your factory definition.

1:16:46And so this is like the awesome thing about having your factory defined as code and being

1:16:51able to use coding agents is that you can then have the coding agents diagnose problems

1:16:57with how they're working internally and suggest fixes to them.

1:17:01The final tool that I'm going to point out that I mentioned earlier is the ability to

1:17:06create and run benchmarks. This is also essential. So if you're following this course online,

1:17:13you'll often see things like, okay, this is the best model, this is the new best skill,

1:17:16this is the best harness. The only way to answer those questions for real is to test

1:17:22on your own data. And so you should have in place some mechanism where you can basically

1:17:27create a benchmark set out of your real data

1:17:31and then replay those tasks.

1:17:35Oops, I'm on the wrong one here.

1:17:37And replay those tasks against different configurations

1:17:41to see how they would have done

1:17:44if you had varied some model or varied some harness

1:17:47or varied your factory configuration.

1:17:49So just to make this clear,

1:17:54this is something that looks like what you might get when a new model drops like in sweet bench or

1:18:02terminal bench it's showing the trade-offs of different models here in terms of cost and

1:18:08quality you want to be in this upper left-hand quadrant but it's on your own actual data and you

1:18:14can you can test not just models but also you want to be able to test hey if i got rid of these skills

1:18:18is does my factory perform better or worse?

1:18:20So these are some of the tools.

1:18:24And just to return to this big concept,

1:18:27like this has worked well for us.

1:18:28We have managed to use these tools

1:18:31to drastically improve our throughput

1:18:33and lower our cost.

1:18:35We are just constantly doing this

1:18:38because this cost really matters to us,

1:18:40where we're getting a performance baseline,

1:18:42we're scoring, we're benchmarking, we're testing,

1:18:45and we're doing factory engineering.

1:18:47And so that brings me back to this last point

1:18:50that I just want to emphasize again.

1:18:53Engineer your agents.

1:18:54It's a new engineering primitive.

1:18:56We're all engineers.

1:18:57Think about how you can get the most out of them

1:18:59and build the system for that.

1:19:01I think this is very exciting.

1:19:04I know there's a lot of, like, angst

1:19:07around what it means to be an engineer right now.

1:19:09I know we're not writing code,

1:19:11but I'm still using all the engineering skills

1:19:13that I spent my whole career learning,

1:19:15And so to me it's still a really exciting time

1:19:18If you're interested in more factories

1:19:19You can check it out here

1:19:21Thank you all for coming to the talk