Michael Truell
Appearances
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Technically incorrect, but one point away. Amon was very enthusiastic about this stuff. Yeah. And before, Amon had this, like, Scaling Laws t-shirt that he would walk around with, where it had the, like- charts and like the formulas on it.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
of vs code that are doing sort of ai type stuff what was the decision like to just fork vs code so the decision to do an editor seemed kind of self-evident to us for at least what we wanted to do and achieve because when we started working on the editor the idea was these models are going to get much better their capabilities are going to improve and it's going to entirely change how you build software both in a you will have big productivity gains but also radical and not like the act of building software is going to change a lot
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And so you're very limited in the control you have over a code editor if you're a plugin to an existing coding environment. And we didn't want to get locked in by those limitations. We wanted to be able to just build the most useful stuff.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
What is tab? To highlight and summarize at a high level, I'd say that there are two things that Cursor is pretty good at right now. There are other things that it does. But two things that it helps programmers with. One is this idea of looking over your shoulder and being like a really fast colleague who can kind of jump ahead of you and type and figure out what you're gonna do next.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And that was the original idea behind, that was kind of the kernel of the idea behind a good autocomplete was predicting what you're gonna do next. But you can make that concept even more ambitious by not just predicting the characters after your cursor, but actually predicting the next entire change you're gonna make, the next diff, next place you're gonna jump to.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And the second thing Kirscher is pretty good at right now, too, is helping you sometimes jump ahead of the AI and tell it what to do and go from instructions to code. And on both of those, we've done a lot of work on making the editing experience for those things ergonomic and also making those things smart and fast.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Yeah, and the magic moment would be if... it is programming is this weird discipline where sometimes the next five minutes, not always, but sometimes the next five minutes, what you're going to do is actually predictable from the stuff you've done recently.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And so can you get to a world where that next five minutes either happens by you disengaging and it taking you through, or maybe a little bit more of just you seeing next step, what it's going to do. And you're like, okay, that's good. That's good. That's good. That's good. And you can just sort of tap, tap, tap through these big changes.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
I think that this benchmark question is both complicated by what Svali just mentioned, and then also to... What Aman was getting into is that even if you like, you know, there's this problem of like the skew between what can you actually model in a benchmark versus real programming. And that can be sometimes hard to encapsulate because it's like real programming is like very messy.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And sometimes things aren't super well specified what's correct or what isn't. But then it's also doubly hard because of this public benchmark problem. And that's both because public benchmarks are sometimes kind of hill-climbed on, but then it's really, really hard to also get the data from the public benchmarks out of the models.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And so, for instance, one of the most popular agent benchmarks, SweetBench, is really, really contaminated in the training data of these foundation models. And so if you ask these foundation models to do a sweet bench problem, but you actually don't give them the context of a code base, they can like hallucinate the right file pass, they can hallucinate the right function names.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And so it's also just the public aspect of these things is tricky.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
I think that given the dearths and benchmarks, there have been a few interesting crutches that places that build systems with these models or build these models actually use to get a sense of are they going in the right direction or not. And in a lot of places, people will actually just have humans play with the things and give qualitative feedback on these things.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
like one or two of the foundation model companies, they have people who, that's a big part of their role. And, you know, internally we also, you know, qualitatively assess these models and actually lean on that a lot in addition to like private evals that we have. It's like the vibe. The vibe, yeah. It's like the vibe.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Don't you think this gets at a little bit some of the stuff you were talking about earlier with the difficulty of specifying intent for what you want with software? Where sometimes it might be because the intent is really hard to specify, it's also then going to be really hard to prove that it's actually matching whatever your intent is.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Yeah, or just for a given spec, maybe you can... I think there is a question of can you actually do the formal verification? Is that possible? I think that there's more to dig into there.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Even if you have the spec. Is the spec written in natural language? Yeah, how do you map the spec?
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
But how easy would that be to draw? So then I think that you care about things that are not going to be easily well-specified in the spec language.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Yeah. Maybe an argument against formal verification is all you need.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Yeah. And I think that it's also important to note that this is having good bug finding models feels necessary to get to the highest reaches of having AI do more and more programming for you, where you're going to, you know, if the AI is building more and more of the system for you, you need to not just generate, but also verify.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And without that, some of the problems that we've talked about before with programming with these models will just become untenable. So it's not just for humans, like you write a bug, I write a bug, find the bug for me, but it's also being able to verify the AI's code and check it is really important.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
You can also do a bunch of work, not even at the model level, of taking the biggest models and then maybe giving them access to a lot of information that's not just the code. it's kind of a hard problem to stare at a file and be like, where's the bug? And that's hard for humans often, right? And so often you have to run the code and being able to see things like traces and step through a debugger.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
There's a whole other direction where it kind of tends toward that. And it could also be that there are kind of two different product form factors here. It could be that you have a really specialty model that's quite fast that's kind of running in the background and trying to spot bugs.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And it might be that sometimes, sort of to Arvid's earlier example about some nefarious input box bug, it might be that sometimes you want to like You know there's a bug. You're not just checking hypothesis-free. You're like, this is a problem. I really want to solve it.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And you zap that with tons and tons and tons of compute, and you're willing to put in $50 to solve that bug or something even more.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
There is also a potential world where there's a technical solution to this like honor system problem too, where if we can get to a place where we understand the output of the system more, I mean, to the stuff we were talking about with like, you know, error checking with the LSP and then also running the code.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
But if you could get to a place where you could actually somehow verify, oh, I have fixed the bug, maybe then the bounty system doesn't need to rely on the honor system too.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
So the code editor is largely the place where you build software. And today, or for a long time, that's meant the place where you text edit a formal programming language. And for people who aren't programmers, the way to think of a code editor is like a really souped-up word processor for programmers, where the reason it's souped up is code has a lot of structure.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Yeah, I think that it has been an interesting journey adding each extra zero to the request per second. You run into all of these with the general components you're using for caching and databases run into issues as you make things bigger and bigger. And now we're at the scale where we get int overflows on our tables and things like that.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And then also, there have been some custom systems that we've built, like, for instance, our retrieval system for computing a semantic index of your codebase and answering questions about a codebase that have continually, I feel like, been one of the trickier things to scale.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And so the quote-unquote word processor, the code editor, can actually do a lot for you that word processors sort of in the writing space haven't been able to do for people editing text there.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And so that's everything from giving you visual differentiation of the actual tokens in the code so you can scan it quickly, to letting you navigate around the code base, sort of like you're navigating around the internet with hyperlinks. You're going to sort of definitions of things you're using, to error checking to catch rudimentary bugs.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And so traditionally, that's what a code editor has meant. And I think that what a code editor is is going to change a lot over the next 10 years as what it means to build software maybe starts to look a bit different. I think also a code editor should just be fun.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
It's tricky. I think we can do a lot better at computing the context automatically in the future. One thing that's important to note is there are trade-offs with including automatic context.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Like fundamentally, I think one of the things that draws a lot of people to building stuff on computers is this like insane integration speed where, you know, in other disciplines, you might be sort of gatecapped by resources or the ability, even the ability, you know, to get a large group together and coding is this like amazing thing where it's you and the computer and that alone, you can build really cool stuff really quickly.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
So the more context you include for these models, first of all, the slower they are and the more expensive those requests are, which means you can then do less model calls and do less fancy stuff in the background. Also, for a lot of these models, they get confused if you have a lot of information in the prompt.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
So the bar for accuracy and for relevance of the context you include should be quite high. But already we do some automatic context in some places within the product. It's definitely something we want to get a lot better at. And I think that there are a lot of cool ideas to try there, both on the learning better retrieval systems, like better embedding models, better re-rankers.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
I think that there are also cool academic ideas, stuff we've tried out internally, but also the field is grappling with writ large, about can you get language models to a place where you can actually just have the model itself, like understand a new corpus of information, And the most popular talked about version of this is, can you make the context windows infinite?
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Then if you make the context windows infinite, can you make the model actually pay attention to the infinite context? And then after you can make it pay attention to the infinite context, to make it somewhat feasible to actually do it, can you then do caching for that infinite context? You don't have to recompute that all the time.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
But there are other cool ideas that are being tried that are a little bit more analogous to fine-tuning of actually learning this information and the weights of the model. And it might be that you actually get sort of a qualitatively different type of understanding if you do it more at the weight level than if you do it at the in-context learning level.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
I think the jury is still a little bit out on how this is all going to work in the end. But in the interim, us as a company, we are really excited about better retrieval systems and picking the parts of the code base that are most relevant to what you're doing. We could do that a lot better.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
But anyway, what do you think about hiding the chain of thought? One consideration for open AI, and this is completely speculative, could be that they want to make it hard for people to distill these capabilities out of their model. it might actually be easier if you had access to that hidden chain of thought to replicate the technology.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Because that's pretty important data, like seeing the steps that the model took to get to the final result. So you could probably train on that also.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And there was sort of a mirror situation with this, with some of the large language model providers, and also this is speculation, but some of these APIs used to offer easy access to log probabilities for all the tokens that they're generating, and also log probabilities for the prompt tokens. And then some of these APIs took those away. And again, complete speculation, but...
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
One of the thoughts is that the reason those were taken away is if you have access log probabilities, similar to this hidden train of thought, that can give you even more information to try and distill these capabilities out of the APIs, out of these biggest models, into models you control. As an asterisk on also the previous discussion about us integrating O1.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
I think that we're still learning how to use this model. So we made O1 available in Cursor because when we got the model, we were really interested in trying it out. I think a lot of programmers are going to be interested in trying it out. But O1 is not part of the default cursor experience in any way yet.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And we still haven't found a way to yet integrate it into the editor in a way that we reach for sort of every hour, maybe even every day. And so I think the jury's still out on how to use the model. And we haven't seen examples yet of people releasing things where... It seems really clear, like, oh, that's like now the use case.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
The obvious one to turn to is maybe this can make it easier for you to have these background things running, right? To have these models in loops, to have these models be agentic. But we're still discovering.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
So it's a time to shut down cursor. I think this space is a little bit different from past software spaces over the 2010s, where I think that the ceiling here is really, really, really incredibly high. And so I think that the best product in three to four years will just be so much more useful than the best product today.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And you can wax poetic about moats this and brand that, and this is our advantage. But I think in the end, just if you don't have, if you stop innovating on the product, you will lose. And that's also great for startups. That's great for people trying to enter this market because it means you have an opportunity to win against people who have lots of users already.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
By just building something better. And so I think, yeah, over the next few years, it's just about building the best product, building the best system. And that both comes down to the modeling engine side of things. And it also comes down to the to the editing experience.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Doing the human form of verification where you just do manual quality control.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Okay. So what's the origin story of Cursor? So around 2020, the scaling loss papers came out from OpenAI. And that was a moment where this looked like clear, predictable progress for the field, where even if we didn't have any more ideas, it looked like you could make these models a lot better if you had more compute and more data.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
I think we're really excited about a future where the programmers in the driver's seat for a long time. And you've heard us talk about this a little bit, but one that emphasizes speed and agency for the programmer and control, the ability to modify anything you want to modify, the ability to iterate really fast on what you're building. And
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
This is a little different, I think, than where some people are jumping to in this space, where I think one idea that's captivated people is, can you talk to your computer? Can you have it build software for you as if you're talking to an engineering department or an engineer over Slack? And can it just be this sort of isolated text box? And part of the reason we're not excited about that
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
So around that time, for some of us, there were a lot of conceptual conversations about what's this going to look like? What's the story going to be for all these different knowledge worker fields about how they're going to be made better by this technology getting better?
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
is some of the stuff we've talked about with latency. But then a big reason we're not excited about that is because that comes with giving up a lot of control. It's much harder to be really specific when you're talking in the text box.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And if you're necessarily just going to communicate with a thing like you would be communicating with an engineering department, you're actually abdicating tons and tons of really important decisions to this bot. And this kind of gets at fundamentally what engineering is.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
I think that some people who are a little bit more removed from engineering might think of it as, you know, the spec is completely written out and then the engineers just come and they just implement. And it's just about making the thing happen in code and making the thing exist. But I think a lot of the best engineering, the engineering we enjoy,
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
involves tons of tiny micro decisions about what exactly you're building and about really hard trade-offs between, you know, speed and cost and just all the other things involved in a system.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And we want, as long as humans are actually the ones making, you know, designing the software and the ones specifying what they want to be built, and it's not just like company run by all AIs, we think you'll really want the human in a driver's seat. dictating these decisions. And so the jury's still out on kind of what that looks like.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
I think that one weird idea for what that could look like is it could look like you can control the level of abstraction you view a codebase at. And you can point at specific parts of a codebase that maybe you digest a codebase by looking at it in the form of pseudocode. And you can actually edit that pseudo code too, and then have changes get me down at the sort of formal programming level.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And you keep the, like, you know, you can gesture at any piece of logic in your software component of programming. You keep the inflow text editing component of programming. You keep the control of, you can even go down into the code. You can go at higher levels of abstraction while also giving you these big productivity gains.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And then I think there were a couple of moments where the theoretical gains predicted in that paper started to feel really concrete. And it started to feel like a moment where you could actually go and not do a PhD if you wanted to work on, do useful work in AI. Actually felt like now there was this whole set of systems one could build that were really useful.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And there are a lot of details to figure out there that's sort of like a fuzzy idea. Time will tell if it actually works. But these principles of control and speed in the human and the driver's seat, we think are really important.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
We think for some things, like Arvid mentioned before, for some styles of programming, you can kind of hand it off chatbot style, you know, if you have a bug that's really well specified. But that's not most of programming. And that's also not most of the programming we think a lot of people value.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
I actually think this is a really, really exciting time to be building software. Like, we remember what programming was like in, you know, 2013, 2012, whatever it was. And there was just so much more cruft and boilerplate and, you know... looking up something really gnarly. That stuff still exists. It's definitely not at zero. But programming today is way more fun than back then.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
We're really getting down to the delight concentration. All the things that really draw people to programming, for instance, this element of being able to build things really fast and speed and also individual control, all those are just being turned up a ton. Um, and so I think it's just gonna be, I think it's gonna be a really, really fun time for people who build software.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Um, I think that the skills will probably change too. I, I think that people's taste in creative ideas will be magnified and it will be less about maybe less a little bit about boilerplate text editing, maybe even a little bit less about carefulness, which I think is really important today. If you're a programmer, I think it'll be a lot more fun. What do you guys think?
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And I think that the first moment we already talked about a little bit, which was playing with the early bit of Copilot, that was awesome and magical. I think that the next big moment where everything kind of clicked together was actually getting early access to GPT-4. So it was sort of end of 2022 was when we were tinkering with that model. And the step up in capabilities felt enormous.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And previous to that, we had been working on a couple of different projects. We had been because of Copilot, because of scaling Oz, because of our prior interest in the technology, we had been tinkering around with tools for programmers, but things that are like very specific.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
Thanks for having us. Thank you.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
So, you know, we were building tools for financial professionals who have to work within a Jupyter notebook or like, you know, playing around with, can you do static analysis with these models? And then the stuff up in GPT-4 felt like, look, that really made concrete the theoretical gains that we had predicted before. Felt like you could build a lot more just immediately at that point in time.
Lex Fridman Podcast
#447 – Cursor Team: Future of Programming with AI
And also, if we were being consistent, it really felt like this wasn't just going to be a point solution thing. This was going to be all of programming was going to flow through these models. And it felt like that demanded a different type of programming environment, a different type of programming. And so we set off to build that sort of larger vision around that.