打造一款神奇的 AI 代码编辑器,在 4 个月内被超 100 万开发者使用:Windsurf 幕后
Building a magical AI code editor used by over 1m developers in 4 months: Inside Windsurf
Varun Mohan: A lot of the bets we’re making inside the company are for things that are not three, four weeks away. We should be cannibalizing the existing state of our product every six to 12 months. Every six to 12 months, it should make our existing product look silly. It should almost make the form factor of existing product look dumb.
Introducing the Guest
Lenny Rachitsky: How do you know when it’s time to hire someone?
Varun Mohan: I want the company to almost be like this dehydrated entity. Every hire is like a little bit of water, and we only go back and hire someone when we’re back to being dehydrated.
History of Windsurf and Codeium
Lenny Rachitsky: Any other there skills you think people should be investing more in with the rise of AI building more and more of our products?
From Free Autocomplete to Enterprise
Varun Mohan: The engineers are now able to produce more technology. The ROI of building technology has actually gone up. This actually means you hire more. The best thing to do is just get your hands dirty with all of these products. You could be a force multiplier to your organization in ways in which they never even anticipated.
Where AI Delivers True Value
Lenny Rachitsky: Today my guest is Varun Mohan. Varun is the co-founder and CEO of Windsurf, which has quickly become one of people’s favorite AI coding tools, and is basically the main competitor to Cursor with over 1 million users four months in. In our conversation, Varun shares what makes Windsurf unique, why they decided to invest heavily in enterprise sales very early in their history, why agency is going to be the most important skill for engineers and product builders to build, also the story of how they started out as a GPU infrastructure company and realized there was a much bigger opportunity up the stack and the two pivots that got them to where they’re today.
He also gives a live demo, advice for being successful at Windsurf, and so much more. There’s so much to learn about where things are heading for engineers and product builders in general in this conversation. And I’m really excited to bring it to you.
Thank you to everyone on LinkedIn and Twitter and my newsletter community for suggesting great questions to dig into with Varun. If you enjoy this podcast, don’t forget to subscribe and follow it in your favorite podcasting app or YouTube. Also, if you become a yearly subscriber of my newsletter, you get a year free of Perplexity Pro, Notion Plus, Linear, Granola, and Superhuman. Check it out at lennysnewsletter.com. With that, I bring you Varun Mohan.
Varun, thank you so much for being here and welcome to the podcast.
Varun Mohan: Buddy, thanks for having me. A long time listener.
Courage to Pivot and Experiment
Lenny Rachitsky: Oh, I really appreciate that. I’m so excited to have you here. I feel like just you guys have become this overnight success, which is definitely not an overnight success, but I feel like I’ve been hearing about Windsurf more and more as people’s favorite AI tool. And I just don’t think people know the story behind Windsurf, behind Codeium, the company that you built. So I thought it’d be good to maybe just start there and have you just briefly share the history of Codeium and how Windsurf emerged out of Codeium.
Windsurf vs Traditional IDEs
Varun Mohan: Yeah. So the company was actually started close to four years ago. As you know, AI coding was not a thing four years ago. ChatGPT was not out four years ago. At the time, we actually started out building GPU virtualization and compiler software. Before this, I worked in autonomous vehicles. My co-founder, who I had known since middle school, worked on AR/VR at Meta. And for us, we believe deep learning would touch many, many industries. It wouldn’t just touch autonomous vehicles. It would touch financial services, defense, healthcare. And we believe these applications were hard to build, these deep learning applications. So we made it possible for you to effectively run these complex applications on computers without GPUs, and we would handle all the complexity of being able to actually run the workload on the GPUs for you. And we were able to optimize these workloads a ton.
And in the middle of 2022 rolled around and we had a couple million in revenue and we were managing upwards of 10,000 sort of GPUs. We had eight people. At the time, we were free cash flow positive. But I think what we felt was once these generative models started to get very good, we sort of felt a lot of what we built was not as valuable. And this was a very, very hard moment for us at the company. We were only eight people at the time, but we felt, “Hey, would people be training these very bespoke sentiment classifier models anymore that were very, very custom models? Or would they just ask GPT-N, is this a positive or a negative sentiment?” Probably it’s going to be the latter, right? And in a world in which everyone was going to run generative AI models, why would an infrastructure company be a differentiator? Because everyone is going to run the same kind of infrastructure down the line.
So instead what we decided to do was we believe generative AI was almost going to be like the next internet. And in that case, what we should go out and do is build the next great apps like Google, like Amazon. And we vertically integrated and actually took our infrastructure, our inference infrastructure to go out and build Codeium at the time. And at that time, we were early adopters of GitHub Copilot and we thought the coding space was going to get tremendously disrupted in the next coming years. So we actually took our infrastructure, we ran our own models in massive scale. We even trained our own models.
In the very beginning it was very, very simple. It was purely an autocomplete model, which basically means that as the user was typing, we’d complete the next one or two or three or four lines of code. But we provided the product entirely for free in all the IDEs that developers coded. That meant to VSCode, JetBrains, Eclipse, Visual Studio, Vim, Emacs. And the reason why we were able to build it for free was because of our infrastructure background. We were able to optimize these workloads a ton.
I guess very quickly after that, some large businesses also wanted to work with us. And we built out this enterprise motion to work with these large companies like Dell, JPMorgan Chase. And for them the bigger thing wasn’t just, “Hey, could we autocomplete code or could we chat with the code base?” It was, “Could you offer us a secure offering that was also personalized to all the private data inside the company?” So we took our infrastructure and made it so that we invested a ton in making sure that we deeply understood these large companies code bases. And that’s what we were working on until six months ago.
It’s not that we’ve stopped working on that, but basically what we realized six months ago was we were getting limited by the IDEs that we were already working in. So VSCode, which is a very popular IDE, had a ceiling for the AI capabilities, we could showcase our users. And because of that, we decided to go out and fork VSCode and build our own IDE with some of these new agentic capabilities. And over time in the last couple of years, the model capabilities have also been growing exponentially year over year. And that’s sort of where we are right now. I skipped a lot of pieces there, but that’s what we’re landed.
Logic Behind the New UI
Lenny Rachitsky: There’s so many interesting threads there. One is just, there’s always this question of just where value will accrue in AI. And it’s so interesting, you guys started almost at the bottom layer of infrastructure GPUs and then you went to what people call a GPT wrapper, not actually. So I guess any just lessons there, just thoughts on just where you think value will end up in this world of AI and the stack of AI tools?
Varun Mohan: Maybe I can start by just saying one thing about startups that I think are really true, it’s very unlikely the first thing that you believe you should go work on is going to be the right thing, which is a very hard thing to kind of wrangle with being a startup founder, right? You need to kind of be irrationally optimistic that what you’re going to do is going to be differentially important. Because otherwise, why would you go out and do what you’re doing? And if it’s obvious, then a bigger company would’ve already done it, right?
But then you also need to be really, really realistic because most ideas that are, I guess, non-conventional are usually bad ideas, right? So it’s this weird tightrope you need to kind of balance on top of where you’re pushing for a future that you believe is true, but all the while you’re getting new information. You need to kill the beliefs that you had. And if I were to start with the infrastructure piece, we first went in with the assumption that model architectures were going to be really, really heterogeneous.
Working from an autonomous vehicle background, there were many different types of model architectures out there. There were convolutional neural networks, graph neural networks, recurrent neural networks, LSTMs, sort of lighter neural nets with frustrum point networks. And there were maybe tens of architectures we were dealing with. And at that point we were like, the complexity of this is so high that it’s very clear if someone offloaded the complexity, there would be a lot of value.
Fast-forward to the middle of 2023, everything looks like it’s going to be a transformer. So now our hypotheses are just wrong. So at this point then, most of the value is probably not going to accrue at purely the, at least this is our belief, at the infrastructure layer. It’s going to accrue somewhere else. Where is the layer that you can actually differentiate on? And we believe the application layer is a very, very deep layer to go out and differentiate on, right? What are the number of ways we can build better user experiences and better workflows for developers? We think there’s effectively no ceiling on that, on how much better we can make the lives of developers basically.
Windsurf’s Early Growth Metrics
Lenny Rachitsky: You touched on the second thread that I thought was really interesting here, is just how you guys pivoted from ideas that were working. You were making money, people loved it. You said you had millions of dollars of ARR revenue. And then you’re just like, “No, we’re going to completely change the business.”
So the question there is, just like, what have you learned about knowing what to follow? And one thing I heard there that was really interesting is just once your assumptions change about that you built your idea on, it’s time to think this idea and maybe try something else.
Varun Mohan: I think the way we sort of think about this is even when we’re working right now, we just accept that we’re going to get a lot of things wrong. We’re just going to get a lot of things wrong. Obviously that’s a very big moment because that was a bet the company moment in the sense that we basically said, told our investors, “Hey, we’re making money on this.” We had already raised 28 million of capital and we were just like, “Hey, we’re just going to pivot entirely from this.” And we did that overnight. This wasn’t this thing where we just said, “Hey, maybe a quarter, one or two quarters.” Because one of the things we knew that’s very important for startups is focus.
If you’re trying to do another thing that you think is big and you’re focused on something that you don’t believe is valuable, you’re guaranteed going to fail at the thing you think is going to be big. So that’s a very obvious thing there. But I think once you go in with the assumption that a lot of your hypotheses are going to be wrong, but you will do the most concentrated work possible to go out and validate these hypotheses and you won’t be in love with your ideas.
I think ideas, it’s awesome when you have a great idea, but you should never be too in love with your ideas. And you have an organization that is very truth-seeking. I think a lot of people at the company have had their ideas tested over and over again. Even just building Windsurf. That is not a complete company pivot, but that’s a big decision that we made at the company. You kind of need to make some bets. And sometimes you’re wrong and sometimes you’re right. But if you have an organization that comes out and you feel like morale is not going to be low if you made the wrong decision, that’s the best, right? That means you have optionality for the rest of time.
And Lenny, one thing that I try to tell the company about this is, this year the total amount of engineering output we’ll have is much larger than the engineering output we’ve had since the beginning of the company’s creation ‘till now. So that almost means every year is a new lease on life for us, right? It’s almost a new way for us to test out an entirely new set of hypotheses. And maybe we were wrong about our original hypotheses in the first place. What makes us more smart than everyone else to be right more times than that?
Coding Evolution in the AI Era
Lenny Rachitsky: That’s so empowering. It makes me think about… Uri Levine was on the podcast, co-founder of Waze, and he has this phrase that he wears on his shirt. His book is called this Fall in Love with the Problem, Not the Solution. And that feels like that’s exactly what you’re describing.
Okay, so let’s talk about Windsurf. What’s the simplest way for people to understand what is Windsurf?
Varun Mohan: Yeah. So Windsurf is an IDE, right? It’s an application to go out and build software and build applications. The crazy thing is a lot of people who use the product don’t even probably know what an IDE is, which is crazy. And we’ll get into that in a second.
But why did we go out and build Windsurf and what is Windsurf maybe? Why couldn’t we have just done this on top of conventional IDEs like Visual Studio Code? So maybe just to get into this a little bit, as we saw that AI was getting more and more powerful, the way people go out and build technology, we thought the interface for that was going to change remarkably. It was not going to be a conventional pure text editor where the user is writing a handful of lines of code or most of the code and the IDE provides maybe some basic feedback on what the user is doing right or wrong. And the basic feedback could be, “Hey, there’s a bug in your software or compiler error in your software.” It could do much more, right? It could actually go out and modify large chunks of code.
One of the key pieces that we recognized was, with this new paradigm with AI, AI was probably going to write well over 90% of the software, in which case the role of a developer and what they’re doing in the IDE is maybe reviewing code. Maybe it’s actually a little bit different than what it is in the past. And we’ll see this very soon with Windsurf. Maybe when you’re using the product, actually a good chunk of the user’s time is that you’re reviewing what the AI is outputting. So we needed to build custom-review flows into the IDE to actually make it so that it was easier to actually go out and do that, right? Because the developer is not spending all their time writing code.
And this is the fundamental premise on why we built the product. We thought we were going to get limited a ton if we had very, very basic UI out there. And I’ll give you even a simple example here. We have this auto-complete product that completes a handful of lines of code. Now we’ve actually launched this offering called Windsurf Tab that basically shows you refactors as well. And these refactors are almost inline refactors. And we were able to build a custom UI for that in Windsurf.
But in VSCode, because of the access to the APIs, we needed to dynamically generate images right alongside the user’s cursor because we just didn’t have access to the capabilities to showcase and edit properly. And what we realized is immediately by porting over to Windsurf, our acceptance rate tripled. Same ML models, it just tripled. So what that, I guess, gave us confidence in is yeah, you could argue technology is very important. And I think technology is very important. But if our users are getting very little value from the technology we’re sort of building, you need to really clarify, “Maybe we do need to build a new surface and interface.” And that’s what Windsurf is.
Lean Team Hiring Philosophy
Lenny Rachitsky: So the big bet you took there just to make this super clear, is you were initially working within existing IDEs that everyone was familiar with. And then it was like, “This isn’t going to get us where we need to go. We’re going to try to convince people to switch to something completely new because it’s going to be so much better. It’s our own IDE.”
I think maybe people may not recognize just how risky that is, convincing engineers to use something completely new. That’s a huge deal.
Knowing When to Hire
Varun Mohan: Yeah, no, of course. And one of the key pieces, maybe Lenny, that would be important to share is a lot of our developers do use Visual Studio Code. But there are lots of people that write in languages like Java, sort of C++ and so on and so forth, and they might use the JetBrains family of IDEs that like IntelliJ. And for us, we are actually still committed to building on those platforms, right? We just felt though that one of the dominant IDEs, which was Visual Studio Code, was limiting the sort of user interface that we could give to our actual customers.
Team Size and Organizational Structure
Lenny Rachitsky: What is the current state of traction for Windsurf? You hear all these crazy numbers about all the competitors in your space. What can you share there for folks just to know?
Interview and Selection Criteria
Varun Mohan: Yeah, so maybe a handful. We launched the product a bit over four months ago. And in that period of time, over a million developers have tried the product. And obviously we have many hundreds of thousands of monthly active users right now.
Using AI Tools in Interviews
Lenny Rachitsky: I love how these days like, “oh, a million. Oh, no big deal.” It’s just the numbers are absurd these days. We’re just getting used to just 100 million ARR here, million users in four months there. It’s just like, “Oh, of course. How could you not have that?” But that’s absurd. It’s just like an insane time right now.
You touched on something that I wanted to get to later, but I may as well bring it up now, the question of just how engineering will change in the future. You throw out the stat that 90% of code is going to be written by AI in the future. Dario from Anthropic recently said the same thing. You guys have a really interesting glimpse into just how things will look in the future.
So I guess the question is just, how do you think coding specifically will look in the next few years, how different will it be from today?
Varun Mohan: I think when we think about what is an engineer actually doing, it probably falls into three buckets, right? What should I solve for? How should I solve it? And then solving it. I guess everyone who’s working in this space is probably increasingly convinced that solving it, which is just the pure, “I know how I’m going to do it” and just going and doing it. AI is going to handle vast majority, if not all of it. In fact, it probably actually, with some of the work that we’ve done in terms of deeply understanding code bases, how should I solve it is also going to get closer and closer to getting done. If you deeply understand the environment inside an organization, if you deeply understand the code base, how you should solve it, given best practices when the company also gets solved.
So I think what engineering kind of goes to is actually what you wanted engineers to do in the first place, which is, what are the most important business problems that we do need to solve? What are the most important capabilities that we need our application, our product to have? And actually going and prioritizing those and actually going and making the right technical decisions to go out and doing it. And I think that’s where engineering is probably heading towards.
Now, does that mean that no one needs a CS degree? I think that’s maybe a little bit overplayed a little bit just because maybe here’s my argument for that. A lot of developers nowadays that build full stack applications, at least until a handful of years ago, they probably went to college and took an operating system course. And in theory, they’re not really playing around with the operating system, like the kernel scheduler very frequently. But do those principles help them in understanding why their applications are slow? Do they help them in understanding why some design decisions are better than the other? Yeah, that makes them a much better engineer than another engineer. And I think that idea and the understanding of what’s going on at the bottom will make a good engineer even better. But also at the same time, it empowers a bunch of people that never understood all of those things, how to actually build as well, which is another remarkable sort of thing that fell out through this whole process.
Go-to-Market and Sales Teams
Lenny Rachitsky: I don’t know if you have kids, but just say you had kids or you had niece or nephew going into college, let’s say, would you suggest they do do computer science or would you suggest you’re not going to have a good time if that’s the career you choose right now?
Varun Mohan: Yeah. Maybe I think back a little bit. So I went to MIT. A lot of us at the company went to MIT together on the engineering team. I think when I think about what we learned the most for engineering or computer science, it was not exactly like how do you write code. That is almost a given that you can write code after going to college. It’s more like the principles of how you think about a problem and how you break it down and how you solve it in an interesting way.
So an example of a class that I really enjoyed was our distributed systems class. And there, you’re kind of reading through literature and understanding how some design decisions were kind of made. And I think it’s more like a problem solving kind of course and a major. It’s a major of how you solve problems given some constraints of how computers today function, right? Like, here’s the speed at which memory sort of operates. Here’s the speed at which… Here’s how much computation you can do in one cycle or one second. And based on that, you can make some trade-offs and solve a problem.
So I don’t know if I would say that you shouldn’t go get a computer science degree. I think computer science is almost synonymous with problem solving. In that case, I think it’s pretty valuable. Is everything you learn in your computer science degree useful? I’d say a lot of things that I learned in my computer science degree are not useful. I’ll give you an example. I took a parallel computing class in Julia. I don’t think Julia is a very popular programming language anymore. Am I very sad that I took the class? No. The principles of parallel computing are still very useful, I would say, today.
Competitive Edge Over Cursor
Lenny Rachitsky: So what I’m hearing is, skills that you still want to build, whether it’s computer science or maybe some version of computer science, is kind of building the mental model of how computers and systems work.
Enterprise Security and Compliance
Varun Mohan: That’s right.
Lenny Rachitsky: Parallel processing, memory, hard drives, internet, things like that. And then there’s just problem solving skills, being able to solve interesting problems. Is there any other skills you think people should be investing more in with the rise of AI building more and more of our products?
Windsurf Live Demo
Varun Mohan: I think one of the things that’s maybe a little bit undervalued is this kind of agency piece. And I think about this a lot, which is, you have a lot of people that could go through college and go through school and they’re basically told exactly what to do on a P-set. They’re given these very, very, I would say, well-defined paths that they need to take. I think maybe in society and just school, we don’t prioritize how do you make sure you get people with real agency that want to build something, right? Their goal is not just to maybe graduate from college and then get a job at a big tech company where they’re told exactly what to do or where to put the pixel for this one website. I think that’s maybe a skill set that is undervalued just right now, probably in the last maybe 10 years or so. And I think that’s going to be really, really important.
For a startup, obviously these are skills that we just look for. We look for people that are really high agency because we just recognize that by default, if we don’t innovate and do crazy things, we’re going to die. The company is just going to die. So we just look for this, right? But I would say for most software engineering jobs, that’s probably not the case. Just think about big company X and what they’re hiring for on the average software engineering interview. It probably doesn’t look like that.
Code Review and Refactoring
Lenny Rachitsky: I love how you phrased that. If we don’t do crazy things and innovate, we’re going to die. That would be a great title for this podcast episode. And I think, I know, it’s 100% true. There’s just a lot of crazy things happening and a lot of innovation happening. And if you can’t keep up, you’ll die.
So let’s talk about hiring. You have a really interesting approach to hiring. There’s a few questions I have here. One is just how do you… I know you try to stay really lean. That’s a common theme across all the AI startups these days. How do you know when it’s time to hire someone?
Varun Mohan: I love the idea of being a lean company, but I don’t idolize it in the way that, “Hey, it is a dream to be a 10% or 20% company that’s making 50, 100, 200 million in revenue.” That’s not, I think, what we idolize inside the company.
I think what we idolize is, be the smallest company we can be to satisfy our ambitions. That’s what the goal is. And maybe, Lenny, the way I would sort of put that out there is, if I told you, “Hey, I’m going to build an autonomous vehicle,” and I said our team is 10 people, you should rightfully say, “Hey Varun, you’re not serious. And you’d be right. I’m not serious at that point. So I think the answer is, what is the minimum number of people to go out and build the crazy ambition project that you have?
And I think the project we are trying to go out and do, which is completely transform the way software gets built, we’ve mentioned this [inaudible 00:24:11] the company, our goal is to reduce the time it takes to build apps and technology by 99%, right? It is a tremendously sort of ambitious goal. And it’s not possible for us to be a 10, 20, 30, 40 person engineering team in the long term and actually satisfy that goal. We think there’s a very, very high ceiling. So that’s maybe the first key piece there. It’s like, if we can crack actually being a fairly sizable company but still operate as if we’re a startup, that’s the dream. That’s the dream.
In terms of hiring philosophy, the way we sort of think about things is, we only hire for a role if we’re actually underwater for that function. So let’s say we’re going out and building inference technology. Unless we’re underwater there, we will not go out and hire someone to go out and work for that. And the reason for that is, I actually think this is a feature. When you hire for a role and you already have enough people there, you get a lot of weird politics that ultimately ends up happening. And it’s not because people are bad people. I think most people are really well-intentioned. But what happens when you have people that join a company and in reality you didn’t really need them? They will go out and manufacture some other thing that they should go work on. They will go out and figure out something else to work on. And realistically, it’s not that important, but they will go out and try to convince the rest of the organization that it is important.
I just think as a startup, we don’t have the bandwidth to go out and deal with that, right? For me, I would like to see everyone just almost be raising their hands up being like, “I’m dying. We need one more person.” And that’s when we go out and hire someone. And one of the analogies I like to give is, I want the company to almost be this dehydrated entity and every hire is like a little bit of water. And we only go back and hire someone when we’re back to being dehydrated.
Comparing UI Elements
Lenny Rachitsky: I love this metaphor so much. And it sounds painful. It sounds painful that you need to be underwater and raising your hand, “I’m about to die and dehydrated.” But I also know that it’s a really exciting way to work. It sounds hard, but if you’re in it, it’s just like… I guess talk about just that side of it because I think it could sound like, “This is terrible. I don’t want to work this way.”
Varun Mohan: You know what I actually think, Lenny? It’s really good for a handful of reasons, which is that a lot of the… We respect and trust the people that work at the company. So this forces ruthless prioritization. You have a team that’s going out and doing something. They will never ask to work on something that’s not important. In fact, if there are two things that they’re working on, they’re just going to just tell me, “Hey, there are two things on my plate. I just don’t have the ability to do two. I can only do one.” And they will pick the one that’s most important.
And this actually goes back to one thing that I think is true about startups and just companies in general. You don’t win by doing 10 things well. You win by doing one thing really well and maybe you fail nine things. This is the thing that I’ve told the company, “This is very different than school,” right? In school you optimize for your total GPA. But for companies, I just need to get an A+ on the one class that matters. And then I can get an F in all the other classes. And an F in all the other classes doesn’t mean just doing illegal things. That basically means you just deprioritize things that don’t matter. That actually forces this organizational prioritization that is just really, really good.
And Douglas and I, Douglas being my co-founder, we can tell the company, “These are the two things that are the most important.” But if we go out and tell these are the two things that are the most important to the company and then we put the company has 20% more people than necessary, what’s going to ultimately happen? It’s almost a forcing function for ruthless prioritization to have fewer people or people that are just underwater internally at the company.
Agentic Work vs Basic Projects
Lenny Rachitsky: Everyone listening that works at a big company knows exactly what you mean when you described when there’s just too many people, they will all find work to do and they will all be pitching ideas. They all want to show impact, they want to do well in their performance reviews. That’s just the nature of too many people at a company. And so I think this all really resonates.
To even getting even deeper on just what it looks like when someone’s underwater to tell you it’s time to hire, is it just someone coming to you, “Varun, I need someone on this team. This is just not possible”? What does that look like even more practically?
Varun Mohan: Yeah, I think it’s basically along those lines. It’s that, “Hey, there’s some pressure to get something done in a short period of time.” By the way, one of the things that we do believe though for software, if you want to do great things, it’s not possible to just say, “Hey, I want to get it done in one month” if it is like… Because you have to think about it from this perspective. If a software project could get built in two to three weeks, what does that really mean about the true complexity and differentiation of what you built? It’s probably not very high, unless you believe you are way smarter than everyone else. But I think that’s hubris, right? I think we actually have a very exceptional engineering team. But also at the same time, I don’t think our engineering team is so exceptional that we can do things in three weeks that the rest of the world can’t do in six to nine months. That’s kind of stupid to believe that.
So I think basically it comes down to that person coming out and being like, “Hey, look, I don’t have enough time to do X.” Us having a conversation to be like, “Okay, what can you do then?” And if the answer is, “I can only do less than that,” then maybe we make a decision actually, “Oh wow, that’s great. Maybe we actually should deprioritize Y.” Because this is actually also another thing that’s very hard even for people like me and my co-founder. It’s that we also want to do a lot of things. There’s an urge to do a lot of things. But if we are forced to make a decision constantly on like, “We cannot do X,” it’s very clarifying. It’s very clarifying because our engineering interview process is also extremely low acceptance rate. So it’s not very easy for us to very quickly spin up people and have them join the company really, really quickly either.
So I think it’s clarifying for everyone. It’s clarifying for the person that wants more people. We can just tell them, “Hey look, we don’t believe you should be doing this other thing.” And it’s also clarifying for us because we can also get on the same page with them. And sometimes we just kind of agree, “Hey…” Our teams are very flexible that, “Hey, actually we do need to get something done.” And one of the things that we’ve kind of tried to make sure is true on our engineering team is, people’s value to the company does not have anything to do with the size of their team. There are projects inside the company, there are directly responsible individuals for these projects inside the company. And if we feel like one project is very important, then people can move from one project to the next.
There’s no notion of someone owning people at the company. That is a very bad and gnarly idea. In fact, the person that is the most valuable at the company is the person that can do the most crazy sort of project out there with as few people as possible. And that’s what you should be rewarding internally.
Cutting Internal SaaS Costs
Lenny Rachitsky: How many people do you have at coding at this point?
Varun Mohan: So we have close to 160 people and the engineering team is over 50 people right now.
Impact on Niche Products
Lenny Rachitsky: Awesome. Oh, what’s the other bigger functions? So [inaudible 00:30:46]-
Domain Experts Building Tools
Varun Mohan: We have go-to-market. We have a… Yeah.
Model Architecture and Data Processing
Lenny Rachitsky: Oh, right. Okay. I want to talk about that, the sales learning that you guys had. Okay. But let’s close out this hiring conversation. So we talked about what you look for… To tell you it’s the time to hire, what do you look for in the people that you interview and hire?
Varun Mohan: One of the key pieces that we look for, we have a very high technical bar. So assuming that they actually meet the technical bar, I think we sort of look for people that are really, really passionate about the mission of what we’re actually trying to solve and people that are willing to work very hard. I think one of the things that we don’t try to do is convince people, “Hey look, we are a very chill company and it’s great to work here.” I think, no, this is a very exciting space. It’s very competitive. You should expect us to lose if the people at the company are not kind of… They’re not working very hard. And I think one of the biggest dog whistles I hear is, when I ask people how hard are you willing to work, some people actually ultimately say, “Hey, I work very smart.” And I basically ask them a question, “If we have many smart people at our company that also work hard, what’s the differentiator going to be? Are you just going to pull them down?”
Because I think one of the things that’s true about companies is it’s like this massive group project. And I think the thing about a person that is not pulling their weight that’s bad. It’s not the productivity, right? At some point when the company becomes many hundreds of engineers, I’m not going to be thinking about the one engineer that’s not pulling their weight. It’s the team of people they work with that are almost basically saying, “Is this the bar internally at the company? Is this the expectation?” And I guess, Lenny, if I told you you have a team of five people and the four other people you’re working with just don’t care, how much are you going to feel like you should care?
Unique Training Data Advantage
Lenny Rachitsky: Not too much.
Varun Mohan: Exactly. So for us, I think that’s what we more care about. We have a culture where it’s very collaborative. It’s not an individual sport, but people feel like they can rely on other people to get complex sort of tasks done.
Local vs Cloud Workspaces
Lenny Rachitsky: So the question you asked there just basically is, how hard are you willing to work? How hard do you want to work? And I know some people, there’s this whole group of folks that are just like work-life balance, “How dare you ask me to work crazy hours?” And I love just the filter upfront of, “If you work here, you will work really hard. You’ll work a lot of hours. It’s a crazy space to be in. And we will win by working smart and also really hard.”
Codeium Team and Management Philosophy
Varun Mohan: Yeah.
AI Coding vs Hiring Engineers
Lenny Rachitsky: You said at some point earlier that your engineering pass rate, as you said, it was like 0.6% of candidates, something like that.
Varun Mohan: Yeah, it’s probably post or take home. It’s probably that actually. So the take home itself filters probably another 10, 15X on top of that.
Engineers: Canary in the Coal Mine
Lenny Rachitsky: Here’s a question that I’ve been hearing more and more, is just, how do you do interviews these days with tools like Windsurf out there that solve all your problems?
Varun Mohan: We are okay with people using the tools because I think one of the worst things is like, if someone comes here and doesn’t like using these tools, we believe there are massive productivity improvements. We do bring people into the company on site so we can actually see how they think through problems on a whiteboard and all these other pieces. So we do want to see how they think on their feet and hopefully they’re not just taking what we’re saying, putting it in a voice translator and sticking it into ChatGPT and getting the answer out.
So there is a way to do this. My viewpoint on this is the tools are really, really important, but I do think we still look for some problem solving ability. If the only way you can solve a hard problem is put it into ChatGPT, I think that’s a concern to us.
Counterintuitive AI Product Insights
Lenny Rachitsky:
Here’s how Coda can help you. Imagine starting a project at work and your vision is clear, you know exactly who’s doing what and where to find the data that you need to do your part. In fact, you don’t have to waste time searching for anything because everything your team needs from project trackers and OKRs to documents and spreadsheets lives in one tab all in Coda. With Coda’s collaborative all in one workspace, you get the flexibility of docs, the structure of spreadsheets, the power of applications, and the intelligence of AI all in one easy to organize tab.
Like I mentioned earlier, I use Coda every single day. And more than 50,000 teams trust Coda to keep them more aligned and focused. If you’re a startup team looking to increase alignment and agility, Coda can help you move from planning to execution in record time. To try it for yourself, go to coda.io/lenny today and get six months free of the team plan for startups. That’s C-O-D-A, .io/lenny to get started for free and get six months of the team plan. coda.io/lenny.
Okay. Let’s talk about this go-to-market sales experience that you guys had. So you started obviously like most people, started building without sales team. And then you realized, from what I hear, that that was a huge miss and a big opportunity to talk about there because that’s really unique, I think, that you guys have a large sales team and go-to-market team.
Varun Mohan: Yeah, we actually made this decision pretty early in the company’s history, I would say. We hired our VP of sales over a year ago actually. And the go-to-market team is now over 80 people inside the company. So it’s a pretty sizable function inside the company.
Yeah. Maybe a little bit of a backstory here. So when we started the company, actually we had a handful of angels that actually were operators, go-to-market operators. So an example of one was Carlos Delatorre who used to be the CRO of MongoDB. And I think for us, we never viewed enterprise sales and sales as a very negative thing. I think this is a interesting thing that technical founders sometimes don’t really like. They think sales is a very negative part of the process. Everything should be product-led growth. I think it’s not that black and white. I think enterprise sales is really valuable. But maybe when we were a GPU virtualization company and we were an infrastructure company, the reason why we never hired a salesperson is, I didn’t know how to scale the function. I was the one who was selling the product.
So ultimately speaking, if it was hard for me to sell the product incrementally, I didn’t know how we could make that into a process that we could then go and scale. I didn’t know how we could take the revenue of the business from a couple million to hundreds of millions and let alone even tenths. So if I didn’t know how to do that, how could I go out and hire someone and make them scale it out?
On the other hand, for Codeium, very quickly, a lot of large enterprises reached out to us. And from that alone in the middle of 2023, we started, I guess, me and a handful of other folks at the company started selling the product and we were doing tens of pilots concurrently with large enterprises and we were very quickly able to understand that there was a large enterprise motion that needed to be built in this space. So by the end of 2023, we actually hired our VP of sales. And very quickly after that, scaled our sales team. Yeah, I mean look, if you want to sell to the Fortune 500, it is very hard to do that purely by swiping a credit card.
Early Startup Reflections
Lenny Rachitsky: Let’s talk about Cursor. I don’t want to spend too much time with competitors, but that’s what everyone’s always thinking about when they think of you guys. You guys are kind of the leading players, I think, in the space also. There’s Copilot, but that’s different.
So what’s the simplest way to understand how you guys are different from Cursor and also just how you think you win in the space long-term?
The ROI of Hands-on Work
Varun Mohan: So I think maybe a handful of things that I could share. So on the product side, I think we’ve invested a lot in making sure code-based understanding for very large code bases is really high quality. And that’s just because of where we started. We worked with some of the worlds are just companies like Dell, JPMorgan Chase. Companies like Dell have singular code bases that are over 100 million lines of code. So being able to understand that really, really quickly to make large scale changes is something that we’ve spent a lot of time doing. And that requires us actually building our own models that can consume large chunks of their code base in parallel across thousands of GPUs and almost rank them to be able to find out what the most important snippets of code are for any question that are asked about the code base. So we’ve gone out and built large distributed systems based on our infrastructure background to go ahead and do that. That’s maybe one.
Breaking Role Boundaries
Lenny Rachitsky: Let me actually follow that thread because I think people may underestimate just how big of a deal that is. So when we talk about, we had the founders of Bolt and Lovable on the podcast, so those products, they build something from scratch, they built, they write the code for you. So that versus just loading, say, Windsurf on your million line code base, say, at Airbnb or Uber. Like, understanding what the hell you have and how it works and where to go change things without breaking it is insanely hard. And so what I’m hearing is that’s kind of a big differentiator as you guys started there actually. And then Windsurf is now building up that advantage.
Varun Mohan: That’s right. Yeah. So that’s a big thing that we spent a lot of time on, which is just understanding what the code base is doing. And actually one of the other things is, what are all the user interactions with respect to the code base? And happy to show that also in a bit here.
Lenny Rachitsky: Awesome.
Varun Mohan: The second key piece probably is we’re not only tied to Windsurf actually. This is probably a weird statement given even we are talking about Windsurf, which is that actually we’re pretty focused on supporting IDEs like JetBrains. JetBrains or IntelliJ has over 70 to 80% of all Java developers coding in JetBrains based IDEs, right? The reason why we don’t feel as big a need to almost build a competing product to JetBrains is JetBrains is actually a very sort of extensible product in a way that VSCode is not. VSCode is not very extensible.
So I think for us, our goal here is not only just to satisfy a subset of users that can actually switch onto our IDE, but we want to give this agentic sort of experience to every sort of developer out there. And if that means there are Java developers that write in JetBrains, that’s fine. We work with a lot of large enterprises that have 10 plus thousand developers where over 50% of the developers are on JetBrains. It’s a very large product. And by the way, that company itself is a privately held company that makes many hundreds of millions of dollars a year. So it’s a very, very large company. So for us, that’s another key piece. We actually want to meet developers sort of where they are. And if they use a different platform, we’ll work on that too.
The third key piece, and this probably sounds another key piece for enterprises, is we work in a lot of very secure environments. We have FedRAMP compliance, which means we can sell to very large government entities. We have a hybrid mode of actually using the product, which means that all the code that lives that is indexed, it actually lives on the tenant of the user, right? Code is one of the most important pieces of IP for the company. So I think just if you were to look at it from a big company perspective, there are many reasons why over the years of just building an enterprise product, we’ve handled a lot of complexities that large companies want to see. But that’s part of it is because of the history of how we got here in the first place.
Lenny Rachitsky: Okay, Varun, enough teasing. Let’s do a live demo of Windsurf so folks can see what it’s like. And then I’m just going to ask you a bunch of questions as we’re going through it. So I’ll let you pull up a little shared screen where you have Windsurf pulled up.
Varun Mohan: Great. So some context, this is a very basic React project. There’s nothing in it right now. So if you were to open any sort of file, it’s the default React app project. I have this basic image here. You can pass Windsurf images of what you’d like the project to look like, of what I would like an Airbnb for dog’s website to kind of look like.
Lenny Rachitsky: Beautiful. Beautiful mock-up by the way. I love that this is like all you need.
Varun Mohan: This is all you need. This is all you need. So basically what we’re going to do is we’re going to say, “Hey…” One of the cool parts about Windsurf is it can actually work in an existing project already. So I can basically say, “Hey, change this React app to show an Airbnb for dog’s website based on this image and preview it.”
So now it’ll just go out and start executing code, reading through the repository. Obviously, it doesn’t know what the current code base actually looks like. And it’ll go out and analyze the code base to actually find out the set of changes necessary. So we’ll go out and wait and see what it’s going to do. But while we’re doing that, let’s continue the conversation.
Lenny Rachitsky: Awesome. Okay, so first of all, so you open up Windsurf. You had a boilerplate React project ready to go. And Windsurf had never really seen this code before. You ask it to do stuff on your code base, which is just like, “Change this to Airbnb for dogs using this design.” Amazing.
Varun Mohan: That’s right. That’s exactly right.
Lenny Rachitsky: Yeah. Okay, cool. So we’ll let it run and we’ll talk. Let me ask you this question that I’ve been asking everyone that comes on that is building a product that helps engineers build products and product managers build products and designers.
Say you could sit next to every single new user that opens up Windsurf and whisper a couple tips in their ear to help them be successful with the product. What would be a couple tips you’d share?
Varun Mohan: Tip number one is just be a little bit patient and both patient and explicit. When you ask the application to go out and make some changes, it could actually go out and make many irrelevant changes. One of the things that I think prevents this the most is just be really, really explicit or as explicit as possible. And one of the things I ask people to do is in the beginning, start by making smaller changes. If there’s a very large directory, don’t go out and make it refactor the entire directory because then if it’s wrong, it’s going to basically it destroy 20 files.
And I think from there, one of the key pieces I think that comes from the users that use the product is they sort of learn what the hills and valleys of the product are. The analogy I like to give are kind of similar to autocomplete. When you use a product like autocomplete, you would think a product that is suggesting things but only getting accepted 30% of the time would be really, really annoying. But the reason why it’s not very annoying is actually because you’ve actually learned that, hey, 70% of the time, I don’t need to accept this. And the times that I do, I know to get value from it. And you also know beforehand if a sort of command that you write is very complex, you just expect, “Hey, the autocomplete is not going to work for it.” So I think it’s almost like a, understand what the hills and valleys of the product are.
The crazy thing is, every three months that kind of gets changed and reevaluated. It almost becomes the case that it becomes materially better than it was in the past. So I think maybe patience and being explicit are maybe the two important key pieces I would tell users.
Lenny Rachitsky: And I think something that was kind of between the lines there is get a gut feeling of what the model is capable of, like how specific to be versus how abstract it can be. And there’s kind of this gut feeling you start to build over time.
Varun Mohan: That’s right. Yeah. And with that, it feels like we have an actual preview. Guess what? We have a nice-
Lenny Rachitsky: Cute dogs.
Varun Mohan: A nice dog app. And one of the cool parts is that we’ve also done beyond just modifying code is actually being able to point to different pieces. And I guess I could just kind of say… I could point to different elements and say, “Hey, make the background…” This is not great design, but I could basically say, if I took this element, “Make this background red and just take a particular element and just change it and make it red.” And it should go out and be able to go out and do this.
The preview aspect of the product of being able to showcase the app while it’s getting built helps in that, now actually you can live entirely in app world. You don’t even maybe even need to look at the code. Granted this looks hideous, but in some ways if I wanted to, I could go out and do that, right?
Lenny Rachitsky: This is what happens when there’s no more designers. Like, [inaudible 00:46:11].
Varun Mohan: Yeah. When there’s no more designers. Sure. Maybe the answer is like, when you ask me what should people be doing, they should study great taste. Having great taste. Because I think taste is also a very, very hard, right?
But maybe the other key piece, Lenny, that I wanted to showcase here is obviously you could keep going here. I could take different components and kind of change them. We have a lot of plans here that are beyond just point and click changing components. But one of the cool pieces is the AI. There’s an AI review flow as well, which is kind of like what I was saying. The goal of AI has now changed a lot in that it is now modifying large chunks of code for you. And the job of a developer now is to actually review a lot of the code that the AI has generated. And granted right now during this podcast, I’m not going to review all the code that’s getting generated.
But let’s say I want to go out and modify some of this code. And this is where if you’re an actual developer that actually wants to go modify, maybe I don’t like my variable name being called title. I want it to be called Title String instead, like this. And if I wanted to go out and make that change and change to go out and say Title String and that’s what I’m going to do, I’m just going to tell the AI to continue.
The cool part about this is Windsurf not only knows about what the agent has done. It also knows everything that the user has done. Our goal here is to have this almost flow-like state where everything the user has done, the AI also knows. And it is able to predict the intent. And as you can see, it said, “I noticed that the interface property title was changed to Title String.” And then it now has gone out and modified all the locations within the app from title to Title String. And now it no longer says that.
So this is where even if I’m writing software and I want to go and make point changes, the AI can go out and quickly make these changes on the user’s path. Imagine doing a refactor or a migration and you just change one part of the code. You can just tell the AI to continue the rest. And because it deeply understands the code base, it should go out and find all the corresponding places to go out and make the change. And obviously now when I reload my app, there’s no bug in the app. It still loads properly. I could obviously tell it to do even cooler things like make the app retro. I don’t know what that means, but I guess I could do that. And it should go out and make the change correspondingly for me.
But yeah, that’s maybe the high level parts there where the AI is not only able to operate entirely in app space but also on the code space of the users going out and modifying code and to bridge the gap between the two. So it should add leverage not only non-developers that are just purely building apps, but also developers that are just hands-on keyboard too.
Lenny Rachitsky: Amazing. By the way, if you’re not on YouTube, you can’t see, but you can just select any element of the page and then reference that in your ask of, “Here’s what I want changed.” I didn’t know that was a feature. And that is extremely cool.
So interestingly, so having just looked at Lovable and Bolt and Replit and apps like that, it’s basically doing all the things those apps do. Oh, wow. There’s the retro version. That’s good. I like that it built on your red and made it really nice actually.
Varun Mohan: Actually the red looks way better now.
Lenny Rachitsky: Yeah, a little green button. This is great. Okay.
Varun Mohan: Cool.
Lenny Rachitsky: So I don’t think people realize this, but apps like Windsurf, that it could actually do a lot of agentic work for you where you just tell it, “Here. I want you to do this” versus it’s auto completing code for you.
The big difference is you need to start it with some code base so you have this kind of boilerplate React project. Is there a reason you guys aren’t taking that step and just doing that automatically for you? Is it because you’re targeting engineers and they don’t need that or is there other reasons?
Varun Mohan: Lenny, the interesting thing is the base app that you saw for this was also generated by Windsurf. The reason why we sort of didn’t generate it is installing all the dependencies takes like three or four minutes. And for the demo, I didn’t want to wait. But totally, actually most of the users of the product, probably zero-to-one build these apps.
And if I can say one interesting thing is, when we launched Windsurf, actually we tasked everyone at our company to go out and build an app with Windsurf. That included our go-to market team and our sales team. There was a crazy stat that I think people would find surprising, but we’ve saved over half a million dollars of SaaS products we were going to buy because our go-to-market team has now built apps instead of buying them. Our head of partnerships, instead of buying a partner portal product, has actually built its own partner portal. He had never built software in the past. We’ve actually come up with ways inside the company to deploy these apps easily in a secure way. And we’re actually now building very, very custom software for our company to operate more efficiently, which is, I would not have expected this probably six months ago.
Lenny Rachitsky: That is incredibly interesting. You don’t need to name company names, but I guess what’s a space you’re least bullish on that you think is going to have the most problem here with people building their own version of these sorts of products?
Varun Mohan: I think maybe my viewpoint are these very, very verticalized niche products I think are going to get… They’re going to get competed down a ton. And I think sales products are an example of one of these things. And maybe this is a… I don’t want to be very negative, but it’s very hard inside a company like ours to task our best engineers to build a best in class sales product. There’s not enough interest to do that. Or to build a best in class legal software product or finance software product. It’s very, very hard for us to. And actually that’s a very big moat for these companies that built these products that they were able to come out, have an opinionated stance on how to do this, hire good enough engineers to go out and build the software. Our company is unwilling to do that. So previously, we would go out and buy the technology because there would be no alternative.
But now one of the crazy things is that the domain specialists now have access to build the tools that they ultimately wanted, which is actually crazy. If you think about why were these software companies able to exist these vertical software companies, the reason is because they had many features. The kitchen sink of features worked for a lot of companies, but each individual company only wanted 10% of the features. But the problem is, each individual company was not capable of maintaining a piece of software or building the custom piece of software for 10% of the features, but that has now changed entirely. Now they can.
Lenny Rachitsky: Yeah. There’s always been a story of like, “Why would I spend any time building my own software if I could just…” But now it’s like five minutes of time.
Varun Mohan: Five minutes and maybe even more custom to your system. How many times have you bought a software and you’re almost like, “Why is there no integration to X? And I actually use X.” How annoying is that? That actually makes the software less useful to you.
Lenny Rachitsky: So I think what’s cool is when you go back, if someone zooms back to the beginning of when you started the demo, it’s basically a PM talking to an engineer, “Hey, build me a Airbnb for dogs. Here’s a stupid mock that I made with some boxes.” That’s almost like a bad PM talking to an engineer and it just actually works. That’s what’s insane about this. And so that’s why this example you’re sharing of go-to-market folks, building their own things, it’s like they don’t need to know anything about product building. It’s just describe it in some ridiculous way and draw a couple boxes of what you want it to look like and it makes something for you.
Varun Mohan: Which shows that agency is what matters. If you have a product manager that has an idea, there’s no reason for why that idea cannot be more well fleshed out. How many times do you have a product manager that just continualize ideas, but it just feels like they are extremely unsure on how to execute on it? They just want to say things for sake of saying things? But for the people that have ideas and a lot of, I guess, agency, they can go out and prove out what they want without any sort of external resources.
Lenny Rachitsky: I think even more acutely for product folks listening to this, it’s the salesperson coming to you being like, “Hey, I want this thing. It’s going to help me with my sales team.” And you’re like, “I don’t have a million things to build. I don’t have time for this.” And so that problem goes away, which I think will make a lot of product leaders really happy.
The model that this is sitting on, is it Sonnet?
Varun Mohan: Yeah. So just to break down how it ultimately works, we have a model that does planning. And I would say right now Sonnet is a really, really good planning model. I think OpenAI’s GPT-4o is also good. But the crazy thing is what we try to do is we try to make the Anthropic based model or Sonnet model try to do as much of the high level planning as possible. And then what we try to do internally is run all the models necessary to do high quality retrieval for the agent. As you could see, the agent needed to understand what the rest of the code base ultimately did. We actually make sure we run models to actually chunk up the entire code base and understand the code base so that obviously it would not be a good idea if we had a 100 million line code base to send that entire code base to Anthropic.
First of all, you couldn’t do that. That’s over 1.5 billion tokens of code. So obviously that would be three or four orders of my actually larger than the largest context lens right now.
But you also wouldn’t want to do that from a cost and latency standpoint too. So that’s one. And the second piece that you saw was the model is able to very quickly make edits to the software as well. We have custom models that we built that are post trained on top of popular open source models that can make these edits really, really quickly to the code base. And the reason why you would want to do that is it’s A, faster, and B, also that model can actually have more of the code base in context too. So it can be better at applying changes than even Anthropics model too.
So I think the way we like to think about it is, our only goal is how do we build the best product possible? How do we build the best product possible and how do we make the ceiling as high as possible? And we will go out and build models and train models wherever necessary. But if we’re not going to be good at a task and we think the open source is better or Anthropic’s better, we’ll go and just use the open source or Anthropic.
Lenny Rachitsky: And so the models you guys are building, those are built on open source models that people are releasing?
Varun Mohan: Yeah. Interestingly, the one that does retrieval is actually completely pre-trained in-house that actually does that. But yeah, for a lot of different pieces, it’s based on open source. Interestingly for the one that does the edits and auto-complete, that is also in-house. As you’re typing, we actually do some auto-complete related stuff. I’m happy to show that, but I think a lot of users are familiar with that capability. So I think the way we like to look at it is like, what could we be best at and we will go out and trade. But if we’re not going to be best at it, we should not just, for the sake of ego, go out and trade something.
Lenny Rachitsky: This may be getting too technical, but just, is there anything interesting around what you train on?
Varun Mohan: Yeah, so one of the interesting things that we have from our users, and this is where we try to think like, “Why would we be any better?” is that, actually every hour, we get probably tens of millions of pieces of feedback from our users. We get a lot of feedback on what they like and what they don’t like. For something like autocomplete, we get a lot of preference data, a lot of preference data. And the preference data is weird. It doesn’t look like data that you find on the internet. It’s like data as the user is typing. Imagine you’re typing some code in a code base, the code’s going to be incomplete as you’re typing it, right? It’s not going to be in a full-fledged form. It’s not like it is on GitHub. But we have a lot of data that looks like this.
So we are uniquely well-positioned to actually build a good model that can complete code even when it’s in an incomplete state when the models that are out there, the frontier models have consumed very little code that looks like this. So for that case we’re like, “Hey, we can go out and do a much better job potentially.” And we’ll go out and train models on all the preference data we have.
The same is kind of true on retrieval, right? There’s a way to find out, are we retrieving the right data? Did the user accept the code change after that? Was the retrieval actually a good retrieval a signal that we can get? So basically the way we like to look at it is, if something is just purely code planning, there’s not a great reason why we would be the best at that. I can’t come up with a coherent argument for that. But for something that looks more along the lines of, “Hey, here’s an intermediate code base that is very gnarly and here are some changes that need to get made” and we know the evolution of the code or we’ve seen the evolution of code across millions of users, we feel like we can do a great job of that.
Lenny Rachitsky: I think what’s interesting about this is another differentiator/moat for companies that end up winning in this space, is you just have more and more of that data than other companies if you’re ahead.
Varun Mohan: Yeah. This is sort of why maybe at a high level we like the zero-to-one app building product space. I think it’s really… It’s a good product space. But ultimately I think it needs to boil down to you understanding the code, because otherwise, you’re living at too high a plane where it’s not clear why you would be able to be the best at that compared to everyone else. It’s not really clear.
Lenny Rachitsky: As a company, you mean?
Varun Mohan: As a company.
Lenny Rachitsky: Versus as a user.
Varun Mohan: It feels like it might get competitive in a way that it’s not clear where you would continue to differentiate over and over with time.
Lenny Rachitsky: I see. Because if they’re just sitting on top of Sonnet and just doing what every other Sonnet wrapper is doing, there’s not a lot of differentiation or moat.
Varun Mohan: It depends on how you do it. But maybe if I was to say this, if the inputs you’re consuming are just web elements, extremely high level web elements, then the interface might be high level enough that it’s hard to maybe get better than maybe what the frontier models are doing just across the board. You are just better off just plugging in Sonnet for everything.
Lenny Rachitsky: Got it. Awesome. One thing I wanted to come back to that I wrote down that I think is really important for people to understand, you talked about how with Windsurf it’s not necessarily… There’s a boilerplate code base that you want to start with because it’s actually… Because it’s not an abstracted zero-to-one app builder. It’s an actual IDE you’re coding in. And you talked about how has to install dependencies, which is kind this painful thing. And the reason it has to do that is because running locally on your machine versus in the cloud, like, say, Lovable and Replit and all these guys, although I think Bolt runs in your browser in this really cool way.
So that’s an important distinction. This is like you’re running this locally in your machine and has all the libraries you need to actually run it.
Varun Mohan: No, I think that’s important. I think we believe a lot of people sort of build software in what are called code spaces and things in a remote machine. I just think it’s that a lot of developers like building locally for what you said. Like if you’re doing things that are more than just full stack applications, you might have dependencies on your machine that are just system dependencies that are just gnarly to install. Let’s imagine you’re building a GPU-based application and the Nvidia drivers, they’re necessary. You just want to give people the flexibility to build where they can build. And I think the IDE and building locally has been a thing that people have done for decades, so probably it’s not going to go away in the next couple of years.
Lenny Rachitsky: I love that your sales folks now are running local host servers.
Varun Mohan: Well, with the browser previews, it’s easier, right? You kind of just open it up on the side.
Lenny Rachitsky: Yeah. Yeah. Oh my god. Okay. I have a few more questions just about how you think and operate at Codeium. So you guys are kind of at the forefront of how product teams are going to operate. You’re seeing the future every day. And so I’m curious if there’s ways you guys have structured your teams, engineers, product design that might be different from how other companies are doing it or have tried stuff that has worked really well or tried stuff that’s a huge disaster?
Varun Mohan: One interesting decision that we kind of have for core engineering is that we don’t have pure product managers for the core engineering side of the company. And by the way, that’s purely because we build for developers and our product is built by developers. So I think the intuition from our own developers is hopefully valuable. If not, we might be hiring the wrong type of people. So I think our developers are, in some sense, flexing to be more product conventional product managers.
Now on the other hand, if we were building something that looked more like Uber or the persona was very different and we didn’t ourselves understand it, I think the organization wouldn’t look the way it looks.
For the enterprise side of the company, because we do work with a lot of large enterprises where the requirements are not something that our engineers would automatically understand, I don’t think our engineers wake up and they’re like, “We need FedRAMP.” This is probably something that a lot of customers come to us with and tell us. We have people that flex in this product strategy role that understand what the customer wants and understands the technical capabilities that we have to best build a product that would help them at scale.
So I think we have an interesting organization in this regard, but mostly I would say because we are a developer-based product, I would say that’s true.
And then also kind of like what you said for the engineering team itself, the team structure is, it’s fairly flat. We try to go with two pizza teams, teams that are fairly small just because I think the problem is when a team gets too big, the person leading the team is no longer able to get in the weeds of the technology itself. And I think in a space that’s moving this quickly, I think it’s dangerous to have leaders that don’t understand the technology deeply and are not building. It’s very, very dangerous because there’s too much armchair quarterbacking. And so I think that’s maybe one other decision we made.
And then teams are very, very flexible. So if we decide something is a new priority, we’re very quick to change the way a team looks. And it’s very centrally planned in this regard.
Lenny Rachitsky: The two pizza team concept, I saw a tweet long ago where someone from India, was like, there’s always talk about two pizza teams, but pizzas in India are much smaller. And so the teams end up being smaller and they’re like, “Why can’t we build as much of these teams in the US?”
Varun Mohan: Oh man.
Lenny Rachitsky: Okay. So how many PMs do you have? So you said you have 150 employees, something like that?
Varun Mohan: Yeah. So in terms of the product strategy function, we have three people in that role right now.
Lenny Rachitsky: I see. So it’s like product… They’re in their titles is product strategy, not necessarily product management?
Varun Mohan: That’s right.
Lenny Rachitsky: Interesting. And then 50 engineers, you said 80-ish sales folks?
Varun Mohan: Yes, that’s right. And then obviously we have functions like recruiting parts of G&A, like finance. We have marketing at the company. So some other functions internally as well.
Lenny Rachitsky: It’s interesting. And this is something that you hear all the time with companies like Dario for example, from Anthropic talking about how 90% of code is going to be written by AI. But all at the same time, all you guys are hiring engineers like crazy.
Varun Mohan: Yeah. Is that contradictory?
Lenny Rachitsky: It’s that contradictory, will there be an inflection point of like, “All right. Now we don’t need them anymore.”
Varun Mohan: I think it really comes down to, do you get incremental value by adding more engineers internally? I’m going to take… First of all, maybe just to set the record straight, if AI is writing over 90% of the code, that doesn’t mean engineers are 10X as productive. Engineers spend more time than just writing code. The review code, test code, debug code, design code, deploy code, right? Navigate code. There’s probably a lot of different things that engineers do. There’s this one famous law in parallel computing, it’s called Amdahl’s Law. I don’t know if you’ve heard about it. But it basically says if you have a graph of tasks and you have this critical path and you take any one task and parallelize it a ton, which is make it almost take zero amount of time, there’s still a limit of the amount of how much faster it made the whole process go.
So maybe put simply, let’s say you have 100 units of time and only 30 units of time is being spent writing software and I took the 30 and made it three, I only took the 100 and made it 73. It’s only a 27% improvement in the grand scheme of things.
So I think look, we are definitely seeing over 30, maybe close to 40% productivity improvements. But I think for the vision that we’re solving for, even if I were to say the company in the long tail had 200 engineers, it’d probably be too low still at that point. So the question is, how much more productivity do you get per person? Actually, maybe just to even say one of those thing for some of these large companies, let’s say you took the CIO of a company like JPMorgan Chase, right? Her budget on software every year is $17 billion and there’s over 50,000 engineers inside the company and you told her, “Hey, each of these engineers are now able to produce more technology.” That’s effectively what you’ve done, right? The right calculus that JPMorgan Chase or any of these companies will make is the ROI of building technology has actually gone up. So the opportunity cost of not investing more into technology has gone up, which means that you should just invest even more. And maybe in the short term you have even more engineers, right?
Now, that’s not true across the board. There are some companies that are happy with the amount of technology they’re building and there’s a ceiling on the amount of technology they want to build. But for companies that actually have a very high technology ceiling, this doesn’t mean you stop. This actually means you hire more.
Lenny Rachitsky: This is a great bull case for engineers. I feel like the canary in the coal mine for the engineering profession is when companies like yours slow down on hiring engineers.
Varun Mohan: Yep.
Lenny Rachitsky: That’s not happening.
Varun Mohan: [inaudible 01:06:32]. It seems like Anthropic is also hiring a lot to get it done.
Lenny Rachitsky: Yeah. Everyone is. So I think that’s really promising. I think if you’re in college still, makes sense to get into engineering at this point.
Okay. Let me ask you this question as kind of a final question maybe. What’s maybe the most counterintuitive thing you’ve learned about building AI products, building Windsurf and just being in a space?
Varun Mohan: I think one of the weird things is online, everyone is very excited about the short-term wins that we are making, right? Like what we’re putting out maybe weekly. We do these waves every couple of weeks. But actually a lot of the bets we’re making inside the company are for things that are not three, four weeks, maybe three, six months, nine months away. That’s what we’re working on internally. Because I think this is kind of, Lenny, what I was mentioning to you before. One of the goals that I tell everyone at our company is we should be cannibalizing the existing state of our product every six to 12 months. Every six to 12 months, it should make our existing product look silly. It should almost make the form factor of our existing product look dumb.
So there’s this weird tension where you want to have a product in market and you want to incrementally iterate and listen to users and keep making it better and better. But I would say we were the first identical IDE product out there. That’s what we landed with. And I think the value of that is going to depreciate very quickly unless we continue to re-prove ourselves. And we will need to re-prove ourselves in ways in which our users are not even asking. So there’s this tension here, where incremental feels very safe, right? Add this one more button. Users say, “Hey, I would like to be able to have this drop down to do X.” But that is not the reason why we’re going to win. That’s almost table sticks. Yeah, we’ll decide to do some of these. We might not decide to do a lot of these things. But it’s these longer term efforts inside the company that almost disrupt the existing product that are ultimately the reason why we’re going to succeed.
It’s this weird tension that you need to have in your head of, you can’t also not listen to your users at all because they’re the reason you exist.
Lenny Rachitsky: This reminds me of a recent podcast guest. We had Gara from captions on the podcast and he told us that he has two roadmaps. They have two roadmaps at the company. They have the real roadmap, like the typical roadmap based on feature requests and user feedback and data and things like that. And then they have the secret roadmap, which is completely not informed by users or data/ it’s just them making bets on where they think the world is going.
Varun Mohan: That’s right.
Lenny Rachitsky: And I love that he calls it the secret roadmap just to make it very mysterious and-
Varun Mohan: That’s smarts. That’s very smart.
Lenny Rachitsky: Okay. I have one more question. I apologize. What’s one thing that you wish he had known before starting Codeium?
Varun Mohan: Honestly, I wish I had… Maybe humility is the wrong term, but this idea of just being okay with being wrong faster. I always think about things on when we make decisions. Me and my co-founder, we always talk about it. We’re almost like, “Hey, I wish we had made the decision to do this a couple months earlier.” We always talk about this. And the weird thing is outside looking and everyone’s like, “Wow, actually the decision was made at the right time.” But in my head I’m always banging my head being like, “What if we had made it a couple months earlier?” I think part of that is I waxed poetically about like, “Oh, you need to be irrationally optimistic and uncompromisingly realistic.” But it’s very hard to do this in practice because you drink your own Kool-Aid too. Because if you’re not drinking your own, you won’t get up out of bed. The answer is already solved. It’s not actually any of these startups. The answer is Microsoft is going to be the winner in any software category. Isn’t that the answer? Just because of distribution, resources and capital, they’re going to commoditize every space.
So I think in some ways this amount of just understanding that, hey, re-evaluate your hypotheses and get into an uncomfortable space way more frequently is something I need to remind myself even to this day. And probably something that I didn’t know coming in and starting the company. We started the company at peak zero time. At that time, probably everything seemed like it was going to moon. And there was probably a lot of irrational confidence, I would say, that we shouldn’t have had.
Lenny Rachitsky: Varun, we covered so much ground. What an incredible conversation. I learned so much just sitting here listening and asking you questions. Is there anything else that you wanted to share I leave listeners with, any last piece of nuggets or wisdom before I let you go?
Varun Mohan: To be honest, I could give predictions about the space. Probably most of them are going to be wrong. I think the best thing to do is just get your hands dirty with all of these products. And I think one of the most obvious things that’s going to happen is, in the next year, there will be a tremendous amount of alpha for anyone that is able to take maximum advantage of these tools. Just imagine how many of your coworkers just don’t even know the existence of these tools, don’t know what they can do and how much less productive they will be. And I would just say get your hands as dirty as possible, as quickly as possible.
Lenny Rachitsky: And when you say get your hands dirty, basically it’s like download Windsurf, start coding. Ask it to build things for you.
Varun Mohan: Yeah, build apps. Build apps. Start using it for maybe even making mocks, modifying your existing code base. There’s probably ways in which you could be a force multiplier to your organization and ways in which they never even anticipated, right? Imagine if you were a product manager that could actually very quickly make edits to the code base and just start pushing changes yourself. You probably get a tremendous amount of respect from your own engineering peers. You could probably get way more done because of that. I feel like there’s no sort of ceiling at that point.
Lenny Rachitsky: I think this is such an underestimated point you’re making here. There’s apps that can build things from scratch and then there’s apps like this that can edit your existing code base if you’re a PM at… What’s the largest company you work with, people-wise?
Varun Mohan: Publicly, let’s just say JPMorgan Chase.
Lenny Rachitsky: Okay.
Varun Mohan: They have over 50,000 developers.
Lenny Rachitsky: Okay. So you could be a PM at JPMorgan Chase and be like, “I have a problem I need to solve. I want to move this metric. I want to change the step in the signup flow.” You just open up Windsurf and tell it to do the thing you want. And then can you push straight to GitHub and do a-
Varun Mohan: Yeah. Actually, you could do that too.
Lenny Rachitsky: … merge [inaudible 01:12:39]-
Varun Mohan: Yeah.
Lenny Rachitsky: Okay. PR?
Varun Mohan: Yeah, it could make a PR for you.
Lenny Rachitsky: Oh, my God. This is insane. Folks, future is out of control. Okay. Man, that was such an important point at the end there because I think people may not realize this. They see all these other apps, they’re like, “Oh, [inaudible 01:12:51], prototypes,” but this is legitimately something a PM can actually do work with.
Varun Mohan: Yeah. When you think about the people, at least that, I don’t know, Lenny, who you respect the most, they’re the people that somehow, despite their title, their level of agency and just output just all the way down to the weeds to the highest level strategy is just perfection, right? They know when to go all the way down. And I think sometimes you see people that talk about roles and they irrationally feel like, “Oh, because I’m this role, I’m not allowed to touch this.” Well now everything’s open season, right? And I think this is an opportunity to almost go all the way down to the weeds and all the way up to the top and just be effective on every level.
Lenny Rachitsky: Unbelievable. All right. Well with that, we’ll leave folks. Varun, thank you so much for being here.
Varun Mohan: Awesome. Thanks a lot, Lenny.
Lenny Rachitsky: What an incredible conversation. Thanks, Varun. Bye everyone.
Thank you so much for listening. If you found this valuable, you can subscribe to the show on Apple Podcasts, Spotify, or your favorite podcast app. Also, please consider giving us a rating or leaving a review as that really helps other listeners find the podcast. You can find all past episodes or learn more about the show at lennyspodcast.com. See you in the next episode.
Glossary
| English | 中文 |
|---|---|
| agency | 能动性 |
| agentic | 具备能动性的 |
| Amdahl’s Law | 阿姆达尔定律(Amdahl’s Law) |
| ARR revenue | 年度经常性收入(ARR revenue) |
| Captions | Captions |
| Carlos Delatorre | Carlos Delatorre |
| CIO | 首席信息官(CIO) |
| Codeium | Codeium |
| CS degree | 计算机科学学位(CS degree) |
| Dario | Dario |
| Douglas | Douglas |
| drink your own Kool-Aid | 喝下自己灌的迷魂汤(drink your own Kool-Aid) |
| Gara | Gara |
| go-to-market | 推向市场(go-to-market) |
| GPU virtualization | GPU 虚拟化 |
| IDE | 集成开发环境(IDE) |
| inference infrastructure | 推理基础设施 |
| JPMorgan Chase | 摩根大通(JPMorgan Chase) |
| Lenny Rachitsky | Lenny Rachitsky |
| Microsoft | 微软(Microsoft) |
| ML models | 机器学习模型(ML models) |
| ROI | 投资回报率(ROI) |
| Varun Mohan | Varun Mohan |
| Windsurf | Windsurf |
Reformatted by reformat_english.py
仅用四个月便吸引超百万开发者,Windsurf 的爆发绝非偶然。本文深度对话其 CEO Varun Mohan,揭示了这款 AI 编辑器背后的战略跃迁:从底层 GPU 基础设施起步,敏锐察觉生成式 AI 对技术栈价值的重塑,最终因传统 IDE 的能力天花板而果断打造独立产品。文章不仅复盘了一次精准的业务转型,更分享了极具颠覆性的产品与组织哲学——产品应每半年主动“自我蚕食”,团队需保持“脱水状态”以实现极致精简。面对 AI 时代技术构建回报率的飙升,Varun 指出,“能动性”正取代传统编码,成为开发者的核心壁垒。本文为理解 AI 工具演进与个体能力重塑提供了沉稳而深刻的洞察。
打造一款神奇的 AI 代码编辑器,在 4 个月内被超 100 万开发者使用:Windsurf 幕后
文字记录
Varun Mohan: 我们在公司内部所做的许多押注,都不是针对三四周后的事情。我们应该每六到十二个月就蚕食掉现有产品的状态。每六到十二个月,它应该让我们的现有产品显得很愚蠢。它几乎应该让现有产品的形态显得很笨拙。
Lenny Rachitsky: 你怎么知道什么时候该招人了?
Varun Mohan: 我希望公司几乎像是一个脱水状态的实体。每一次招聘就像是一点点水,只有当我们重新回到脱水状态时,我们才会去招人。
Lenny Rachitsky: 随着 AI 越来越多地构建我们的产品,你认为还有哪些技能是人们应该投入更多精力去培养的?
Varun Mohan: 工程师现在能够产出更多的技术。构建技术的投资回报率实际上已经上升了。这实际上意味着你应该雇佣更多人。最好的做法就是亲自上手去折腾所有这些产品。你能以他们从未预料到的方式,成为你所在组织的力量倍增器。
嘉宾介绍
Lenny Rachitsky: 今天我的嘉宾是 Varun Mohan。Varun 是 Windsurf 的联合创始人兼首席执行官,Windsurf 迅速成为了人们最喜欢的 AI 编码工具之一,基本上也是 Cursor 的主要竞争对手,在四个月内就拥有了超过一百万用户。在我们的对话中,Varun 分享了 Windsurf 的独特之处,为什么他们在发展历程中非常早的时候就决定大举投资企业销售,为什么能动性(agency)将是工程师和产品构建者需要培养的最重要的技能。他还讲述了他们如何作为一家 GPU 基础设施公司起步,并意识到技术栈上层存在更大机会的故事,以及让他们走到今天的两次关键转型。此外,他还进行了现场演示,给出了在 Windsurf 取得成功的建议等等。在这场对话中,关于工程师和产品构建者的未来走向,有太多值得学习的内容,我非常激动能将它呈现给你们。
Windsurf 与 Codeium 的历史
Lenny Rachitsky: Varun,非常感谢你的到来,欢迎来到播客。
Varun Mohan: 兄弟,谢谢你邀请我。我是一个长期的听众。
Lenny Rachitsky: 噢,我真的很感激。我非常激动你能来到这里。我觉得你们就像是一夜成名的典范,这绝对不是一夜成名,但我觉得我越来越多地听到人们把 Windsurf 当作他们最喜欢的 AI 工具。我只是觉得人们并不了解 Windsurf 背后的故事,不了解你构建的公司 Codeium 背后的故事。所以我想也许从那里开始比较好,让你简单分享一下 Codeium 的历史,以及 Windsurf 是如何从 Codeium 中诞生的。
Varun Mohan: 是的。这家公司实际上是在将近四年前成立的。如你所知,四年前 AI 编程还不存在,ChatGPT 也没有发布。当时,我们实际上是从构建 GPU 虚拟化(GPU virtualization)和编译器软件开始的。在此之前,我在自动驾驶领域工作。我的联合创始人从初中起就认识我,他在 Meta 负责 AR/VR。对我们来说,我们相信深度学习会触及许多许多行业,不仅是自动驾驶,还会触及金融服务、国防和医疗保健。我们相信这些深度学习应用很难构建。所以我们让你能够在没有 GPU 的计算机上有效地运行这些复杂的应用程序,我们会为你处理在 GPU 上实际运行工作负载的所有复杂性,并且我们能够大幅优化这些工作负载。
Varun Mohan: 到了 2022 年中期,我们有了几百万美元的收入,管理着超过一万个左右的 GPU,当时团队只有八个人,而且我们的自由现金流已经是正的。但我认为我们当时的感受是,一旦这些生成式模型开始变得非常好,我们构建的很多东西似乎就不那么有价值了。这对公司来说是一个非常非常艰难的时刻。我们觉得:“嘿,人们还会去训练那些非常定制的情感分类器模型吗?还是他们只会去问 GPT-N,这是积极还是消极的情感?”可能都会是后者,对吧?在一个所有人都要运行生成式 AI 模型的世界里,一家基础设施公司凭什么成为差异化优势?因为从长远来看,每个人都会运行相同类型的基础设施。
Varun Mohan: 所以相反,我们决定做的事情是,我们相信生成式 AI 几乎会像下一个互联网一样。在那种情况下,我们应该去做的是构建下一个伟大的应用程序,像 Google、像 Amazon。我们进行了垂直整合,实际上利用了我们的基础设施、我们的推理基础设施(inference infrastructure)去构建了当时的 Codeium。当时,我们是 GitHub Copilot 的早期采用者,我们认为编程领域在未来几年将会受到巨大的颠覆。所以我们实际上利用了我们的基础设施,大规模运行我们自己的模型,我们甚至训练了自己的模型。
从免费自动补全到企业级服务
Varun Mohan: 在最开始,它非常非常简单。它纯粹是一个自动补全模型,基本上意味着当用户在输入时,我们会补全接下来的一到四行代码。但我们在开发者编写代码的所有 IDE 中完全免费提供了该产品,这包括 VSCode、JetBrains、Eclipse、Visual Studio、Vim 和 Emacs。我们之所以能够免费构建它,是因为我们有基础设施背景,能够对这些工作负载进行大量优化。
在那之后很快,一些大型企业也想与我们合作。我们发展了这项企业级业务,与戴尔、摩根大通等大公司展开合作。对他们来说,更重要的事情不仅仅是“嘿,我们能不能自动补全代码,或者能不能和代码库对话?”而是“你们能不能提供一个安全的方案,并且能针对公司内部所有私有数据进行个性化处理?”因此,我们利用我们的基础设施,投入大量精力确保自己能够深入理解这些大公司的代码库。这就是我们直到六个月前一直在做的事情。
并不是说我们停止了这项工作,但六个月前我们基本意识到,我们受到了所使用的 IDE 的限制。VSCode 作为一款非常受欢迎的 IDE,对我们能向用户展示的 AI 能力来说存在一个天花板。正因如此,我们决定派生 VSCode,并引入一些全新的具备能动性(agentic)的功能来构建我们自己的 IDE。同时,在过去几年间,模型能力也在逐年呈指数级增长。这大概就是我们现在的状态,我跳过了很多细节,但这就是我们最终落地的结果。
AI 价值的最终落脚点
Lenny Rachitsky: 这其中有很多有趣的线索。其中一点就是,关于价值最终会在 AI 领域的哪个环节积累,总是存在这样的疑问。非常有趣的是,你们几乎是从基础设施 GPU 的最底层起步,然后转向了人们所说的 GPT 套壳应用——实际上并非如此。所以我想知道,关于你认为在这个 AI 世界以及 AI 工具栈中,价值最终会落在哪里,你们有什么经验教训或想法?
Varun Mohan: 也许我可以先说一件关于初创公司的事情,我认为这非常真实:你最初认为自己应该去做的第一件事,极不可能是正确的事。作为一名初创公司创始人,这是一件很难去应对的事情,对吧?你需要对你的所作所为将具有差异化的重要性保持非理性的乐观。因为否则的话,你为什么要去做你正在做的事?如果这件事很明显,那么一家大公司早就已经做了,对吧?
但与此同时,你又必须非常非常现实,因为大多数非传统的想法通常都是坏主意,对吧?所以你需要在这条奇怪的钢丝上保持平衡,在为一个你坚信的未来努力的同时,不断获取新信息。你必须摒弃你原有的信念。如果从基础设施部分说起,我们最初进入时的假设是,模型架构将会是非常非常异构的。
有自动驾驶领域的背景,我们接触到许多不同类型的模型架构。有卷积神经网络、图神经网络、循环神经网络、LSTM,还有带截头体点网络的较轻量级的神经网络。我们当时要处理的大概有几十种架构。在那个时候我们觉得,这种复杂性太高了,很明显如果有人能将这种复杂性卸载掉,将会创造很大的价值。
快进到 2023 年中期,一切看起来都将会是 Transformer。所以现在我们的假设完全错了。在这一点上,大多数的价值可能不会仅仅积累在——至少我们是这么认为的——基础设施层。它会积累在其他地方。你真正可以实现差异化的层级在哪里?我们相信,应用层是一个可以走出去实现差异化的非常非常深的层级,对吧?我们能通过多少种方式为开发者构建更好的用户体验和更优的工作流?我们认为在这方面基本上没有天花板,我们能从根本上把开发者的生活改善到何种程度是没有上限的。
转型与试错的勇气
Lenny Rachitsky: 你触及了我认为这里非常有趣的第二个线索,那就是你们是如何从正在起效的想法中转型出来的。你们在赚钱,人们也很喜欢它。你说你们有数百万美元的年度经常性收入(ARR revenue)。然后你们却说:“不,我们要彻底改变这项业务。”所以这里的问题是,关于如何判断该追随什么,你们学到了什么?我从中听到的一点非常有趣,那就是一旦你构建想法所基于的假设发生了改变,就是时候重新审视这个想法,并尝试其他事物了。
Varun Mohan: 我认为我们对此的思考方式是,即使在我们现在的工作中,我们也只是接受我们会把很多事情弄错。我们就是会把很多事情弄错。显然那是一个非常重大的时刻,因为那是一个押上公司的时刻,从某种意义上说,我们基本上就是告诉我们的投资者:“嘿,我们正从中赚钱。”我们已经筹集了 2800 万美元的资金,然后我们就像是:“嘿,我们打算完全从这上面转型。”而我们是一夜之间完成转型的。这并不是那种我们说“嘿,也许一个季度,或者一两个季度后”的事情。因为我们深知对初创公司来说非常重要的一点就是专注。
如果你正试图去做另一件你认为很宏大的事情,但你的精力却集中在你认为没有价值的事情上,那么你注定会搞砸那件你认为宏大的事情。这是非常显而易见的道理。但我认为,一旦你带着“你的许多假设都会是错的”这种预设出发,同时你又会尽最大可能集中精力去验证这些假设,并且你不会迷恋于自己的想法。
我认为,当你有一个绝佳的想法时这很棒,但你永远不应该过于迷恋自己的想法。并且你需要一个极度追求真相的组织。我认为公司里的很多人,他们的想法都已经经历了一次又一次的检验。即便是构建 Windsurf 也是如此。这算不上是一次彻底的公司转型,但那是我们在公司内部做出的一个重大决定。你总得去下一些赌注。有时你错了,有时你对了。但如果你拥有这样一个组织,让你觉得即使做出了错误的决定,士气也不会因此低落,那就是最好的状态,对吧?这意味着在未来的时间里,你都拥有了选择权。
Lenny,关于这一点我试图告诉公司的一件事是,今年我们将拥有的工程产出总量,将远远超过从公司创立之初直到现在的工程产出总和。所以这几乎意味着每一年对我们来说都是一次重获新生,对吧?这几乎为我们提供了一种全新的方式,去验证一整套全新的假设。也许我们最初对原始假设就是错的。又有什么能让我们比别人更聪明,从而保证正确更多次呢?
Lenny Rachitsky: 这太让人振奋了。这让我想到……Uri Levine 曾做过客,他是 Waze 的联合创始人,他有一句话印在他的衬衫上。他的书名就叫《爱上问题,而非解决方案》(Fall in Love with the Problem, Not the Solution)。感觉这正是你所描述的。
Lenny Rachitsky: 好的,那我们来聊聊 Windsurf。让人们理解 Windsurf 是什么的最简单方式是什么?
Varun Mohan: 是的。Windsurf 是一个集成开发环境(IDE),对吧?它是一个用来构建软件和应用程序的应用程序。疯狂的一点是,很多使用这款产品的人可能甚至不知道 IDE 是什么,这很疯狂。我们稍后会深入探讨这一点。
Windsurf 与传统 IDE 的区别
但我们为什么要去构建 Windsurf,Windsurf 到底是什么呢?为什么我们不能直接在像 Visual Studio Code 这样的传统 IDE 之上来做这些事?所以也许稍微展开说一下,随着我们看到 AI 变得越来越强大,人们构建技术的方式,我们认为其界面将会发生显著的变化。它不再会是一个传统的纯文本编辑器,由用户来编写几行代码或大部分代码,然后 IDE 可能会对用户做对或做错的地方提供一些基本的反馈。而基本的反馈可能是,“嘿,你的软件里有一个 bug 或者编译器错误。”它能做的事情要多得多,对吧?它实际上可以去修改大块的代码。
构建全新界面的底层逻辑
我们认识到的关键点之一是,在这种 AI 的新范式下,AI 可能会编写超过 90% 的软件,在这种情况下,开发者的角色以及他们在 IDE 中所做的事情也许就是审查代码。也许这实际上与过去的情况有了一点不同。我们在 Windsurf 上很快就会看到这一点。也许当你使用这款产品时,用户很大一部分的时间实际上是在审查 AI 输出的内容。所以我们需要在 IDE 中构建自定义的审查流程,以真正让它变得更简单去实际执行这些操作,对吧?因为开发者并没有把所有时间都花在编写代码上。这就是我们构建这款产品的基本前提。我们认为,如果我们摆在那里的是一个非常非常基础的 UI,我们会受到极大的限制。我在这里甚至可以举一个简单的例子。我们有一个自动补全产品,可以补全几行代码。现在我们实际上推出了一个叫做 Windsurf Tab 的功能,它基本上也会向你展示重构建议。而这些重构几乎是内联重构。我们能够在 Windsurf 中为它构建一个自定义的 UI。但在 VSCode 中,由于 API 访问权限的限制,我们需要在用户光标旁边动态生成图像,因为我们根本没有权限去恰当地展示和编辑。而我们意识到的是,在转移到 Windsurf 后,我们的接受率立即变成了三倍。同样的机器学习模型(ML models),就是变成了三倍。所以我想,这给了我们信心,是的,你可以说技术非常重要。我也认为技术非常重要。但是如果我们的用户从我们正在构建的技术中获得的价值非常少,你需要真正搞清楚,“也许我们确实需要构建一个新的展现层和界面。”这就是 Windsurf。
Lenny Rachitsky: 所以为了极其清晰地说明这一点,你们下的一个大赌注是,你们最初是在大家都很熟悉的现有 IDE 中进行开发的。然后感觉就像是,“这无法把我们带到我们需要去的地方。我们要试着说服人们切换到一个全新的东西,因为它会好得多。这是我们自己的 IDE。”我想人们可能没有意识到这有多大的风险,去说服工程师使用一个全新的东西。这是一件了不起的大事。
Varun Mohan: 是的,当然。也许有一件重要的事情需要分享,Lenny,就是我们很多开发者确实在使用 Visual Studio Code。但也有很多人编写像 Java、C++ 等等的语言,他们可能会使用 JetBrains 系列的 IDE,比如 IntelliJ。对我们来说,我们实际上仍然致力于在这些平台上进行构建,对吧?我们只是觉得,作为占据主导地位的 IDE 之一,Visual Studio Code 限制了我们可以提供给实际客户的用户界面。
Windsurf 的早期增长数据
Lenny Rachitsky: Windsurf 目前的增长势头如何?你听到你们这个领域的所有竞争对手都有一些疯狂的数字。对于大家想了解的情况,你能分享些什么?
Varun Mohan: 是的,也许可以说几个。我们在四个多月前推出了这款产品。在这段时间里,超过一百万的开发者尝试了这款产品。显然,我们现在有数十万的月活跃用户。
Lenny Rachitsky: 我很喜欢现在这种情况,“哦,一百万。哦,没什么大不了的。”现在的数字就是这么离谱。我们只是习惯了这里一亿的年度经常性收入,那里四个月一百万用户。就好像,“哦,当然。你怎么会没有呢?”但这太离谱了。现在真是一个疯狂的时代。
AI 时代的编码工作演进
Lenny Rachitsky: 你提到了一件我本想稍后再谈,但不如现在就提出来,那就是关于工程在未来将如何改变的问题。你抛出了一个统计数据,说未来 90% 的代码将由 AI 编写。Anthropic 的 Dario 最近也说了同样的话。你们确实有一种非常有趣的视角,得以一窥未来事物会是什么样子。所以我想问题就是,你认为具体的编码工作在未来几年会是什么样子,它与今天会有多大的不同?
Varun Mohan: 我想,当我们思考工程师实际上在做什么时,它大概可以分为三个部分,对吧?我应该解决什么问题?我应该怎么解决?然后是解决问题。我想在这个领域工作的每个人可能都越来越确信,解决问题——也就是纯粹的“我知道我该怎么做”然后去执行——AI 将处理绝大部分,如果不是全部的话。事实上,可能实际上,随着我们在深度理解代码库方面所做的一些工作,“怎么解决”这个问题也将越来越接近被解决。如果你深度理解了一个组织内部的环境,如果你深度理解了代码库,那么在公司最佳实践的指导下,你怎么解决这个问题也就被解决了。所以我认为工程真正走向的,其实是你最初就希望工程师去做的事情,也就是,我们最需要解决的最重要商业问题是什么?我们的应用程序、我们的产品需要具备的最重要的能力是什么?然后真正去对这些进行优先级排序,真正去做出正确的技术决策来执行它。我想这就是工程可能正在走向的方向。那么,这是否意味着没有人需要计算机科学学位(CS degree)了?我觉得这可能有点被夸大了,因为也许这就是我的论点。如今很多构建全栈应用程序的开发者,至少在几年之前,他们可能都上过大学并学过操作系统课程。理论上,他们并不非常频繁地去折腾操作系统,比如内核调度程序。但是这些原理是否帮助他们理解为什么他们的应用程序很慢?是否帮助他们理解为什么一些设计决策比其他的更好?是的,这使他们成为比其他工程师好得多的工程师。我认为这种理念以及对底层发生的事情的理解,会让一个好工程师变得更好。但与此同时,它也赋能了一群从来不懂所有这些东西的人,让他们也知道如何真正去构建,这是整个过程中产生的另一个了不起的成果。
Lenny Rachitsky: 我不知道你有没有孩子,但假设你有孩子,或者有侄子侄女要上大学,比方说,你会建议他们去学计算机吗?还是会建议他们,如果现在选这个职业,不会过得太好?
Varun Mohan: 是的。也许我可以稍微回想一下。我上过麻省理工,公司工程团队里有很多人都是跟我一起从麻省理工出来的。我想,当回溯我们在工程或计算机科学上学到的最多东西时,其实并不完全是“怎么写代码”。读完大学后你会写代码,这几乎是理所当然的。它更像是关于你如何思考一个问题、如何将其拆解以及如何以有趣的方式解决它的原则。
举个我非常喜欢的课程的例子,那就是我们的分布式系统课。在那里,你其实是在阅读文献,并理解一些设计决策是如何做出的。我认为这更像是一门解决问题的课程和专业。这是一个关于在当今计算机运行方式的一些约束下,你该如何解决问题的专业,对吧?比如,这是内存运行的大致速度。这是……的速度。这是你在单个周期或一秒内能做多少计算量。基于此,你可以做出一些权衡来解决问题。
所以我不知道我是否会说你不应该去拿一个计算机科学学位(CS degree)。我认为计算机科学几乎就是解决问题的同义词。在这种情况下,我认为它是非常有价值的。
你在计算机科学学位里学到的一切都有用吗?我想说,我在计算机科学学位里学到的很多东西都没有用。我给你举个例子。我上过一门用 Julia 语言的并行计算课。我觉得 Julia 现在已经不是很流行的编程语言了。我会因为上了这门课而非常难过吗?不会。我想说,并行计算的原理在今天仍然非常有用。
Lenny Rachitsky: 所以我听到的是,你仍然想要建立的技能,无论是计算机科学还是某种变体,其实就是建立计算机和系统如何运作的心智模型。并行处理、内存、硬盘、互联网之类的。然后就是解决问题的技能,能够解决有趣的问题。随着 AI 越来越多地构建我们的产品,你认为还有哪些技能是人们应该更多投入去培养的?
Varun Mohan: 没错。
Lenny Rachitsky: 随着人工智能越来越多地构建我们的产品,你认为还有哪些技能是人们应该更多投入去培养的?
Varun Mohan: 我认为可能有点被低估的一点是这种能动性(agency)的部分。我对此思考了很多,也就是,有很多人经历过大学和学校教育,他们基本上在习题集上被确切地告知该做什么。他们被指定了这些非常、非常,可以说,定义明确的路径去走。
我认为也许在社会和学校中,我们并没有把“如何确保培养出真正具有能动性、想要去创造东西的人”放在优先位置,对吧?他们的目标不应该仅仅可能是从大学毕业,然后去一家大科技公司找份工作,在那里被确切告知该做什么,或者被告知在这个网站上某个像素该放在哪里。我认为这可能是目前,大概在过去 10 年左右,被低估的一种技能组合。而且我认为这将会变得非常、非常重要。
对于初创公司来说,显然这些正是我们要寻找的技能。我们寻找真正具有高能动性的人,因为我们只是认识到,默认情况下,如果我们不创新、不做疯狂的事情,我们就会死。公司就是会死。所以我们就是寻找这个,对吧?但我想说,对于大多数软件工程工作来说,情况可能并非如此。想想大公司 X,以及他们在普通的软件工程面试中在招什么样的人。大概看起来不是那样的。
Lenny Rachitsky: 我很喜欢你的措辞。如果我们不做疯狂的事和创新,我们就会死。这会是这期播客节目很棒的一个标题。而且我认为,我知道,这 100% 是真的。现在正在发生很多疯狂的事情,也有很多创新在发生。如果你跟不上,你就会死。
精简团队的招聘哲学
Lenny Rachitsky: 那么我们来谈谈招聘吧。你在招聘上有一个非常有趣的方法。我这有几个问题。其中一个就是你如何……我知道你试图保持非常精简。这是如今所有 AI 初创公司的一个共同主题。你怎么知道什么时候该招人了?
Varun Mohan: 我喜欢成为一家精简公司的理念,但我并不盲目崇拜它,以至于认为“嘿,成为一家收入 5000 万、1 亿、2 亿美元但只有 10% 或 20% 规模的公司是一个梦想”。我认为这不是我们在公司内部所崇拜的。
我认为我们崇拜的是,成为能满足我们野心的最小规模的公司。这就是目标。也许,Lenny,我表达这个想法的方式是,如果我告诉你,“嘿,我要造一辆自动驾驶汽车”,而我说我们的团队只有 10 个人,你完全有理由说,“嘿,Varun,你不是认真的。”你说得对。在那个时候我不是认真的。所以我认为答案是,去实现你那个疯狂野心的项目,最少需要多少人?
而我认为我们试图去做的项目,即彻底改变软件的构建方式,我们在公司里提到过这点,我们的目标是将构建应用程序和技术所需的时间减少 99%,对吧?这是一个极其雄心勃勃的目标。从长远来看,我们不可能仅靠一个 10、20、30 或 40 人的工程团队就能真正实现这个目标。我们认为这里的天花板非常非常高。所以这可能是其中的第一个关键点。也就是说,如果我们能破解这个难题,实际上成为一家相当规模的公司,但仍然像初创公司一样运作,那就是梦想。那就是梦想。
在招聘理念方面,我们思考问题的方式是,只有当我们实际上在某个职能上处于超负荷状态时,我们才会为该职位招人。假设我们要去构建推理技术。除非我们在那方面已经人手不足,否则我们不会去招人来负责这块。原因在于,我其实认为这是一个优势。当你为一个职位招人,而那里已经有足够多的人时,最终会导致很多奇怪的办公室政治发生。这并不是因为人们是坏人。我认为大多数人的出发点都是好的。
但是,当你招了人进入公司,而实际上你并不真的需要他们时,会发生什么呢?他们会去制造一些其他应该去做的事情。他们会去找别的事情做。而现实中,那些事情可能并不重要,但他们会去试图说服组织里的其他人那很重要。
我只是认为作为一家初创公司,我们没有带宽去处理那些事情,对吧?对我来说,我更希望看到大家几乎都是举着手说,“我要撑不住了。我们还需要一个人。”只有到那个时候,我们才会去招人。我喜欢打的一个比方是,我希望公司几乎是一个处于脱水状态的实体,而每一次招聘就像是加了点水。只有当我们再次回到脱水状态时,我们才会去招人。
Lenny Rachitsky: 我太喜欢这个比喻了。听起来很痛苦。你需要处于超负荷状态并举手说“我就快死了、脱水了”,这听起来很痛苦。但我也知道这是一种非常令人兴奋的工作方式。听起来很难,但如果你身在其中,它就只是……我想聊聊这其中的体验,因为我觉得这听起来可能会像,“这太糟了。我不想这样工作。”
Varun Mohan: 你知道我实际上是怎么想的吗,Lenny?出于少数几个原因,这其实非常好,其中很大一部分是……我们尊重并信任在公司工作的人。所以这迫使了无情的优先级划分。你有一个走出去做事情的团队,他们绝不会要求去做不重要的事情。事实上,如果他们手头有两件事,他们就会直接告诉我:“嘿,我手头有两件事。我就是没有能力做两件,我只能做一件。”然后他们会挑出最重要的那一件。
这其实归结于我认为对于初创公司以及一般公司来说都成立的一点。你不会因为做好了10件事而获胜。你会因为把一件事做得特别好而获胜,哪怕你可能在其他九件事上失败了。这是我在公司里说过的话:“这和学校非常不同,”对吧?在学校里你优化的是你的总绩点。但对于公司来说,我只需要在那一门重要的课上拿到A+。然后我可以在其他所有的课上拿F。而在其他所有的课上拿F并不意味着去做违法的事情,那基本意味着你只是降低了那些不重要的事情的优先级。这实际上迫使了这种组织层面的优先级划分,这真的是非常、非常好的。
我和Douglas,Douglas是我的联合创始人,我们可以告诉公司,“这是最重要的两件事。”但如果我们走出去说这是对公司最重要的两件事,然后我们让公司的人数比需要的多出20%,最终会发生什么?拥有更少的人,或者那些在公司内部处于超负荷状态的人,本身几乎就是一个迫使你无情划分优先级的强制函数。
Lenny Rachitsky: 每个在大公司工作并听我们说话的人,都完全明白你描述的意思,当人太多的时候,他们都会找到工作来做,并且他们都会在推销想法。他们都想展示影响力,他们都想在绩效评估中表现好。这只是公司里人太多的本质。所以我认为这一切都非常有共鸣。为了更深入地了解当一个人超负荷并告诉你该招人时究竟是什么样子的,是否就是有人来找你说,“Varun,我这个团队需要一个人。这根本不可能完成”?在实际操作中这更具体是什么样子的?
超负荷与招人时机的判断
Varun Mohan: 是的,我认为基本上就是这样。就是,“嘿,在短时间内有完成某件事的压力。”顺便说一句,对于软件我们确实相信的一点是,如果你想做伟大的事情,你不可能只是说,“嘿,我想在一个月内完成它”,如果它就像……因为你必须从这个角度来思考。如果一个软件项目可以在两到三周内构建完成,这对你所构建的东西的真正复杂性和差异化到底意味着什么?它可能不是很高,除非你认为自己比其他所有人都聪明得多。但我认为那是傲慢,对吧?我认为我们实际上有一个非常出色的工程团队。但与此同时,我也不认为我们的工程团队如此出色,以至于我们能在三周内做到世界其他地方在六到九个月内做不到的事情。相信那个有点愚蠢。
所以我认为基本上归结于那个人出来说,“嘿,看,我没有足够的时间去做X。”我们进行一次对话,比如,“好的,那你能做什么?”如果答案是,“我只能做比那更少的事”,那么也许我们实际上会做出一个决定,“哦,哇,那太好了。也许我们实际上应该降低Y的优先级。”因为这实际上也是另一件即使对我和我的联合创始人来说也非常困难的事情。那就是我们也想做很多事情。有一种做很多事情的冲动。但如果我们被迫不断做出诸如“我们不能做X”的决定,这是非常让人清醒的。这非常让人清醒,因为我们的工程面试流程录取率也极低。所以对我们来说,非常快速地启动人员编制并让他们非常、非常快地加入公司也不是很容易。
所以我认为这对每个人都是一种澄清。对于想要更多人的人来说,这是一种澄清。我们可以直接告诉他们,“嘿,看,我们不认为你应该做这另外一件事。”这对我们来说也是一种澄清,因为我们也可以和他们达成共识。有时候我们就是会同意,“嘿……”我们的团队非常灵活,比如,“嘿,实际上我们确实需要完成某件事。”而我们一直试图确保在工程团队中实现的一点是,一个人对公司的价值与他的团队规模没有任何关系。公司内部有各种项目,公司内部有这些项目的直接负责人。如果我们觉得某个项目非常重要,那么人们就可以从一个项目转移到下一个项目。
在公司里没有某人“拥有”其他人的概念。这是一个非常糟糕且棘手的想法。事实上,公司里最有价值的人,是那个能用尽可能少的人去做外面最疯狂项目的人。而这才是你内部应该奖励的。
团队规模与组织架构
Lenny Rachitsky: 目前你们写代码的有多少人?
Varun Mohan: 我们目前有将近160人,工程团队现在有50多人。
Lenny Rachitsky: 太棒了。哦,其他比较大的职能部门是什么?所以……
Varun Mohan: 我们有推向市场(go-to-market)团队。我们有一个……是的。
Lenny Rachitsky: 哦,对。好的。我想聊聊那个,你们在销售方面的经验。好的。但让我们先结束这个关于招聘的话题。所以我们讨论了你看重什么……当有人告诉你该招人了,你在面试和录用的人中看重什么?
面试与选拔标准
Varun Mohan: 我们寻找的关键要素之一是,我们有非常高的技术门槛。所以假设他们确实达到了技术门槛,我想我们有点像是在寻找那些对我们实际试图解决的使命充满、充满热情的人,以及那些愿意非常努力工作的人。我认为我们不尝试做的一件事是去说服人们,“嘿,看,我们是一家非常轻松的公司,在这里工作很棒。”我认为,不,这是一个非常令人兴奋的领域。它非常有竞争力。如果公司里的人没有那种……他们没有非常努力地工作,你应该预期我们会输。我认为我听到的最大的负面信号是,当我问人们你愿意多努力工作时,有些人实际上最终会说,“嘿,我很聪明地工作。”然后我基本上会问他们一个问题,“如果我们公司有很多聪明且努力工作的人,你的差异化优势将会是什么?你只是要把他们拉低吗?”
因为我认为关于公司一件真实的事情是,它就像一个庞大的小组作业。而我认为一个没有尽到自己本分的人,其糟糕之处不在于生产力,对吧?在某个时刻,当公司变成几百名工程师时,我不会去想那一个没有尽到本分的工程师。而是和他们一起工作的团队,他们几乎基本上在说,“这就是公司内部的门槛吗?这就是期望值吗?”我猜,Lenny,如果我告诉你你有一个五人团队,而和你一起工作的其他四个人根本不在乎,你会觉得自己有多应该在乎?
Lenny Rachitsky: 不会太在乎。
Varun Mohan: 没错。所以对我们来说,我想这就是我们更看重的东西。我们的文化非常注重协作。这不是一项个人运动,但人们觉得他们可以依靠其他人来完成复杂的任务。
Lenny Rachitsky: 所以你刚才问的问题基本上就是,你愿意多努力工作?你想多努力工作?我知道有些人,有这么一群人只谈工作与生活的平衡,“你怎么敢让我疯狂加班?”我真的很喜欢这种前置的筛选:“如果你在这里工作,你会非常努力。你会工作很长时间。这是一个疯狂的领域。我们将通过聪明地工作以及真正努力地工作来获胜。”
Lenny Rachitsky: 你之前在某个时候说过,你们的工程通过率,就像你说的,大概是 0.6% 的候选人,差不多这样。
Varun Mohan: 对,那可能是指面试后或者笔试后。实际上很可能就是笔试后。所以笔试本身在那个基础上又大概过滤掉了 10 到 15 倍的人。
面试与 AI 工具
Lenny Rachitsky: 我最近越来越多听到的一个问题是,现在外面有像 Windsurf 这样能解决你所有问题的工具,你们要怎么进行面试?
Varun Mohan: 我们允许人们使用这些工具,因为我认为最糟糕的事情之一就是,如果有人来到这里却不喜欢使用这些工具,而我们认为这些工具能带来巨大的生产力提升。我们确实会把人们请到公司现场,这样我们就能真正看到他们如何在白板上思考问题以及其他所有这些环节。所以我们确实想看到他们即兴思考的能力,并希望他们不是仅仅把我们说的话放进语音翻译器,然后塞进 ChatGPT 里得出答案。所以有一种方法可以做到这一点。我对这件事的看法是,这些工具真的、真的非常重要,但我确实认为我们仍然在寻找一些解决问题的能力。如果你解决一个难题的唯一方法就是把它放进 ChatGPT,我认为这对我们来说是一个隐患。
推向市场(go-to-market)与销售团队
Lenny Rachitsky: 好的,让我们谈谈你们在推向市场(go-to-market)销售方面的经验。你们显然和大多数人一样,一开始在没有销售团队的情况下进行构建。然后据我所知,你们意识到那是一个巨大的失误,这也是一个很好的机会可以在这里谈谈,因为你们拥有一支庞大的销售团队和推向市场(go-to-market)团队,我认为这真的很独特。
Varun Mohan: 是的,我想说我们实际上在公司历史上相当早的时候就做出了这个决定。我们实际上在一年多前就雇佣了我们的销售副总裁。现在公司内部推向市场(go-to-market)团队已经超过 80 人了。所以这是公司内部一个相当庞大的职能部门。也许可以交代一点背景故事。当我们创办公司时,实际上我们有一些天使投资人,他们本身就是运营者,是推向市场(go-to-market)运营者。其中一个例子是 Carlos Delatorre,他曾经是 MongoDB 的 CRO。我认为对我们来说,我们从不把企业销售和销售看作是非常负面的事情。我认为这是技术创始人有时不太喜欢的一个有趣现象。他们认为销售是过程中非常负面的一部分。一切都应该是产品驱动增长。我认为这并不是非黑即白的。我认为企业销售非常有价值。但也许当我们还是一家 GPU 虚拟化公司,当我们是一家基础设施公司时,我们从未雇佣销售员的原因是,我不知道如何扩展这个职能。当时是我本人在销售产品。
Varun Mohan: 所以归根结底,如果连我很难增量地销售产品,我就不知道我们怎么能把它变成一个流程,然后去扩展它。我不知道我们怎么能把业务的收入从几百万增加到几亿,更别说几千万了。所以如果我不知道该怎么做,我怎么能出去雇佣一个人,然后让他们去扩展它呢?
Varun Mohan: 另一方面,对于 Codeium,很快就有一大批大型企业主动联系了我们。仅仅因为这一点,在 2023 年年中,我想我和公司里的其他几个人开始销售产品,我们同时与大型企业进行着几十个试点项目,我们非常快地意识到,在这个领域需要建立一个大企业销售机制。所以在 2023 年底,我们实际上雇佣了我们的销售副总裁。在那之后非常快地,我们扩展了销售团队。我的意思是,看吧,如果你想向财富 500 强销售,纯粹靠刷信用卡是非常难做到的。
与 Cursor 的差异及竞争优势
Lenny Rachitsky: 让我们谈谈 Cursor。我不想在竞争对手上花太多时间,但当人们想到你们时,大家总是会想到它。我认为你们也算是这个领域的领先者。还有 Copilot,但那个不一样。那么,理解你们与 Cursor 有何不同,最简单的方式是什么?以及你们认为自己在该领域长期获胜的方式是什么?
Varun Mohan: 我想也许我可以分享几点。在产品方面,我认为我们投入了大量精力,以确保针对超大型代码库的基于代码的理解具有非常高的质量。这仅仅是因为我们的起点。我们与世界上的一些顶级公司合作,比如戴尔、摩根大通。像戴尔这样的公司拥有超过 1 亿行代码的单一代码库。因此,能够非常非常快地理解它以进行大规模更改,是我们花费大量时间做的事情。这要求我们实际上构建自己的模型,这些模型可以跨数千个 GPU 并行处理他们代码库的庞大块,并几乎对它们进行排名,以便能够找出对于关于代码库提出的任何问题来说最重要的代码片段。因此,我们基于我们的基础设施背景,去构建了大型的分布式系统来继续做这件事。这可能是其中一点。
企业级安全与合规
Varun Mohan: 第三个关键点,这听起来可能也是企业的另一个关键点,是我们在许多非常安全的环境中工作。我们通过了 FedRAMP 合规认证,这意味着我们可以向非常庞大的政府实体销售。我们有一个实际使用产品的混合模式,这意味着所有被索引的驻留代码,实际上都存在于用户的租户上,对吧?代码是公司最重要的知识产权之一。因此,我认为如果从大公司的角度来看,多年来仅仅为了构建企业产品,我们已经处理了大公司希望看到的许多复杂性,这有很多原因。但这部分是因为我们最初是如何走到这一步的历史。
Lenny Rachitsky: 好的,Varun,别卖关子了。我们来做个 Windsurf 的现场演示,让大家看看它是什么样的。然后我会在演示过程中问你一堆问题。那么,我让你把已经打开 Windsurf 的共享屏幕调出来吧。
Windsurf 现场演示
Varun Mohan: 太好了。交代一下背景,这是一个非常基础的 React 项目。现在里面什么都没有。所以如果你打开任何文件,它都是默认的 React 应用项目。我这里有一张基础图片。你可以把你想让项目看起来是什么样子的图片传给 Windsurf,也就是我想让一个“狗狗版 Airbnb”网站看起来大概是什么样子。
Lenny Rachitsky: 真漂亮。顺便说一下,效果图做得很精美。我喜欢这就是你所需要的一切。
Varun Mohan: 这就是你所需要的一切。这就是你所需要的一切。所以基本上我们要做的就是说,“嘿……” Windsurf 很酷的一点是,它实际上已经可以在现有项目中工作了。所以我可以基本上说,“嘿,根据这张图片把这个 React 应用变成一个狗狗版 Airbnb 网站并预览。” 现在它就会直接开始执行代码,阅读整个仓库。显然,它不知道当前的代码库到底长什么样。它会去分析代码库,以实际找出必要的更改集。所以我们就去看看,等它看看要做什么。但在我们等待的时候,我们继续聊吧。
Lenny Rachitsky: 太棒了。好的,首先,你打开了 Windsurf。你准备了一个样板 React 项目。而 Windsurf 以前从未真正见过这段代码。你要求它在你的代码库上做一些事情,就像“使用这个设计把它改成狗狗版 Airbnb”。太神奇了。
Varun Mohan: 没错。完全正确。
Lenny Rachitsky: 是的。好的,很酷。那我们就让它运行,我们继续聊。让我问你一个问题,这个问题我问过每一个来做客的、正在构建帮助工程师、产品经理和设计师构建产品的产品的人。假设你可以坐在每个打开 Windsurf 的新用户旁边,在他们耳边轻声提供几条建议,帮助他们成功地使用该产品。你会分享哪些建议?
Varun Mohan: 第一条建议就是要有耐心,既要耐心又要明确。当你要求应用程序去进行一些更改时,它实际上可能会去做出许多不相关的更改。我认为最能防止这种情况的方法就是非常非常明确,或者尽可能明确。我要求人们做的一件事是,在开始时,先进行较小的更改。如果有一个非常大的目录,不要去让它重构整个目录,因为如果它错了,它基本上会破坏 20 个文件。
我想从那里开始,我认为使用该产品的用户得出的一个关键点是,他们有点像了解了产品的波峰和波谷。我喜欢打的比方有点类似于自动补全。当你使用像自动补全这样的产品时,你会认为一个建议东西但只有 30% 接受率的产品会非常非常烦人。但它之所以不是非常烦人,实际上是因为你已经了解到,嘿,70% 的情况下,我不需要接受它。而在我接受的时候,我知道能从中获得价值。而且你事先也知道,如果你写的一个命令非常复杂,你就只会觉得,“嘿,自动补全对它是不会起作用的。” 所以我认为这几乎就像是,去理解这个产品的波峰和波谷。
疯狂的是,每三个月这种认知就会被改变和重新评估。它几乎在实质上变得比过去更好了。所以我认为也许耐心和明确可能是我要告诉用户的两个重要关键点。
Lenny Rachitsky: 我认为你刚才字里行间透露的一点是,要对模型的能力有一种直觉,比如应该具体到什么程度,以及它可以抽象到什么程度。随着时间推移,你会开始建立起这种直觉。
Varun Mohan: 没错。是的。说到这个,感觉我们已经有了一个实际的预览。你猜怎么着?我们有了一个不错的—
Lenny Rachitsky: 可爱的狗狗。
Varun Mohan: 一个不错的狗狗应用。很酷的一点是,除了修改代码之外,我们实际上还能指向不同的部分。我想我可以直接说……我可以指向不同的元素并说,“嘿,把背景……”这设计不算好,但我基本上可以说,如果我选中这个元素,“把这个背景变成红色,就选中一个特定的元素并把它变成红色。”然后它就应该能够去执行这个操作。
产品的预览功能能够在应用构建时展示它,这很有帮助,现在你实际上可以完全生活在应用世界里。你甚至可能都不需要看代码。诚然这看起来很糟糕,但在某种程度上如果我愿意,我可以去这么做,对吧?
审查与重构代码
Lenny Rachitsky: 这就是没有设计师之后会发生的情况。就像,[听不清]。
Varun Mohan: 是的。当不再有设计师的时候。当然。也许答案就像,当你问人们应该做什么时,他们应该培养优秀的品味。拥有好品味。因为我认为品味也是非常、非常难的,对吧?
但 Lenny,我可能想在这里展示的另一个关键部分是,显然你可以继续在这里操作。我可以拿不同的组件并进行修改。我们在这一点上有很多计划,远不止是点击修改组件。但很酷的一点是 AI。还有一个 AI 审查流程,这有点像我刚才说的。AI 的目标现在已经发生了很大变化,它现在在为你修改大块大块的代码。而开发者的工作现在实际上是审查 AI 生成的许多代码。当然,在现在的播客中,我不打算审查所有正在生成的代码。
但假设我想去修改一些代码。这就是如果你是一个真正想要去修改的开发者,也许我不喜欢我的变量名叫做 title。我希望它被叫做 Title String,像这样。如果我想去做出这个改变并改成 Title String,这就是我要做的,我只要告诉 AI 继续。
很酷的一点是,Windsurf 不仅知道智能体做了什么。它还知道用户做过的所有事情。我们这里的目标是达到一种类似心流的状态,用户做过的所有事情,AI 也都知道。并且它能够预测意图。正如你所见,它说,“我注意到接口属性 title 被改成了 Title String。”然后它现在已经去修改了应用内所有从 title 到 Title String 的位置。现在它不再显示那个了。
所以这就是,即使我在写软件并且想要做一些点状的修改,AI 也可以在用户的路径上快速做出这些修改。想象一下做一次重构或迁移,你只修改了代码的一部分。你可以直接告诉 AI 继续完成剩下的部分。因为它深入理解代码库,它应该能找到所有对应的位置去做出修改。显然现在当我重新加载应用时,应用里没有 bug。它仍然正常加载。我显然还可以告诉它做更酷的事情,比如让应用复古一点。我不知道那意味着什么,但我想我可以这么做。然后它应该会为我相应地做出修改。
但是的,这可能是高层次的部分,AI 不仅能够完全在应用空间中操作,而且还能在用户的代码空间中操作,去修改代码,并弥合两者之间的差距。所以它不仅能为纯粹构建应用的非开发者增加杠杆作用,也为那些亲手敲键盘的开发者增加了杠杆作用。
界面元素选取与对比
Lenny Rachitsky: 太棒了。顺便说一句,如果你不在 YouTube 上,你是看不到的,但你可以直接选择页面的任何元素,然后在你的请求中引用它,“这是我想要改变的地方。”我不知道这是一个功能。这非常酷。
有趣的是,刚刚看了 Lovable、Bolt、Replit 和类似的应用,它基本上在做所有这些应用做的事情。哦,哇。复古版出来了。很好。我喜欢它在你的红色基础上构建,实际上变得非常好看。
Varun Mohan: 实际上红色现在看起来好多了。
Lenny Rachitsky: 是的,一个小绿按钮。这很棒。好的。
Varun Mohan: 酷。
具备能动性的工作与基础项目
Lenny Rachitsky: 所以我认为人们没有意识到这一点,但像 Windsurf 这样的应用,它实际上可以为你做很多具备能动性的工作,你只需告诉它,“给。我想让你做这个”,而不是它为你自动补全代码。
最大的区别是,你需要用一些代码库来启动它,所以你有这样一个样板 React 项目。你们有没有什么原因没有采取这一步并自动为你完成这些?是因为你们的目标用户是工程师,他们不需要这个,还是有其他原因?
Varun Mohan: Lenny,有趣的是,你看到的这个基础应用也是由 Windsurf 生成的。我们之所以没有生成它的原因是,安装所有的依赖需要三四分钟。为了演示,我不想等。但完全可以,实际上产品的大多数用户,可能是从零到一构建这些应用的。
内部使用节省 SaaS 成本
如果我可以补充一件有趣的事,当我们发布 Windsurf 时,实际上我们给公司里的每个人都布置了任务,让他们用 Windsurf 去构建一个应用。这包括了我们的推向市场(go-to-market)团队和我们的销售团队。有一个疯狂的统计数据,我觉得人们会感到惊讶,但我们节省了超过 50 万美元我们本来打算购买的 SaaS 产品,因为我们的推向市场(go-to-market)团队现在已经自己构建应用而不是购买它们。我们的合作负责人没有购买合作伙伴门户产品,而是实际上构建了自己的合作伙伴门户。他以前从未构建过软件。我们实际上在公司内部找到了以安全方式轻松部署这些应用的方法。我们现在实际上正在为我们的公司构建非常、非常定制的软件,以便更高效地运营,这在六个月前我大概是不会预料到的。
垂直细分产品受到的冲击
Lenny Rachitsky: 这太有趣了。你不需要说出公司名字,但我猜在哪个领域你最不看好,你认为在这个问题上会受到最大的冲击,人们会构建自己版本的这类产品?
Varun Mohan: 我认为也许我的观点是,这些非常、非常垂直化的细分产品我认为将会……它们将会面临大量的竞争压力。我认为销售产品就是这类事情的一个例子。也许这是一个……我不想太消极,但在像我们这样的公司里,很难安排我们最好的工程师去构建一个同类最佳的销售产品。没有足够的兴趣去这样做。或者去构建一个同类最佳的法律软件产品或财务软件产品。这对我们来说非常、非常难。实际上,对于构建了这些产品的公司来说,这是一个非常大的护城河,他们能够站出来,对如何做这件事持有明确的立场,雇佣足够好的工程师去构建软件。我们公司不愿意这样做。所以以前,我们会去购买技术,因为别无选择。
领域专家的自建工具时代
Varun Mohan: 但现在疯狂的事情之一是,领域专家现在能够构建他们最终想要的工具了,这其实很疯狂。如果你思考为什么这些软件公司,这些垂直软件公司能够存在,原因是因为他们有很多功能。这种包罗万象的功能对很多公司都有效,但每家公司只想要其中 10% 的功能。但问题在于,每家公司都没有能力去维护一个软件,或者为这 10% 的功能构建定制软件,但现在这已经完全改变了。现在他们可以了。
Lenny Rachitsky: 是的。一直都有这样一种说法,比如,“如果我能直接……我为什么要花时间去构建自己的软件呢?”但现在就像是五分钟的时间。
Varun Mohan: 五分钟,甚至可能更贴合你的系统。你有多少次买了一款软件,然后你几乎想说,“为什么没有和 X 的集成?而且我实际上在用 X。”这有多烦人?那实际上让这款软件对你来说没那么有用了。
Lenny Rachitsky: 所以我觉得很酷的一点是,当你回过头,如果有人快退到你开始演示的开头,这基本上就是一个产品经理在跟工程师说,“嘿,给我做一个狗狗版的 Airbnb。这是我用几个框画的一个蠢草图。”这几乎就像是一个糟糕的产品经理在跟工程师说话,但它居然真的管用了。这就是这件事的疯狂之处。所以这就是为什么你分享的这个推向市场的人自己构建东西的例子,就像他们完全不需要知道任何关于产品构建的事情。只要用某种荒谬的方式描述它,再画几个你想要它看起来是什么样的框,它就会为你做出一个东西来。
Varun Mohan: 这说明了能动性才是关键。如果你有一个有想法的产品经理,没有任何理由说这个想法不能被更好地充实完善。你有多少次遇到一个只是不断抛出想法的产品经理,但感觉就像他们极度不确定如何去执行?他们只是为了说话而说话?但对于那些有想法并且我猜有很多能动性的人来说,他们可以在没有任何外部资源的情况下去证明他们想要什么。
Lenny Rachitsky: 我认为对于听这个节目的产品人来说,更切身的体会是,销售人员来找你说,“嘿,我想要这个东西。它能帮到我的销售团队。”然后你会说,“我没有一百万件事要构建。我没时间弄这个。”于是那个问题就消失了,我想这会让很多产品负责人非常高兴。
底层模型架构与数据处理
Lenny Rachitsky: 这底层运行的模型是 Sonnet 吗?
Varun Mohan: 是的。所以简单拆解一下它最终是如何工作的,我们有一个负责规划的模型。我想说现在 Sonnet 是一个非常、非常好的规划模型。我认为 OpenAI 的 GPT-4o 也不错。但疯狂的是,我们试图做的是,让基于 Anthropic 的模型或 Sonnet 模型尽可能多地去做高层规划。然后我们在内部试图做的是,运行所有必要的模型来为智能体进行高质量的检索。正如你所看到的,智能体需要理解剩余的代码库最终是做什么的。我们实际上确保运行模型来真正切分整个代码库并理解代码库,因为很明显,如果我们有一个 1 亿行的代码库,把整个代码库发送给 Anthropic 并不是一个好主意。
首先,你根本做不到。那是超过 15 亿个 token 的代码。所以很明显,那实际上会比现在最大的上下文窗口大三到四个数量级。而且从成本和延迟的角度来看,你也不会想这么做。这是其一。你看到的第二部分是,模型也能非常快速地对软件进行编辑。我们有构建的自定义模型,是在流行的开源模型之上进行后训练的,能够非常、非常快速地对代码库进行这些编辑。你之所以想这么做,原因第一是更快,第二是那个模型实际上可以在上下文中放入更多的代码库。所以它在应用更改方面甚至可以比 Anthropic 的模型做得更好。
所以我认为我们喜欢思考的方式是,我们唯一的目标是如何构建尽可能最好的产品?如何构建尽可能最好的产品以及如何让天花板尽可能高?只要有必要,我们就会去构建模型和训练模型。但如果我们不擅长某项任务,并且我们认为开源的更好或者 Anthropic 的更好,我们就会直接去使用开源或 Anthropic。
Lenny Rachitsky: 那么你们构建的这些模型,是基于人们发布的一些开源模型构建的吗?
Varun Mohan: 是的。有趣的是,做检索的那个实际上是完全在内部预训练的。但是是的,对于许多不同的部分,它是基于开源的。有趣的是,做编辑和自动补全的那个,也是内部的。当你在打字时,我们实际上会做一些与自动补全相关的事情。我很乐意展示那个,但我认为很多用户都熟悉那个功能。所以我认为我们喜欢看待它的方式是,我们可能在什么方面做到最好,然后我们就会去训练。但如果我们不能在这方面做到最好,我们不应该仅仅为了面子去训练什么。
独特的训练数据优势
Lenny Rachitsky: 这可能变得太技术化了,但就是,关于你们训练所用的数据有什么有趣的地方吗?
Varun Mohan: 是的,所以我们从用户那里得到的一件有趣的事情,也是我们试图思考“为什么我们会更好”的地方,是实际上每个小时,我们可能会从用户那里得到数以千万计的反馈。我们得到了大量关于他们喜欢什么和不喜欢什么的反馈。对于像自动补全这样的东西,我们得到了大量的偏好数据,非常多的偏好数据。而且偏好数据很奇怪。它看起来不像你在互联网上找到的数据。它就像用户在打字时的数据。想象一下你在代码库中输入一些代码,当你正在输入时,代码将是不完整的,对吧?它不会是一个完整形态。它不像在 GitHub 上的那样。但是我们有很多看起来像这样的数据。
所以我们处于独特的有利地位,能够真正构建一个好的模型,即使在代码处于不完整状态时也能补全代码,而市面上现有的模型,那些前沿模型,消费过的看起来像这样的代码非常少。所以对于那种情况我们会想,“嘿,我们实际上可以做得好得多。”然后我们会用我们拥有的所有偏好数据去训练模型。
在检索方面也有些类似,对吧?有一种方法可以查明,我们检索的数据对不对?用户在那之后接受了代码更改吗?这次检索实际上是不是一次好的检索,这是一个我们能获取的信号吗?所以基本上我们喜欢看待它的方式是,如果某件事纯粹是代码规划,我们没有很好的理由说我们会在这方面做得最好。我想不出一个连贯的论点来支持这一点。但对于更像是这样的东西,“嘿,这是一个非常棘手的中间态代码库,这里有一些需要做的更改”,而且我们知道代码的演变过程,或者我们看过数百万用户代码的演变过程,我们觉得我们能在这方面做得很好。
Lenny Rachitsky: 我认为关于这点有趣的是,对于最终在这个领域获胜的公司来说,另一个差异化因素或护城河是,如果你领先了,你就比其他公司拥有越来越多这样的数据。
Varun Mohan: 是的。这大概就是为什么在宏观层面上我们偏好从零到一的应用构建产品领域。我认为这确实……这是一个很好的产品领域。但最终我认为它必须归结为对代码的理解,因为否则,你就处于一个太高的抽象层面,很难说清楚为什么与所有人相比你能在这方面做得最好。这确实不明确。
Lenny Rachitsky: 你是说作为一家公司吗?
Varun Mohan: 作为一家公司。
Lenny Rachitsky: 而不是作为用户。
Varun Mohan: 感觉它可能会陷入一种竞争态势,即随着时间的推移,你能在哪里持续不断地实现差异化变得不明确。
Lenny Rachitsky: 我明白了。因为如果他们只是建立在 Sonnet 之上,只是做着每个其他 Sonnet 封装器都在做的事情,就没有太多的差异化或护城河。
Varun Mohan: 这取决于你怎么做。但也许我可以这么说,如果你接收的输入仅仅是网页元素,极其高层的网页元素,那么这个界面可能层级足够高,以至于你很难全面超越前沿模型的表现。你不如直接把所有东西都接入 Sonnet 来得更好。
本地运行与云端代码空间的区别
Lenny Rachitsky: 明白了。太棒了。我想回到我记下的一个点,我认为这对大家理解非常重要。你谈到在 Windsurf 中,并不总是……有一个你想要启动的样板代码库,因为实际上……因为它不是一个被抽象化的从零到一应用构建器。它是一个你真正在其中编写代码的集成开发环境(IDE)。你提到它必须安装依赖项,这多少有些痛苦。它必须这样做的原因在于,它是在你的本地机器上运行,而不是在云端,比如 Lovable 和 Replit 等产品,不过我觉得 Bolt 在浏览器中运行的方式真的很酷。所以这是一个重要的区别。这就意味着你是在本地机器上运行它,并且拥有实际运行它所需的所有库。
Varun Mohan: 是的,我认为这很重要。我认为确实有很多人在所谓的代码空间以及远程机器上构建软件。但我只是觉得,正如你所说,很多开发者喜欢在本地构建。比如如果你做的事情不仅仅是全栈应用,你的机器上可能会有一些依赖项,它们属于系统级别的依赖项,安装起来非常棘手。假设你正在构建一个基于 GPU 的应用,而 Nvidia 驱动是必不可少的。你只是想给人们提供灵活性,让他们能在能构建的地方进行构建。而且我认为使用集成开发环境(IDE)和在本地构建是人们几十年来一直在做的事情,所以在未来几年内它大概也不会消失。
Lenny Rachitsky: 我很喜欢你们现在的销售人员都在运行本地主机服务器。
Varun Mohan: 嗯,有了浏览器预览功能,这变得更容易了,对吧?你基本上只需在旁边把它打开。
Lenny Rachitsky: 是的,是的。我的天。好的。关于你们在 Codeium 的思考和运营方式,我还有几个问题。你们算是处于产品团队未来运作方式的最前沿,每天都在见证未来。所以我很好奇,你们在团队架构、工程师和产品设计方面,是否有一些与其他公司不同的做法?或者有没有尝试过效果非常好的做法,又或者尝试过惨遭失败的做法?
Codeium 的团队结构与管理哲学
Varun Mohan: 我们在核心工程方面做了一个有趣的决定,那就是公司的核心工程团队没有纯粹的产品经理。顺便说一下,这完全是因为我们为开发者构建产品,而我们的产品也是由开发者构建的。因此,我认为我们自身开发者的直觉理应是有价值的。如果不是这样,那可能就是我们招错了人。所以我认为我们的开发者在某种意义上正在发挥类似传统产品经理的作用。另一方面,如果我们构建的东西看起来更像 Uber,或者用户画像非常不同,而且我们自己并不理解它,我想我们的组织架构就不会是现在这个样子。
对于公司的企业业务端,因为我们确实与许多大型企业合作,那些需求并不是我们的工程师自然而然就能理解的。我不认为我们的工程师一觉醒来会说:“我们需要 FedRAMP。”这大概是很多客户主动找上门来告诉我们的需求。我们有在这个产品策略角色上灵活发挥的人,他们了解客户想要什么,也了解我们具备的技术能力,从而最好地构建出能在规模化层面帮助他们的产品。所以我认为我们在这一点上有着有趣的架构,但很大程度上我想说,正是因为我们是一个基于开发者的产品,才会如此。
然后也就如你所说的,对于工程团队本身,团队结构相当扁平。我们尝试采用“两个披萨”团队的原则,即保持团队规模相当小,因为我认为问题在于,当一个团队变得太大时,带队的人就不再能够深入到技术本身的细节中去。而且我认为在一个发展如此迅速的领域,拥有那些对技术理解不深且不亲自构建的领导者是危险的。这非常、非常危险,因为会有太多纸上谈兵的情况。所以我认为这可能也是我们做出的另一个决定。然后团队非常、非常灵活。所以如果我们决定某件事成为新的优先事项,我们会非常迅速地改变团队的构成。在这方面它是高度集中规划的。
Lenny Rachitsky: 关于“两个披萨”团队的概念,我很久以前看到过一条推文,一个来自印度的人说,大家总是在谈论“两个披萨”团队,但印度的披萨要小得多。所以他们的团队最终规模更小,他们就会抱怨:“为什么我们在美国不能组建这么多这样的团队?”
Varun Mohan: 天哪。
Lenny Rachitsky: 好吧。那么你们有多少产品经理?你说你们有 150 名员工,大概是这样?
Varun Mohan: 是的。所以在产品策略职能方面,我们目前在这个角色上有三个人。
Lenny Rachitsky: 我明白了。所以这就像产品……他们的头衔是产品策略,不一定是产品管理?
Varun Mohan: 没错。
Lenny Rachitsky: 有意思。然后是 50 名工程师,你说大约有 80 名销售人员?
Varun Mohan: 是的,没错。显然我们还有招聘、G&A(一般与行政事务)下的财务等职能。公司内部也有营销部门。所以还有一些其他的内部职能。
AI 编写代码与招聘工程师的矛盾
Lenny Rachitsky: 这很有趣。这也是你经常从 Anthropic 的 Dario 等人那里听到的事情,他们谈到未来 90% 的代码将由 AI 编写。但与此同时,你们却还在疯狂地招聘工程师。
Varun Mohan: 是的。这矛盾吗?
Lenny Rachitsky: 这不矛盾吗?会不会存在这样一个拐点,比如:“好了,现在我们不再需要他们了。”
Varun Mohan: 我认为这其实归结于一点,即在公司内部增加工程师是否能带来增量价值?首先,也许只是为了澄清事实,如果 AI 编写了超过 90% 的代码,这并不意味着工程师的生产力提高了 10 倍。工程师花在写代码上的时间只占一部分。他们还要审查代码、测试代码、调试代码、设计代码、部署代码,对吧?还有浏览代码。工程师可能要做很多不同的事情。在并行计算领域有一个著名的定律,叫做阿姆达尔定律(Amdahl’s Law)。不知道你有没有听说过。但它基本上是说,如果你有一张任务图,并且有一条关键路径,然后你把其中任何一个任务大量并行化,也就是让它几乎不花任何时间,整个过程能加速多少仍然是有极限的。简单来说,假设你有 100 个单位的时间,其中只有 30 个单位的时间用于编写软件,而我把这 30 个单位减少到了 3 个,我也只是把 100 个单位减少到了 73 个。从整体来看,这仅仅是 27% 的提升。
所以我觉得,我们确实看到了超过 30%,也许接近 40% 的生产力提升。但我认为,对于我们正在实现的愿景来说,即使我说公司在长尾阶段有 200 名工程师,在那个时候可能仍然太少了。所以问题在于,每个人的生产力能提高多少?实际上,对于这些大公司来说,比如你拿摩根大通(JPMorgan Chase)这样的公司的首席信息官(CIO)来说,对吧?她每年在软件上的预算是 170 亿美元,公司内部有超过 5 万名工程师,如果你告诉她:“嘿,这些工程师现在每个人都能产出更多的技术。”你实际上做的就是这件事,对吧?摩根大通或任何这些公司会做出的正确计算是,构建技术的投资回报率(ROI)实际上上升了。因此,不向技术投入更多资金的机会成本也上升了,这意味着你应该投入更多。也许在短期内,你甚至会拥有更多的工程师,对吧?当然,这并非普遍适用。有些公司对他们构建的技术数量感到满意,并且对他们想要构建的技术数量有一个上限。但对于那些实际上技术上限非常高的公司来说,这并不意味着你要停止。这实际上意味着你要招聘更多人。
工程师职位的“煤矿里的金丝雀”
Lenny Rachitsky: 这对工程师来说是一个很好的看涨理由。我觉得工程师职业的“煤矿里的金丝雀”,就是像你们这样的公司放慢招聘工程师的速度。
Varun Mohan: 是的。
Lenny Rachitsky: 但这并没有发生。
Varun Mohan: 看起来 Anthropic 为了完成目标也在大量招聘。
Lenny Rachitsky: 是的,大家都是。所以我觉得这非常有希望。我觉得如果你还在上大学,现在进入工程领域是合理的。
构建 AI 产品的反直觉发现
Lenny Rachitsky: 好的。让我问你这个问题,也许可以作为最后一个问题。关于构建 AI 产品、构建 Windsurf 以及身处这个领域,你学到的最反直觉的事情是什么?
Varun Mohan: 我认为奇怪的一点是,在网上,每个人都对我们取得的短期胜利感到非常兴奋,对吧?比如我们可能每周发布的内容。我们每几周就会发布一波更新。但实际上,我们在公司内部下注的很多项目,都不是三四个星期内能完成的,可能要三个月、六个月、九个月之后才会出炉。这才是我们内部正在努力的方向。因为我认为,Lenny,这正是我之前向你提到过的。我告诉公司里每个人的目标之一是,我们应该每 6 到 12 个月就淘汰我们产品现有的状态。每 6 到 12 个月,它应该让我们现有的产品看起来很愚蠢。它几乎应该让我们现有产品的形态看起来很蠢。所以这里有一种奇怪的张力,你想要在市场上拥有一款产品,你想要进行增量迭代,倾听用户的声音,并让它越来越好。但我想说的是,我们是市面上第一个相同的集成开发环境(IDE)产品。那是我们立足的根本。我认为它的价值将会非常快地贬值,除非我们继续重新证明自己。而且我们将需要以用户甚至都没有要求的方式来重新证明自己。
所以这里存在着一种张力,增量迭代让人感觉非常安全,对吧?再加一个按钮。用户会说:“嘿,我希望能够有这个下拉菜单来做 X。”但这并不是我们会赢的原因。这几乎是基本要求。是的,我们会决定做其中一些。我们可能不会决定做很多这样的事情。但正是公司内部这些几乎颠覆现有产品的长期努力,最终才是我们会成功的原因。你脑海中必须有这种奇怪的张力,你也不能完全不听用户的声音,因为他们是你存在的原因。
Lenny Rachitsky: 这让我想起了最近的一位播客嘉宾。我们请到了 Captions 的 Gara,他告诉我们他有两个路线图。他们在公司有两个路线图。一个是真正的路线图,就像基于功能请求、用户反馈和数据等内容的典型路线图。然后他们有一个秘密路线图,它完全不受用户或数据的指导,只是他们在自己认为世界发展方向上下的赌注。
Varun Mohan: 没错。
Lenny Rachitsky: 我很喜欢他把它叫做秘密路线图,就是为了让它显得非常神秘,而且——
Varun Mohan: 这很聪明。非常聪明。
创业初期的反思
Lenny Rachitsky: 好的。我还有一个问题。抱歉。在创办 Codeium 之前,你希望你自己早知道的一件事是什么?
Varun Mohan: 坦白说,我希望我能……也许“谦逊”不是合适的词,而是这种能够更快接受自己犯错的理念。我在做决定时总是会思考这些。我和我的联合创始人总是谈论这件事。我们几乎会说:“嘿,我希望我们能在几个月前就做出这个决定。”我们总是谈论这个。但奇怪的是,从外界看来,大家都觉得:“哇,实际上这个决定是在正确的时间做出的。”但在我脑海里,我总是在猛拍脑袋想:“如果我们几个月前就做出决定会怎么样?”我认为其中一部分原因是我曾经高谈阔论过,比如:“哦,你需要保持非理性的乐观和不妥协的现实主义。”但这在实践中很难做到,因为你也会喝下自己灌的迷魂汤(drink your own Kool-Aid)。因为如果你不喝自己的迷魂汤,你就无法从床上爬起来。答案早就有了。实际上根本不需要这些初创公司。答案就是微软(Microsoft)将成为任何软件类别的赢家。难道不是这样吗?仅仅因为渠道、资源和资本,他们就会把每个领域都商品化。
所以我认为在某种程度上,这种理解,即嘿,重新评估你的假设并更频繁地进入不舒服的状态,是我直到今天都需要提醒自己的一件事。这可能也是我在进入并创办公司时所不知道的。我们在零利率峰值时期创办了公司。在当时,可能一切看起来都像是要一飞冲天。我想说,那时我们可能有很多本不该有的非理性自信。
Lenny Rachitsky: Varun,我们谈到了很多方面。这是一次令人难以置信的对话。仅仅是坐在这里听你讲并向你提问,我就学到了很多。在你离开之前,还有什么你想分享给听众的吗,任何最后的金句或智慧?
动手实践的巨大回报
Varun Mohan: 坦白说,我可以对这个领域做出一些预测,但很可能大部分都是错的。我认为最好的做法就是亲自上手去折腾这些产品。接下来最显而易见的一件事是,在未来一年内,任何能够最大程度利用这些工具的人都将获得巨大的 alpha。想象一下你的同事中有多少人甚至不知道这些工具的存在,不知道它们能做什么,他们的工作效率会有多低。我只想说,尽可能快地、深入地去动手实践吧。
Lenny Rachitsky: 当你说“动手实践”时,基本上就是指下载 Windsurf,开始写代码,让它帮你构建东西。
Varun Mohan: 对,构建应用,构建应用。开始用它来做模型,修改你现有的代码库。你可能成为组织的倍增器,甚至以他们从未预期过的方式发挥作用,对吧?想象一下,如果你是一名产品经理,能够非常快速地修改代码库并亲自开始推送更改。你可能会从你的工程同事那里获得极大的尊重。因为这一点,你可能会完成多得多的工作。我觉得到了那个阶段,就根本没有天花板了。
突破角色边界与能动性
Lenny Rachitsky: 我认为你在这里提出了一个非常被低估的观点。有些应用可以从零开始构建东西,而像这样的应用可以编辑你现有的代码库,如果你是在……按人数算,你合作过的最大的公司是哪家?
Varun Mohan: 公开来说,就说摩根大通(JPMorgan Chase)吧。
Lenny Rachitsky: 好的。
Varun Mohan: 他们有超过五万名开发者。
Lenny Rachitsky: 好的。所以你可以是摩根大通的一名产品经理,然后说:“我有一个需要解决的问题,我想提升这个指标,我想更改注册流程中的这一步。”你只需打开 Windsurf,告诉它你想做什么。然后你可以直接推送到 GitHub 并进行——
Varun Mohan: 是的,实际上你也可以这么做。
Lenny Rachitsky: ……合并——
Varun Mohan: 对。
Lenny Rachitsky: 好的,PR?
Varun Mohan: 对,它可以为你创建 PR。
Lenny Rachitsky: 我的天哪。这太疯狂了。朋友们,未来已经失控了。好吧。伙计,最后那一点真是太重要了,因为我觉得人们可能没有意识到这一点。他们看到所有这些其他应用,就会想:“哦,原型,”但这确确实实是产品经理可以真正用来干活的东西。
Varun Mohan: 是的。当你想到那些人,至少我不知道,Lenny,你最尊敬的那些人,他们是这样的人:不知为何,尽管有头衔的限制,他们的能动性(agency)水平以及产出,从最底层的细节到最高层的战略,都堪称完美,对吧?他们知道什么时候该深入到底层。而我认为有时候你会看到人们谈论角色,他们会非理性地觉得:“哦,因为我是这个角色,我不被允许碰这个。”那么现在一切都不受限制了,对吧?我认为这是一个几乎可以一路深入到底层细节,又一路上升到顶层战略,在每个层面都保持高效的机会。
Lenny Rachitsky: 难以置信。好了,各位,我们就聊到这里。Varun,非常感谢你的到来。
Varun Mohan: 太棒了,非常感谢 Lenny。
Lenny Rachitsky: 这真是一次不可思议的对话。谢谢 Varun。大家再见。
术语表
| 原文 | 中文 |
|---|---|
| agency | 能动性 |
| agentic | 具备能动性的 |
| Amdahl’s Law | 阿姆达尔定律(Amdahl’s Law) |
| ARR revenue | 年度经常性收入(ARR revenue) |
| Captions | Captions |
| Carlos Delatorre | Carlos Delatorre |
| CIO | 首席信息官(CIO) |
| Codeium | Codeium |
| CS degree | 计算机科学学位(CS degree) |
| Dario | Dario |
| Douglas | Douglas |
| drink your own Kool-Aid | 喝下自己灌的迷魂汤(drink your own Kool-Aid) |
| Gara | Gara |
| go-to-market | 推向市场(go-to-market) |
| GPU virtualization | GPU 虚拟化 |
| IDE | 集成开发环境(IDE) |
| inference infrastructure | 推理基础设施 |
| JPMorgan Chase | 摩根大通(JPMorgan Chase) |
| Lenny Rachitsky | Lenny Rachitsky |
| Microsoft | 微软(Microsoft) |
| ML models | 机器学习模型(ML models) |
| ROI | 投资回报率(ROI) |
| Varun Mohan | Varun Mohan |
| Windsurf | Windsurf |
此文档由 AI 分片翻译(translate_long_document)