Algorithms + Data Structures = Programs - Episode 253: Sean Parent on AI and Cursor

Episode Date: September 26, 2025

In this episode, Conor and Bryce chat with Sean Parent about AI and Cursor!Link to Episode 253 on WebsiteDiscuss this episode, leave a comment, or ask a question (on GitHub)SocialsADSP: The Podcast: T...witterConor Hoekstra: Twitter | BlueSky | MastodonBryce Adelstein Lelbach: TwitterAbout the Guest:Sean Parent is a senior principal scientist and software architect managing Adobe's Software Technology Lab. Sean first joined Adobe in 1993 working on Photoshop and is one of the creators of Photoshop Mobile, Lightroom Mobile, and Lightroom Web. In 2009 Sean spent a year at Google working on Chrome OS before returning to Adobe. From 1988 through 1993 Sean worked at Apple, where he was part of the system software team that developed the technologies allowing Apple’s successful transition to PowerPC.Show NotesDate Recorded: 2025-08-21Date Released: 2025-09-26C++ Under the SeaBetter codeAdobe ASL Adam & Eve ArchitectureAdobe Software Technology LabASL LibrariesRust Programming LanguageIntro Song InfoMiss You by Sarah Jansen https://soundcloud.com/sarahjansenmusicCreative Commons — Attribution 3.0 Unported — CC BY 3.0Free Download / Stream: http://bit.ly/l-miss-youMusic promoted by Audio Library https://youtu.be/iYYxnasvfx8

Transcript
Discussion (0)
Starting point is 00:00:00 So I think one of the great powers of AI was just getting into that first gear, right? Right. How do you just get started on this problem? Welcome to ADSP, the podcast, episode 253 recorded on August 21st, 2025. My name is Connor, and today with my co-host, Bryce, we chat with Sean Parent, about cursor and AI. But you mentioned, you know, my comment and my push, and that was the Adobe Source Libraries, which these are where the Adam Library is,
Starting point is 00:00:49 and, you know, I've maintained it for 20-something years as kind of a side project since the previous Software Technology Lab. And during the period where I left Adobe, went to Google. There was like an update to the doxygen tool and it broke the generation of oxygen and like badly broke the generation of the documentation. So I've left the old site online but for 20 years I haven't been able to build the documentation and I took a stab at one point and Foster got Foster Bert and somebody I work with he got a couple of the files building at one point, but it was like the more time that went by, the more impossible and
Starting point is 00:01:32 intractable it seemed. And part of it was when we originally wrote the documentation, you know, I didn't have a folding editor. So I hated having big blocks of description in my source files. So I wrote all the documentation as external in external.dox files. And for oxygen to match those up, it means the signatures have to match. But the signatures don't match textually exactly. They used to match
Starting point is 00:02:02 through Doxygen's old AST parser, and now they have to match through the Clang AST parser because Doxygen has moved to clang. Okay? So if you think about, you know, you've got several thousand functions
Starting point is 00:02:19 in there, and And those signatures don't match, and you can't copy and paste to fix them. And even if you could copy and paste, you have to be able to figure out which one matches with which one. And they're written in a different form. And now, 20 years later, the API is probably changed.
Starting point is 00:02:45 So you have this huge problem of trying to figure out, like, OK, which documentation goes with which function. And because of overloading, you can't even just say, oh, I'm just going to search for the name of the function. It's like, oh, great, I got five of them. So which one of the five documentations goes with which one of the five overloads?
Starting point is 00:03:07 Right, right, right. And now there's probably six overloaded, so which one am I missing? Right. And so every time I took a stab at it, I was just like, this is just too much work. It's not worth it. I'm not doing it. I'm out.
Starting point is 00:03:20 So I think one of the great powers of AI was just getting into that first gear, right? How do you just get started on this problem? So I wrote this huge prompt and, you know, took me a couple of tries where I'm like, no, you're going way off in the weeds and like reset it, set it. But I ended up with this, you know, a big huge prompt where it was like, okay, here's the deal. This is what I'm trying to do. You know, this is what has happened. Here's the history of it.
Starting point is 00:03:49 here's the problem, here's the challenge, formulate a plan for how we're going to approach this incrementally. Don't try to do it all yourself at every step of the way. We will stop and validate and iterate. Do you have that prompt somewhere? I might. I might have kept it. I burned through an entire month's allotment of Claude 4 Max Mode tokens in about four hours. but got it done and the docks are now posted and it's like the first time the docs have built in 20 years
Starting point is 00:04:28 and they look much better and they're much simpler to maintain and you know we spotted a couple mistakes and a couple missing items in reviewing them but but those were easily fixed
Starting point is 00:04:42 and it got it all going and so you know it's like Could have I had done it faster by hand? Probably not. You know, maybe if you incorporate all the time into figuring out the prompt and all of that. But reading there was just so daunting that I wouldn't.
Starting point is 00:05:07 Yeah, but the time figuring out the prompt, even if you spend more time on it, that's higher value time than doing the repetitive task of going through these 7,000 functions. Exactly. And once I got it going, it was really nice. it would go through and it would say, like, oh, okay, so we're compiling the docs. We got this error from Doxygen. Here's my suggestion for how to fix it. And I would be like, like, that's great, do that.
Starting point is 00:05:31 And it would say, okay, there's 600 more identical issues. Do you want me to fix them all? And it would ask. And I'd be like, yes, fix them all. Done. Right? Right. And, you know, it would come up and say, you know, we got this other problem.
Starting point is 00:05:47 Here's my suggestion for how to fix it. And I'd be like, no, I think there's a much simpler fix. Do it this way. It'd be like, okay, doing it that way. Just like, of course it always says like, that's a much simpler fix. Yes. Right, right. You're great.
Starting point is 00:06:01 Yeah, so just got this iterative process going. And it was, you know, when we started, I don't know, it was something like 7,000 errors when we, you know, because it was like phase one. I'm like, just set up the framework so we can run do oxygen on all the sources. And don't try to fix any errors. Just get that going. It's like, well, if we got that going, it was like, okay, now there's 7,000-some-odd errors. So let's, my first thing was like, organize those into categories.
Starting point is 00:06:26 So we can try to attack these systematically. So it came back with like, here's my proposed categories. I'm like, okay, that looks great. Let's start with category number one, right? Let's figure out how to fix that. So it worked really well. So now I've got the ASL ducts are all back online for the first time in 20 years. So this is the, I mean, it's amazing story.
Starting point is 00:06:49 And obviously, because as you mentioned, I think it's rocket fuel. So it's obviously I love to hear stories of other people thinking it's rocket fuel. But to play, not devil's advocate, but to answer the question that I'm sure, because we definitely have had, I've talked to folks, and people have mentioned in the get-up discussions that they find these tools counterproductive, et cetera, et cetera. And they're probably thinking, well, Sean said it's rocket fuel, but at the same time he said he lost a week debugging an issue
Starting point is 00:07:18 because it gaslit him. He also had to spend like a number of hours iterating on a prompt. Like that's not what I want to do. So how do you, I'm sure for the person that's thinking that in their head, how do you answer that like, oh, how can it be rocket fuel if you're ending up, you know, chasing bugs for days or a bug for days and you're having to do this iteration? Yeah. Curious to get your thoughts.
Starting point is 00:07:42 If that person was in this conversation. Yeah. Yeah. You know, I think, you know, net, I am more productive. I also think I tackle things that I wouldn't normally tackle like this documentation problem, but there are other examples too, right, where it would just be like, you know, I could figure that out, but it's too much work and too low value. And so having even a device where you can have a conversation, it's like having a collaborator,
Starting point is 00:08:11 right? Yeah. And that can have huge benefit. it. You know, and if you've ever worked with a collaborator or you've ever done anything that you don't know how to do, you go down dark alleys also, right? It's not like when I'm writing my own code. It's like, always perfect out of the shoot. It's like, I write, pile the code and throw it away. I'm like, well, that's not going anywhere. So I think the AI helps me do that faster, right? Right? So I don't view, you know, much of the time is wasted. And I learned pretty early on that if it's not, if I know what I want and it's not doing what I want, then just do it, right? Right. Right. Yeah. You know, early on, especially when you're trying to try out one of these systems, you're like, here's the problem and you're giving it a problem that you know the answer to and it gives you an answer that's close but not exactly there. And you're like, oh, well, what about this? And you're trying to
Starting point is 00:09:05 convince it to get to the answer that you'd have in your head. And you just get frustrated and you bang your head against the wall, right? And it's like, that's not how you would work. with a person you know that's not how you should you should work with with one of these systems if you if you know the answer tell it exactly what you want and be very explicit um or just do it yourself i have found myself that like more and more like when i first started off i tried to have it to do everything and i got really frustrating and didn't but now it's like when i'm like okay like i can just do this i'll just go and do it yeah and there's you know now it comes up and it's like you know and if you've ever used
Starting point is 00:09:45 use clod it comes up for any changes it makes it gives you a diff right so you can accept or reject things individually and i will i don't know probably 70% of the diffs it presents i will edit them right yeah and and rather than modifying my prompt and being like like oh don't do it that way do it this way because it doesn't have any memory so unless i take the time to put it into a rule in most of the time it's not worth it it's not going to remember it so there's no use in me training it code faster than I can tell it how I wanted to edit it, right? One of the main reasons that I use GPD5 a lot alongside using like Claude and cursor is because GPT5 has, like it has this memory system that I opted into like six months ago.
Starting point is 00:10:34 And so now it knows like a lot of stuff. And so I know I can ask it a question with a lot less context. And it's like, oh, I know that this is Bryce. I know that he works at Nvidia and works. on Kuta. There is the occasional problem that my girlfriend and I share the chat GPT account, but I do legitimately think
Starting point is 00:10:52 that it had, like, I haven't checked its memory in great dent, but I do think that it's somewhere in the memory, it's got an understanding that there are two different people interacting here. But it's nice because, like, I know that if I go into chat GPT, that I can give it a lot less background. I'm not sure
Starting point is 00:11:09 whether Anthropic has a memory feature and whether it's something that cursor has turned on. I haven't seen it, but now I will look for it because if in the future, that would be great. And I frequently forget to kind of end one chat and start a new chat, and every once in a while look at the title of my tab, and it'll be like, I've been having five conversations in the same thing. And the bigger your context gets, I know it's summarizing it, but it's like, the crazier it's getting. The crazier it's getting. Yeah, and you're like, like, okay, stop. I had a I had like a four to five month period where cursor was nearly unusable for me because it like writes this database of like the current state of everything including the chat and it would just like it was every five to ten seconds the entire UI would lock up because for whatever reason they were doing some blocking IO and the UI thread which you should never do but they were doing but so I got very religious about like starting a new chat frequently because that seemed to make the. issue not so bad. Fortunately,
Starting point is 00:12:14 latest version of cursor no longer have that problem. But yeah, for a long time, I was working with like every five to 30 seconds maybe cursor would freeze up. Just like, I could be like typing you. It would freeze up.
Starting point is 00:12:29 Just anything, it would freeze up. And I was like, why? Why? I found and reported a bugging cursor that was driving me nuts, which was if it was in the middle of doing something and you hit stop and then typed in a prompt right because you can see like like like you're doing the wrong thing so i would hit stop and then typed in in a prompt it would not even see the prompt and it would just pick up and continue yeah and uh that was driving
Starting point is 00:13:01 me insane it was like like stop stop stop stop right and the only solution was to just kill the tab And it's like, now I lost all my context. And so it was so painful. But I wonder if that's why it, like, they changed the interface in the last, I don't know, month or so. And now it's, uh, it'll give you a little thing. And it says run, skip or reject and tell you what it wants. Because there, there was a period of time where they stopped you from being able to stop it.
Starting point is 00:13:31 And then I was like, uh, because I, I, I found that half the time it would work and half the time it wouldn't. You would give it. And then it would just go back. And I was like, did you not hear it? what I just said. But now they've got like a much better interface where they've got three different options.
Starting point is 00:13:44 Typically you're hitting run. But it's only on tool commands. What they, what they need like if you're, if it's just making code changes, like if you can see that it's planning and making code changes that are in the wrong way, there's no like interrupt and tell like like, well,
Starting point is 00:13:58 you can just interrupt it still. It's like skip or something or stop and then just type and it works. But usually I let it finish whatever it's doing and then tell it it's wrong. The other thing is if you don't, if you don't wait for it, if you just type, if you don't stop it, don't wait for it, you just type and hit return, it will cue it. And then
Starting point is 00:14:16 it will, at the next opportunity, we'll look at that cue and go like, oh, okay, I'm adjusting my plan. Yeah, I haven't had a chance to play around that much yet because I was like on a build of cursor from like six months ago to deal with the stability
Starting point is 00:14:31 issues. But have either of you two tried the like having multiple checkouts and like doing concurrent work like having multiple checkouts and multiple agents working at the same time Adobe's licensing doesn't allow us to run background agents which is kind of a pain however we're you know whatever we're paying to the cursor folks I find our token allotment too to be a bit limiting
Starting point is 00:14:59 Connor kind of figured out how much Nvidia is paying and what are, I guess our limit's pretty generous because I've never run into it. Well, I also, I mean, we're not a lot to publicly talk. I asked if I was allowed to report, but they said you have to get permission. But because you can go to, I think this is for any organization.
Starting point is 00:15:19 It's not just for Nvidia because it's the cursor website. If you go to cursor.com slash settings and you have a corporate, whatever, and probably even if you have a personal one, they have a whole analysis tab where you can see over the last one day, seven days, 30 days, um how much you're using by language by requests and also to um it shows you your rank in your
Starting point is 00:15:41 organization so you get to know what sean's rank is i'm that's a good question yeah i guess i guess sean can can go and look that up but uh the interesting thing is that i do almost all of my work on clod for sonnet which i don't think has any extra billing but if you are using the larger models like 4.1 opus or 4.0 opus. And I actually think cloud 4.0 opus, that one actually is more expensive than 4.1. And they recommend if you can to use 4.1. So if you're using a lot of the larger models, I think there are extra billing fees associated with that. But because I'm always using force on it, I basically accrue very little changes. I can see Sean's looking it up. Yeah, I'm just looking out of curiosity. I would love to
Starting point is 00:16:30 support my ranking and how many folks at NVIDIA uses it, but maybe at a future date when they say we can talk about this, but we can not, unfortunately. I don't actually know that we can't. We might be able to. I just, I don't know where the green light was given, so or if it was given.
Starting point is 00:16:46 Because when I look at mine, like, it, it says total lines accepted for the past, like, seven days is zero. Sometimes that's a bug. Sometimes it doesn't refresh for a while because I've looked at it a couple times and it says I haven't used it in like four days. and I'm like, what are you talking about?
Starting point is 00:17:01 I spent 10 hours a day. Like, I launch a go Chromecast to watch movies on our TV using Cursor now. I just open up Cursor and I say, hey, can you play, right now we're working through the Star Wars with, because my fiance, I haven't seen him. Wait, wait, wait, how do you, how does it know how to do that? So this is, it's beautiful. Folks don't understand. I'm living in the future here. We used to be sipping rocket fuel.
Starting point is 00:17:26 Now I'm just living in the future. You can just ask it, please go play. return to the Jedi. If you have that movie sitting in a folder, it'll go find it. It knows probably like it's in the movies folder. It goes to movies. It does a grep for Jedi. Oh, there's a folder. Let me go check in there. Oh, there's an MKV. And then it goes, let me go search for a Chromecast. It does this dash-dash list, finds the Chromecast, sets up a connection, casts it. So I, like, we set it up. I just, I press one command. I have to hit enter, enter, because we don't have Yolo mode yet. But the point being is like, I want, like, I was talking to my
Starting point is 00:17:57 fiance, she moved, I need it in my sunglasses. I need it in my car. I need it everywhere. I need it in Chrome. Like it's still, I'm, so, okay, I don't want to shut on Google. However, I did just subscribe to Google, like, AI Pro to get Gemini Pro. The reason was I wanted Gemini in my spreadsheet because I had, like, the task was I had a list, like one column, which was names of people. And then in a separate spreadsheet tab, there were a much bigger list of the names of the people and their emails. And what I wanted was I was like, hey, here's like a list, like this tab has this list of 10 names of people. I want you to go and look up their emails in this other tab and fill them in here. And I thought this is going to be like the
Starting point is 00:18:44 easiest thing. And I asked the Gem, the Gemini, they have the little Gemini thing integrated with sheets and I press the little button and it's like, oh, you got to pay money. So I'm like, all right, I'll go pay the money. So I get the subscription. And I go back in and I ask it. And it's like, oh, I'm sorry, our current tool support can't do this. We can't look at stuff in another tab. And so I'm like, all right, that's weird. And so I go and I copy the shorter list over to the other tap. So now all the data is in one tab.
Starting point is 00:19:11 And I'm just like, I could pretty easily write a lookup function to do this at this point. And I ask it to do this again. And it's still like, I'm sorry, I can't help you do that. And so that I just take the whole spreadsheet. sheet, and I just upload it to chat GPT, and I ask chat GPT to do the same thing into output CSV, and it's done in like 30 seconds. So initial experience with Gemini's and with Google's integration, not great. But what I really want is I want a little chat thing in the browser
Starting point is 00:19:46 because there are so many mundane tasks that I have with manipulating web UIs, where it's like, oh, I need you to go and click on this button like a dozen times. Like, I was dealing with something with Tripit earlier today where, like, I needed to add 10 entries to trip it, and there's no bulk upload API. There's no public API. There was no way for me to automate it. Like, there's no way for me to tell an AI, like, just go do this. What I really wanted was a chat box in my browser and Google Chrome where I could just be like, you go do this for me, and I go off and do something else. I wonder if Copilot and Edge would do that for you.
Starting point is 00:20:21 I've never tried to have Edge control the webpage, but, I mean, it is integrated in their browser. Maybe we've finally found a reason for me to try using it. And I know that perplexity is working on a new browser, the company that I think, they said it wasn't a joke, but they offered to buy Chrome for $34.5 billion, which is a very brilliant marketing ploy, because apparently they're in court right now and may have to sell it. And like, if there's a buyer out there, they're not going to be able to say, no one would buy Chrome. Well, technically there's someone that offered to buy it. Why would no one buy Chrome? I don't know. It's too integrated with all Google stuff,
Starting point is 00:21:00 and it would take like a decade to unwind it from their products. I don't know. Anyways, we haven't let Sean. Have you been able to find your settings? I did. I found my ranking. So I'm out of about a little over 8,000 engineers at Adobe. I'm ranked 1,200 for a number of accepted lines.
Starting point is 00:21:19 That's pretty good. Yeah, but that's... I'm kind of surprised because I would, I would, you know, had you asked me, I would have said, oh, I'm probably, you know, near the top for, for users. But no, I'm, I am not. What do you think, Bryce? Are we allowed to, we can't say the numbers? Are we allowed to report the percentage?
Starting point is 00:21:42 Because I did calculate my percent. I think that's probably fine. I think you said probably said it. So, yeah, I'm, I'm just outside the top 10%. And I think a while ago, I was in, in the top 5%. I also don't super trust the up to date because like mine also shows that I have zero lines changed since August 6th according to these things and anyways I don't know how reliable they are but I also like you Sean was super surprised I was well of course I got to be the top 100 I'm a
Starting point is 00:22:10 power user I'm a power user what are we talking about I'm in the top third but I think in my defense I I use chat GPT a lot for like directly for these things and I use other AI tools and also there was a four-month window where I could barely use cursor because of the freezes. Right, right. I think I use a wider variety of tools than you do, Connor. I think, like, I'm using, like, now I've been playing around with Gemini. I use perplexity. Like, I use a wider variety of things.
Starting point is 00:22:42 I use Gemini quite a bit now, actually. I used to go to ChatchipT, the free version, to answer questions. But ever since they updated the five. It blows my mind that you do not have the paid version of chat chbt My fiance does so if I need it I'll go use hers But ever since five I thought it's just gone down way like The nice thing about chat chepti 4 point whatever it was It was just fast now it's like oh I decided I need to think about your question
Starting point is 00:23:08 It's like well I didn't ask you to I just want a rapid thing and Gemini I almost exclusively used it for 03 and 03 was pretty slow I did it for like I need some I need like a a little image generated and now I find that the Gemini ones way but anyways back to Sean so you're in the you're 1200 out of 8,000
Starting point is 00:23:27 and and not as high I mean what do you think that means do you think that means that there's just a bunch of people doing like twice as much work as as you like you know it's just people are doing crazy things with this and they're running it overnight or something like that I don't know
Starting point is 00:23:42 interesting question but there'd have to be 1,200 people that are using it more than John. That's a lot of people yeah yeah yeah within the company and uh well the interesting thing is it's like number of lines accepted and i'm like do deleted lines count who is one of my questions there because i delete a lot of code oh yeah that's a good that's a good point uh sometimes it's like go eat this for me and it goes and deletes a bunch of stuff and like potentially you added 5,000 you know two weeks ago but then you deleted that same 5,000 does that like
Starting point is 00:24:19 affect your net total. I would imagine that like it's the absolute, you know, like it's whether you deleted or added. It's changes, yeah. But yeah, it's a hard thing to measure. Yeah, because I had a previous boss who walked into my office one time and he said, he said, so I don't know how to read this. He said, I usually check the GitHub stats.
Starting point is 00:24:39 And I always view you as one of my highest performers, but your total line count stats and GitHub are very negative. It's like, yes, I delete a lot of code. Which is a good thing. Which is a good thing. Be sure to check these show notes, either in your podcast app or at ADSP thepodcast.com, for links to anything we mentioned in today's episode, as well as a link to a get-up discussion where you can leave thoughts, comments, and questions.
Starting point is 00:25:07 Thanks for listening. We hope you enjoyed and have a great day. Low quality, high quantity. That is the tagline of our podcast. It's not the tagline. Our tagline is chaos with sprinkles of information.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.