Algorithms + Data Structures = Programs - Episode 253: Sean Parent on AI and Cursor
Episode Date: September 26, 2025In 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)
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,
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
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
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
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.
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?
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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
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.
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,
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
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
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.
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
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
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,
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.
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
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.
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.
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,
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
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
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
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.
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
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
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.
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?
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.
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
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
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.
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
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.
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,
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.
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?
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
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.
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
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
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
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
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.
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.
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.