AI Engineer World's Fair 2026
The Agent Behind the Curtain: Building the Oz Cloud Agent Platform — Safia Abdalla, Warp
Read the talk
Building Oz: Cloud Agents Inside a Human Software Process
Safia Abdalla explains how Warp combines sandbox infrastructure, shared harness behavior, orchestration, and APIs—and why a useful agent platform needs the structure and care of a workshop.
From a talk by Safia Abdalla
At a glance
Ideas worth remembering
Absorbing complexity requires preserving useful choices: managed or self-hosted compute, multiple harnesses, and consistent handling of conversation state and artifacts.
Prompt orchestration delegates coordination to an agent; APIs expose agents, parent–subagent relationships, environments, compute, and artifacts so users can build their own workflows.
Warp's repository workflow uses agents to clarify issues and iterate on reviews before notifying humans. The reported benefit is reduced reviewer workload; the talk does not establish a measured correctness guarantee.
The workshop metaphor connects repeatable production to human judgment: define stages and verification, inspect how work happens, improve the process, and reduce defects without excessive token costs.
Developer tools should grow with the work
Safia Abdalla opens with a principle drawn from eight years of building developer tooling: tools should meet developers where they are and grow with them. Her experience spans Python and data science open source, APIs and SDKs for web developers at Microsoft, and cloud agents at Warp. Across those settings, the requirement stays consistent: accommodate the workflows people already use while adapting as their work becomes more complex.
Preferences for a shell, language, harness, or review process matter because daily tools become part of how someone thinks and builds. Abdalla argues that improving those tools has a compounding effect: helping developers do better work increases the software they can create. Respecting their preferences is therefore part of making the tool useful, rather than an incidental customization feature.
Warp's progression illustrates the changing demands. It began as a terminal that fit existing command-line work. AI then brought agentic coding into local terminals, IDEs, and editors. As developers wanted longer-running work under different constraints, their laptops became a limiting environment. Moving agents to the cloud followed from that expansion in the work they were expected to perform.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Absorb infrastructure complexity without restricting where agents run
Cloud execution introduces a more complicated infrastructure stack. Abdalla assigns responsibility for managing it to the platform builder: each primitive should absorb complexity before it reaches the user. The first primitive is the agent's workplace. Once an agent leaves a developer's machine, it needs an environment in which to perform its task; a sandbox supplies that isolated cloud environment.
The hosting choice has to accommodate two needs. Supplied compute makes it easy to start without deciding where the workload will live. Teams with their own infrastructure and development boxes, however, need agents to operate within existing security concerns, deployment practices, and workflows. Warp therefore supports both managed hosting and self-hosting.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Coordinate agents through prompts and programmable primitives
A place to run and a choice of harness still leave the question of how to divide real engineering work. Abdalla gives a three-part example: one agent researches the problem and plans a solution, another implements it, and a third validates the result. Different harnesses and models can be used across those roles to encourage a more adversarial, robust process. This is a motivation for orchestration, rather than evidence that any particular combination guarantees correctness.
The prompt interface lets a user request delegation, for example with /orchestrate or an instruction to distribute a task among subagents. An orchestrator then interacts with those agents, mediates their messages, and tracks their work. The user's single request can therefore initiate a coordinated workflow without requiring the user to manage each exchange.
The API exposes another way to compose the same capabilities. A request can start a subagent attached to a parent agent using supplied configuration. More broadly, Warp exposes APIs for starting agents and subagents, managing their environments and compute, and working with their artifacts. These primitives let users build workflows beyond Warp's own UI and its assumptions about how an agent experience should look. The prompt interface offers convenient delegation; the API makes the underlying capabilities available to other applications.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Non-engineering teammates build their own workflows
Inside Warp, non-engineering teammates used the SDK and API to build custom Slack bots. One developer relations workflow handles social mentions: agents pick up tweets and Reddit posts, analyze sentiment, infer what the user wants, and propose a response for the social media team to use. The described handoff ends with a suggested response for people, rather than a claim that agents autonomously publish replies.
Other internal uses help answer questions about the product and perform competitive research. These examples show what programmable access enables: teams can wrap agent capabilities around their own recurring work. Abdalla reports the existence of these tools, but does not provide accuracy measurements for the sentiment analysis, proposed responses, or research.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Put agents inside the repository's process
Opening Warp's source made repository management a substantial use case for these primitives. Abdalla places the decision about three months before the talk and estimates that GitHub stars rose from around 20,000 to over 60,000, accompanied by thousands of pull requests and hundreds of contributors. These are her approximate figures. The team's response was to involve agents throughout issue triage, contextual research, implementation, and review while retaining human participation.
A new bug report or feature request triggers an agent to triage the issue. It researches the codebase and repository context to understand the proposal, then may ask the submitter questions when the request is too abstract. This addresses a familiar maintenance bottleneck: a person knows something is wrong but has not supplied enough detail to make the work actionable. The agent helps establish that clarity and can then help draft an initial specification or implement the task.
Contributed pull requests also pass through an agent-managed review gate. The process can take multiple iterations, and human reviewers are not notified until an agent approves the pull request. Abdalla says this reduces the team's workload by directing human attention toward higher-quality contributions. The concrete mechanism is a gate on when human review is requested; agent approval is not described as automatic merge authority, and no measured defect rate is supplied.
The team also improves the agent as new pull requests and code examples arrive. Abdalla treats this feedback loop as part of improving the software development lifecycle itself. She does not specify whether those changes involve prompts, rules, models, or another mechanism, so the claim is about iterative improvement of the process rather than a particular self-training architecture.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Structure helps domain experts turn intent into implementation
For Abdalla, the larger result is a structured path through which people can bring a feature idea or bug report toward an actual product change. Agents supply context and support along that path, allowing the repository to accommodate a large influx of issues and pull requests. Their value includes helping people express and develop an intent that was not yet ready for implementation.
That matters because useful goals often come from people who understand a domain through using software, even if they do not build it. Warp occupies the unusual position of developers making a developer tool; many software teams build for people whose expertise differs from their own. Abdalla argues that supporting infrastructure and guardrails can give these non-developers a way to participate in shipping serious software. The enabling condition is the surrounding process that helps carry their knowledge into implementation.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
A workshop makes craft repeatable
Abdalla pushes back on the term “software factory” because she feels it loses the people involved. Her alternative comes from a potter who sold her a mug at a farmer's market about two summers earlier. He described the care behind its handle curve, its accommodation of different hands, and a dimple for resting a thumb. He also explained a glazing detail intended to catch overflow. The product embodied many small decisions about how someone would use it.
The potter had applied comparable care to the workshop. Different stations handled different components, clay sourcing and preparation followed a defined process, and verification checked components as they were made. A dimple of the wrong size raised concrete operational questions: what should happen next, and which part of the process should restart? According to Abdalla's account, this organization supported dozens of apprentices and hundreds of handcrafted mugs per day.
The workshop is therefore a serious, repeatable system for turning an idea into an object. It can scale while remaining malleable: people observe how the work proceeds and change the environment in response. This is the quality Abdalla wants the metaphor to retain—a close feedback loop among the people doing the work, the space that supports them, and the outputs they produce.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Make the system observable, adaptable, and economical
Abdalla translates the workshop into requirements for software tooling. As the definition of a builder expands to include non-developers, experienced engineers can supply the systems that support their work. One requirement is automation that reacts to real events. Just as a workshop must respond to a broken handle or a problem with a kiln, an agent system needs primitives that let work respond to changing conditions.
Another requirement is observability. The potter improved his process by watching how people worked; software systems likewise need to be inspectable if their owners are to refine them. Improvement depends on that visibility. The working environment must be able to change with the goals of its users and the product it produces, rather than remain fixed after its initial design.
Quality also has to be economical. Abdalla pairs reducing broken mugs with reducing buggy software, then adds the constraint of avoiding excessive token spending. The goal is a process that improves its output while controlling the resources consumed. She presents this as a design requirement, without prescribing a token budget or a measured quality-versus-cost optimum.
These requirements serve a practical goal: remove toil so more people can build. Reproducing a bug and monitoring production are her closing examples of difficult work that could benefit from a repeatable, structured process. Making those processes transferable to people in nontechnical roles is part of the ambition. She closes by inviting further conversation with the Warp team and thanking the audience, leaving the emphasis on robust systems that help people turn ideas into software.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Read the complete timestamped transcript
- 0:01
[music]
- 0:12
>> Uh hi, welcome to this session. Uh it is
- 0:15
mysteriously titled The Agent Behind the
- 0:17
Curtain.
- 0:18
Um it's about how the team at Warp built
- 0:22
our cloud agent platform. Um
- 0:25
before I talk about the how though, I
- 0:27
want to talk about the why um and share
- 0:30
a little bit about my own background.
- 0:32
Um so, I've spent the past 8 years
- 0:35
building developer tooling.
- 0:36
Um I started off in open source in the
- 0:39
Python and data science space
- 0:41
um on the Jupiter Notebook core team. I
- 0:43
was a maintainer on the Interact
- 0:45
project. That work continued in my time
- 0:48
at Microsoft helping build APIs and SDKs
- 0:51
for web developers. Um and now I'm
- 0:54
working on bringing AI AI agents to the
- 0:57
cloud at Warp.
- 0:59
And one of the lessons that I've learned
- 1:01
in my time building developer tooling is
- 1:04
that really good dev tools meet devs
- 1:07
where they are and grow with them.
- 1:10
Um a tool that you're going to be using
- 1:11
every day should accommodate your
- 1:13
workflows, but also be really adaptable
- 1:16
as the like complexity and the nature of
- 1:18
the work changes.
- 1:20
And it's important for us to build
- 1:22
really great dev tools because dev tools
- 1:24
have a compounding effect on the world.
- 1:27
If you make a piece of software that
- 1:29
helps a developer or a builder do great
- 1:31
work, your ability to magnify how much
- 1:34
great software exists in the world
- 1:35
increases. So, I think it is super
- 1:37
important that these dev tools
- 1:39
accommodate people's workflows. And
- 1:42
people's workflows are important because
- 1:43
they love their preferences. You might
- 1:45
have a preference for a shell, a
- 1:47
language, a harness, a review process.
- 1:50
And something that adapts to your
- 1:52
workflows and preferences is going to be
- 1:54
more enjoyable to use and more enjoyable
- 1:57
to build software with. And it also
- 1:59
becomes like a part of how you think and
- 2:01
build. Um so, it's super important to be
- 2:03
attuned to that.
- 2:05
And this notion of tools meeting
- 2:08
developers where they are and growing
- 2:10
with them comes to light really clearly
- 2:13
in the progression of AI tooling in this
- 2:15
space.
- 2:17
So, this is the story for Warp
- 2:18
specifically, but it's also the story
- 2:20
for a lot of developer tools. Pre-AI
- 2:23
era, we had the Warp terminal, which
- 2:25
kind of met people in their command-line
- 2:27
workflows that they were used to.
- 2:30
And then this fantastic thing happened
- 2:32
where AI got introduced to developers,
- 2:34
and now you had a whole new set of tools
- 2:35
that was available to you locally on
- 2:37
your machine. And a lot of people
- 2:39
started to interact with agentic coding
- 2:41
patterns in their terminal, in their
- 2:44
IDE, in their editor.
- 2:46
And then eventually, we realized that we
- 2:48
had kind of reached the limits of what
- 2:50
we could do on our laptops, and we
- 2:52
wanted agents to do work that was more
- 2:54
long-running, that was adapted to
- 2:56
different constraints, and that work
- 2:58
needed to happen in the cloud.
- 3:01
Um and whenever you send anything to the
- 3:02
cloud, you adopt a lot of complexity um
- 3:06
because running things in the cloud
- 3:08
requires us to navigate a much messier
- 3:10
stack of infrastructure concerns. And
- 3:13
when I say we here, I mean the people
- 3:15
building developer tools cuz that is the
- 3:16
person that I am.
- 3:18
And it gets at one of the things that
- 3:20
are like a core principle in how we
- 3:22
think about unlocking capabilities here
- 3:25
and building good developer tools is
- 3:26
that platforms should take on complexity
- 3:29
before it reaches the user. A really
- 3:32
good experience should not expose
- 3:34
anything of if the leaky complexity that
- 3:36
it handles to you.
- 3:38
Um when we think about building our
- 3:40
cloud agent platform, we try and
- 3:42
structure it so that every primitive
- 3:44
models this philosophy of hiding
- 3:47
complexity from the user so they can
- 3:48
focus on the work that matters to them.
- 3:51
Um the first place that this shows up
- 3:53
when you're building a cloud agent
- 3:54
platform is where does the agent run if
- 3:57
it's not running on a developer's
- 3:59
machine?
- 4:01
Um, it needs a place to do its work like
- 4:03
any developer would and that place is
- 4:05
typically a sandbox. It's an isolated
- 4:07
environment in the cloud where agents do
- 4:09
this task.
- 4:11
When we started out building these out
- 4:12
for our cloud agent platform, our first
- 4:14
intuition was to provide self-hosted
- 4:17
sandboxes so that developers had a
- 4:19
really easy on-ramp for getting into our
- 4:21
cloud agent platform. You didn't have to
- 4:23
think about where your compute lived, it
- 4:25
was just there for you.
- 4:27
But the reality is that for teams doing
- 4:29
serious work, they're probably managing
- 4:31
their own infrastructure. They probably
- 4:33
have dev boxes that they need to
- 4:34
interact with and so something that is
- 4:37
hosted or managed is usually not
- 4:39
sufficient. You really need to be able
- 4:42
to run agent workloads on infrastructure
- 4:44
that people bring so it adapts to their
- 4:45
like security concerns, their deployment
- 4:47
practices,
- 4:49
their workflows and preferences on their
- 4:50
team.
- 4:51
And so we add support for not only
- 4:54
manage hosting but also self-hosting to
- 4:56
the platform and that is complexity that
- 4:58
you abstract away from the user and how
- 5:00
the behavior is modeled.
- 5:03
Um, the next kind of component is a
- 5:05
little bit more personal to people and
- 5:07
it's the harness that they want to use.
- 5:09
As we talked about earlier, people are
- 5:11
really passionate about the tools that
- 5:13
shape their workflows. Um, one of those
- 5:16
tools is the harness. Um, who here has a
- 5:18
preference for cloud code as a harness
- 5:20
locally?
- 5:22
Code X?
- 5:24
Something else entirely?
- 5:26
Right, so much diversity in the room and
- 5:28
we want to meet people where they work.
- 5:31
So you want to integrate multi-harness
- 5:33
support that not only accommodates
- 5:34
preferences but also gives people the
- 5:37
ability to do the use the right tool for
- 5:39
the job. And flexibility isn't something
- 5:42
that you just be like crammed into a
- 5:43
platform because the real risk you run
- 5:45
if you cram it in is that it becomes
- 5:47
fragmented. Your experience with working
- 5:50
with Claude is different from working
- 5:52
with Codex versus a custom harness that
- 5:54
you might have. And so, one of the key
- 5:56
properties is making sure that the
- 5:57
platform provides structure and
- 5:59
guardrails around the harness so that
- 6:02
the experience is consistent. Um for us,
- 6:05
this means that harnesses can interact
- 6:08
with all of the platform native
- 6:09
experiences. So, just being able to
- 6:11
store conversation state and rehydrate
- 6:14
it, being able to interact with the
- 6:16
artifacts and outputs that are produced
- 6:17
by agents, whether they're PRs, issues,
- 6:21
new files that are generated. All of
- 6:23
that should kind of be structured the
- 6:24
same way.
- 6:26
Okay, cool. So, we gave you a place for
- 6:29
your agent to run, and we gave you a
- 6:31
choice for what harness you use,
- 6:33
including Warp Zone harness and any
- 6:35
other harnesses that you want to bring.
- 6:37
Um
- 6:38
what if one agent isn't enough to do
- 6:40
work? That's the reality of most
- 6:43
software engineering.
- 6:44
I wish that I could just send off one
- 6:46
prompt and solve all of the problems
- 6:48
that exist in my software, but the
- 6:50
reality is that real engineering work
- 6:52
rarely fits inside one prompt. In a
- 6:55
typical workflow, you might need one
- 6:57
agent to go research a problem and plan
- 6:59
a solution. You might need another agent
- 7:01
to implement it, and you might need to
- 7:03
bring in a third to validate it. And you
- 7:06
might want each of these agents to use
- 7:07
different harnesses and different models
- 7:10
in order to have a real adversar-
- 7:12
adversarial and robust approach.
- 7:15
So, we have built-in support for that.
- 7:17
You can orchestrate agents across the
- 7:20
stack. Um
- 7:21
with a lot of agent-based experiences,
- 7:24
this orchestration happens via a prompt.
- 7:26
So, I say {slash} orchestrate, or I
- 7:28
queue the agent via prompting that I
- 7:30
want it to delegate work across multiple
- 7:32
sub agents for a task that I have here.
- 7:35
And this orchestrator agent will do all
- 7:37
of the messy complexity of interacting
- 7:39
with sub agents, mediating messages
- 7:41
between them, and tracking the work
- 7:43
that's happening for me behind the
- 7:45
scenes with a single prompt. We abstract
- 7:48
complexity away from the user by giving
- 7:51
them this experience.
- 7:53
This sort of like prompt-based model for
- 7:55
interacting with agents and subagents is
- 7:59
really powerful.
- 8:01
An even more interesting one is the
- 8:04
notion of interacting with agents and
- 8:06
subagents via the API.
- 8:09
So, everything in our surface area is
- 8:11
exposed via an API, and I can fire off a
- 8:14
request to say that I want to run a
- 8:16
subagent that is attached to a parent
- 8:18
agent um via configuration that I
- 8:20
provide. And this API is super magical
- 8:25
because
- 8:26
this is the key component of a platform.
- 8:29
Um it's exposing the primitives in a way
- 8:32
that users can build on top of.
- 8:35
Um the thing about great APIs and SDKs
- 8:38
is people can build on top of them,
- 8:39
which means that they're not restricted
- 8:41
to your UI or your opinion of how a
- 8:44
particular experience should look. This
- 8:46
is where like composability becomes
- 8:48
really powerful.
- 8:50
And so, we're trying to be intentional
- 8:51
about exposing an API for every key
- 8:54
component of the stack. So, this is APIs
- 8:57
for spinning up agents and subagents,
- 8:59
for managing the environments and
- 9:00
compute that these agents are running
- 9:03
in, for working with the artifacts that
- 9:05
they produce. All of that is exposed in
- 9:07
an API that you can build on top of.
- 9:11
Um
- 9:12
and this ability to build on top of
- 9:14
these primitives that are exposed via an
- 9:16
API becomes really useful because anyone
- 9:19
can build tools that overlap on top of
- 9:22
these agentic experiences.
- 9:25
>> [snorts]
- 9:25
>> Um
- 9:26
like interesting phenomena that's
- 9:27
happened for us internally is we have a
- 9:30
bunch of non-engineering teammates at
- 9:33
Warp who have been able to use our SDK
- 9:35
and API to build custom Slack bots to do
- 9:38
a bunch of things. Um so we have folks
- 9:41
in our developer relations team who have
- 9:43
actually built out tooling to help us
- 9:45
manage all of our social mentions. Um so
- 9:48
as tweets and Reddit posts and things
- 9:50
are coming in, we have agents that will
- 9:52
pick them up, do some sentiment analysis
- 9:54
on them, try and understand what the
- 9:55
user wants, and then propose a response
- 9:58
that um folks on our social media team
- 10:00
should use and um respond to the
- 10:03
original tweet or Reddit post or what
- 10:04
have you. And all of this is enabled by
- 10:06
our SDK. And you see like a plethora of
- 10:09
these types of experiences
- 10:12
um
- 10:12
internally at Warp. Um we have people
- 10:15
who have used them to help answer
- 10:17
queries about how our product is
- 10:19
working, do competitive research, all
- 10:21
sorts of interesting things.
- 10:24
Um and these primitives became a really
- 10:28
big deal for us specifically when we
- 10:30
decided to go open source.
- 10:32
Um as I mentioned earlier, Warp started
- 10:34
off as a terminal um but it grew into an
- 10:37
agentic development environment. And
- 10:39
about 3 months ago, we decided to go
- 10:41
open source.
- 10:43
Um this was like much anticipated,
- 10:46
long-awaited. It was a huge success for
- 10:49
us.
- 10:50
Um the number of like GitHub stars that
- 10:52
we had, I think catapulted from around
- 10:55
20,000 to over 60,000. We had thousands
- 10:59
of PRs. I'll talk a little bit more
- 11:01
about how we've been managing that. And
- 11:03
hundreds of contributors who had been
- 11:05
long-time users of the platform and were
- 11:07
finally getting a chance to build on top
- 11:10
of it.
- 11:11
And when we went open source, we wanted
- 11:13
to be really thoughtful about how we
- 11:16
could use agents to help us manage the
- 11:18
repository.
- 11:19
We didn't want this to be the kind of
- 11:21
thing where agents are just writing code
- 11:23
and firing off PRs. We want them them to
- 11:26
participate kind of meaningfully in the
- 11:28
structure that we use to triage issues
- 11:31
that came into the repo, provide context
- 11:33
around them, do implementation, do
- 11:36
reviews,
- 11:37
but still have the space for humans to
- 11:39
participate in this loop.
- 11:42
And we did that. So, if you go to the
- 11:44
Warp open-source repo right now, you'll
- 11:46
notice that if you file a new issue with
- 11:48
a bug report or a feature request, an
- 11:51
agent will kick in and start to triage
- 11:53
the issue automatically. It'll do
- 11:54
research across the code base and
- 11:56
context in the repo to understand what
- 11:58
you're trying to propose. It might ask
- 12:00
you questions if it feels like your
- 12:02
original query was a little abstract to
- 12:04
get more information, and it will kind
- 12:06
of do the work that's historically been
- 12:08
very hard for open source, which is
- 12:10
somebody has a problem or a bug that
- 12:12
they want fixed. They don't give you
- 12:13
enough details, and it's hard to get to
- 12:15
the clarity that you need to get to to
- 12:17
like drive the work forward. So, we can
- 12:19
use agents to help us meaningfully in
- 12:20
that way. They can also help draft
- 12:23
initial specifications and work for
- 12:25
tasks, do implementation, and provide a
- 12:28
review gate. So, all PRs that get
- 12:31
contributed to Warp go through an
- 12:33
agent-managed review process. And it
- 12:35
goes through multiple iterations, and we
- 12:37
don't actually ping any of the human
- 12:39
reviewers on our team until an agent has
- 12:42
approved our PRs, um which helps manage
- 12:45
the workload a lot for the team. So, all
- 12:46
of those thousands of PRs, the things
- 12:48
that humans actually have to manage are
- 12:50
only the high-signal, high-quality ones.
- 12:53
And one of the key principles is that we
- 12:55
improve the agent as um we get more PRs
- 12:59
in the repo and we see more examples of
- 13:01
code. One of the things that we believe
- 13:03
is that self-improvement loops are a
- 13:04
really important way for you to enhance
- 13:07
the overall SDLC life cycle that you're
- 13:09
seeing.
- 13:11
So, we did this.
- 13:14
And we had a lightbulb moment cuz it
- 13:15
unlocked something huge. We had this
- 13:17
like structured process that could
- 13:19
accommodate a big influx of issues and
- 13:22
PRs on the repo. Um
- 13:24
and the agents were there to support
- 13:28
anyone in bringing their idea or their
- 13:30
bug request bug feature request or bug
- 13:33
report to us or to work and then getting
- 13:35
it through to the actual product.
- 13:38
That key insight of agents providing
- 13:41
like structure and context was a really
- 13:43
big thing for us cuz it meant that it
- 13:46
could anyone could kind of participate
- 13:48
in translating their intent into
- 13:50
implementation.
- 13:52
And often times the people who have
- 13:55
really interesting intents and goals are
- 13:57
the ones who are using software in
- 13:58
interesting ways. And it's not always
- 14:00
the person that's building it. It's the
- 14:01
person who's kind of got domain
- 14:03
knowledge in the space. And work we're
- 14:05
lucky because we're developers building
- 14:07
a developer tool and that's a really
- 14:09
unique niche to fill in. But most
- 14:11
software is developers building tools
- 14:14
for non-developers
- 14:16
or people in situations where they don't
- 14:17
have domain expertise.
- 14:19
If we provide these structures and
- 14:21
guardrails though, people who are
- 14:22
non-developers can
- 14:25
have the necessary tools to like ship
- 14:27
serious software because the
- 14:29
infrastructure to support them exists.
- 14:33
Oh, this is where like things get buzzy.
- 14:35
You might have heard this term of the
- 14:37
software factory. People talk about it a
- 14:39
lot as far as like automating how
- 14:41
software gets built, providing these
- 14:43
systems for doing work,
- 14:46
all of these fun things.
- 14:48
I kind of want to push back on this term
- 14:51
a little bit. I kind of actually hate it
- 14:53
cuz I don't think it gets the point
- 14:54
across and it feels a little
- 14:57
Where's the people in this?
- 15:00
So I want to tell a story
- 15:03
before I share what I think is actually
- 15:04
the better word. So this is a mug that I
- 15:07
have. I bought this mug about two
- 15:09
summers ago from a farmer's market.
- 15:12
And I stopped by this booth at the
- 15:14
farmer's market and you could just tell
- 15:16
the person who had crafted this the
- 15:18
potter was just someone who's like
- 15:19
really passionate about their work and
- 15:21
what they do. And so, he was telling me
- 15:23
about all of these interesting details
- 15:25
in the mug, the specific like curve of
- 15:27
the handle, and the way he had
- 15:29
structured it to accommodate different
- 15:30
people's hands. He had this like
- 15:32
specific dimple at the top of the handle
- 15:34
where you could rest your thumb cuz he
- 15:37
felt like that was like a key ergonomic
- 15:39
detail of this mug. He had this glazing
- 15:41
at the top, so if like your cup
- 15:43
overflowed, it wouldn't dribble down the
- 15:44
sides, the glazing would kind of catch
- 15:46
it. So, he just spent so much time
- 15:48
thinking about the details of the mug
- 15:50
and crafting it.
- 15:52
And then I was kind of talking to him
- 15:53
about his workshop, like how many
- 15:54
potters do you have? How many of these
- 15:56
mugs are you making? Yada yada.
- 15:58
And he got more even more animated and
- 16:00
he started talking about his workshop
- 16:02
setup and how he had set up different
- 16:04
stations for different components of the
- 16:06
mug. He had talked about how he had a
- 16:08
specific process for sourcing clay and
- 16:10
preparing ahead of time. He talked about
- 16:13
how he actually incorporated
- 16:14
verification for different components of
- 16:16
the mug. If the dimple wasn't the right
- 16:18
size, what would you do? What part of
- 16:20
the process would you restart?
- 16:23
All of this thought that he had put not
- 16:25
into the mug itself, but how the
- 16:28
workshop existed to support the creation
- 16:31
of the mug, and how he was able to scale
- 16:34
this to dozens of apprentices in his
- 16:37
shop and like hundreds of mugs
- 16:39
handcrafted per day, which is pretty
- 16:42
impressive.
- 16:43
And this got me thinking, I love what he
- 16:45
did with his workshop. Um he had this
- 16:48
really great idea and he developed a
- 16:51
serious and repeatable system that
- 16:53
allowed anyone to take the idea of a
- 16:56
perfect mug and turn it into the like
- 16:59
actual existence of a perfect mug.
- 17:01
You know,
- 17:03
some people might think like workshops
- 17:04
are this quaint thing where it's like a
- 17:06
workspace for a single individual, but I
- 17:08
think the story really shows that
- 17:10
they're actually heavy-duty systems for
- 17:12
doing work and that they're malleable
- 17:14
and that they react to signals in how
- 17:16
people are interacting with the thing
- 17:18
they're building in the space they're
- 17:19
building it.
- 17:21
Um and it also underscores the like
- 17:23
really close interaction loop that
- 17:25
humans have with the spaces they work in
- 17:28
and the outputs that are produced. And
- 17:30
I'm synthesizing all of these ideas and
- 17:31
I think this is what really we're
- 17:33
driving at when we talk about building
- 17:35
software factories.
- 17:37
We want to give more builders and the
- 17:39
definition of who a builder is is
- 17:41
expanding to non-developers
- 17:43
serious systems for turning their ideas
- 17:46
into code. Um and we as individuals
- 17:48
who've been building dev tooling or have
- 17:50
been in software engineering for a long
- 17:52
time have an understanding of what that
- 17:54
serious system looks like and what kind
- 17:56
of support it needs to give into
- 17:57
individuals.
- 18:00
Um we break this down into the same
- 18:02
techniques that my potter friend had and
- 18:05
the same methodologies that I talked
- 18:07
about earlier about exposing primitives.
- 18:09
Um we expose things like the ability for
- 18:13
these agents to implement automations
- 18:15
that react to events in the real world
- 18:18
the same way that a human in a workspace
- 18:20
might need need to react to a real event
- 18:22
of you know a kiln um being astray or a
- 18:26
handle being broken.
- 18:28
We need to make these systems
- 18:29
observable. My potter friend talked
- 18:31
about how he actually watched the way
- 18:33
people worked in his space and refined
- 18:35
the process over time. That doesn't come
- 18:38
for free. Your system has to actually be
- 18:39
something that you can inspect and look
- 18:41
into.
- 18:43
And it has to improve over time. The
- 18:45
workspace is not the static component
- 18:47
that doesn't change ever. It needs to
- 18:49
react to what's going on and modify
- 18:51
itself to amend to like the goals of the
- 18:54
people that are working in it and the
- 18:55
product that it's producing.
- 18:59
And it needs to be cost-effective. Uh
- 19:01
you want to reduce the number of broken
- 19:03
mugs that come out the other end. You
- 19:05
want to reduce the amount of buggy
- 19:06
software that comes out of the other end
- 19:08
of your of your factory. Um and you want
- 19:11
to do this without compromising on cost
- 19:13
without spending too many tokens.
- 19:16
All of these principles work to achieve
- 19:20
a shared goal and that shared goal is
- 19:23
building systems that remove toil and
- 19:25
drudgery from our software process so
- 19:28
that more people have the ability to
- 19:29
build. We've seen the way like toil and
- 19:32
drudgery have manifested. It could be
- 19:34
all of the difficulty you might have
- 19:36
reproducing a bug, the challenges of
- 19:39
monitoring a production system. Those
- 19:41
are things that are really hard to do.
- 19:44
And we can finally start to think about
- 19:45
the structure of how we do them and
- 19:47
building systems that allow us to do
- 19:49
them repeatedly and transferably to
- 19:52
people who are in non-technical roles.
- 19:55
If these ideas excite you about how we
- 19:57
can build these robust and reliable
- 19:59
systems for anyone to ship software,
- 20:03
you could stop by the Warp booth to come
- 20:04
talk to me and the crew. We're at UG 20.
- 20:08
You can also mention me on Twitter. I'm
- 20:10
Captain Sophia on all social media,
- 20:13
GitHub, Twitter, all of that fun stuff.
- 20:15
Or just drop me an email. You can find
- 20:17
my email on my personal site.
- 20:19
Thanks for coming to this presentation.
- 20:21
I hope you learned something interesting
- 20:22
about some of the engineering
- 20:24
philosophies that are driving the next
- 20:27
set of work we do as far as agents,
- 20:29
developers, and AI.
- 20:32
>> [applause]