Velocity Coding, Not Vibe Coding // Benjamin Guo
speaker

Ben was an early engineer at Venmo and then spent 8 years at Stripe (2015-2023), where he was the founding engineer that created Terminal, Stripe's in-person payments product. He's now building Zo Computer, the world's first AI computer: an agentic personal server that you can use to do research, build personal automations, and more.
SUMMARY
I went viral for spending $9k on Cursor in 1 month, and I wrote half a million lines of code building Zo Computer over the last 4 months. In this talk, I'll share everything I would've wanted to know when I was just getting started. Coding with AI done right is leveraged thinking, and I'll share the workflows we use on our team to ship high-quality code at breakneck speed.
TRANSCRIPT
Benjamin Guo [00:00:05]: So this talk is about velocity coding, and it's all about basically how I think about coding with AI in general. And I'll. I'll start with my general principles. And I think a lot of this translates to how we can work effectively with AI and machines in general in the future. So we'd love to spend some time that later on, but I'll just get into the top talk. My name is Ben. I've been an engineer for over a decade. I worked at stripe for eight years starting in 2015, and I left in 2023 to become the startup founder.
Benjamin Guo [00:00:37]: And as a founder, you know that speed and moving fast is really existential. It's like a really huge part of doing a startup is building stuff quickly, validating quickly, and figuring out what to do. So follow me on Twitter to kind of like follow my founder journey and also my coding with AI journey. It's been a big transformation for me, going from coding manually to coding with AI basically 100% of the time this year. And I'll be talking a lot about just how I approach that. What I'm working on, like what I'm building is Zoe Computer Zoho is the best place to build personal software. And I'll talk about this at the end. I can give you a little demo of the product, but the point is that it's a pretty complex product.
Benjamin Guo [00:01:25]: It is a full AI agent with its own computer. And we built the mvp, just me and my co founder, in June and July of this year. It was an MVP in about two months of like a very complex product. I personally wrote around 500,000 lines of code in those two months. And I was spending $6,000 a month in the first two months on cursor, which is a lot. And I went kind of viral for this, this number, but it was necessary. It was a big part of kind of getting to the MVP of this product, which now kind of goes head to head with products like Manus and Lovable and other kind of AI assistants and workspaces. So all this is to say is that it's very possible to code effectively and write a lot of code effectively with AI if you do it in a principled way and if you're coming at it from kind of solid engineering best practices, all the practices I learned working at Stripe and other startups for over a decade, all of those lessons still apply.
Benjamin Guo [00:02:29]: And I'm going to share how I kind of think about this new world of working with AI and writing code and kind of how software engineering evolves. For this day and age. So I'm going to zoom out all the way and talk about how we work with AI effectively and how we maybe can learn from how other people in other industries operate machines. In Japan and in some other countries, there's this practice called point and call, which they use to operate things like railways. And it's all about basically keeping you really focused while you are operating, having machinery, working with a complex system. And basically all you do is you point out what you're going to do and then you call it out and then you do it. So it keeps you kind of like in this, like, really good cycle of just like being essentially locked into what you're doing. And I think that's like, really crucial for working effectively with AI.
Benjamin Guo [00:03:26]: So basically, as I said, be one with machine and then you have to synchronize your perception and your action. So in a nutshell, as I do that when I'm working with code, it's really the same practice, and I think it also applies to working with an engineering team. What you do is you state what you perceive or understand to be true, you state what you expect to happen, and then you trust, but you verify. I'll go over this in detail in following slides. When you think about how to move fast in code base and what it means to be in a flow state, it means that you can point and call requests really fast, so you know where everything is, so you can point to it quickly and then you can call out what to do because you know what everything does. So that's kind of like a big part of my thesis is that to maintain flow and to move fast in a code base, when you're working with AI, you just have to be able to point and call really fast. So you get this, like, really fast iteration loop. Another related kind of piece of wisdom here is that coding effectively has always been about first getting the end to end working right.
Benjamin Guo [00:04:32]: The mvp, as some people call it. This is a famous Kent Beck quote, which is to make it work, then make it right and then make it fast. And that still applies with AI. The difference is, of course, that you can just make it work really fast and you can also kind of do all these pieces a lot faster than before. You can also optimize it or make it better super fast using AI. But it's all about when you're coding. It's kind of a thinking process at first, and then after that thinking process, it becomes an execution process. So coding has always been a form of thinking about thinking in Systems and kind of the writing of the code, the executing it just requires the steep focus state, this fast feedback cycle.
Benjamin Guo [00:05:13]: And to summarize, it's about context, which is thinking and flow. And this translates directly into how you use AI systems to code better. So it's all about finding the right context, doing this leveraged form of thinking, and then finding your flow, which is when you're working with AI, kind of more like managing a team. It's all about delegating effectively to different agents and setting up systems for success. So when it comes to context and leverage thinking with AI, for me it's all about simulation first of all and then cast knowledge. So I'll talk about what I mean here. Leverage Thinking is all about kind of simulating the ways that you want the code to change before you actually do it. This is a really good opportunity to kind of like make move faster and explore different options without actually writing the code.
Benjamin Guo [00:06:02]: Planning is a huge part of my process and this is basically my whole process on the thinking stage. I first do some research in the code, some of it manually. Then I generate a plan and I iterate a lot on these plans and I save all the plans in our code base. Our whole team does this. We have this big archive of plans that we've used and it's a history of the stuff that I've worked on just in this folder in our code base. So plans are really important. Plans are really the new code for me. I look at plans and I review them and I barely or I still look at the code, but mostly as I'm coding, I'm looking at these plans.
Benjamin Guo [00:06:38]: This is how I structure my plans. You can see how they look on the right. They start out with a high level summary of the phases of the plan. So my plans are broken into discrete phases and then my plans expand on these phases, growing out from a tight summary of the files that are changing and a summary of the changes and then going deeper into the specific implementation changes. All of this results in a really nice compact doc that starts high level and goes deeper that I can review first at a glance just to see if the direction is right. And then I can dive deeper and work with AI on various details. And I'm planning for a long time. This is like the main part of my process is really just working on these plans.
Benjamin Guo [00:07:28]: Your plan prompt is really important, so it's really important to I think customize the way that your planning works. So I have a pretty complex planning prompt that we use on our team. Everybody uses it and it is full of little details about how we want our code base to evolve. Because if the plan is the main artifact now that you're working with, plans are essential. They're the seed for your whole code base. That means that the plan prompt, like the instructions for agent to construct the plan, is also super important because that is the meta seed for every code commit that gets generated in your code base. I think of the planning prompt as my lean engineer in a way, because it has all these kind of rules and styles and philosophies baked into it. It's how I want my system to evolve.
Benjamin Guo [00:08:19]: It covers things that should be considered with every plan and also how the plan should be formatted so that I can see any potential issues really quickly. And that's it. That's it on context. It's all about planning. Next up, I'm going to talk about flow, which is the second half of the equation when you're working with AI. So flow is when you have a plan, kind of how do you work effectively with it to kind of of create a sense of flow as you're working both individually and as a team. So with AI, the flow state is quite different from writing the code manually yourself. To me, I think it feels similar to managing a team.
Benjamin Guo [00:08:56]: So it's all about skillfully delegating, thinking about the hard tasks that you think you really need to think about with your human brain, and then delegating smaller tasks and then finally setting up the right systems for success. So it feels it's the same kind of thought process that you would use if you were managing an engineering team. So this is kind of the full summary of my process and taking it back to that point and call concept. So the fingers here, the pointing, that's like a human thing that I do. And then the little bot emoji is kind of the AI doing something. So as you can see, it's this like back and forth process. So first I find the right context by hand in my code base, I'll open the files and I'll mention them to the AI. Then I'll ask AI to generate the plan.
Benjamin Guo [00:09:41]: So this is a handoff to AI. I kind of pointed and called what I wanted. And then the AI generates. I use the slow AI model because those are generally better at kind of doing more research and producing good plans. And then I look at the plan and it's back to me. And I will point and call out things in the plan. I'll clarify my understanding of things, or I will point out Things to edit and I. And then it's back to the AI to generate the diff.
Benjamin Guo [00:10:05]: Once I'm happy with the plan here, once the plan is super locked and I'm really happy with it, it's really easy to generate the code because the plan basically has all the code changes in it. I try to generate the code incrementally in those phases that I mentioned before in my plan. So that lets me as a human, review the small diffs by hand. And then in these incremental diffs, I can point out things I want to change to the AI and, and then keep generating the code. And then finally there's this kind of PR review process, which has also evolved with AI. With AI, PR review is kind of a collaborative process with an AI reviewer. And I'll talk more about that as well. But this is kind of a summary of my process.
Benjamin Guo [00:10:46]: So first it's about finding the right context. I like to just do this by hand because I think it's important to not lose touch with the code. An important measure for your familiarity with a code base is how fast you just know where something is. And if there's a bug or if there's a screen, you should just know where in the code base that is, because then your process with AI is a lot faster because you can just mention exactly where you know things need to change. So I think it's really important to kind of really emphasize this because often you can lose touch with the code if you're just fully working with AI. And for me, I try to like, spend, spend a lot of time just looking at the code myself, browsing it, feeling how it feels. I think that's still very important in this day and age. Then I generate a plan and here I use a slower AI model because I'm trying to optimize for code quality and not speed of generation.
Benjamin Guo [00:11:40]: Right Now I like GP5 codecs. I'm going to try Gemini 3 in my process this week. And then it's important to iterate a lot on that plan. I browse the code, I criticize the plan, and I really don't settle here. It's really important to be ruthless. I when with the quality of your plans because those result in the actual code. In general, it's important to keep an eye on whether the code quality in your code base is generally improving, because if your plans are good and your process here is good and very deliberate, your code should still evolve into a better code base over time. As good code bases and good teams used to Evolve before AI.
Benjamin Guo [00:12:19]: And then finally, once you have a really solid plan, you just generate the plan with a fast AI model because all the details are already there. It's usually pretty trivial to generate the code and you can just use a smaller, faster model. And then, as I mentioned before, it's important to review these plans that are generated into diffs and phases. I typically generate one phase of the plan, then I run tests and type checks, and I review it and then I commit it. So it's a very meticulous process and that helps me go fast and keep track of what's happening. So here I try to optimize for iteration, loop. Here I'm trying to actually go faster in this phase. And sometimes I'll parallelize, I'll use multiple agents.
Benjamin Guo [00:13:02]: It's all about going from that core plan to a pr. Once you have a pr, your plan file is actually really critical here for a good result, because your plan gives the reviewing agent context on what was supposed to happen. I like this tool called Greptile. Personally, I've tried a lot of them and Greptile is what we use now on our team. But I've tried other ones in the past as well. And then finally, the thing to set up, to really set yourself up for success and for moving fast, is to think about the immune system for your code base. So healthy code bases, even before AI had immune systems which were just checks and balances, these automated things that kind of help the code just improve and be written in a certain way. I think of them in these three categories.
Benjamin Guo [00:13:46]: There are the signs, they're the systems, and then there are the ratchets. And all of this is kind of traditional stuff, but it's very important, maybe even more important in an AI centric code base because the degree of flux is much higher. It's kind of as though you're working with a bigger team because more code changes are happening. So really invest in the immune system, the kind of developer infrastructure for your code base. Finally, I want to talk about kind of how working effectively with AI is a broader thing. So here I went pretty deep into how we can work effectively with AI to code. But I think all of these principles are actually much more general. So it's all about context and flow when you're working with an agent outside of code as well.
Benjamin Guo [00:14:32]: It's all about leverage thinking and also thinking about how when you're building something with AI, whether it's code or something else, how you can kind of delegate effectively to agents, and how you can set up the right systems for success in your broader project that you're building. So I think there are cool lessons here and we're trying to apply these to Zoho Computer, which I want to talk a little bit about. So Zoho is a general environment for working effectively with AI. It's a place where you can upload all your files and connect your tools and we give you a full personal server. And this enables a different kind of model for working with AI agents. It lets you have an agent that can do anything on this personal server that you have in the cloud on your behalf. So it can research, it can set up automations on your server, it can build and host things. And because it has all of your context from the tools that you added as well as files that you have on your server, you can build your own personal software that's self hosted on your own server.
Benjamin Guo [00:15:36]: That's the vision for Zoho in a nutshell. If you look at it in comparison to other tools out there, it really is the best place to build personal software because there's lots of really great coding tools out there, but those tools don't have your personal context. And there's also a lot of really great, interesting AI assistants, but those often aren't optimized for building or hosting things. And the solution to this. Yeah, so I'm going to show you guys a quick demo of Zoho. This is Zoho Computers. My own Zoho computer Zoe's mentioned is a personal server and you can do all sorts of things in here. I use it to build a lot of personal software for myself.
Benjamin Guo [00:16:18]: So one example is this website. This is a public website that is hosted on my Zoho. It's in this folder. It also is a website that's built on top of files on my server. These notes here, like this velocity coding note, which is just a little scratch note on this talk, is powered by the contents of this folder over here, which is quite nice. Now I have essentially a blog on my host on my server and I can just edit note files and they update automatically on my website. There's all sorts of other things that I've set up in this website. I have for example, like agent tasks that go and update stuff, for example, like from a YouTube playlist that I like.
Benjamin Guo [00:17:02]: And the end result is this kind of interesting self building kind of software hosted on my server. I also have some internal apps that I like to build inside of my Zoho. So one example is sometimes I'll make slide Decks inside of Zoho. And it's nice because again, it can be driven by a file. So if I want to prototype a slide deck and just see how it feels, I can just write a markdown file and then have a slide deck presentation hosted on my Zoho computer. There's a lot of other stuff that you can do with Zoho. It has a lot of built in tools. For example, you can just transcribe any audio.
Benjamin Guo [00:17:39]: You can also connect to various tools. As I mentioned, you can even text your computer as well as connect to various services like Notion and Google Drive Calendar. So the sky is really the limit in terms of what you can do with this model of working with AI. You can customize it and set up rules just as you can in things like Cursor. So it's this interesting hybrid environment that actually is super useful. It's a full server so you can do things like host any service. So you can run NAN or any self hosted service. And we really give you kind of the full power to do what you whatever you want with this very powerful data center machine.
Benjamin Guo [00:18:22]: There are some other built in features as well. One thing that's kind of fun is you can work agentically with the Zoho agent on top of this computer. Zoe can use things like FFMPEG as well as all the tools that we provide it with. So it can generate images and then generate videos and then stitch those together using command line tools. You can even download and run practically any kind of software that can run on this Linux box. Yeah, that is essentially how Zoho works. And just to cover a little bit more, it's a full computer. So let me just show that to you here so you can kind of see it for real.
Benjamin Guo [00:19:03]: So yeah, this is kind of BTOP running on my Zoe computer. This is my terminal. So it's this interesting hybrid workspace where you can kind of both code and host and work with AI on really any anything. Yeah, I guess stepping back to the presentation, I just want to conclude on this slide. I know Adam mentioned my Twitter and LinkedIn so please follow me. I'm here on LinkedIn and Twitter and I'm watching Zoho tomorrow. Our team is launching tomorrow. We're kind of, we've been out there for a bit in a public beta.
Benjamin Guo [00:19:36]: But tomorrow is our big kind of launch moment. So keep an eye out and, and yeah, feel free to send me any questions as well. If you just want to talk about building agents, coding effectively with AI or really any of the content of this talk. I'm really happy to chat.
Adam Becker [00:19:52]: Wonderful, Ben, thank you very much. This was wild, man. This is all businesses. I mean, it's. My mind is spinning clockwise, counterclockwise and trying to just, you know, catch a glimpse of what a strange feature we're entering. And so it's cool to see you architecting it. We have a bunch of questions, more questions than we have time, but let's. Let's dive into it.
Adam Becker [00:20:20]: So I'll try to go from the beginning. Is iterating and reviewing the plan, literally adjusting the plan's text to get to the right instructions for the AI to generate all the code? Is that how people should be thinking about?
Benjamin Guo [00:20:32]: Right. Yep.
Adam Becker [00:20:33]: Yeah, got it. And do you ever go into that plan and manually modify it, or is the idea that you mostly interface with the AI to go and modify the plan?
Benjamin Guo [00:20:43]: Yeah, usually I'm chatting with AI to modify the plan. Yeah. Rarely do I manually edit anything these days.
Adam Becker [00:20:49]: And do you. Have you found that this. First of all, it's one plan and one pr. Right. Is the idea that there would ultimately be one to one mapping exactly how large is a plan typically? For example, are there various workflows that don't lend themselves to plans in the same way? For example, if you're just trying to iterate to find the right kind of color, gradient or whatever for the ui, do you come up with a plan for that or do you dedicate a full plan for some bigger chunk?
Benjamin Guo [00:21:17]: Yeah, I think it plans at the feature level or the fixed level, but if it's just kind of like tweaking ui, often I'm just vibing there.
Adam Becker [00:21:25]: Yeah, got it. Okay. And then that's true for the rest of the team, too. It's like the moment, it's something meaty. That's when you produce a plan.
Benjamin Guo [00:21:33]: Yep, yep.
Adam Becker [00:21:36]: In the plan, do you tell the AI what to do or how to do it or both?
Benjamin Guo [00:21:41]: Both. Yeah. I think it's very important to me for the plans to be very precise. They're basically kind of a compact version of the full code changes. That's how I think about it.
Adam Becker [00:21:52]: We have another one here. Xander, can you give an example of how you delegate different tasks to different types of agents while you develop?
Benjamin Guo [00:21:59]: Yeah. Often while I'm working on a plan, like a big feature, I will have parallel chats where I'm doing small polished things from my backlog, and I'll do those all at the same time, because often I'm waiting for the plan to be generated. I usually have A little batch of things I'm doing on the side.
Adam Becker [00:22:18]: Actually, I wanted to ask you about that because I notice now, let's say I use Claude code. I notice that what happens to me now is similar to what used to happen to me when I used to run a lot of spark jobs, which is I let the thing run and then I'm like, okay, so now what? What am I going to do? So then I just feed in more messages. But at some point I'm like, I got to wait for the thing to. So then what do I do? I just go to like another AI system to try to get that one. But I'm no longer really touching the existing FIL structure because I don't know it. So I feel like sometimes it's difficult to get into flow because of that type of distractiveness.
Benjamin Guo [00:22:57]: Absolutely. Yeah.
Adam Becker [00:22:58]: How do you handle that? Or how do you. Have you found some ways around it?
Benjamin Guo [00:23:01]: Yeah, that's a good question. So I like to work on one branch. I like to keep it simple and I like to have my side projects, basically, while I'm working on the big feature, to be in different parts of the code. And I want them to be things that are pretty easy to do. I know that I don't really have to like pay that much attention to it. So I'm mostly focused on the main thing. And I try not to get distracted by other agents or by Twitter or other stuff. And I try to just review the code.
Benjamin Guo [00:23:30]: So as agents doing stuff, I try to use that time to browse the code myself and like build my own kind of understanding of what's going on. And I find that that helps me like stay locked in. Yeah.
Adam Becker [00:23:42]: Do you. You mentioned that you'd like to use the slower models for. For the planning, you just switch between. Is it very tool specific, like the switching part? And do you have any recommendations for how people can experiment with it?
Benjamin Guo [00:23:56]: Yeah, I typically have two models that I'm using. I use a really smart slower model, like Codecs, and then I use the really fast model, which now for me is Cursor Composer. I don't complicate it beyond that. I just have two models. One is for planning and the other is for kind of fast stuff. I also use the planning model for debugging or anything that's kind of harder or if I just. I know that's like a tough problem. I just need to do some research on it.
Benjamin Guo [00:24:20]: I'll definitely use the big model and sometimes I'll do like parallel big model, like kind of Spikes or like kind of explorations as well. Because that can be a useful tool as well in the workflow.
Adam Becker [00:24:31]: Okay, so just so that we put it in the chat, then you said which one is the large one?
Benjamin Guo [00:24:38]: And so you said D5 codecs is my go to model. I like the style of it. I like. It's just smart. And then for my FAST model I use Cursor's built in composer model right now. But really anything works. I don't think it matters too much at that phase if your plan is.
Adam Becker [00:24:53]: Really good for the planning the live codecs and for the fast one you're using Cursor Composer. Somebody I think is asking here as well. Man, we got a lot. We got a good chunk of questions. I think the chat is buzzing.
Benjamin Guo [00:25:13]: Nice. Let's see.
Adam Becker [00:25:18]: In the plan D tell AI, is the prompt for generating a plan somewhere available? Oh yeah, I was actually. I wanted to ask the same question.
Benjamin Guo [00:25:25]: Yeah, definitely. Join our Discord, Discord, gg, Zocomputer. And I'm happy to share our planning prompt. We have an AI coding channel, so just ask.
Adam Becker [00:25:39]: Discord, gg, Zocomputer. I put it in the chat for you. Okay. How as an enterprise can Zoho computer be to build personal software for all the customers? Is that something you're thinking about?
Benjamin Guo [00:25:53]: Yeah, we've thought about kind of like organizational use of Zoho as well. We've installed businesses who are using Zoho and using that to do various things, kind of like just operational tasks. And yeah, I think the going beyond personal software, it's kind of like organizational software. And I think there's a lot of that. You see tools like Retool that have built that in the past and I think the future of that is like kind of more vibe coded personal software or organizational software.
Adam Becker [00:26:19]: Yeah, very cool. We've got another one from Subhasri here. She says, I look at Zoho computer to be more of an optimized AI execution space. Could it be deployed or available on cloud with a light runtime on a browser?
Benjamin Guo [00:26:34]: Yeah. So you can use Zoho in your browser and you get your own server and you can use it as an execution space as you said. You can also use it to host and you can really do anything with it. A lot of people use it as just a remote development environment as well. So you can kind of connect to it from your IDE and just use the server to write your code, which is also nice.
Adam Becker [00:26:53]: While I have you, Danny is saying, Danny, thank you very much. Invite Invalid for Discord. Gg, zocomb.
Benjamin Guo [00:27:00]: Oh, shoot. Oh, no. Sorry about that. Find me on X, I guess, and I'll fix that link. Apologies.
Adam Becker [00:27:10]: All right, let's see. Do we have any other. We have a few of them just sifting through. Which is your Go to Model or LLMs that you recommend? Oh, somebody else. Gerard, thank you. They put discord.com invite/zocomputer.
Benjamin Guo [00:27:25]: Oh, got it. Sorry.
Adam Becker [00:27:26]: Maybe we need an invite.
Benjamin Guo [00:27:27]: Long link on my part. Yeah. Thank you.
Adam Becker [00:27:30]: Nice. Thank you. Gerard, what LLMs do you recommend and what is your Go to Model? I think you answered that with the.
Benjamin Guo [00:27:35]: Live codecs for sure right now. Yeah.
Adam Becker [00:27:40]: Awesome. And what about, like, your choice of ide? Do you. Mostly because I saw on that blog post you go into some detail there. What is. Do you oscillate between a few. Do you have a stack of IDEs? How do you manage that?
Benjamin Guo [00:27:57]: I do use a stack. I use cursor mostly for generating the plans and generating the code. I also use Zed, which I like is my ID for Claude, and I also use that as my terminal. So I'll have Cursor open and then I'll have Zed open as my kind of like, hybrid terminal editor with cloud code, and I find that to be a nice balance.
Adam Becker [00:28:18]: Why is it that you use ZED for cloud code and not just terminal? You just find it? Yeah, I remember, like, the. It's insanely fast. I saw their little thing with, like, the tabs.
Benjamin Guo [00:28:30]: Yeah, it's super nice. It's really nice Editor if you're doing stuff in the terminal or just editing code. So, yeah, I like Zed a lot better for text editing and terminal stuff than cursor.
Adam Becker [00:28:41]: We got Rolf here saying codecs 3 was just released. You tried it, did you?
Benjamin Guo [00:28:46]: I haven't yet, actually. I'm excited, though.
Adam Becker [00:28:48]: Sorry, he means Gemini 3.
Benjamin Guo [00:28:49]: Gemini 3. No, I saw it got released today. I'm really excited to try it.
Adam Becker [00:28:53]: Okay, awesome. Well, thank you very much for joining us today. This was extremely practical, I feel, and I. And I love that.
Benjamin Guo [00:29:03]: Amazing. Yeah, that was helpful. Yeah, Definitely find me in Discord or anywhere. Happy to chat more about any of this.
Adam Becker [00:29:09]: Awesome. Wonderful. Well, thank you very much. And keep us posted on things and we'll follow you on LinkedIn and Twitter and wherever we happen to find you.
Benjamin Guo [00:29:17]: Awesome.
Adam Becker [00:29:18]: Thank you, Ben.
Benjamin Guo [00:29:19]: Thanks for having me.

