← Back
AI Engineer August 22, 2026 20m

The Agent Behind the Curtain: Building the Oz Cloud Agent Platform — Safia Abdalla, Warp

Read full transcript 17 segments
  1. >> Uh hi, welcome to this session. Uh it is >> Uh hi, welcome to this session. Uh it is mysteriously titled The Agent Behind the mysteriously titled The Agent Behind the mysteriously titled The Agent Behind the Curtain. Curtain. Curtain. Um it's about how the team at Warp built Um it's about how the team at Warp built Um it's about how the team at Warp built our cloud agent platform. Um our cloud agent platform. Um our cloud agent platform. Um before I talk about the how though, I before I talk about the how though, I before I talk about the how though, I want to talk about the why um and share want to talk about the why um and share want to talk about the why um and share a little bit about my own background. a little bit about my own background. a little bit about my own background. Um so, I've spent the past 8 years Um so, I've spent the past 8 years Um so, I've spent the past 8 years building developer tooling. building developer tooling. building developer tooling. Um I started off in open source in the Um I started off in open source in the Um I started off in open source in the Python and data science space Python and data science space Python and data science space um on the Jupiter Notebook core team. I um on the Jupiter Notebook core team. I um on the Jupiter Notebook core team. I was a maintainer on the Interact was a maintainer on the Interact was a maintainer on the Interact project. That work continued in my time project. That work continued in my time project. That work continued in my time at Microsoft helping build APIs and SDKs at Microsoft helping build APIs and SDKs at Microsoft helping build APIs and SDKs for web developers. Um and now I'm for web developers. Um and now I'm for web developers. Um and now I'm working on bringing AI AI agents to the working on bringing AI AI agents to the working on bringing AI AI agents to the cloud at Warp. cloud at Warp. cloud at Warp. And one of the lessons that I've learned And one of the lessons that I've learned And one of the lessons that I've learned in my time building developer tooling is in my time building developer tooling is in my time building developer tooling is that really good dev tools meet devs that really good dev tools meet devs that really good dev tools meet devs where they are and grow with them. where they are and grow with them. where they are and grow with them. Um a tool that you're going to be using Um a tool that you're going to be using Um a tool that you're going to be using every day should accommodate your every day should accommodate your every day should accommodate your workflows, but also be really adaptable workflows, but also be really adaptable workflows, but also be really adaptable as the like complexity and the nature of as the like complexity and the nature of as the like complexity and the nature of the work changes.

  2. the work changes. the work changes. And it's important for us to build And it's important for us to build And it's important for us to build really great dev tools because dev tools really great dev tools because dev tools really great dev tools because dev tools have a compounding effect on the world. have a compounding effect on the world. have a compounding effect on the world. If you make a piece of software that If you make a piece of software that If you make a piece of software that helps a developer or a builder do great helps a developer or a builder do great helps a developer or a builder do great work, your ability to magnify how much work, your ability to magnify how much work, your ability to magnify how much great software exists in the world great software exists in the world great software exists in the world increases. So, I think it is super increases. So, I think it is super increases. So, I think it is super important that these dev tools important that these dev tools important that these dev tools accommodate people's workflows. And accommodate people's workflows. And accommodate people's workflows. And people's workflows are important because people's workflows are important because people's workflows are important because they love their preferences. You might they love their preferences. You might they love their preferences. You might have a preference for a shell, a have a preference for a shell, a have a preference for a shell, a language, a harness, a review process. language, a harness, a review process. language, a harness, a review process. And something that adapts to your And something that adapts to your And something that adapts to your workflows and preferences is going to be workflows and preferences is going to be workflows and preferences is going to be more enjoyable to use and more enjoyable more enjoyable to use and more enjoyable more enjoyable to use and more enjoyable to build software with. And it also to build software with. And it also to build software with. And it also becomes like a part of how you think and becomes like a part of how you think and becomes like a part of how you think and build. Um so, it's super important to be build. Um so, it's super important to be build. Um so, it's super important to be attuned to that. attuned to that. attuned to that. And this notion of tools meeting And this notion of tools meeting And this notion of tools meeting developers where they are and growing developers where they are and growing developers where they are and growing with them comes to light really clearly with them comes to light really clearly with them comes to light really clearly in the progression of AI tooling in this in the progression of AI tooling in this in the progression of AI tooling in this space. space. space. So, this is the story for Warp So, this is the story for Warp So, this is the story for Warp specifically, but it's also the story specifically, but it's also the story specifically, but it's also the story for a lot of developer tools. Pre-AI for a lot of developer tools. Pre-AI for a lot of developer tools. Pre-AI era, we had the Warp terminal, which era, we had the Warp terminal, which era, we had the Warp terminal, which kind of met people in their command-line kind of met people in their command-line kind of met people in their command-line workflows that they were used to.

  3. workflows that they were used to. workflows that they were used to. And then this fantastic thing happened And then this fantastic thing happened And then this fantastic thing happened where AI got introduced to developers, where AI got introduced to developers, where AI got introduced to developers, and now you had a whole new set of tools and now you had a whole new set of tools and now you had a whole new set of tools that was available to you locally on that was available to you locally on that was available to you locally on your machine. And a lot of people your machine. And a lot of people your machine. And a lot of people started to interact with agentic coding started to interact with agentic coding started to interact with agentic coding patterns in their terminal, in their patterns in their terminal, in their patterns in their terminal, in their IDE, in their editor. IDE, in their editor. IDE, in their editor. And then eventually, we realized that we And then eventually, we realized that we And then eventually, we realized that we had kind of reached the limits of what had kind of reached the limits of what had kind of reached the limits of what we could do on our laptops, and we we could do on our laptops, and we we could do on our laptops, and we wanted agents to do work that was more wanted agents to do work that was more wanted agents to do work that was more long-running, that was adapted to long-running, that was adapted to long-running, that was adapted to different constraints, and that work different constraints, and that work different constraints, and that work needed to happen in the cloud. needed to happen in the cloud. needed to happen in the cloud. Um and whenever you send anything to the Um and whenever you send anything to the Um and whenever you send anything to the cloud, you adopt a lot of complexity um cloud, you adopt a lot of complexity um cloud, you adopt a lot of complexity um because running things in the cloud because running things in the cloud because running things in the cloud requires us to navigate a much messier requires us to navigate a much messier requires us to navigate a much messier stack of infrastructure concerns. And stack of infrastructure concerns. And stack of infrastructure concerns. And when I say we here, I mean the people when I say we here, I mean the people when I say we here, I mean the people building developer tools cuz that is the building developer tools cuz that is the building developer tools cuz that is the person that I am. person that I am. person that I am. And it gets at one of the things that And it gets at one of the things that And it gets at one of the things that are like a core principle in how we are like a core principle in how we are like a core principle in how we think about unlocking capabilities here think about unlocking capabilities here think about unlocking capabilities here and building good developer tools is and building good developer tools is and building good developer tools is that platforms should take on complexity that platforms should take on complexity that platforms should take on complexity before it reaches the user. A really before it reaches the user. A really before it reaches the user. A really good experience should not expose good experience should not expose good experience should not expose anything of if the leaky complexity that anything of if the leaky complexity that anything of if the leaky complexity that it handles to you.

  4. it handles to you. it handles to you. Um when we think about building our Um when we think about building our Um when we think about building our cloud agent platform, we try and cloud agent platform, we try and cloud agent platform, we try and structure it so that every primitive structure it so that every primitive structure it so that every primitive models this philosophy of hiding models this philosophy of hiding models this philosophy of hiding complexity from the user so they can complexity from the user so they can complexity from the user so they can focus on the work that matters to them. focus on the work that matters to them. focus on the work that matters to them. Um the first place that this shows up Um the first place that this shows up Um the first place that this shows up when you're building a cloud agent when you're building a cloud agent when you're building a cloud agent platform is where does the agent run if platform is where does the agent run if platform is where does the agent run if it's not running on a developer's it's not running on a developer's it's not running on a developer's machine? machine? machine? Um, it needs a place to do its work like Um, it needs a place to do its work like Um, it needs a place to do its work like any developer would and that place is any developer would and that place is any developer would and that place is typically a sandbox. It's an isolated typically a sandbox. It's an isolated typically a sandbox. It's an isolated environment in the cloud where agents do environment in the cloud where agents do environment in the cloud where agents do this task. this task. this task. When we started out building these out When we started out building these out When we started out building these out for our cloud agent platform, our first for our cloud agent platform, our first for our cloud agent platform, our first intuition was to provide self-hosted intuition was to provide self-hosted intuition was to provide self-hosted sandboxes so that developers had a sandboxes so that developers had a sandboxes so that developers had a really easy on-ramp for getting into our really easy on-ramp for getting into our really easy on-ramp for getting into our cloud agent platform. You didn't have to cloud agent platform. You didn't have to cloud agent platform. You didn't have to think about where your compute lived, it think about where your compute lived, it think about where your compute lived, it was just there for you. was just there for you. was just there for you. But the reality is that for teams doing But the reality is that for teams doing But the reality is that for teams doing serious work, they're probably managing serious work, they're probably managing serious work, they're probably managing their own infrastructure. They probably their own infrastructure. They probably their own infrastructure. They probably have dev boxes that they need to have dev boxes that they need to have dev boxes that they need to interact with and so something that is interact with and so something that is interact with and so something that is hosted or managed is usually not hosted or managed is usually not hosted or managed is usually not sufficient. You really need to be able sufficient. You really need to be able sufficient. You really need to be able to run agent workloads on infrastructure to run agent workloads on infrastructure to run agent workloads on infrastructure that people bring so it adapts to their that people bring so it adapts to their that people bring so it adapts to their like security concerns, their deployment like security concerns, their deployment like security concerns, their deployment practices, practices, practices, their workflows and preferences on their their workflows and preferences on their their workflows and preferences on their team.

  5. team. team. And so we add support for not only And so we add support for not only And so we add support for not only manage hosting but also self-hosting to manage hosting but also self-hosting to manage hosting but also self-hosting to the platform and that is complexity that the platform and that is complexity that the platform and that is complexity that you abstract away from the user and how you abstract away from the user and how you abstract away from the user and how the behavior is modeled. the behavior is modeled. the behavior is modeled. Um, the next kind of component is a Um, the next kind of component is a Um, the next kind of component is a little bit more personal to people and little bit more personal to people and little bit more personal to people and it's the harness that they want to use. it's the harness that they want to use. it's the harness that they want to use. As we talked about earlier, people are As we talked about earlier, people are As we talked about earlier, people are really passionate about the tools that really passionate about the tools that really passionate about the tools that shape their workflows. Um, one of those shape their workflows. Um, one of those shape their workflows. Um, one of those tools is the harness. Um, who here has a tools is the harness. Um, who here has a tools is the harness. Um, who here has a preference for cloud code as a harness preference for cloud code as a harness preference for cloud code as a harness locally? locally? locally? Code X? Code X? Code X? Something else entirely? Something else entirely? Something else entirely? Right, so much diversity in the room and Right, so much diversity in the room and Right, so much diversity in the room and we want to meet people where they work. we want to meet people where they work. we want to meet people where they work. So you want to integrate multi-harness So you want to integrate multi-harness So you want to integrate multi-harness support that not only accommodates support that not only accommodates support that not only accommodates preferences but also gives people the preferences but also gives people the preferences but also gives people the ability to do the use the right tool for ability to do the use the right tool for ability to do the use the right tool for the job. And flexibility isn't something the job. And flexibility isn't something the job. And flexibility isn't something that you just be like crammed into a that you just be like crammed into a that you just be like crammed into a platform because the real risk you run platform because the real risk you run platform because the real risk you run if you cram it in is that it becomes if you cram it in is that it becomes if you cram it in is that it becomes fragmented. Your experience with working fragmented. Your experience with working fragmented. Your experience with working with Claude is different from working with Claude is different from working with Claude is different from working with Codex versus a custom harness that with Codex versus a custom harness that with Codex versus a custom harness that you might have. And so, one of the key you might have. And so, one of the key you might have. And so, one of the key properties is making sure that the properties is making sure that the properties is making sure that the platform provides structure and platform provides structure and platform provides structure and guardrails around the harness so that guardrails around the harness so that guardrails around the harness so that the experience is consistent. Um for us, the experience is consistent. Um for us, the experience is consistent. Um for us, this means that harnesses can interact this means that harnesses can interact this means that harnesses can interact with all of the platform native with all of the platform native with all of the platform native experiences. So, just being able to experiences. So, just being able to experiences. So, just being able to store conversation state and rehydrate store conversation state and rehydrate store conversation state and rehydrate it, being able to interact with the it, being able to interact with the it, being able to interact with the artifacts and outputs that are produced artifacts and outputs that are produced artifacts and outputs that are produced by agents, whether they're PRs, issues, by agents, whether they're PRs, issues, by agents, whether they're PRs, issues, new files that are generated. All of

  6. new files that are generated. All of new files that are generated. All of that should kind of be structured the that should kind of be structured the that should kind of be structured the same way. same way. same way. Okay, cool. So, we gave you a place for Okay, cool. So, we gave you a place for Okay, cool. So, we gave you a place for your agent to run, and we gave you a your agent to run, and we gave you a your agent to run, and we gave you a choice for what harness you use, choice for what harness you use, choice for what harness you use, including Warp Zone harness and any including Warp Zone harness and any including Warp Zone harness and any other harnesses that you want to bring. other harnesses that you want to bring. other harnesses that you want to bring. Um Um Um what if one agent isn't enough to do what if one agent isn't enough to do what if one agent isn't enough to do work? That's the reality of most work? That's the reality of most work? That's the reality of most software engineering. software engineering. software engineering. I wish that I could just send off one I wish that I could just send off one I wish that I could just send off one prompt and solve all of the problems prompt and solve all of the problems prompt and solve all of the problems that exist in my software, but the that exist in my software, but the that exist in my software, but the reality is that real engineering work reality is that real engineering work reality is that real engineering work rarely fits inside one prompt. In a rarely fits inside one prompt. In a rarely fits inside one prompt. In a typical workflow, you might need one typical workflow, you might need one typical workflow, you might need one agent to go research a problem and plan agent to go research a problem and plan agent to go research a problem and plan a solution. You might need another agent a solution. You might need another agent a solution. You might need another agent to implement it, and you might need to to implement it, and you might need to to implement it, and you might need to bring in a third to validate it. And you bring in a third to validate it. And you bring in a third to validate it. And you might want each of these agents to use might want each of these agents to use might want each of these agents to use different harnesses and different models different harnesses and different models different harnesses and different models in order to have a real adversar- in order to have a real adversar- in order to have a real adversar- adversarial and robust approach. adversarial and robust approach. adversarial and robust approach. So, we have built-in support for that. So, we have built-in support for that. So, we have built-in support for that. You can orchestrate agents across the You can orchestrate agents across the You can orchestrate agents across the stack. Um stack. Um stack. Um with a lot of agent-based experiences, with a lot of agent-based experiences, with a lot of agent-based experiences, this orchestration happens via a prompt.

  7. this orchestration happens via a prompt. this orchestration happens via a prompt. So, I say {slash} orchestrate, or I So, I say {slash} orchestrate, or I So, I say {slash} orchestrate, or I queue the agent via prompting that I queue the agent via prompting that I queue the agent via prompting that I want it to delegate work across multiple want it to delegate work across multiple want it to delegate work across multiple sub agents for a task that I have here. sub agents for a task that I have here. sub agents for a task that I have here. And this orchestrator agent will do all And this orchestrator agent will do all And this orchestrator agent will do all of the messy complexity of interacting of the messy complexity of interacting of the messy complexity of interacting with sub agents, mediating messages with sub agents, mediating messages with sub agents, mediating messages between them, and tracking the work between them, and tracking the work between them, and tracking the work that's happening for me behind the that's happening for me behind the that's happening for me behind the scenes with a single prompt. We abstract scenes with a single prompt. We abstract scenes with a single prompt. We abstract complexity away from the user by giving complexity away from the user by giving complexity away from the user by giving them this experience. them this experience. them this experience. This sort of like prompt-based model for This sort of like prompt-based model for This sort of like prompt-based model for interacting with agents and subagents is interacting with agents and subagents is interacting with agents and subagents is really powerful. really powerful. really powerful. An even more interesting one is the An even more interesting one is the An even more interesting one is the notion of interacting with agents and notion of interacting with agents and notion of interacting with agents and subagents via the API. subagents via the API. subagents via the API. So, everything in our surface area is So, everything in our surface area is So, everything in our surface area is exposed via an API, and I can fire off a exposed via an API, and I can fire off a exposed via an API, and I can fire off a request to say that I want to run a request to say that I want to run a request to say that I want to run a subagent that is attached to a parent subagent that is attached to a parent subagent that is attached to a parent agent um via configuration that I agent um via configuration that I agent um via configuration that I provide. And this API is super magical provide. And this API is super magical provide. And this API is super magical because because because this is the key component of a platform.

  8. this is the key component of a platform. this is the key component of a platform. Um it's exposing the primitives in a way Um it's exposing the primitives in a way Um it's exposing the primitives in a way that users can build on top of. that users can build on top of. that users can build on top of. Um the thing about great APIs and SDKs Um the thing about great APIs and SDKs Um the thing about great APIs and SDKs is people can build on top of them, is people can build on top of them, is people can build on top of them, which means that they're not restricted which means that they're not restricted which means that they're not restricted to your UI or your opinion of how a to your UI or your opinion of how a to your UI or your opinion of how a particular experience should look. This particular experience should look. This particular experience should look. This is where like composability becomes is where like composability becomes is where like composability becomes really powerful. really powerful. really powerful. And so, we're trying to be intentional And so, we're trying to be intentional And so, we're trying to be intentional about exposing an API for every key about exposing an API for every key about exposing an API for every key component of the stack. So, this is APIs component of the stack. So, this is APIs component of the stack. So, this is APIs for spinning up agents and subagents, for spinning up agents and subagents, for spinning up agents and subagents, for managing the environments and for managing the environments and for managing the environments and compute that these agents are running compute that these agents are running compute that these agents are running in, for working with the artifacts that in, for working with the artifacts that in, for working with the artifacts that they produce. All of that is exposed in they produce. All of that is exposed in they produce. All of that is exposed in an API that you can build on top of. an API that you can build on top of. an API that you can build on top of. Um Um Um and this ability to build on top of and this ability to build on top of and this ability to build on top of these primitives that are exposed via an these primitives that are exposed via an these primitives that are exposed via an API becomes really useful because anyone API becomes really useful because anyone API becomes really useful because anyone can build tools that overlap on top of can build tools that overlap on top of can build tools that overlap on top of these agentic experiences. these agentic experiences. these agentic experiences. >> [snorts] >> [snorts] >> [snorts] >> Um >> Um >> Um like interesting phenomena that's like interesting phenomena that's like interesting phenomena that's happened for us internally is we have a happened for us internally is we have a happened for us internally is we have a bunch of non-engineering teammates at bunch of non-engineering teammates at bunch of non-engineering teammates at Warp who have been able to use our SDK Warp who have been able to use our SDK Warp who have been able to use our SDK and API to build custom Slack bots to do and API to build custom Slack bots to do and API to build custom Slack bots to do a bunch of things. Um so we have folks a bunch of things. Um so we have folks a bunch of things. Um so we have folks in our developer relations team who have in our developer relations team who have in our developer relations team who have actually built out tooling to help us actually built out tooling to help us actually built out tooling to help us manage all of our social mentions. Um so manage all of our social mentions. Um so manage all of our social mentions. Um so as tweets and Reddit posts and things as tweets and Reddit posts and things as tweets and Reddit posts and things are coming in, we have agents that will are coming in, we have agents that will are coming in, we have agents that will pick them up, do some sentiment analysis pick them up, do some sentiment analysis pick them up, do some sentiment analysis on them, try and understand what the on them, try and understand what the on them, try and understand what the user wants, and then propose a response user wants, and then propose a response user wants, and then propose a response that um folks on our social media team

  9. that um folks on our social media team that um folks on our social media team should use and um respond to the should use and um respond to the should use and um respond to the original tweet or Reddit post or what original tweet or Reddit post or what original tweet or Reddit post or what have you. And all of this is enabled by have you. And all of this is enabled by have you. And all of this is enabled by our SDK. And you see like a plethora of our SDK. And you see like a plethora of our SDK. And you see like a plethora of these types of experiences these types of experiences these types of experiences um um um internally at Warp. Um we have people internally at Warp. Um we have people internally at Warp. Um we have people who have used them to help answer who have used them to help answer who have used them to help answer queries about how our product is queries about how our product is queries about how our product is working, do competitive research, all working, do competitive research, all working, do competitive research, all sorts of interesting things. sorts of interesting things. sorts of interesting things. Um and these primitives became a really Um and these primitives became a really Um and these primitives became a really big deal for us specifically when we big deal for us specifically when we big deal for us specifically when we decided to go open source. decided to go open source. decided to go open source. Um as I mentioned earlier, Warp started Um as I mentioned earlier, Warp started Um as I mentioned earlier, Warp started off as a terminal um but it grew into an off as a terminal um but it grew into an off as a terminal um but it grew into an agentic development environment. And agentic development environment. And agentic development environment. And about 3 months ago, we decided to go about 3 months ago, we decided to go about 3 months ago, we decided to go open source. open source. open source. Um this was like much anticipated, Um this was like much anticipated, Um this was like much anticipated, long-awaited. It was a huge success for long-awaited. It was a huge success for long-awaited. It was a huge success for us. us. us. Um the number of like GitHub stars that Um the number of like GitHub stars that Um the number of like GitHub stars that we had, I think catapulted from around we had, I think catapulted from around we had, I think catapulted from around 20,000 to over 60,000. We had thousands 20,000 to over 60,000. We had thousands 20,000 to over 60,000. We had thousands of PRs. I'll talk a little bit more of PRs. I'll talk a little bit more of PRs. I'll talk a little bit more about how we've been managing that. And about how we've been managing that. And about how we've been managing that. And hundreds of contributors who had been hundreds of contributors who had been hundreds of contributors who had been long-time users of the platform and were long-time users of the platform and were long-time users of the platform and were finally getting a chance to build on top finally getting a chance to build on top finally getting a chance to build on top of it.

  10. of it. of it. And when we went open source, we wanted And when we went open source, we wanted And when we went open source, we wanted to be really thoughtful about how we to be really thoughtful about how we to be really thoughtful about how we could use agents to help us manage the could use agents to help us manage the could use agents to help us manage the repository. repository. repository. We didn't want this to be the kind of We didn't want this to be the kind of We didn't want this to be the kind of thing where agents are just writing code thing where agents are just writing code thing where agents are just writing code and firing off PRs. We want them them to and firing off PRs. We want them them to and firing off PRs. We want them them to participate kind of meaningfully in the participate kind of meaningfully in the participate kind of meaningfully in the structure that we use to triage issues structure that we use to triage issues structure that we use to triage issues that came into the repo, provide context that came into the repo, provide context that came into the repo, provide context around them, do implementation, do around them, do implementation, do around them, do implementation, do reviews, reviews, reviews, but still have the space for humans to but still have the space for humans to but still have the space for humans to participate in this loop. participate in this loop. participate in this loop. And we did that. So, if you go to the And we did that. So, if you go to the And we did that. So, if you go to the Warp open-source repo right now, you'll Warp open-source repo right now, you'll Warp open-source repo right now, you'll notice that if you file a new issue with notice that if you file a new issue with notice that if you file a new issue with a bug report or a feature request, an a bug report or a feature request, an a bug report or a feature request, an agent will kick in and start to triage agent will kick in and start to triage agent will kick in and start to triage the issue automatically. It'll do the issue automatically. It'll do the issue automatically. It'll do research across the code base and research across the code base and research across the code base and context in the repo to understand what context in the repo to understand what context in the repo to understand what you're trying to propose. It might ask you're trying to propose. It might ask you're trying to propose. It might ask you questions if it feels like your you questions if it feels like your you questions if it feels like your original query was a little abstract to original query was a little abstract to original query was a little abstract to get more information, and it will kind get more information, and it will kind get more information, and it will kind of do the work that's historically been of do the work that's historically been of do the work that's historically been very hard for open source, which is very hard for open source, which is very hard for open source, which is somebody has a problem or a bug that somebody has a problem or a bug that somebody has a problem or a bug that they want fixed. They don't give you they want fixed. They don't give you they want fixed. They don't give you enough details, and it's hard to get to enough details, and it's hard to get to enough details, and it's hard to get to the clarity that you need to get to to the clarity that you need to get to to the clarity that you need to get to to like drive the work forward. So, we can like drive the work forward. So, we can like drive the work forward. So, we can use agents to help us meaningfully in use agents to help us meaningfully in use agents to help us meaningfully in that way. They can also help draft that way. They can also help draft that way. They can also help draft initial specifications and work for initial specifications and work for initial specifications and work for tasks, do implementation, and provide a tasks, do implementation, and provide a tasks, do implementation, and provide a review gate. So, all PRs that get review gate. So, all PRs that get review gate. So, all PRs that get contributed to Warp go through an contributed to Warp go through an contributed to Warp go through an agent-managed review process. And it agent-managed review process. And it agent-managed review process. And it goes through multiple iterations, and we goes through multiple iterations, and we goes through multiple iterations, and we don't actually ping any of the human don't actually ping any of the human don't actually ping any of the human reviewers on our team until an agent has

  11. reviewers on our team until an agent has reviewers on our team until an agent has approved our PRs, um which helps manage approved our PRs, um which helps manage approved our PRs, um which helps manage the workload a lot for the team. So, all the workload a lot for the team. So, all the workload a lot for the team. So, all of those thousands of PRs, the things of those thousands of PRs, the things of those thousands of PRs, the things that humans actually have to manage are that humans actually have to manage are that humans actually have to manage are only the high-signal, high-quality ones. only the high-signal, high-quality ones. only the high-signal, high-quality ones. And one of the key principles is that we And one of the key principles is that we And one of the key principles is that we improve the agent as um we get more PRs improve the agent as um we get more PRs improve the agent as um we get more PRs in the repo and we see more examples of in the repo and we see more examples of in the repo and we see more examples of code. One of the things that we believe code. One of the things that we believe code. One of the things that we believe is that self-improvement loops are a is that self-improvement loops are a is that self-improvement loops are a really important way for you to enhance really important way for you to enhance really important way for you to enhance the overall SDLC life cycle that you're the overall SDLC life cycle that you're the overall SDLC life cycle that you're seeing. seeing. seeing. So, we did this. So, we did this. So, we did this. And we had a lightbulb moment cuz it And we had a lightbulb moment cuz it And we had a lightbulb moment cuz it unlocked something huge. We had this unlocked something huge. We had this unlocked something huge. We had this like structured process that could like structured process that could like structured process that could accommodate a big influx of issues and accommodate a big influx of issues and accommodate a big influx of issues and PRs on the repo. Um PRs on the repo. Um PRs on the repo. Um and the agents were there to support and the agents were there to support and the agents were there to support anyone in bringing their idea or their anyone in bringing their idea or their anyone in bringing their idea or their bug request bug feature request or bug bug request bug feature request or bug bug request bug feature request or bug report to us or to work and then getting report to us or to work and then getting report to us or to work and then getting it through to the actual product. it through to the actual product. it through to the actual product. That key insight of agents providing That key insight of agents providing That key insight of agents providing like structure and context was a really like structure and context was a really like structure and context was a really big thing for us cuz it meant that it big thing for us cuz it meant that it big thing for us cuz it meant that it could anyone could kind of participate could anyone could kind of participate could anyone could kind of participate in translating their intent into in translating their intent into in translating their intent into implementation.

  12. implementation. implementation. And often times the people who have And often times the people who have And often times the people who have really interesting intents and goals are really interesting intents and goals are really interesting intents and goals are the ones who are using software in the ones who are using software in the ones who are using software in interesting ways. And it's not always interesting ways. And it's not always interesting ways. And it's not always the person that's building it. It's the the person that's building it. It's the the person that's building it. It's the person who's kind of got domain person who's kind of got domain person who's kind of got domain knowledge in the space. And work we're knowledge in the space. And work we're knowledge in the space. And work we're lucky because we're developers building lucky because we're developers building lucky because we're developers building a developer tool and that's a really a developer tool and that's a really a developer tool and that's a really unique niche to fill in. But most unique niche to fill in. But most unique niche to fill in. But most software is developers building tools software is developers building tools software is developers building tools for non-developers for non-developers for non-developers or people in situations where they don't or people in situations where they don't or people in situations where they don't have domain expertise. have domain expertise. have domain expertise. If we provide these structures and If we provide these structures and If we provide these structures and guardrails though, people who are guardrails though, people who are guardrails though, people who are non-developers can non-developers can non-developers can have the necessary tools to like ship have the necessary tools to like ship have the necessary tools to like ship serious software because the serious software because the serious software because the infrastructure to support them exists. infrastructure to support them exists. infrastructure to support them exists. Oh, this is where like things get buzzy. Oh, this is where like things get buzzy. Oh, this is where like things get buzzy. You might have heard this term of the You might have heard this term of the You might have heard this term of the software factory. People talk about it a software factory. People talk about it a software factory. People talk about it a lot as far as like automating how lot as far as like automating how lot as far as like automating how software gets built, providing these software gets built, providing these software gets built, providing these systems for doing work, systems for doing work, systems for doing work, all of these fun things. all of these fun things. all of these fun things. I kind of want to push back on this term I kind of want to push back on this term I kind of want to push back on this term a little bit. I kind of actually hate it a little bit. I kind of actually hate it a little bit. I kind of actually hate it cuz I don't think it gets the point cuz I don't think it gets the point cuz I don't think it gets the point across and it feels a little across and it feels a little across and it feels a little Where's the people in this?

  13. Where's the people in this? Where's the people in this? So I want to tell a story So I want to tell a story So I want to tell a story before I share what I think is actually before I share what I think is actually before I share what I think is actually the better word. So this is a mug that I the better word. So this is a mug that I the better word. So this is a mug that I have. I bought this mug about two have. I bought this mug about two have. I bought this mug about two summers ago from a farmer's market. summers ago from a farmer's market. summers ago from a farmer's market. And I stopped by this booth at the And I stopped by this booth at the And I stopped by this booth at the farmer's market and you could just tell farmer's market and you could just tell farmer's market and you could just tell the person who had crafted this the the person who had crafted this the the person who had crafted this the potter was just someone who's like potter was just someone who's like potter was just someone who's like really passionate about their work and really passionate about their work and really passionate about their work and what they do. And so, he was telling me what they do. And so, he was telling me what they do. And so, he was telling me about all of these interesting details about all of these interesting details about all of these interesting details in the mug, the specific like curve of in the mug, the specific like curve of in the mug, the specific like curve of the handle, and the way he had the handle, and the way he had the handle, and the way he had structured it to accommodate different structured it to accommodate different structured it to accommodate different people's hands. He had this like people's hands. He had this like people's hands. He had this like specific dimple at the top of the handle specific dimple at the top of the handle specific dimple at the top of the handle where you could rest your thumb cuz he where you could rest your thumb cuz he where you could rest your thumb cuz he felt like that was like a key ergonomic felt like that was like a key ergonomic felt like that was like a key ergonomic detail of this mug. He had this glazing detail of this mug. He had this glazing detail of this mug. He had this glazing at the top, so if like your cup at the top, so if like your cup at the top, so if like your cup overflowed, it wouldn't dribble down the overflowed, it wouldn't dribble down the overflowed, it wouldn't dribble down the sides, the glazing would kind of catch sides, the glazing would kind of catch sides, the glazing would kind of catch it. So, he just spent so much time it. So, he just spent so much time it. So, he just spent so much time thinking about the details of the mug thinking about the details of the mug thinking about the details of the mug and crafting it. and crafting it. and crafting it. And then I was kind of talking to him And then I was kind of talking to him And then I was kind of talking to him about his workshop, like how many about his workshop, like how many about his workshop, like how many potters do you have? How many of these potters do you have? How many of these potters do you have? How many of these mugs are you making? Yada yada. mugs are you making? Yada yada. mugs are you making? Yada yada. And he got more even more animated and And he got more even more animated and And he got more even more animated and he started talking about his workshop he started talking about his workshop he started talking about his workshop setup and how he had set up different setup and how he had set up different setup and how he had set up different stations for different components of the stations for different components of the stations for different components of the mug. He had talked about how he had a mug. He had talked about how he had a mug. He had talked about how he had a specific process for sourcing clay and specific process for sourcing clay and specific process for sourcing clay and preparing ahead of time. He talked about preparing ahead of time. He talked about preparing ahead of time. He talked about how he actually incorporated how he actually incorporated how he actually incorporated verification for different components of verification for different components of verification for different components of the mug. If the dimple wasn't the right the mug. If the dimple wasn't the right the mug. If the dimple wasn't the right size, what would you do? What part of size, what would you do? What part of size, what would you do? What part of the process would you restart?

  14. the process would you restart? the process would you restart? All of this thought that he had put not All of this thought that he had put not All of this thought that he had put not into the mug itself, but how the into the mug itself, but how the into the mug itself, but how the workshop existed to support the creation workshop existed to support the creation workshop existed to support the creation of the mug, and how he was able to scale of the mug, and how he was able to scale of the mug, and how he was able to scale this to dozens of apprentices in his this to dozens of apprentices in his this to dozens of apprentices in his shop and like hundreds of mugs shop and like hundreds of mugs shop and like hundreds of mugs handcrafted per day, which is pretty handcrafted per day, which is pretty handcrafted per day, which is pretty impressive. impressive. impressive. And this got me thinking, I love what he And this got me thinking, I love what he And this got me thinking, I love what he did with his workshop. Um he had this did with his workshop. Um he had this did with his workshop. Um he had this really great idea and he developed a really great idea and he developed a really great idea and he developed a serious and repeatable system that serious and repeatable system that serious and repeatable system that allowed anyone to take the idea of a allowed anyone to take the idea of a allowed anyone to take the idea of a perfect mug and turn it into the like perfect mug and turn it into the like perfect mug and turn it into the like actual existence of a perfect mug. actual existence of a perfect mug. actual existence of a perfect mug. You know, You know, You know, some people might think like workshops some people might think like workshops some people might think like workshops are this quaint thing where it's like a are this quaint thing where it's like a are this quaint thing where it's like a workspace for a single individual, but I workspace for a single individual, but I workspace for a single individual, but I think the story really shows that think the story really shows that think the story really shows that they're actually heavy-duty systems for they're actually heavy-duty systems for they're actually heavy-duty systems for doing work and that they're malleable doing work and that they're malleable doing work and that they're malleable and that they react to signals in how and that they react to signals in how and that they react to signals in how people are interacting with the thing people are interacting with the thing people are interacting with the thing they're building in the space they're they're building in the space they're they're building in the space they're building it. building it. building it. Um and it also underscores the like Um and it also underscores the like Um and it also underscores the like really close interaction loop that really close interaction loop that really close interaction loop that humans have with the spaces they work in humans have with the spaces they work in humans have with the spaces they work in and the outputs that are produced. And and the outputs that are produced. And and the outputs that are produced. And I'm synthesizing all of these ideas and I'm synthesizing all of these ideas and I'm synthesizing all of these ideas and I think this is what really we're I think this is what really we're I think this is what really we're driving at when we talk about building driving at when we talk about building driving at when we talk about building software factories.

  15. software factories. software factories. We want to give more builders and the We want to give more builders and the We want to give more builders and the definition of who a builder is is definition of who a builder is is definition of who a builder is is expanding to non-developers expanding to non-developers expanding to non-developers serious systems for turning their ideas serious systems for turning their ideas serious systems for turning their ideas into code. Um and we as individuals into code. Um and we as individuals into code. Um and we as individuals who've been building dev tooling or have who've been building dev tooling or have who've been building dev tooling or have been in software engineering for a long been in software engineering for a long been in software engineering for a long time have an understanding of what that time have an understanding of what that time have an understanding of what that serious system looks like and what kind serious system looks like and what kind serious system looks like and what kind of support it needs to give into of support it needs to give into of support it needs to give into individuals. individuals. individuals. Um we break this down into the same Um we break this down into the same Um we break this down into the same techniques that my potter friend had and techniques that my potter friend had and techniques that my potter friend had and the same methodologies that I talked the same methodologies that I talked the same methodologies that I talked about earlier about exposing primitives. about earlier about exposing primitives. about earlier about exposing primitives. Um we expose things like the ability for Um we expose things like the ability for Um we expose things like the ability for these agents to implement automations these agents to implement automations these agents to implement automations that react to events in the real world that react to events in the real world that react to events in the real world the same way that a human in a workspace the same way that a human in a workspace the same way that a human in a workspace might need need to react to a real event might need need to react to a real event might need need to react to a real event of you know a kiln um being astray or a of you know a kiln um being astray or a of you know a kiln um being astray or a handle being broken. handle being broken. handle being broken. We need to make these systems We need to make these systems We need to make these systems observable. My potter friend talked observable. My potter friend talked observable. My potter friend talked about how he actually watched the way about how he actually watched the way about how he actually watched the way people worked in his space and refined people worked in his space and refined people worked in his space and refined the process over time. That doesn't come the process over time. That doesn't come the process over time. That doesn't come for free. Your system has to actually be for free. Your system has to actually be for free. Your system has to actually be something that you can inspect and look something that you can inspect and look something that you can inspect and look into.

  16. into. into. And it has to improve over time. The And it has to improve over time. The And it has to improve over time. The workspace is not the static component workspace is not the static component workspace is not the static component that doesn't change ever. It needs to that doesn't change ever. It needs to that doesn't change ever. It needs to react to what's going on and modify react to what's going on and modify react to what's going on and modify itself to amend to like the goals of the itself to amend to like the goals of the itself to amend to like the goals of the people that are working in it and the people that are working in it and the people that are working in it and the product that it's producing. product that it's producing. product that it's producing. And it needs to be cost-effective. Uh And it needs to be cost-effective. Uh And it needs to be cost-effective. Uh you want to reduce the number of broken you want to reduce the number of broken you want to reduce the number of broken mugs that come out the other end. You mugs that come out the other end. You mugs that come out the other end. You want to reduce the amount of buggy want to reduce the amount of buggy want to reduce the amount of buggy software that comes out of the other end software that comes out of the other end software that comes out of the other end of your of your factory. Um and you want of your of your factory. Um and you want of your of your factory. Um and you want to do this without compromising on cost to do this without compromising on cost to do this without compromising on cost without spending too many tokens. without spending too many tokens. without spending too many tokens. All of these principles work to achieve All of these principles work to achieve All of these principles work to achieve a shared goal and that shared goal is a shared goal and that shared goal is a shared goal and that shared goal is building systems that remove toil and building systems that remove toil and building systems that remove toil and drudgery from our software process so drudgery from our software process so drudgery from our software process so that more people have the ability to that more people have the ability to that more people have the ability to build. We've seen the way like toil and build. We've seen the way like toil and build. We've seen the way like toil and drudgery have manifested. It could be drudgery have manifested. It could be drudgery have manifested. It could be all of the difficulty you might have all of the difficulty you might have all of the difficulty you might have reproducing a bug, the challenges of reproducing a bug, the challenges of reproducing a bug, the challenges of monitoring a production system. Those monitoring a production system. Those monitoring a production system. Those are things that are really hard to do.

  17. are things that are really hard to do. are things that are really hard to do. And we can finally start to think about And we can finally start to think about And we can finally start to think about the structure of how we do them and the structure of how we do them and the structure of how we do them and building systems that allow us to do building systems that allow us to do building systems that allow us to do them repeatedly and transferably to them repeatedly and transferably to them repeatedly and transferably to people who are in non-technical roles. people who are in non-technical roles. people who are in non-technical roles. If these ideas excite you about how we If these ideas excite you about how we If these ideas excite you about how we can build these robust and reliable can build these robust and reliable can build these robust and reliable systems for anyone to ship software, systems for anyone to ship software, systems for anyone to ship software, you could stop by the Warp booth to come you could stop by the Warp booth to come you could stop by the Warp booth to come talk to me and the crew. We're at UG 20. talk to me and the crew. We're at UG 20. talk to me and the crew. We're at UG 20. You can also mention me on Twitter. I'm You can also mention me on Twitter. I'm You can also mention me on Twitter. I'm Captain Sophia on all social media, Captain Sophia on all social media, Captain Sophia on all social media, GitHub, Twitter, all of that fun stuff. GitHub, Twitter, all of that fun stuff. GitHub, Twitter, all of that fun stuff. Or just drop me an email. You can find Or just drop me an email. You can find Or just drop me an email. You can find my email on my personal site. my email on my personal site. my email on my personal site. Thanks for coming to this presentation. Thanks for coming to this presentation. Thanks for coming to this presentation. I hope you learned something interesting I hope you learned something interesting I hope you learned something interesting about some of the engineering about some of the engineering about some of the engineering philosophies that are driving the next philosophies that are driving the next philosophies that are driving the next set of work we do as far as agents, set of work we do as far as agents, set of work we do as far as agents, developers, and AI. developers, and AI. developers, and AI. >> [applause]

Summary

The session discusses the development of Warp's cloud agent platform, focusing on the "why" behind its creation, emphasizing that effective developer tools meet users where they are and evolve with their needs. The speaker, drawing from experience in developer tooling and AI agents, highlights the importance of adaptable tools that accommodate individual preferences and workflows for increased productivity and a compounding positive effect on software development. The conclusion is that these principles are crucial as AI tooling continues to advance and integrate into developer environments.

View original episode ↗