WEBVTT

00:00:00.020 --> 00:00:04.220
<v Michael Kennedy>OpenAI just acquired Astral, the company behind uv, Ruff, and ty.

00:00:04.900 --> 00:00:08.400
<v Michael Kennedy>And if your first thought was, wait, is uv toast?

00:00:08.870 --> 00:00:09.500
<v Michael Kennedy>You're not alone.

00:00:10.220 --> 00:00:12.500
<v Michael Kennedy>But here's the twist Charlie Marsh shared with me.

00:00:13.080 --> 00:00:17.740
<v Michael Kennedy>He thinks they may ship more open source at OpenAI than they ever did at Astral.

00:00:18.180 --> 00:00:22.440
<v Michael Kennedy>On this episode, we get into the acquisition, the mixed feelings, and the future of your

00:00:22.650 --> 00:00:27.180
<v Michael Kennedy>favorite Python tools, and what it's like to build right at the center of the AI universe.

00:00:27.960 --> 00:00:33.340
<v Michael Kennedy>This is Talk Python To Me, episode 552, recorded June 2nd, 2026.

00:00:51.399 --> 00:00:56.180
<v Michael Kennedy>Welcome to Talk Python To Me, the number one Python podcast for developers and data scientists.

00:00:56.700 --> 00:00:58.080
<v Michael Kennedy>This is your host, Michael Kennedy.

00:00:58.430 --> 00:01:02.020
<v Michael Kennedy>I'm a PSF fellow who's been coding for over 25 years.

00:01:02.660 --> 00:01:03.760
<v Michael Kennedy>Let's connect on social media.

00:01:04.100 --> 00:01:07.240
<v Michael Kennedy>You'll find me and Talk Python on Mastodon, BlueSky, and X.

00:01:07.520 --> 00:01:09.360
<v Michael Kennedy>The social links are all in your show notes.

00:01:10.120 --> 00:01:13.640
<v Michael Kennedy>You can find over 10 years of past episodes at talkpython.fm.

00:01:13.820 --> 00:01:17.020
<v Michael Kennedy>And if you want to be part of the show, you can join our recording live streams.

00:01:17.360 --> 00:01:17.840
<v Michael Kennedy>That's right.

00:01:18.030 --> 00:01:21.300
<v Michael Kennedy>We live stream the raw uncut version of each episode on YouTube.

00:01:21.880 --> 00:01:26.320
<v Michael Kennedy>Just visit talkpython.fm/youtube to see the schedule of upcoming events.

00:01:26.570 --> 00:01:30.200
<v Michael Kennedy>Be sure to subscribe there and press the bell so you'll get notified anytime we're recording.

00:01:31.100 --> 00:01:32.760
<v Michael Kennedy>This episode is brought to you by Sentry.

00:01:33.080 --> 00:01:34.320
<v Michael Kennedy>Don't let those errors go unnoticed.

00:01:34.600 --> 00:01:36.120
<v Michael Kennedy>Use Sentry like we do here at Talk Python.

00:01:36.620 --> 00:01:39.480
<v Michael Kennedy>Sign up at talkpython.fm/sentry.

00:01:40.400 --> 00:01:42.320
<v Michael Kennedy>Charlie Marsh, welcome back to Talk Python and me.

00:01:42.640 --> 00:01:43.840
<v Michael Kennedy>Lovely as always to have you on the show.

00:01:44.040 --> 00:01:44.260
<v Charlie Marsh>Thank you.

00:01:44.360 --> 00:01:45.960
<v Charlie Marsh>Yeah, it's great to be on the show again.

00:01:46.180 --> 00:01:46.720
<v Charlie Marsh>It's always a pleasure.

00:01:47.080 --> 00:01:49.060
<v Michael Kennedy>We talk about so many interesting things.

00:01:49.520 --> 00:01:50.720
<v Michael Kennedy>We've kind of shared the journey.

00:01:51.140 --> 00:01:55.420
<v Michael Kennedy>your journey together a little bit in the sense that I had you on originally to talk about Ruff

00:01:55.520 --> 00:01:59.560
<v Michael Kennedy>and how cool and how fast it was. And when uv came out, I'm like, oh, you have to, we have to have

00:01:59.560 --> 00:02:05.040
<v Michael Kennedy>you on the show to talk about uv and all these different things. pyx as well. And now something,

00:02:05.420 --> 00:02:10.820
<v Michael Kennedy>something a little bit different, but awesome. I mean, congratulations that you're now part of

00:02:10.960 --> 00:02:16.539
<v Michael Kennedy>OpenAI. I know that there's mixed feelings out in the universe about this, and we're going to talk

00:02:16.560 --> 00:02:22.120
<v Michael Kennedy>about that but personally just happy for you this must be a dream come to true in some ways and

00:02:22.390 --> 00:02:27.660
<v Charlie Marsh>yeah just congrats thank you yeah thanks so much it's funny it's like uh yeah a lot of the maybe

00:02:27.780 --> 00:02:33.000
<v Charlie Marsh>all of the biggest moments for the for the company have been punctuated by appearances on talk python

00:02:33.300 --> 00:02:39.360
<v Charlie Marsh>so uh we have really been we have we have been on this journey together certainly all of our big

00:02:39.540 --> 00:02:43.659
<v Charlie Marsh>you know like product and tool releases i'm excited to come on here and yeah and talk more about the

00:02:43.680 --> 00:02:47.580
<v Charlie Marsh>acquisition, joining OpenAI, all that kind of stuff. So yeah, thanks. Thanks for having me on

00:02:47.740 --> 00:02:51.240
<v Charlie Marsh>again. And yeah, it's been, it's been fun. Hopefully we can do some more episodes too.

00:02:51.480 --> 00:02:57.560
<v Michael Kennedy>You're welcome. And you know, I think having you on the show, especially now, certainly for uv,

00:02:57.820 --> 00:03:02.900
<v Michael Kennedy>but even more so now, kind of like a public service to the community type of thing. Cause

00:03:04.160 --> 00:03:08.760
<v Michael Kennedy>there's a lot of people out there just wondering what tools should they use? How does this change

00:03:08.980 --> 00:03:13.640
<v Michael Kennedy>this thing that I've become so dependent upon and love so much and things like that. So I think just

00:03:13.660 --> 00:03:17.300
<v Michael Kennedy>to share thoughts and future and all that is really good.

00:03:17.550 --> 00:03:17.760
<v Michael Kennedy>Yeah, definitely.

00:03:18.260 --> 00:03:20.020
<v Michael Kennedy>Now, before we do any of that business,

00:03:20.570 --> 00:03:21.120
<v Michael Kennedy>believe it or not,

00:03:21.320 --> 00:03:23.120
<v Michael Kennedy>not everyone has listened to every single episode

00:03:23.230 --> 00:03:24.100
<v Michael Kennedy>of Talk Python To Me.

00:03:24.620 --> 00:03:26.620
<v Michael Kennedy>Y'all out there, if that's you, you got some homework,

00:03:26.860 --> 00:03:28.040
<v Michael Kennedy>but it may be a quick introduction

00:03:28.340 --> 00:03:29.180
<v Michael Kennedy>for folks who don't know you.

00:03:29.420 --> 00:03:29.840
<v Charlie Marsh>Yeah, of course.

00:03:30.020 --> 00:03:31.100
<v Charlie Marsh>So I'm Charlie.

00:03:31.500 --> 00:03:34.940
<v Charlie Marsh>I am the founder and was the CEO of Astral.

00:03:36.040 --> 00:03:37.440
<v Charlie Marsh>We were a company.

00:03:37.490 --> 00:03:39.620
<v Charlie Marsh>We build high-performance developer tools

00:03:39.840 --> 00:03:40.860
<v Charlie Marsh>for the Python ecosystem.

00:03:41.380 --> 00:03:45.180
<v Charlie Marsh>So we're best known for Ruff, which is our linter and formatter.

00:03:46.040 --> 00:03:48.960
<v Charlie Marsh>And then we also build uv, which is a package manager and a manager.

00:03:49.640 --> 00:03:52.240
<v Charlie Marsh>And then we're also working on a type checker called ty.

00:03:52.680 --> 00:03:56.280
<v Charlie Marsh>We joined OpenAI about a month ago, I think at the time of recording.

00:03:56.590 --> 00:04:00.040
<v Charlie Marsh>I continue to lead the Astral team here at OpenAI.

00:04:00.460 --> 00:04:02.120
<v Charlie Marsh>We continue to work on all those tools.

00:04:03.180 --> 00:04:08.120
<v Charlie Marsh>And hopefully in the future, we'll continue to work on all sorts of new cool tools too,

00:04:08.250 --> 00:04:09.480
<v Charlie Marsh>in addition to all the things we've already done.

00:04:09.940 --> 00:04:10.820
<v Charlie Marsh>But that's my background.

00:04:11.160 --> 00:04:13.540
<v Charlie Marsh>We build developer tools, things that we hope,

00:04:13.630 --> 00:04:15.580
<v Charlie Marsh>building software, effective, more fun.

00:04:15.760 --> 00:04:17.060
<v Michael Kennedy>Well, you certainly nailed that.

00:04:17.420 --> 00:04:19.420
<v Michael Kennedy>Developer tools, especially around packaging

00:04:19.820 --> 00:04:22.360
<v Michael Kennedy>and other things like Ruff, but especially with uv,

00:04:22.600 --> 00:04:24.100
<v Michael Kennedy>you really, really nailed it.

00:04:24.100 --> 00:04:25.860
<v Michael Kennedy>And people certainly connected to it.

00:04:26.100 --> 00:04:28.240
<v Michael Kennedy>Before we talk about this current and future,

00:04:28.540 --> 00:04:30.780
<v Michael Kennedy>let's just do a little bit of looking back.

00:04:31.170 --> 00:04:33.180
<v Michael Kennedy>So I remember having you on the show

00:04:33.680 --> 00:04:36.860
<v Michael Kennedy>when Ruff was still just a project that you were doing.

00:04:37.040 --> 00:04:39.080
<v Michael Kennedy>You're like, what if I learned this weird language, Rust,

00:04:39.540 --> 00:04:41.040
<v Michael Kennedy>that was not that popular at the time?

00:04:41.400 --> 00:04:46.460
<v Michael Kennedy>And I built this thing that was like black, but it was really fast and then released that.

00:04:46.780 --> 00:04:51.160
<v Michael Kennedy>And my first experience was worth it was, oh, this is probably broken, or I just don't understand

00:04:51.230 --> 00:04:56.580
<v Michael Kennedy>how to use it because I ask it to analyze a hundred thousand lines of Python code in a project.

00:04:56.900 --> 00:05:00.280
<v Michael Kennedy>And it just went done. I'm like, huh, that probably didn't work. What did I miss? You know,

00:05:00.350 --> 00:05:04.000
<v Michael Kennedy>maybe it's supposed to be like, look, look at the sub directories or something. I don't know

00:05:04.140 --> 00:05:10.139
<v Michael Kennedy>what happened here. So take us on this journey of sort of from starting your open source journey

00:05:10.160 --> 00:05:13.440
<v Michael Kennedy>until you pre-acquisition, just building up Astral?

00:05:13.780 --> 00:05:14.240
<v Charlie Marsh>Yeah, definitely.

00:05:14.700 --> 00:05:17.680
<v Charlie Marsh>So, I mean, I started the company,

00:05:17.990 --> 00:05:19.360
<v Charlie Marsh>I was at a moment in my life

00:05:19.560 --> 00:05:21.460
<v Charlie Marsh>when I thought I wanted to start a company,

00:05:21.700 --> 00:05:23.800
<v Charlie Marsh>but I wasn't really sure what I wanted to do.

00:05:24.740 --> 00:05:27.780
<v Charlie Marsh>And Ruff at the time was really like the side project

00:05:28.120 --> 00:05:30.920
<v Charlie Marsh>that I wasn't really supposed to be spending time on,

00:05:31.700 --> 00:05:33.860
<v Charlie Marsh>but I found really fun and interesting and cool.

00:05:34.180 --> 00:05:36.580
<v Charlie Marsh>And I sort of published a blog post

00:05:36.650 --> 00:05:38.220
<v Charlie Marsh>when I got it to what I'd considered

00:05:38.270 --> 00:05:40.000
<v Charlie Marsh>to be sort of a proof of concept stage.

00:05:40.100 --> 00:06:09.820
<v Charlie Marsh>And, you know, it turns out people were very interested in like the ideas behind it. And, and, and also the, I guess the instantiation of those ideas, like the fact that they ran this thing and it was fast and it seemed useful. And so I started working on it full time pretty soon after that. Started the company pretty soon after that. That was like late 2022. My first kid was born right around the same time. So I was kind of like, I had like a baby and, you know, this company that was at the time, just me.

00:06:10.200 --> 00:06:14.260
<v Michael Kennedy>um then eventually started going to team like five that's a decent amount of work to have a baby and

00:06:14.300 --> 00:06:18.720
<v Michael Kennedy>a new company i remember i think the baby made a bit of an appearance on yeah i think the baby made

00:06:18.720 --> 00:06:23.000
<v Michael Kennedy>a bit of an appearance on the podcast one time which was all good yeah it was an amazing um

00:06:23.450 --> 00:06:30.680
<v Charlie Marsh>yeah it was an amazing time in my life and um uh you know my uh my son was also born like seven

00:06:30.840 --> 00:06:35.280
<v Charlie Marsh>weeks early and so i thought i had kind of like seven weeks to like figure out what i was doing

00:06:35.330 --> 00:06:39.039
<v Charlie Marsh>with this company and then my son was just like born and and thankfully he's doing great but

00:06:39.180 --> 00:06:44.320
<v Charlie Marsh>it was like a time in my life when uh everything was was kind of like things were going crazy like

00:06:44.700 --> 00:06:51.600
<v Michael Kennedy>in all arenas um uh but isn't that emblematic of of being a dad just like yeah yeah i thought i had

00:06:51.640 --> 00:06:55.860
<v Michael Kennedy>this time or i thought this was lined up and it completely just yeah and i was like fixing issues

00:06:56.120 --> 00:07:01.260
<v Charlie Marsh>like from the hospital and like anyway i look back on it all like very fondly though you know yeah

00:07:02.900 --> 00:07:07.660
<v Charlie Marsh>crazy to balance it all and then after a while i started growing the team um like we raised some

00:07:07.540 --> 00:07:12.820
<v Charlie Marsh>money i was able to grow the team and um you know we started with rough which was our linter

00:07:13.160 --> 00:07:18.180
<v Charlie Marsh>that kind of expanded um after that we did our formatter that was all that's also part of rough

00:07:18.660 --> 00:07:23.280
<v Charlie Marsh>um and then you know a little bit after that we basically decided to start working on packaging

00:07:23.580 --> 00:07:28.380
<v Charlie Marsh>which was um uh i mean at the time for us it was actually really different because we were working

00:07:28.380 --> 00:07:33.599
<v Charlie Marsh>on python tooling but everything we'd built was like static analysis like linter formatter and i

00:07:33.620 --> 00:07:38.680
<v Charlie Marsh>I kind of felt like if we wanted to be, you know, the Python tooling company, like aspirationally,

00:07:39.040 --> 00:07:43.340
<v Charlie Marsh>that we sort of had to find a way to make packaging feel really different.

00:07:44.840 --> 00:07:47.820
<v Charlie Marsh>And so we were like, let's take on this whole new set of challenges around.

00:07:47.940 --> 00:07:53.260
<v Charlie Marsh>That was uv, did a couple of big uv releases, and the tools just kept like growing, growing,

00:07:53.460 --> 00:07:55.640
<v Charlie Marsh>growing and put together.

00:07:56.780 --> 00:08:00.519
<v Charlie Marsh>I mean, I just feel really lucky to be working with the team that we were able to put together

00:08:00.540 --> 00:08:06.940
<v Charlie Marsh>because we were able to attract, I think, some really amazing people by building this company

00:08:07.220 --> 00:08:12.460
<v Charlie Marsh>around build open source, write Rust, programming language tooling. And over time, you build momentum

00:08:12.760 --> 00:08:17.180
<v Charlie Marsh>because people liked what we were doing. And then we had just huge amounts of usage. And so the work

00:08:17.320 --> 00:08:22.780
<v Charlie Marsh>becomes more and more impactful. Last year, we started thinking seriously about commercialization

00:08:23.100 --> 00:08:28.259
<v Charlie Marsh>because up to that point, we were, I mean, up until the point we were acquired, we were obviously

00:08:28.280 --> 00:08:32.860
<v Charlie Marsh>venture funded. I mean, it was a pretty efficient company. If you think about it, we weren't spending

00:08:33.020 --> 00:08:37.260
<v Charlie Marsh>crazy amounts of money. We always kept the team pretty small. But obviously the goal was to build

00:08:37.419 --> 00:08:43.020
<v Charlie Marsh>a successful independent business. And so the question becomes, well, how do we want to monetize

00:08:43.180 --> 00:08:49.740
<v Charlie Marsh>it? And I think our strategy around monetization was always quite consistent, which was we wanted

00:08:49.820 --> 00:08:58.600
<v Charlie Marsh>the tools, what we considered the tools, like Ruff, uv, ty, to be free, open source, very

00:08:58.760 --> 00:09:05.580
<v Charlie Marsh>permissively licensed, and ideally kept pristine from the monetization portion of the business.

00:09:06.240 --> 00:09:10.840
<v Charlie Marsh>And what we wanted to do was basically build cloud services, like hosted services that people

00:09:10.860 --> 00:09:14.520
<v Charlie Marsh>would pay money for that were kind of like the natural next thing you need if you were

00:09:14.800 --> 00:09:15.680
<v Charlie Marsh>using our developer tools.

00:09:16.660 --> 00:09:35.000
<v Charlie Marsh>And that was basically, that was actually like the vision that I like wrote out from the start. Not that it was like so, so like ingenious or whatever, but it was like, I was like, okay, we'll like build the tools and then we'll have like a kind of like a Python cloud that people will use our tools and the tools will create distribution, like companies that use tools will buy our products.

00:09:35.340 --> 00:09:41.800
<v Charlie Marsh>And then maybe we can have like technical advantages because we work on both the tools and the hosted services and all that kind.

00:09:42.020 --> 00:09:48.680
<v Charlie Marsh>So pyx was like the first piece of that platform.

00:09:49.260 --> 00:09:54.920
<v Charlie Marsh>And pyx was our or is our hosted Python registry.

00:09:55.140 --> 00:09:57.000
<v Charlie Marsh>It's sort of like the server to the uv client.

00:09:57.940 --> 00:10:07.640
<v Charlie Marsh>So we had lots of issues in uv from people who, you know, companies basically that have needs around how they do Python packaging and distribution that we couldn't really solve in the client.

00:10:07.730 --> 00:10:17.400
<v Charlie Marsh>Like maybe they need to distribute private packages or maybe they need to have various kinds of security scanning built into their registry instead of using PyPI.

00:10:18.120 --> 00:10:20.540
<v Charlie Marsh>And we basically said, well, let's go build a really good registry.

00:10:20.960 --> 00:10:46.900
<v Charlie Marsh>And we thought we could use that to solve not only those kinds of enterprise problems around security and private package distribution, but also a bunch of what we considered user experience problems, like trying to make packaging even faster, trying to make a big dent in PyTorch and GPUs and CUDA, a lot of the user friction that people run into when they're trying to build with GPUs.

00:10:47.260 --> 00:10:53.080
<v Charlie Marsh>And so we were like, we could solve that if we have our own server, you know, and people are using our unique client.

00:10:53.620 --> 00:10:57.580
<v Michael Kennedy>Yeah, and people want to know what you're alluding to with the PyTorch and all the issues.

00:10:57.890 --> 00:11:08.000
<v Michael Kennedy>We did a whole episode both on pyx and on Wheel Next recently, especially the Wheel Next one, which was, I don't know, months ago, less than a year ago, something like that.

00:11:08.220 --> 00:11:11.220
<v Charlie Marsh>Tons of hard problems that I've spent lots of time thinking about.

00:11:11.680 --> 00:11:12.400
<v Michael Kennedy>It's very hard, yeah.

00:11:12.800 --> 00:11:15.860
<v Charlie Marsh>Yeah, we're kind of like working on that in standards and we're still continuing to do that.

00:11:16.160 --> 00:11:20.220
<v Charlie Marsh>And at the same time, we were like, let's see if we can solve this for paying customers.

00:11:20.500 --> 00:11:24.360
<v Charlie Marsh>Because machine learning researchers, that's very high value users.

00:11:24.760 --> 00:11:27.020
<v Charlie Marsh>Those people are very expensive for companies.

00:11:27.260 --> 00:11:38.920
<v Charlie Marsh>So if you can make them more productive, and part of the goal of pyx is basically make those people more productive by trying to solve problems that require expertise, both in GPUs and CUDA and Python packaging, which is sort of a rare combination.

00:11:39.260 --> 00:11:43.440
<v Charlie Marsh>So it's a rare combination, but it's one you basically need if you want to be productive in that space, unfortunately.

00:11:43.560 --> 00:11:47.100
<v Michael Kennedy>Yeah, yeah. And the old Python packaging standards are kind of misaligned.

00:11:47.520 --> 00:11:48.740
<v Michael Kennedy>So that's why it means...

00:11:48.930 --> 00:11:49.320
<v Charlie Marsh>Yeah, exactly.

00:11:51.180 --> 00:11:53.660
<v Michael Kennedy>This portion of Talk Python is brought to you by Sentry.

00:11:54.140 --> 00:12:01.820
<v Michael Kennedy>I've been using Sentry personally on almost every application and API that I've built for Talk Python and beyond over the last few years.

00:12:02.140 --> 00:12:05.000
<v Michael Kennedy>They're a core building block for keeping my infrastructure solid.

00:12:05.620 --> 00:12:07.560
<v Michael Kennedy>They should be for yours as well. Here's why.

00:12:08.220 --> 00:12:12.440
<v Michael Kennedy>Sentry doesn't just catch errors. It catches all the stuff that makes your app feel broken.

00:12:12.680 --> 00:12:18.160
<v Michael Kennedy>The random slowdown, the freeze you can't reproduce, that bug that only shows up once real users hit it.

00:12:18.500 --> 00:12:22.040
<v Michael Kennedy>And when something goes wrong, Sentry gives you the whole chain of events in one place.

00:12:22.280 --> 00:12:25.260
<v Michael Kennedy>Errors, traces, replays, logs, dots connected.

00:12:25.640 --> 00:12:29.380
<v Michael Kennedy>You can see what's led to the issue without digging through five different dashboards.

00:12:30.240 --> 00:12:34.740
<v Michael Kennedy>Seer, Sentry's AI debugging agent, builds on this data, taking the full context,

00:12:35.400 --> 00:12:40.320
<v Michael Kennedy>explaining why the issue happened, pointing to the code responsible, drafts a fix,

00:12:40.440 --> 00:12:43.400
<v Michael Kennedy>and even flags if your PR is about to introduce a new problem.

00:12:44.240 --> 00:12:45.260
<v Michael Kennedy>The workflow stays simple.

00:12:45.700 --> 00:12:47.420
<v Michael Kennedy>Something breaks, Sentry alerts you,

00:12:47.740 --> 00:12:49.420
<v Michael Kennedy>the dashboard shows you the full context,

00:12:49.760 --> 00:12:52.900
<v Michael Kennedy>Seer helps you fix it and catch new issues before they ship.

00:12:53.620 --> 00:12:56.380
<v Michael Kennedy>It's totally reasonable to go from an error occurred

00:12:56.720 --> 00:12:58.700
<v Michael Kennedy>to fixed in production in just 10 minutes.

00:12:59.760 --> 00:13:02.480
<v Michael Kennedy>I truly appreciate the support that Sentry has given me

00:13:02.720 --> 00:13:05.080
<v Michael Kennedy>to help solve my bugs and issues in my apps,

00:13:05.700 --> 00:13:08.280
<v Michael Kennedy>especially those tricky ones that only appear in production.

00:13:08.660 --> 00:13:10.120
<v Michael Kennedy>I know you will too if you try them out.

00:13:10.440 --> 00:13:12.080
<v Michael Kennedy>So get started today with Sentry.

00:13:12.360 --> 00:13:17.260
<v Michael Kennedy>Just visit talkpython.fm/sentry and get $100 in Sentry credits.

00:13:17.780 --> 00:13:18.520
<v Michael Kennedy>Please use that link.

00:13:18.530 --> 00:13:19.900
<v Michael Kennedy>It's in your podcast player show notes.

00:13:20.080 --> 00:13:25.320
<v Michael Kennedy>If you're signing up some other way, you can use our code talkpython26, all one word,

00:13:25.920 --> 00:13:28.440
<v Michael Kennedy>talkpython26, to get $100 in credits.

00:13:29.240 --> 00:13:30.900
<v Michael Kennedy>Thank you to Sentry for supporting the show.

00:13:32.020 --> 00:13:36.280
<v Charlie Marsh>So yeah, we started, I think we did the, we launched the closed beta for that in like

00:13:36.470 --> 00:13:37.700
<v Charlie Marsh>August of last year, maybe.

00:13:38.780 --> 00:13:44.680
<v Charlie Marsh>And so from there, we basically had like, I would say three quarters of the team was working purely on the open source.

00:13:44.980 --> 00:13:53.680
<v Charlie Marsh>And then maybe a quarter of the team, me included, was working on the commercial platform and starting a real kind of like sales process around that and like going and selling it to companies.

00:13:54.180 --> 00:14:00.620
<v Charlie Marsh>And probably not widely known, but we had like real revenue and actually grew pretty well.

00:14:00.740 --> 00:14:07.120
<v Charlie Marsh>I mean, it was no, you know, you see all these blog posts about companies going from like zero to a hundred million dollars in like three months or something and breaking all sorts of records.

00:14:07.420 --> 00:14:11.440
<v Charlie Marsh>It wasn't like that, but it certainly grew pretty well.

00:14:11.560 --> 00:14:15.480
<v Charlie Marsh>And we had, I would say, a small number of very high quality customers.

00:14:16.700 --> 00:14:20.420
<v Charlie Marsh>And a lot of that basically came from the open source, people who used our open source

00:14:20.520 --> 00:14:21.960
<v Charlie Marsh>tooling and saw we were building this thing.

00:14:22.000 --> 00:14:26.840
<v Charlie Marsh>And that led to a lot of companies coming to us and wanting to see this product that

00:14:26.880 --> 00:14:29.020
<v Charlie Marsh>we had talked about and written about.

00:14:29.720 --> 00:14:31.280
<v Charlie Marsh>So we spent a while building that.

00:14:32.140 --> 00:14:36.940
<v Charlie Marsh>And then, you know, eventually we ended up in conversations with OpenAI.

00:14:38.000 --> 00:14:41.920
<v Charlie Marsh>That is a, it turns out to be a long and interesting process.

00:14:43.060 --> 00:14:50.020
<v Charlie Marsh>But we announced that deal, I think in April, I think in April.

00:14:50.360 --> 00:14:51.760
<v Charlie Marsh>Sorry, you can fact check me on that.

00:14:51.860 --> 00:14:52.840
<v Charlie Marsh>I'm just scrolling off my memory.

00:14:53.290 --> 00:14:54.420
<v Charlie Marsh>But we ended up announcing

00:14:54.420 --> 00:14:57.040
<v Michael Kennedy>Let's see, March 19th, 2026.

00:14:57.040 --> 00:14:58.040
<v Charlie Marsh>How about that?

00:14:59.240 --> 00:15:04.020
<v Charlie Marsh>We announced that deal in March and then we joined OpenAI about a month ago.

00:15:04.340 --> 00:15:04.600
<v Michael Kennedy>Okay.

00:15:05.060 --> 00:15:09.620
<v Michael Kennedy>So a couple of months in between, figure out all the details and so on.

00:15:09.920 --> 00:15:16.300
<v Michael Kennedy>So I want to take you through kind of reliving that experience and goals.

00:15:16.460 --> 00:15:21.680
<v Michael Kennedy>But first, what was OpenAI primarily interested in your tooling?

00:15:21.840 --> 00:15:22.660
<v Michael Kennedy>Was it UV?

00:15:23.260 --> 00:15:24.860
<v Michael Kennedy>Was it rough?

00:15:25.100 --> 00:15:27.260
<v Michael Kennedy>I mean, to me, let me just speculate out loud.

00:15:28.320 --> 00:15:31.260
<v Michael Kennedy>then maybe I can channel some of the thoughts of the people out in the audience.

00:15:31.490 --> 00:15:37.400
<v Michael Kennedy>Like uv, obviously for packaging and managing Python apps, tooling, dependencies, all of that,

00:15:37.600 --> 00:15:37.700
<v Michael Kennedy>right?

00:15:37.860 --> 00:15:42.160
<v Michael Kennedy>We've seen Claude acquire Bun, which is kind of a JavaScript equivalent.

00:15:42.900 --> 00:15:46.040
<v Michael Kennedy>Maybe equivalent's not quite, but in the same ballpark type thing as uv,

00:15:46.980 --> 00:15:49.680
<v Michael Kennedy>sort of like npm a little bit, but also running stuff.

00:15:50.300 --> 00:15:52.160
<v Charlie Marsh>Yeah, it's a package major and a runtime.

00:15:52.520 --> 00:15:54.100
<v Charlie Marsh>So it's like Node and npm.

00:15:54.520 --> 00:15:54.860
<v Michael Kennedy>Exactly.

00:15:55.080 --> 00:15:56.140
<v Michael Kennedy>It's like, yeah, Node plus npm.

00:15:56.280 --> 00:15:56.920
<v Michael Kennedy>That's a good way to put it.

00:15:57.160 --> 00:16:04.540
<v Michael Kennedy>But then also rough, like if you've got Codex, the team that you're on, you know, I see some of the AIs out there just going grep, grep, grep, grep.

00:16:04.620 --> 00:16:07.080
<v Michael Kennedy>And I'm like, that seems like a really shallow way to understand it.

00:16:07.160 --> 00:16:13.480
<v Michael Kennedy>So what if you could parse a concrete syntax tree and truly understand the code, not just fragments here and there?

00:16:13.580 --> 00:16:14.880
<v Michael Kennedy>Like that might be super interesting.

00:16:15.260 --> 00:16:15.960
<v Michael Kennedy>So these are my thoughts.

00:16:16.080 --> 00:16:19.260
<v Michael Kennedy>And I'm like, well, why did OpenAI come and show an interest in you all?

00:16:19.600 --> 00:16:19.780
<v Michael Kennedy>Yeah.

00:16:19.920 --> 00:16:20.820
<v Michael Kennedy>What can you say about it?

00:16:21.000 --> 00:16:21.380
<v Charlie Marsh>Yeah, definitely.

00:16:21.620 --> 00:16:23.160
<v Charlie Marsh>I mean, there's a few different pieces to it.

00:16:23.240 --> 00:16:36.480
<v Charlie Marsh>And, you know, I think one is, you know, OpenAI, there's a lot of, this has been written about publicly, like there's a lot of Python at this company, also a lot of Rust at this company.

00:16:37.170 --> 00:16:38.460
<v Charlie Marsh>And we work at the intersection.

00:16:38.710 --> 00:16:40.080
<v Charlie Marsh>We work on Python tooling.

00:16:40.190 --> 00:16:40.980
<v Charlie Marsh>We write a lot of Rust.

00:16:42.100 --> 00:16:44.200
<v Charlie Marsh>And they're also big users of our tools.

00:16:45.420 --> 00:16:51.180
<v Charlie Marsh>So part of it is, you know, how can we help accelerate OpenAI as like one user of our tools?

00:16:52.160 --> 00:17:05.680
<v Charlie Marsh>I think another is we, as an independent company for the acquisition, had been thinking a lot about how do our tools need to change as the way we build software changes.

00:17:06.120 --> 00:17:11.660
<v Charlie Marsh>So we have to think a lot now about a lot of our users are building software with agents.

00:17:12.069 --> 00:17:18.160
<v Charlie Marsh>And so we're thinking a lot about how do we make tools that are great for humans and for agents and what changes and what stays the same.

00:17:18.540 --> 00:17:28.540
<v Charlie Marsh>And there are lots of questions that we want to explore there that I believe, and I think OpenAI believe this too, we can more effectively explore together.

00:17:28.650 --> 00:17:39.760
<v Charlie Marsh>If you basically think about kind of co-designing like the models and the harness and tools, like what are interesting questions and where can you like innovate in order to try and build like a really different developer experience?

00:17:41.020 --> 00:17:54.480
<v Charlie Marsh>And part of it too is I think just that we're lucky because I think OpenAI had a lot of respect for our team and the impact that we've been able to have with the resources that we had.

00:17:54.500 --> 00:17:58.880
<v Charlie Marsh>And that if we were put in part of a bigger platform, we could have an even bigger impact.

00:18:00.320 --> 00:18:01.680
<v Charlie Marsh>So it's a mix of things.

00:18:01.880 --> 00:18:06.520
<v Charlie Marsh>Part of it is about accelerating OpenAI.

00:18:07.160 --> 00:18:13.640
<v Charlie Marsh>Part of it is thinking about like how tools change and like the future of software as we, the Codex team.

00:18:14.600 --> 00:18:22.060
<v Charlie Marsh>So, you know, this, this also speaks, I think, to a bit to, you know, sort of like what changes and what stays, what stays the same.

00:18:23.020 --> 00:18:30.700
<v Charlie Marsh>Because for us, we, like we tend to view OpenAI as like a user of our tools.

00:18:31.520 --> 00:18:40.280
<v Charlie Marsh>And what we want to do is we want to keep building what we hope is like great software that benefits everyone, you know, including OpenAI.

00:18:41.120 --> 00:18:48.580
<v Charlie Marsh>So, you know, for us, we kind of use this platform in part as, oh, here's a big, you know, like a huge user of our tooling.

00:18:49.100 --> 00:18:56.460
<v Charlie Marsh>How can we find areas where our tooling is like insufficient that help accelerate internally, but then also tools better for everybody?

00:18:57.460 --> 00:19:03.140
<v Charlie Marsh>And so like still very much working on like all of our tools, like very much still a priority

00:19:03.220 --> 00:19:04.460
<v Charlie Marsh>to keep, keep building those.

00:19:05.740 --> 00:19:10.260
<v Charlie Marsh>And then similarly, if you think about that second piece of like, how can we bigger about

00:19:10.420 --> 00:19:11.400
<v Charlie Marsh>like the future of software?

00:19:11.780 --> 00:19:14.800
<v Charlie Marsh>We now have lots of opportunities that we, we sort of didn't have before.

00:19:14.960 --> 00:19:19.280
<v Charlie Marsh>Like, I think before we were a bit more constrained because one, you know, the things that we

00:19:19.420 --> 00:19:24.260
<v Charlie Marsh>worked on, they did have to be coupled in a realistic way to kind of like the commercial

00:19:24.500 --> 00:19:25.340
<v Charlie Marsh>vision of the company.

00:19:26.220 --> 00:19:32.600
<v Charlie Marsh>And two, we were pretty focused on Python and just Python.

00:19:32.800 --> 00:19:36.300
<v Charlie Marsh>And the idea of expanding scope in different ways was, I think, more challenging.

00:19:36.600 --> 00:19:42.760
<v Charlie Marsh>And so when I look at what we're doing here, part of it is I think we can actually be a

00:19:42.800 --> 00:19:49.260
<v Charlie Marsh>little bit more ambitious and maybe a little bit crazy in terms of the experiments that

00:19:49.260 --> 00:19:51.540
<v Charlie Marsh>we run or the things that we try to build.

00:19:52.480 --> 00:19:58.600
<v Charlie Marsh>And even think beyond Python if we want to in terms of how can we build tools that basically make programming more productive?

00:19:58.790 --> 00:20:00.060
<v Charlie Marsh>Like that was always our goal.

00:20:01.000 --> 00:20:06.220
<v Charlie Marsh>And so here at OpenAI, it's like I want to keep and we're going to keep building our open source tools.

00:20:06.310 --> 00:20:09.880
<v Charlie Marsh>We want to use those to build the best possible programming experience we can for Python.

00:20:10.900 --> 00:20:17.600
<v Charlie Marsh>And we also want to be thinking about like what's the future of how we build software and how can we go and sort of like test those waters?

00:20:17.860 --> 00:20:26.340
<v Charlie Marsh>And if we sort of like think a few steps ahead, what is like the next generation of tooling look like, whether it's for Python or for Rust or for, you know, other parts of the software development?

00:20:26.840 --> 00:20:35.500
<v Michael Kennedy>That's pretty interesting. I guess one thing I left out in my enumeration of reasons they might care about you all is just Python intersect Rust super team, right?

00:20:35.680 --> 00:20:37.420
<v Michael Kennedy>Like just the folks that work there.

00:20:37.800 --> 00:20:43.620
<v Michael Kennedy>Yeah, that must be really interesting to just have such a bigger space to explore in, right?

00:20:43.630 --> 00:20:47.020
<v Michael Kennedy>Because you were known as Astral, the team that makes awesome Python tools.

00:20:47.560 --> 00:20:50.920
<v Michael Kennedy>But if you're like, oh, we got this really great idea about C++ and packaging,

00:20:51.200 --> 00:20:54.040
<v Michael Kennedy>that wouldn't be congruent with how you're trying to grow

00:20:54.600 --> 00:20:58.180
<v Michael Kennedy>into your Python cloud offerings and pyx and those types of things.

00:20:58.280 --> 00:21:00.120
<v Michael Kennedy>But now the constraints are off.

00:21:00.580 --> 00:21:02.280
<v Charlie Marsh>Constraints are just very different, right?

00:21:02.440 --> 00:21:06.540
<v Charlie Marsh>I mean, I think we're still extremely committed to our tools.

00:21:07.660 --> 00:21:10.760
<v Charlie Marsh>And we actually just finished, the first thing I did,

00:21:11.140 --> 00:21:13.640
<v Charlie Marsh>maybe not the first day, but starting the second week,

00:21:13.820 --> 00:21:16.180
<v Charlie Marsh>is I wrote up a charter for our team

00:21:16.640 --> 00:21:18.160
<v Charlie Marsh>that we all kind of like aligned around

00:21:18.780 --> 00:21:19.740
<v Charlie Marsh>to basically try to figure out like,

00:21:19.770 --> 00:21:20.440
<v Charlie Marsh>what are we doing here?

00:21:21.180 --> 00:21:22.980
<v Charlie Marsh>Like, what is our mission here at OpenAI?

00:21:23.090 --> 00:21:24.940
<v Charlie Marsh>And like, how is it different than what we did before?

00:21:25.600 --> 00:21:26.820
<v Charlie Marsh>How do we prioritize?

00:21:27.110 --> 00:21:28.720
<v Charlie Marsh>How do we figure out whether something's worth doing,

00:21:28.920 --> 00:21:30.440
<v Charlie Marsh>whether it fits into like our mandate

00:21:30.780 --> 00:21:32.000
<v Charlie Marsh>and everything to do?

00:21:32.680 --> 00:21:34.820
<v Charlie Marsh>And we just, we sort of like went through

00:21:34.960 --> 00:21:35.660
<v Charlie Marsh>that mission exercise.

00:21:36.380 --> 00:21:37.720
<v Charlie Marsh>And then we did a bunch of planning

00:21:37.910 --> 00:21:39.580
<v Charlie Marsh>over the past two weeks to kind of set our goals

00:21:39.690 --> 00:21:41.780
<v Charlie Marsh>for the next, we're doing like two month cycles.

00:21:41.930 --> 00:21:43.280
<v Charlie Marsh>So we set our goals for the next two months.

00:21:43.560 --> 00:21:50.480
<v Charlie Marsh>and I will say like of like most of what's in there is like continuing to build our open source

00:21:50.700 --> 00:21:55.040
<v Charlie Marsh>tools and like trying to solve the problems that we see there and then there's obviously some new

00:21:55.320 --> 00:21:59.600
<v Charlie Marsh>experimental different stuff that's like we wouldn't have done before you know especially

00:21:59.860 --> 00:22:03.820
<v Charlie Marsh>around you know we're thinking about experimenting with like Rust tooling we think Rust is really

00:22:04.000 --> 00:22:07.240
<v Charlie Marsh>interesting we spend all our time writing Rust we think Rust is going to be like an increasingly

00:22:07.500 --> 00:22:11.679
<v Charlie Marsh>important language are there things that we could do to make like Rust more effective you know are

00:22:11.700 --> 00:22:16.340
<v Charlie Marsh>there other ways that like agents are going to fit into the broader software lifecycle of like

00:22:16.700 --> 00:22:21.900
<v Charlie Marsh>filing issues and and code review and all those kinds of things so you know it's a mix of keep

00:22:22.080 --> 00:22:27.520
<v Charlie Marsh>building the tools that like so many people depend on like including open ai um like keep but also

00:22:27.680 --> 00:22:30.820
<v Charlie Marsh>solving problems that honestly some of them probably don't matter that much to open ai but

00:22:30.820 --> 00:22:36.080
<v Charlie Marsh>they matter a lot to our users um and go was better and part of it is like thinking big about

00:22:36.280 --> 00:22:40.819
<v Charlie Marsh>new areas where we could be having you know hopefully like a 10x impact over what things

00:22:40.840 --> 00:22:45.740
<v Charlie Marsh>are today in the same way that hopefully we did with our existing tools. So, you know, I think

00:22:46.160 --> 00:22:50.900
<v Charlie Marsh>like we will, you know, it's easy for me to say this. I think like ultimately time will tell whether

00:22:51.020 --> 00:22:55.840
<v Charlie Marsh>this is true, but I, at least right now, I genuinely think it's possible that we end up writing more

00:22:55.990 --> 00:23:01.520
<v Charlie Marsh>open source here than we did at Astral. Because if you look at the arc of what was happening at

00:23:01.640 --> 00:23:04.980
<v Charlie Marsh>Astral, I mean, it was going, like the company was going well, but also we were increasingly having

00:23:05.010 --> 00:23:09.839
<v Michael Kennedy>to think like how do we commercialize? Yes. I was just thinking that actually. How do we build a

00:23:09.860 --> 00:23:15.460
<v Charlie Marsh>commercial product and yeah yeah here we have like no constraints or like you know no rules or

00:23:15.470 --> 00:23:21.360
<v Charlie Marsh>whatever but like we certainly um we certainly do have the ability right now to like keep building

00:23:21.640 --> 00:23:25.120
<v Charlie Marsh>in open source and it's definitely uh you know there's a lot of alignment in that throughout

00:23:25.120 --> 00:23:30.340
<v Charlie Marsh>the company so um i don't know i'm just like i'm very to be honest with you i'm just like super

00:23:30.640 --> 00:23:37.540
<v Charlie Marsh>happy right now because um i think it was obviously a very stressful process uh in a lot of different

00:23:37.560 --> 00:23:43.240
<v Charlie Marsh>ways. Just a lot of responsibility to weigh, you know, a lot of high stakes moments, a lot of

00:23:43.560 --> 00:23:49.660
<v Charlie Marsh>different groups to consider, whether it's like the people on the team, our users, our customers,

00:23:50.260 --> 00:23:55.380
<v Charlie Marsh>right? There's just a lot, a lot, a lot to think about. But like sitting here now a month in,

00:23:55.580 --> 00:24:00.320
<v Charlie Marsh>I'm like, I'm super happy with, with like where the, where we're situated on as a team,

00:24:00.920 --> 00:24:05.320
<v Charlie Marsh>like the things that we're committed to doing over the next few months, the resources we have to do

00:24:05.340 --> 00:24:10.920
<v Charlie Marsh>them, it's like, I don't know, it feels like a really special like moment in time. And I think

00:24:11.210 --> 00:24:15.600
<v Charlie Marsh>I really think the amount of like open source that we will ship over the next year will be like,

00:24:15.920 --> 00:24:19.780
<v Charlie Marsh>yeah, again, possibly more than we would have done otherwise. I mean, obviously hard to hard to prove

00:24:19.830 --> 00:24:22.960
<v Charlie Marsh>and who knows how that will play out. But that's how I feel like sitting here today, at least.

00:24:23.140 --> 00:24:27.520
<v Michael Kennedy>That's great. You know, one thing I was thinking about while you're saying this is I run my own

00:24:27.650 --> 00:24:33.759
<v Michael Kennedy>company here at Talk Python, right? And there's a remarkably high percentage of my time. It just

00:24:33.780 --> 00:24:36.660
<v Michael Kennedy>feels like administration support, et cetera.

00:24:37.130 --> 00:24:40.900
<v Michael Kennedy>You know, I'm doing accounting and I'm trying to figure out like, chasing

00:24:41.080 --> 00:24:44.840
<v Michael Kennedy>down sponsors for the show, following up on invoices that don't get paid,

00:24:45.280 --> 00:24:48.280
<v Michael Kennedy>keeping the website running, you know, just like all these things, none of

00:24:48.440 --> 00:24:50.140
<v Michael Kennedy>which delivered direct value.

00:24:50.640 --> 00:24:54.780
<v Michael Kennedy>And so you've, you probably live this like even to a higher degree than I did,

00:24:55.200 --> 00:24:58.900
<v Michael Kennedy>but, but then now you've been like plucked from that environment, leaving

00:24:59.080 --> 00:25:02.300
<v Michael Kennedy>all that infrastructure, like accounting and stuff aside.

00:25:02.740 --> 00:25:07.200
<v Michael Kennedy>And now you're more like pure product, which is in a sense could actually be better, as you were saying.

00:25:07.480 --> 00:25:15.400
<v Charlie Marsh>I mean, you know, to be honest, like it's like that's a lot of what I was hoping for is I thought that this would put us in a position.

00:25:16.440 --> 00:25:22.680
<v Charlie Marsh>And again, like I should be held to account, you know, at some point in the future to see whether this works out or not.

00:25:22.880 --> 00:25:29.080
<v Charlie Marsh>But like I I thought I would be putting us in a position to keep doing the things that we love to do and that we're really good at.

00:25:30.020 --> 00:25:39.780
<v Charlie Marsh>And, you know, in a place that was that didn't require us to compromise on a lot of our values in terms of how we think about users and how we think about building.

00:25:41.340 --> 00:25:44.120
<v Charlie Marsh>And I'm I don't know, I'm excited about like what we have planned.

00:25:44.510 --> 00:25:49.660
<v Charlie Marsh>So, yes, I I certainly, you know, my my job has changed quite a bit, as you can imagine.

00:25:50.060 --> 00:25:56.100
<v Charlie Marsh>Like I it's funny because like I'm not I'm probably working more or the same amount.

00:25:56.460 --> 00:25:59.620
<v Charlie Marsh>But I like I kind of like always I just like work a lot.

00:26:00.039 --> 00:26:02.640
<v Charlie Marsh>but I do feel less stressed to be honest.

00:26:04.220 --> 00:26:06.560
<v Charlie Marsh>Like I feel less stress about,

00:26:07.480 --> 00:26:09.100
<v Charlie Marsh>sort of like existential stress about

00:26:09.600 --> 00:26:11.680
<v Charlie Marsh>how do I make sure the company doesn't like completely fail,

00:26:12.820 --> 00:26:13.860
<v Charlie Marsh>you know, especially for

00:26:13.860 --> 00:26:14.800
<v Michael Kennedy>It's probably more deep.

00:26:14.800 --> 00:26:17.220
<v Charlie Marsh>Even all these people who came and joined, right?

00:26:17.220 --> 00:26:19.200
<v Charlie Marsh>But now I feel less stress.

00:26:19.200 --> 00:26:21.200
<v Charlie Marsh>I feel way more, I feel just like, I don't know.

00:26:21.200 --> 00:26:22.160
<v Charlie Marsh>It's very cool.

00:26:22.440 --> 00:26:22.600
<v Michael Kennedy>Amazing.

00:26:22.620 --> 00:26:24.520
<v Michael Kennedy>All right, before we move off this topic of,

00:26:24.580 --> 00:26:26.520
<v Michael Kennedy>you know, you joining OpenAI and all that,

00:26:26.520 --> 00:26:29.019
<v Michael Kennedy>I kind of just want to have you relive the experience

00:26:29.040 --> 00:26:34.360
<v Michael Kennedy>a little bit for people like what what was it like to hear from open ai like oh my gosh they want to

00:26:34.520 --> 00:26:38.560
<v Michael Kennedy>acquire they want to have a discussion about maybe acquiring us and then maybe telling the team

00:26:39.500 --> 00:26:43.400
<v Michael Kennedy>telling your wife like just and your family like just to the extent you can just give people a

00:26:43.540 --> 00:26:47.540
<v Michael Kennedy>sense of like what those first couple yeah yeah of course i mean there's like you know there are

00:26:47.780 --> 00:26:54.859
<v Charlie Marsh>there's obviously a lot i can't say um you know the things i will say is like one um i i think

00:26:54.880 --> 00:27:02.080
<v Charlie Marsh>think I'm pretty naive, but it was like, it was a lot of work and takes a lot of time. And, you

00:27:02.080 --> 00:27:05.640
<v Charlie Marsh>know, there's just a bunch of different phases to the process where sometimes things move very fast

00:27:05.760 --> 00:27:10.200
<v Charlie Marsh>and sometimes they move slow and then they move very fast. And it just has all sorts of ups and

00:27:10.360 --> 00:27:17.860
<v Charlie Marsh>downs and twists. And, you know, I think, I think people had, you know, lots of different feelings

00:27:18.240 --> 00:27:24.180
<v Charlie Marsh>about the acquisition. And yeah, that's right. There was a lot of positive, but also a lot of

00:27:24.180 --> 00:27:28.100
<v Michael Kennedy>negative stuff that you probably got thrown at you when this came out, right? So that must have been

00:27:28.150 --> 00:27:32.620
<v Michael Kennedy>a little bit challenging to deal with. Yeah. I mean, I think for me, like it wasn't,

00:27:33.100 --> 00:27:40.240
<v Charlie Marsh>to be totally honest, it wasn't anything that I didn't expect. And it reminded me a bit of when

00:27:40.310 --> 00:27:43.540
<v Charlie Marsh>we announced that we were, you know, to be honest, it reminded me a bit of when we announced that we

00:27:43.660 --> 00:27:49.520
<v Charlie Marsh>were forming a company and sort of like, you know, the range of reactions that you get around that.

00:27:49.720 --> 00:27:53.619
<v Charlie Marsh>Some people are very excited for you. Some people are like, this should be an open source project

00:27:53.640 --> 00:27:54.740
<v Charlie Marsh>that isn't part of a company.

00:27:55.000 --> 00:27:56.700
<v Charlie Marsh>Some people are worried about the future of the project

00:27:56.860 --> 00:27:58.480
<v Charlie Marsh>or think that you're not happy with your choices.

00:28:00.100 --> 00:28:02.500
<v Charlie Marsh>And I kind of tell myself a lot of the same things

00:28:02.680 --> 00:28:03.940
<v Charlie Marsh>that I told myself then,

00:28:04.980 --> 00:28:09.120
<v Charlie Marsh>which are, no matter what you say

00:28:09.200 --> 00:28:10.160
<v Charlie Marsh>and how genuine you are

00:28:10.160 --> 00:28:11.180
<v Charlie Marsh>and how you feel about those things,

00:28:11.320 --> 00:28:14.260
<v Charlie Marsh>you won't convince everybody just with words.

00:28:15.200 --> 00:28:16.620
<v Charlie Marsh>And what you really have to do

00:28:16.620 --> 00:28:18.560
<v Charlie Marsh>is convince people with actions over time.

00:28:19.000 --> 00:28:21.040
<v Charlie Marsh>And so when we announce the acquisition,

00:28:21.580 --> 00:28:31.780
<v Charlie Marsh>A lot of people really excited and happy, including users who thought this would be a better, more sustainable future for the tool, but also people not happy about it.

00:28:32.140 --> 00:28:40.880
<v Charlie Marsh>And for me, the thing that I told myself is, not to be too poetic, but the story of this acquisition hasn't really been told yet.

00:28:41.380 --> 00:28:50.640
<v Charlie Marsh>You can predict that certain things are going to happen, but I think a much better way to look at it is looking back a year from now,

00:28:50.880 --> 00:28:54.080
<v Charlie Marsh>what are we going to say about it? Like, and what do we want to be able to say about it? And so we

00:28:54.200 --> 00:28:58.860
<v Charlie Marsh>actually went through that same exercise as a team, we sat down and we wrote out, you know, a year from

00:28:58.960 --> 00:29:03.000
<v Charlie Marsh>now, what do we want to be able to say about our tools? And some things are obvious, like, they're

00:29:03.160 --> 00:29:06.860
<v Charlie Marsh>still open source, right? Like, that's like, incredibly obvious to me that like, that's still

00:29:06.940 --> 00:29:12.000
<v Charlie Marsh>going to be true. You know, but there's a lot of other stuff to like, oh, we want to make sure that

00:29:12.000 --> 00:29:17.059
<v Charlie Marsh>we continue to like, keep a very high quality bar, we keep trying to build things that we think are

00:29:17.080 --> 00:29:21.300
<v Charlie Marsh>really great as opposed to shipping, you know, like quality over quantity. That's like a value

00:29:21.380 --> 00:29:25.100
<v Charlie Marsh>that we have that we want to retain. And we had this whole list of things, you know, that we want

00:29:25.260 --> 00:29:30.080
<v Charlie Marsh>to continue to be true. And so for me, I just try to stay focused on what are people going to say

00:29:30.160 --> 00:29:35.540
<v Charlie Marsh>about this in a year? And that directly translates to how do we want users to feel, right? Like,

00:29:35.680 --> 00:29:39.760
<v Charlie Marsh>how do we want to treat users? What are the contracts that we want to make? Not financial

00:29:39.960 --> 00:29:43.520
<v Charlie Marsh>contracts, but like social contracts, basically, that we want to make sure that we're upholding.

00:29:44.600 --> 00:29:47.240
<v Charlie Marsh>So, you know, we thought a lot about it as a team.

00:29:47.960 --> 00:29:49.780
<v Charlie Marsh>Like it's hopefully it's obvious,

00:29:49.880 --> 00:29:51.720
<v Charlie Marsh>but this was not a decision that was that,

00:29:52.460 --> 00:29:53.460
<v Charlie Marsh>you know, that I made lightly.

00:29:53.600 --> 00:29:55.020
<v Charlie Marsh>I thought very, very hard about

00:29:55.560 --> 00:29:56.420
<v Charlie Marsh>what are all the trade-offs here

00:29:56.540 --> 00:29:57.580
<v Charlie Marsh>and how does everyone get affected?

00:29:57.940 --> 00:30:00.940
<v Charlie Marsh>And, you know, ultimately I believe

00:30:01.200 --> 00:30:03.020
<v Charlie Marsh>and I really hope that your time has passed.

00:30:03.200 --> 00:30:04.500
<v Charlie Marsh>Like even the people who were skeptical

00:30:04.940 --> 00:30:05.960
<v Charlie Marsh>when we announced the deal will,

00:30:06.860 --> 00:30:08.440
<v Charlie Marsh>you know, we'll agree that like we've,

00:30:08.780 --> 00:30:09.920
<v Charlie Marsh>we've done right by our users.

00:30:10.180 --> 00:30:11.500
<v Michael Kennedy>So that's my goal.

00:30:11.660 --> 00:30:13.280
<v Michael Kennedy>And honestly, motivation to me.

00:30:13.640 --> 00:30:18.320
<v Michael Kennedy>Yeah. I think that's certainly a genuine, genuine idea and, and, you know,

00:30:18.480 --> 00:30:21.620
<v Michael Kennedy>gold, gold to drive towards that. That's awesome. And how'd your, how about the family?

00:30:22.140 --> 00:30:22.780
<v Charlie Marsh>Oh, my own family.

00:30:23.300 --> 00:30:26.000
<v Michael Kennedy>Yeah. Yeah. Like how, like when you, when you told him, what was that like?

00:30:26.340 --> 00:30:33.840
<v Charlie Marsh>Yeah, it was very, it was, it was very cool. I actually, I signed the letter of intent,

00:30:34.160 --> 00:30:38.640
<v Charlie Marsh>which is sort of like, it's a non-binding document, but it's kind of like the first thing,

00:30:38.750 --> 00:30:42.519
<v Charlie Marsh>or sorry, it's fine. It's binding in certain ways, but like the deal is not really like

00:30:42.540 --> 00:30:48.640
<v Charlie Marsh>confirmed in any sense but i signed that at my niece's like uh birthday party and i kind of went

00:30:48.640 --> 00:30:53.280
<v Charlie Marsh>up to my mom and i was like yeah i just uh just signed a you know hello i with open ai and so it

00:30:53.280 --> 00:30:58.680
<v Charlie Marsh>was cool to see people's reactions yeah i'm sure it was wild that's awesome yeah it's very it's

00:30:58.730 --> 00:31:08.000
<v Charlie Marsh>very validating um yeah it's nice it's nice to you my uh my dad my dad is my dad's great um and we

00:31:07.940 --> 00:31:13.700
<v Charlie Marsh>have a great relationship um but he was a little skeptical when i quit my job to start a company

00:31:14.220 --> 00:31:19.680
<v Charlie Marsh>and um and actually at the time like i we had a child on the way and when i when i left my job we

00:31:19.780 --> 00:31:23.040
<v Charlie Marsh>i didn't know what the company would be and so it was basically like i left my job to start a

00:31:23.170 --> 00:31:28.040
<v Charlie Marsh>company i don't know what it's going to be and i have a kid on um and so uh you know it's it's nice

00:31:28.180 --> 00:31:33.819
<v Charlie Marsh>to um i'm glad that we had a good outcome yes i know exactly what you're talking about i remember

00:31:33.820 --> 00:31:39.420
<v Michael Kennedy>when i quit my job 11 years ago to start talk python i had two daughters who were just about

00:31:39.740 --> 00:31:43.940
<v Michael Kennedy>starting to enter college we'd have to pay for and we had a mortgage and i just like spent some time

00:31:44.040 --> 00:31:48.060
<v Michael Kennedy>looking in the mirror like you better be sure about this could be this is high stakes you know

00:31:48.160 --> 00:31:52.860
<v Michael Kennedy>there's a lot of people who depend upon getting this right but yeah yeah exactly no and i think

00:31:52.960 --> 00:31:58.320
<v Charlie Marsh>being a founder it's like um i mean i never like i i think there are some people who like really want

00:31:58.320 --> 00:32:03.800
<v Charlie Marsh>to be founders and like for me that was not really like the goal like i don't need to be like

00:32:03.820 --> 00:32:10.740
<v Charlie Marsh>under CEO or any of that. Like I sort of stumbled into like creating what is, what is in

00:32:10.770 --> 00:32:15.480
<v Charlie Marsh>some ways like the perfect job of getting to work on these things that we love. And, like, I just

00:32:15.600 --> 00:32:20.320
<v Charlie Marsh>love building these things. Like I just think it's like the coolest thing ever. and I think

00:32:20.380 --> 00:32:25.680
<v Charlie Marsh>it's so fun. And I sort of like stumbled into that, but then you find yourself, you know, you do find

00:32:25.800 --> 00:32:29.480
<v Charlie Marsh>yourself bearing a lot of responsibility. And I think I felt that a lot, right. It's like, 

00:32:29.820 --> 00:32:33.780
<v Charlie Marsh>especially I was reflecting on this recently. Cause it's like, actually when I started the

00:32:33.800 --> 00:32:38.560
<v Charlie Marsh>company, it didn't feel that high stakes. But as the company went along, I felt more and more high

00:32:38.780 --> 00:32:42.680
<v Charlie Marsh>stakes. Because when I started the company, it wasn't really worth anything. And like, it was

00:32:42.760 --> 00:32:47.640
<v Charlie Marsh>just kind of me. And then over time, the company starts to actually kind of be working. And then

00:32:47.700 --> 00:32:51.760
<v Charlie Marsh>a bunch of people, a bunch of employees who you convinced to come join you on this journey,

00:32:52.200 --> 00:32:56.620
<v Charlie Marsh>and they have families. And you know, so it's, yeah, it's just interesting, because like, I,

00:32:57.040 --> 00:33:01.660
<v Charlie Marsh>yeah, I was like, the beginning wasn't that I, it wasn't that hard of a decision. But over time,

00:33:01.800 --> 00:33:04.420
<v Charlie Marsh>I think it does weigh on you a lot.

00:33:04.720 --> 00:33:10.480
<v Charlie Marsh>And so it's nice to be able to deliver a good outcome to those.

00:33:10.560 --> 00:33:12.540
<v Michael Kennedy>Yeah, 100% and 100%.

00:33:13.720 --> 00:33:18.400
<v Michael Kennedy>This portion of Talk Python To Me is brought to you by the courses and us over at Talk Python

00:33:18.620 --> 00:33:18.720
<v Michael Kennedy>Training.

00:33:19.680 --> 00:33:24.520
<v Michael Kennedy>After a conversation like this one with Charlie, it's hard not to feel the pull to go build

00:33:24.700 --> 00:33:25.340
<v Michael Kennedy>something with AI.

00:33:25.620 --> 00:33:28.660
<v Michael Kennedy>And that's exactly what our two newest courses are all about.

00:33:29.280 --> 00:33:31.720
<v Michael Kennedy>The first is agentic AI programming for Python.

00:33:32.600 --> 00:33:35.820
<v Michael Kennedy>You'll learn to work with AI like a sharp junior developer on your team,

00:33:36.200 --> 00:33:40.360
<v Michael Kennedy>one that reads the whole code base, runs your tests, and cleans up on its own with Ruff,

00:33:40.760 --> 00:33:42.100
<v Michael Kennedy>all while you stay in the driver's seat.

00:33:42.440 --> 00:33:47.040
<v Michael Kennedy>It's about the guardrails and workflows that turn AI from a frustrating slop machine

00:33:47.600 --> 00:33:48.820
<v Michael Kennedy>to a real force multiplier.

00:33:49.280 --> 00:33:51.880
<v Michael Kennedy>And shipping faster means you have to ship safer.

00:33:52.160 --> 00:33:56.500
<v Michael Kennedy>So in Python Web Security OWASP Top 10 with agentic AI,

00:33:57.040 --> 00:34:01.440
<v Michael Kennedy>you'll build your own custom security agent that audits the entire code base in minutes

00:34:01.720 --> 00:34:03.300
<v Michael Kennedy>for about the price of a fancy coffee.

00:34:03.570 --> 00:34:05.540
<v Michael Kennedy>We'll turn it loose on real open source apps

00:34:05.900 --> 00:34:08.860
<v Michael Kennedy>and find genuine vulnerabilities in every single one.

00:34:09.700 --> 00:34:12.320
<v Michael Kennedy>Both courses are waiting for you over at talkpython.fm

00:34:12.530 --> 00:34:16.159
<v Michael Kennedy>slash courses with direct links right there in your show notes.

00:34:16.480 --> 00:34:20.280
<v Michael Kennedy>Thank you for supporting the show by taking one of our courses at Talk Python.

00:34:21.540 --> 00:34:25.200
<v Michael Kennedy>All right, let's talk about basically the tooling.

00:34:25.320 --> 00:34:29.600
<v Michael Kennedy>So uv rough ty, what changes, what stays the same?

00:34:29.940 --> 00:34:36.820
<v Michael Kennedy>For example, I just noticed if I scroll down somewhere, just yesterday you had a new release

00:34:37.060 --> 00:34:37.320
<v Michael Kennedy>of uv.

00:34:37.639 --> 00:34:40.960
<v Michael Kennedy>So, you know, there's still, there's a commit an hour ago, right?

00:34:41.000 --> 00:34:42.220
<v Michael Kennedy>There's still lots of stuff going on here.

00:34:42.300 --> 00:34:42.500
<v Michael Kennedy>Yeah.

00:34:42.700 --> 00:34:42.860
<v Michael Kennedy>Yeah.

00:34:43.040 --> 00:34:43.520
<v Michael Kennedy>Just like, yeah.

00:34:44.180 --> 00:34:44.919
<v Charlie Marsh>No, no, no.

00:34:45.120 --> 00:34:46.419
<v Charlie Marsh>I mean, like, I don't know.

00:34:46.580 --> 00:34:48.960
<v Charlie Marsh>I think if you, I was actually looking at the data recently.

00:34:49.120 --> 00:34:54.600
<v Charlie Marsh>I think our rate of releases has basically stayed the same across this entire process.

00:34:54.800 --> 00:34:58.740
<v Charlie Marsh>like from before the acquisition to, you know, the sort of intermediary window to after.

00:35:00.140 --> 00:35:08.140
<v Charlie Marsh>I like a lot, like for uv, like a lot stays the same. And, you know, there are, I would actually

00:35:08.340 --> 00:35:14.220
<v Charlie Marsh>say that the goal right now is actually to try and ship a lot of the, what we would consider like

00:35:14.440 --> 00:35:18.720
<v Charlie Marsh>most highly requested features and things we've wanted to do for a long time, but haven't been

00:35:18.780 --> 00:35:23.419
<v Charlie Marsh>able to fit into the roadmap. So a lot of stuff coming around, a lot of stuff that we're doing

00:35:23.440 --> 00:35:30.020
<v Charlie Marsh>there now things like locked tool installs like people really want to be able to do uv tool install

00:35:30.480 --> 00:35:35.100
<v Charlie Marsh>and point it to a git repo and reuse their lock file so that you get the exact same dependencies

00:35:35.500 --> 00:35:41.960
<v Charlie Marsh>that were locked and published like things like that so you know we're very focused on basically

00:35:42.160 --> 00:35:46.260
<v Charlie Marsh>trying to like ship all the things that people really want right now because it's a good time to

00:35:46.260 --> 00:35:53.400
<v Charlie Marsh>do it so yeah for uv like a lot stays the same for rough again a lot stays the same for t

00:35:53.420 --> 00:35:57.660
<v Charlie Marsh>TY, well, sorry, I mean, sort of boring, but like a lot stays the same.

00:35:57.810 --> 00:36:01.580
<v Charlie Marsh>I mean, we're still like working towards a stable release later this year.

00:36:02.720 --> 00:36:10.200
<v Charlie Marsh>But one of the things that's been very cool is we can use OpenAI as kind of like a testing

00:36:10.880 --> 00:36:15.140
<v Charlie Marsh>ground to get ty ready and like make sure it's good.

00:36:15.420 --> 00:36:20.700
<v Michael Kennedy>That's super interesting because, you know, the other type checker that I think is sort

00:36:20.700 --> 00:36:23.040
<v Michael Kennedy>of on par with your all's work is Pyrefly.

00:36:23.300 --> 00:36:28.340
<v Michael Kennedy>from meta and i think those two just stand far above everything else that's out you know my pie

00:36:28.520 --> 00:36:32.820
<v Michael Kennedy>and those things are great but they're just from a different era right and like ty is focused on

00:36:33.170 --> 00:36:40.480
<v Michael Kennedy>i need to have autocomplete now i need to have now over like a huge project right and so i know your

00:36:40.620 --> 00:36:45.620
<v Michael Kennedy>projects are big but open a is projects open ai's projects are probably larger right and more yeah

00:36:45.790 --> 00:36:50.380
<v Charlie Marsh>i mean we don't really have like we had like for the beta when we did the ty beta the milestone

00:36:50.400 --> 00:36:55.460
<v Charlie Marsh>there was like, we're using it internally for all of our own stuff. Like, cause if, if we weren't

00:36:55.460 --> 00:36:59.660
<v Charlie Marsh>using internally that it's not ready for anyone. And so that was the bar for the beta, but that was

00:36:59.740 --> 00:37:05.180
<v Charlie Marsh>like, that was mostly pyx, which is, you know, it's a moderately sized Python code base. Yeah,

00:37:05.340 --> 00:37:08.520
<v Charlie Marsh>here it's obviously super different and there's lots of different, tons of different kinds of

00:37:08.660 --> 00:37:14.100
<v Charlie Marsh>code because you have, you know, the company is there's like research and applied and the way that

00:37:14.100 --> 00:37:18.700
<v Charlie Marsh>you work in those worlds is very different. So there actually was already some ty here.

00:37:19.880 --> 00:37:30.180
<v Charlie Marsh>But we're kind of, you know, basically we're setting a bunch of goals around how can we get ty ready to be used here as a default and enroll it out to more of the code base over time.

00:37:30.560 --> 00:37:32.740
<v Charlie Marsh>And that will come before the stable release.

00:37:33.000 --> 00:37:39.300
<v Charlie Marsh>But it's a helpful way for us to understand, like, basically to prioritize issues around, like, what's real and what can be postponed.

00:37:39.600 --> 00:37:44.420
<v Charlie Marsh>Because if we can get it running here, then, like, I won't say then, like, you can get it running anywhere.

00:37:44.520 --> 00:37:48.760
<v Charlie Marsh>that's like a bit much, but it's like, if you can get it running here at scale, you know,

00:37:48.840 --> 00:37:52.880
<v Charlie Marsh>and providing like sufficient coverage and like great performance, then like there's a good chance

00:37:52.900 --> 00:37:58.880
<v Charlie Marsh>that like to. So we're kind of like informing the roadmap a little bit based on like internal needs

00:37:59.000 --> 00:38:03.240
<v Charlie Marsh>and spending time on like trying to roll it out. But, you know, ideally for us, and this is again,

00:38:03.360 --> 00:38:08.080
<v Charlie Marsh>part of like how we view like our mission here. It's like, ideally for us, when we find ways to

00:38:08.180 --> 00:38:13.060
<v Charlie Marsh>like accelerate the org with our tools, we also want to like, like cycle those things back into

00:38:13.080 --> 00:38:17.440
<v Charlie Marsh>improvements that we can then ship out to everyone so like sharpening the tools over time by like

00:38:17.600 --> 00:38:23.220
<v Charlie Marsh>making sure that here um so so yeah i mean the open source like the yeah like the sorry not to

00:38:23.220 --> 00:38:27.400
<v Charlie Marsh>talk like a manager but like the resourcing and like the you know number of people who are working

00:38:27.420 --> 00:38:32.580
<v Charlie Marsh>on x y and z and like all that like it's pretty similar um and you know the main the main things

00:38:32.580 --> 00:38:38.580
<v Charlie Marsh>that have changed are in terms of how the team is structured is like uh we were working on pyx um

00:38:38.600 --> 00:38:46.560
<v Charlie Marsh>We are, we're basically, we're going to wind down like the hosted service there. But one piece I'm

00:38:46.660 --> 00:38:51.700
<v Charlie Marsh>really excited about, which is again, something that was we wanted to do, but was kind of hard to do

00:38:52.120 --> 00:38:58.480
<v Charlie Marsh>hard to justify doing before, we're going to take everything we did around the GPU indexes and the

00:38:58.620 --> 00:39:01.960
<v Charlie Marsh>wheels that we built. And we're actually just going to open source that and make all the artifacts

00:39:02.320 --> 00:39:08.020
<v Charlie Marsh>freely available. We can and like, it's makes a lot more so like, we think that's a great thing to be

00:39:08.040 --> 00:39:11.780
<v Charlie Marsh>out and released, but before we had to think about how do we build a business around it.

00:39:12.599 --> 00:39:16.180
<v Charlie Marsh>So, you know, in terms of resourcing, like we had people on the team that were working

00:39:16.240 --> 00:39:19.500
<v Charlie Marsh>on pyx, we're kind of taking them off and like, you know, they're working on other things

00:39:19.670 --> 00:39:20.920
<v Charlie Marsh>within the Astral Suite.

00:39:21.590 --> 00:39:26.320
<v Charlie Marsh>And then we're spinning up a couple new efforts around, you know, more experimental things

00:39:26.480 --> 00:39:28.560
<v Charlie Marsh>that probably aren't ready to announce yet, but we'll see.

00:39:28.650 --> 00:39:31.440
<v Charlie Marsh>But if they work, you know, then you'll hear about them more in the future.

00:39:31.760 --> 00:39:35.860
<v Charlie Marsh>So, you know, still like a very significant focus on continuing to build our tools.

00:39:36.860 --> 00:39:44.700
<v Charlie Marsh>But then some percent of the company kind of working on like new, you know, net new efforts around where we think software is going.

00:39:44.980 --> 00:39:45.500
<v Michael Kennedy>Okay, interesting.

00:39:46.040 --> 00:39:54.220
<v Michael Kennedy>One thing that we haven't talked about yet, maybe people don't put it front and center, but I think it's actually the secret sauce of uv is Python build standalone.

00:39:54.640 --> 00:39:54.800
<v Michael Kennedy>Yeah.

00:39:54.900 --> 00:40:00.980
<v Michael Kennedy>The fact that uv lives outside of Python, not inside of Python is a very meaningful difference.

00:40:01.280 --> 00:40:02.200
<v Michael Kennedy>What's the story with that?

00:40:03.540 --> 00:40:29.220
<v Charlie Marsh>Yeah, I mean, not to be too boring, but like it's I don't know, it's basically like Sam continues and change. Like we have, there's one person on our team who was working on Python build standalone full time for the acquisition, and he's continuing to work on Python build standalone, you know, full time now. I think there it's like, you know, one thing that we do want to do to the degree that we can and is try to upstream things to see Python.

00:40:30.260 --> 00:40:37.900
<v Charlie Marsh>Because if you think about Python build standalone, it's kind of, I mean, to some degree, it's basically like, I wouldn't want to advertise it this way because it's scared.

00:40:37.970 --> 00:40:39.100
<v Charlie Marsh>But I guess I'm saying it on a podcast.

00:40:39.390 --> 00:40:40.980
<v Charlie Marsh>Like in some way, it's like a fork of CPython.

00:40:41.150 --> 00:40:46.020
<v Charlie Marsh>I mean, it's like CPython with a bunch of patches applied to the build system.

00:40:46.880 --> 00:40:48.680
<v Michael Kennedy>Yeah, it's a fork, but in a different way.

00:40:49.279 --> 00:40:54.140
<v Michael Kennedy>Because a lot of times it's like, oh, we want to build it on the JVM or we want to do this XYZ.

00:40:54.250 --> 00:40:57.980
<v Michael Kennedy>And this is just like, we just wanted to run from a different location than the install.

00:40:58.060 --> 00:41:00.860
<v Charlie Marsh>I'm not trying to like reach in and change a bunch of the implementation or anything like that.

00:41:01.020 --> 00:41:05.120
<v Charlie Marsh>It's more like we try to, we basically try to apply minimum changes to make it like relocatable.

00:41:05.960 --> 00:41:08.960
<v Charlie Marsh>You know, the idea being we can pre-build Python for you.

00:41:09.120 --> 00:41:11.520
<v Charlie Marsh>And then on your machine, you just download, unzip it and it runs.

00:41:11.660 --> 00:41:12.400
<v Charlie Marsh>You don't have to build yourself.

00:41:12.620 --> 00:41:13.980
<v Charlie Marsh>That's like the core goal of the project.

00:41:14.880 --> 00:41:17.200
<v Charlie Marsh>But yeah, we do want to try and like upstream what we can there.

00:41:18.180 --> 00:41:23.360
<v Michael Kennedy>And, you know, it sounds to me like the CPython, the core devs are kind of open to that, right?

00:41:23.580 --> 00:41:25.760
<v Michael Kennedy>Like, yeah, they didn't intend to build it.

00:41:25.760 --> 00:41:26.340
<v Michael Kennedy>So it's hard to move.

00:41:26.440 --> 00:41:29.440
<v Michael Kennedy>It's just like, that's how it sort of became, you know, evolved, right?

00:41:29.570 --> 00:41:32.960
<v Michael Kennedy>So if you can come back and say, well, look, if you'd make these minor changes, actually

00:41:33.500 --> 00:41:34.200
<v Michael Kennedy>you're way more flexible.

00:41:34.350 --> 00:41:35.520
<v Michael Kennedy>I don't see why they'd be against it.

00:41:35.660 --> 00:41:38.080
<v Charlie Marsh>It kind of benefits everyone, I would hope.

00:41:38.660 --> 00:41:42.300
<v Charlie Marsh>Like we actually really want things to get upstreamed because it makes it easier for us

00:41:42.300 --> 00:41:46.340
<v Charlie Marsh>to maintain because we no longer have patches on top of CPython.

00:41:46.490 --> 00:41:47.340
<v Charlie Marsh>We just have CPython.

00:41:47.660 --> 00:41:50.060
<v Charlie Marsh>So like, you know, the fewer deviations we have, the better.

00:41:50.380 --> 00:41:56.400
<v Charlie Marsh>So yeah, it's, I mean, it's just sort of like normal work that requires lots of coordination

00:41:56.420 --> 00:42:00.900
<v Charlie Marsh>of like what's changing and why in terms of getting things upstreamed and like finding the time for it

00:42:01.040 --> 00:42:05.640
<v Charlie Marsh>not just for us but i mean to review and see python so um we'll continue pushing on that and then i

00:42:05.640 --> 00:42:09.560
<v Charlie Marsh>mean python build standalone in general there's kind of like two components to it like one is

00:42:09.700 --> 00:42:13.540
<v Charlie Marsh>there's there's sort of like evergreen work to like keep up with c python because c python

00:42:13.760 --> 00:42:20.299
<v Charlie Marsh>development is very active um and uh like you know they have a very they have a lively release

00:42:20.300 --> 00:42:28.300
<v Charlie Marsh>calendar, like both for the newer like betas and also for like fixes on old minor versions or

00:42:28.400 --> 00:42:32.580
<v Charlie Marsh>previous minor versions. So part of the work is like CPython, make sure that we're like,

00:42:32.880 --> 00:42:36.180
<v Charlie Marsh>you know, our goal is typically to try and get releases out the same day that they go out and

00:42:36.260 --> 00:42:41.220
<v Charlie Marsh>CPython. So we do that. And then kind of like continuing to make the project better in like a

00:42:41.240 --> 00:42:45.580
<v Charlie Marsh>bunch of different ways. And, you know, like I think the two that we've been really focused on

00:42:45.600 --> 00:42:47.120
<v Charlie Marsh>over the past year would be one,

00:42:47.460 --> 00:42:48.620
<v Charlie Marsh>getting rid of quirks,

00:42:49.480 --> 00:42:51.000
<v Charlie Marsh>like things that are confusing and different.

00:42:51.370 --> 00:42:53.600
<v Charlie Marsh>And I think we actually did a very good job there.

00:42:53.730 --> 00:42:54.860
<v Charlie Marsh>We get very few reported.

00:42:55.180 --> 00:42:56.920
<v Charlie Marsh>We solved a lot of the key things

00:42:56.970 --> 00:42:57.660
<v Charlie Marsh>that were like weird.

00:42:58.440 --> 00:42:59.380
<v Charlie Marsh>And then two, performance.

00:42:59.590 --> 00:43:02.060
<v Charlie Marsh>We want it to be the fastest Python can get, basically.

00:43:03.239 --> 00:43:05.380
<v Charlie Marsh>And that's not by building a JIT

00:43:05.410 --> 00:43:07.080
<v Charlie Marsh>or doing anything super different.

00:43:07.620 --> 00:43:08.700
<v Charlie Marsh>It's just building it better, right?

00:43:09.020 --> 00:43:09.920
<v Charlie Marsh>Building it in a different way

00:43:10.280 --> 00:43:12.960
<v Charlie Marsh>and trying to be really rigorous about benchmarking

00:43:13.080 --> 00:43:14.840
<v Charlie Marsh>and various levers that we have on Python.

00:43:14.920 --> 00:43:17.820
<v Michael Kennedy>Nice, like profile guide compiler optimizations

00:43:18.000 --> 00:43:18.500
<v Michael Kennedy>and stuff like that.

00:43:18.500 --> 00:43:19.960
<v Charlie Marsh>Yeah, like PGO and stuff like that.

00:43:20.220 --> 00:43:22.320
<v Charlie Marsh>I mean, because who wants to download a slower Python, right?

00:43:22.460 --> 00:43:24.680
<v Charlie Marsh>Like it's always a bummer if someone files an issue

00:43:24.820 --> 00:43:27.320
<v Charlie Marsh>and they're like, I got my Python from like Debian

00:43:27.460 --> 00:43:28.280
<v Charlie Marsh>and it was like faster.

00:43:28.640 --> 00:43:31.480
<v Charlie Marsh>And so we like, we want to have like the fastest Python

00:43:31.700 --> 00:43:31.880
<v Charlie Marsh>implementation.

00:43:32.400 --> 00:43:33.820
<v Michael Kennedy>You're like, yeah, but not next time.

00:43:34.320 --> 00:43:35.920
<v Michael Kennedy>Next one that comes out is going to be faster.

00:43:36.240 --> 00:43:39.420
<v Charlie Marsh>No quirks, fast, you know, small, ideally,

00:43:39.840 --> 00:43:40.240
<v Charlie Marsh>all those things.

00:43:40.360 --> 00:43:41.820
<v Charlie Marsh>So just kind of continuing to push the project.

00:43:42.020 --> 00:43:42.160
<v Michael Kennedy>Cool.

00:43:42.260 --> 00:43:43.680
<v Michael Kennedy>And so people out there listening who don't know

00:43:43.700 --> 00:43:45.100
<v Michael Kennedy>what Python build standalone it is.

00:43:45.580 --> 00:43:47.380
<v Michael Kennedy>Basically, if you say uv install Python,

00:43:47.600 --> 00:43:50.460
<v Michael Kennedy>or you say uv, V, E, and V to create a virtual environment,

00:43:50.680 --> 00:43:52.000
<v Michael Kennedy>but you don't have that version of Python,

00:43:52.420 --> 00:43:54.580
<v Michael Kennedy>this is the Python that gets downloaded and installed

00:43:54.720 --> 00:43:56.380
<v Michael Kennedy>to be the runtime of it, yeah.

00:43:56.680 --> 00:43:56.760
<v Michael Kennedy>Yeah.

00:43:56.980 --> 00:43:58.240
<v Michael Kennedy>All right, let's look at one thing real quick

00:43:58.300 --> 00:43:59.160
<v Michael Kennedy>before we move off.

00:43:59.240 --> 00:44:02.900
<v Michael Kennedy>I pulled up this thing called the Daily GitHub Star Explorer,

00:44:03.300 --> 00:44:04.820
<v Michael Kennedy>Daily Stars Explorer, have you seen this?

00:44:05.120 --> 00:44:05.800
<v Charlie Marsh>Wow, no.

00:44:06.500 --> 00:44:08.220
<v Michael Kennedy>Okay, sorry, no, no, no, it's good.

00:44:08.260 --> 00:44:11.160
<v Michael Kennedy>I pulled up uv here, and this is the lifetime of uv.

00:44:11.360 --> 00:44:13.440
<v Michael Kennedy>And you could look that it's pretty consistent

00:44:13.980 --> 00:44:16.760
<v Michael Kennedy>from before and after the acquisition in terms of start.

00:44:16.900 --> 00:44:17.400
<v Michael Kennedy>But this is stars.

00:44:17.780 --> 00:44:18.320
<v Michael Kennedy>That's what I matter.

00:44:18.400 --> 00:44:19.160
<v Michael Kennedy>So you go over here and say,

00:44:19.190 --> 00:44:20.280
<v Michael Kennedy>they'll show me the commits.

00:44:21.140 --> 00:44:25.540
<v Michael Kennedy>And again, the commits are still pretty much the same, right?

00:44:25.680 --> 00:44:27.320
<v Michael Kennedy>Like early dev, there's a ton of commits,

00:44:27.460 --> 00:44:29.300
<v Michael Kennedy>but like there's still plenty of commits over time.

00:44:29.620 --> 00:44:32.660
<v Michael Kennedy>Here's the integral, the commits over time.

00:44:33.119 --> 00:44:34.260
<v Michael Kennedy>It's pretty much linear.

00:44:34.680 --> 00:44:35.360
<v Charlie Marsh>Yeah, cool.

00:44:37.079 --> 00:44:37.440
<v Michael Kennedy>Surprise.

00:44:38.030 --> 00:44:40.400
<v Michael Kennedy>I mean, to be honest, there was probably a period in there

00:44:40.420 --> 00:44:42.680
<v Charlie Marsh>where like the entire company was extremely distracted.

00:44:43.560 --> 00:44:43.840
<v Michael Kennedy>Oh yeah.

00:44:44.600 --> 00:44:46.300
<v Michael Kennedy>I think I can actually, I think I can see it.

00:44:46.500 --> 00:44:47.260
<v Michael Kennedy>I think it's right here.

00:44:47.660 --> 00:44:47.820
<v Charlie Marsh>Yeah.

00:44:48.100 --> 00:44:48.220
<v Michael Kennedy>Right.

00:44:49.090 --> 00:44:49.420
<v Michael Kennedy>Look at that.

00:44:49.570 --> 00:44:51.980
<v Michael Kennedy>February 13th and 19th, 2026.

00:44:52.300 --> 00:44:52.960
<v Michael Kennedy>Is that around the time?

00:44:53.240 --> 00:44:54.480
<v Charlie Marsh>Yeah, it sounds, I probably like.

00:44:54.540 --> 00:44:56.760
<v Michael Kennedy>I mean, if you announced it in March, like probably you.

00:44:57.000 --> 00:44:57.480
<v Charlie Marsh>There's a lot.

00:44:57.600 --> 00:44:57.660
<v Charlie Marsh>Yeah.

00:44:57.880 --> 00:44:59.700
<v Charlie Marsh>There's like, there's certainly plenty of disruption

00:45:00.480 --> 00:45:02.160
<v Charlie Marsh>and travel and all that kind of stuff.

00:45:02.400 --> 00:45:02.580
<v Charlie Marsh>Sure.

00:45:02.660 --> 00:45:02.840
<v Charlie Marsh>Of course.

00:45:03.660 --> 00:45:06.180
<v Charlie Marsh>I feel like this week actually is the week that we as a team

00:45:06.270 --> 00:45:07.400
<v Charlie Marsh>feel like we're getting back to normal

00:45:07.640 --> 00:45:08.640
<v Charlie Marsh>because we did all this planning

00:45:08.640 --> 00:45:11.620
<v Charlie Marsh>and now we have like clear goals for what we're trying to do.

00:45:12.120 --> 00:45:12.220
<v Charlie Marsh>Sweet.

00:45:12.880 --> 00:45:15.460
<v Charlie Marsh>Yeah, I love working on that.

00:45:15.640 --> 00:45:16.100
<v Charlie Marsh>That's awesome.

00:45:16.440 --> 00:45:18.220
<v Michael Kennedy>All right, well, let's talk about, speaking of working,

00:45:18.500 --> 00:45:22.160
<v Michael Kennedy>what it's like just to work at a frontier model place, right?

00:45:22.420 --> 00:45:24.700
<v Michael Kennedy>Obviously, everybody in software development,

00:45:25.000 --> 00:45:28.320
<v Michael Kennedy>unless they're intentionally putting their heads in the sands to avoid AI,

00:45:28.840 --> 00:45:31.600
<v Michael Kennedy>have just been rocked both in a positive and negative way.

00:45:31.740 --> 00:45:34.640
<v Michael Kennedy>There's just so much new and different and change from AI.

00:45:35.000 --> 00:45:39.940
<v Michael Kennedy>But that's not the same as being in AI, in the middle of AI as this is happening.

00:45:40.160 --> 00:45:44.660
<v Michael Kennedy>So what can you say about the change of going from the outside to the inside, I guess?

00:45:46.520 --> 00:45:47.700
<v Charlie Marsh>Yeah, it's interesting.

00:45:48.080 --> 00:45:53.420
<v Charlie Marsh>I mean, I'm worried that no one will trust my opinions on AI anymore because I work at OpenAI.

00:45:54.660 --> 00:45:55.880
<v Charlie Marsh>You're just a shield, Charlie.

00:45:57.420 --> 00:45:58.820
<v Michael Kennedy>You're just trying to get people to use codecs.

00:45:58.820 --> 00:46:00.400
<v Charlie Marsh>I mean, I think there's a lot of interesting things happening.

00:46:00.540 --> 00:46:09.020
<v Charlie Marsh>I think one internally here, Codex has really taken over, including for non-software engineers.

00:46:09.350 --> 00:46:14.540
<v Charlie Marsh>And by that, I really mean the Codex desktop app, because a very significant percentage

00:46:14.650 --> 00:46:17.340
<v Charlie Marsh>of users of that app are not software engineers.

00:46:17.660 --> 00:46:20.360
<v Charlie Marsh>They're other kinds of knowledge workers who are doing things.

00:46:21.120 --> 00:46:26.040
<v Charlie Marsh>And everyone at the company, I think someone on the Codex team tweeted, it must be the most

00:46:26.180 --> 00:46:27.200
<v Charlie Marsh>dog-fooded app of all time.

00:46:27.380 --> 00:46:30.200
<v Charlie Marsh>Everyone at the company is doing everything with Codex all the time.

00:46:30.320 --> 00:46:37.580
<v Charlie Marsh>And so there's a very powerful like feedback and constant testing loop like happening at the company across like the models and the apps and the hard.

00:46:38.500 --> 00:46:45.860
<v Charlie Marsh>I think you very quickly become this is the thing that like I know I'm going to say it like people are sort of like not going to believe me.

00:46:45.940 --> 00:46:53.400
<v Charlie Marsh>But like you do kind of quickly become a oh, wow, like the models are going to continue to get very good, very quickly person.

00:46:54.320 --> 00:47:02.600
<v Charlie Marsh>Like, because especially when you start talking to research and you see, you know, the thing like the sort of projections and a lot of this stuff is public or has been written about elsewhere.

00:47:02.750 --> 00:47:14.600
<v Charlie Marsh>But it's just like, you know, the things that are happening in terms of the build out of data centers and algorithmic efficiencies and, you know, all sorts of discoveries that are happening.

00:47:15.600 --> 00:47:21.280
<v Charlie Marsh>It's like the models, it does seem like the models are going to continue to get like significantly better in a period of time.

00:47:21.760 --> 00:47:28.620
<v Charlie Marsh>And so it is interesting to be in a position to kind of like think about what that means and what to do about it.

00:47:29.740 --> 00:47:36.940
<v Charlie Marsh>I think it's interesting to be inside and see a lot of people speculate and talk about the company,

00:47:37.960 --> 00:47:41.620
<v Charlie Marsh>often in ways that, at least from what I can see internally, are like completely wrong.

00:47:42.960 --> 00:47:46.800
<v Charlie Marsh>Sometimes they're right, but often they're confident but wrong.

00:47:47.560 --> 00:47:50.620
<v Michael Kennedy>You're like, I see what's coming for it. It means this. And you're like, no.

00:47:51.240 --> 00:47:58.800
<v Charlie Marsh>So, so it's just interesting to be working at a place, you know, it's just something to be that's just working at a place that's like this moment in time, sort of, you know, in the spotlight or a lot of people.

00:47:58.820 --> 00:48:02.840
<v Michael Kennedy>Yeah, 100%. It's definitely the swirling center of the zeitgeist.

00:48:03.200 --> 00:48:18.340
<v Charlie Marsh>It's funny because when I talked to one of my investors about when we were talking about the acquisition and they were like, well, you know, I think if you go to like OpenAI or, you know, one of the frontier labs, like, I don't think it will be like less crazy than a startup.

00:48:18.590 --> 00:48:19.760
<v Charlie Marsh>Like, I think it will like be.

00:48:19.980 --> 00:48:20.540
<v Charlie Marsh>Yeah, yeah, yeah.

00:48:20.680 --> 00:48:22.360
<v Charlie Marsh>And I was like, yeah, you're probably right.

00:48:24.280 --> 00:48:24.360
<v Michael Kennedy>Yeah.

00:48:24.540 --> 00:48:24.680
<v Michael Kennedy>All right.

00:48:24.730 --> 00:48:30.660
<v Michael Kennedy>Well, sort of related to that is what do you think about just agentic programming in general?

00:48:31.310 --> 00:48:31.460
<v Charlie Marsh>Yeah.

00:48:31.900 --> 00:48:33.840
<v Charlie Marsh>What a time to be writing software.

00:48:34.250 --> 00:48:36.140
<v Charlie Marsh>I mean, like things are changing.

00:48:36.720 --> 00:48:39.100
<v Charlie Marsh>I'll say a bunch of things and some of them won't be that insightful.

00:48:39.620 --> 00:48:40.840
<v Charlie Marsh>Things are changing incredibly quickly.

00:48:41.120 --> 00:48:46.420
<v Charlie Marsh>I mean, I wasn't really using agents at all until like December of this year.

00:48:46.640 --> 00:48:50.300
<v Charlie Marsh>Like I was using, you know, tab completion and stuff, but I wasn't really like running

00:48:50.660 --> 00:48:51.660
<v Charlie Marsh>agents to build software.

00:48:52.179 --> 00:48:56.020
<v Charlie Marsh>And I was one of, I think, you know, a wave of people that went home for the holidays and

00:48:56.120 --> 00:48:59.660
<v Charlie Marsh>had time and started like doing everything through agents.

00:49:00.240 --> 00:49:02.820
<v Charlie Marsh>And I kind of came back and was like, wow, this is really different.

00:49:03.160 --> 00:49:07.600
<v Charlie Marsh>And now, like I haven't really, again, this isn't like I haven't really like typed out

00:49:07.720 --> 00:49:11.300
<v Charlie Marsh>code in the editor, I think, since like for months.

00:49:11.660 --> 00:49:12.240
<v Michael Kennedy>It's insane.

00:49:12.310 --> 00:49:12.920
<v Michael Kennedy>I know exactly.

00:49:13.080 --> 00:49:13.460
<v Michael Kennedy>It's insane.

00:49:14.100 --> 00:49:18.360
<v Charlie Marsh>I mean, I still use my editor, but it's mostly to read code or maybe it's to edit rows, like

00:49:18.360 --> 00:49:19.880
<v Charlie Marsh>the change log or the docs or something.

00:49:20.140 --> 00:49:20.360
<v Charlie Marsh>Yeah.

00:49:20.640 --> 00:49:20.760
<v Michael Kennedy>Yeah.

00:49:20.840 --> 00:49:20.920
<v Michael Kennedy>Yeah.

00:49:21.660 --> 00:49:26.800
<v Michael Kennedy>I do all my AI coding inside an editor, but because I want to be able to interact with

00:49:26.880 --> 00:49:29.600
<v Michael Kennedy>what it's created, not necessarily because I'm typing it so much these days.

00:49:30.000 --> 00:49:32.720
<v Michael Kennedy>Like, oh, it was almost right, but I want to change this one thing and then tell it

00:49:32.800 --> 00:49:33.300
<v Michael Kennedy>like, let's go.

00:49:33.620 --> 00:49:37.820
<v Michael Kennedy>I want a tool that lets me navigate code well, not as much as I used to want one to write

00:49:38.020 --> 00:49:38.760
<v Michael Kennedy>code well previously.

00:49:39.060 --> 00:49:39.300
<v Charlie Marsh>Yeah.

00:49:39.700 --> 00:49:43.960
<v Charlie Marsh>And it's like, I think, I think it's very hard to know, like what, what the form factor

00:49:44.080 --> 00:49:44.800
<v Charlie Marsh>is even going to be.

00:49:44.800 --> 00:49:48.800
<v Charlie Marsh>And look, that's not that long ago, like that, that, that I was, you know, doing all my code

00:49:48.840 --> 00:49:49.240
<v Charlie Marsh>in an editor.

00:49:49.440 --> 00:49:52.880
<v Charlie Marsh>And now I'm like doing all my code, like in the, you know, like through codex and it's

00:49:52.960 --> 00:49:55.340
<v Charlie Marsh>like, like things are just changing incredibly quickly.

00:49:55.780 --> 00:49:55.980
<v Charlie Marsh>Yeah.

00:49:56.260 --> 00:50:00.200
<v Charlie Marsh>I even went through, I think my own phases of kind of like, I won't say full blown, like

00:50:00.260 --> 00:50:04.560
<v Charlie Marsh>AI psychosis, but like putting up PRs that were like definitely bad that I thought were

00:50:04.700 --> 00:50:08.560
<v Charlie Marsh>good, you know, like convincing myself that I was like doing good work that was done by

00:50:08.600 --> 00:50:08.920
<v Charlie Marsh>the agent.

00:50:09.060 --> 00:50:13.660
<v Charlie Marsh>And I think I've kind of like hopefully gotten over like the peak of that.

00:50:13.840 --> 00:50:17.360
<v Charlie Marsh>And I'm like learning to use these, these tools in a more effective way.

00:50:17.740 --> 00:50:21.000
<v Charlie Marsh>I mean, to me, that's, I think one had been one of the key insights is like, like these,

00:50:21.340 --> 00:50:23.840
<v Charlie Marsh>like using this, these tools well as a skill.

00:50:24.340 --> 00:50:25.760
<v Charlie Marsh>And it's like something that you have to learn.

00:50:26.360 --> 00:50:26.760
<v Charlie Marsh>100%.

00:50:27.140 --> 00:50:29.840
<v Michael Kennedy>It's an engineering skill, just like coding or testing.

00:50:30.240 --> 00:50:31.020
<v Charlie Marsh>I absolutely agree.

00:50:31.500 --> 00:50:36.060
<v Charlie Marsh>It's not like you're just going to drop into an editor, like the CLI and say, like, build

00:50:36.160 --> 00:50:37.660
<v Charlie Marsh>me the perfect piece of software, right?

00:50:37.760 --> 00:50:41.180
<v Charlie Marsh>Like that's not like, no, you can't say that.

00:50:41.580 --> 00:50:45.860
<v Michael Kennedy>What you got to say is build me the perfect editor or you go to jail and then it will.

00:50:46.060 --> 00:50:46.540
<v Charlie Marsh>No, I'm just kidding.

00:50:46.680 --> 00:50:46.780
<v Charlie Marsh>Sorry.

00:50:47.000 --> 00:50:47.180
<v Charlie Marsh>No, no.

00:50:47.380 --> 00:50:51.460
<v Charlie Marsh>But, but I, so I think for me, part of it has been like learning.

00:50:51.620 --> 00:50:52.120
<v Charlie Marsh>It's a skill.

00:50:52.200 --> 00:50:56.580
<v Charlie Marsh>I mean, I think I went through, I tweeted about this at some point, which is a sentence

00:50:56.720 --> 00:51:01.380
<v Charlie Marsh>I always hate saying, but like, I went through a phase where I was feeling

00:51:01.460 --> 00:51:06.380
<v Charlie Marsh>a lot, like I was having way less fun programming, but I was like getting more productive.

00:51:06.640 --> 00:51:10.900
<v Charlie Marsh>Like I was very worried that working with agents would be like a lot less fun, but a lot more

00:51:11.120 --> 00:51:14.320
<v Charlie Marsh>productive. And then I would be stuck in this position where I'd be like, well, what do I want

00:51:14.320 --> 00:51:20.700
<v Charlie Marsh>to do? Do I want to enjoy my work or do I want to ship? And I actually feel a lot better about

00:51:20.840 --> 00:51:24.560
<v Charlie Marsh>that now than I did a few years ago. And I think, I think it's a combination of things. I think one,

00:51:24.760 --> 00:51:29.240
<v Charlie Marsh>it's the models legitimately getting better. And so the amount of micromanagement getting,

00:51:29.720 --> 00:51:34.420
<v Charlie Marsh>getting lower. But two, it's like learning how to use them well and like building workflows.

00:51:34.680 --> 00:51:53.720
<v Charlie Marsh>And so, you know, for me, it's like, I still get the same satisfaction of like coming up with a great insight or like closing a user issue, right? Like merging a PR, shipping something, like shipping an improvement, even if I'm not typing things out, like you still have to, it sounds like a low bar, but like you still have to use your brain to like, think about what the problem is and what the solution should be.

00:51:53.980 --> 00:52:14.040
<v Michael Kennedy>Yeah. And your experience and your expertise, right? Like it still absolutely applies more indirectly. Like I also had the same micro experience, I guess, where I'm like, oh man, I don't want this AI thing to take over because I really love coding. It was a joyful, deep experience that I could just disappear into and come back and have created something great.

00:52:14.320 --> 00:52:24.540
<v Michael Kennedy>But what occurred to me over time is I got better with the agents and so on was what I actually like more than just writing code is building things, making things with software and with computers.

00:52:25.040 --> 00:52:32.600
<v Michael Kennedy>And boy, can you make stuff even more so now than you used to be able to a couple of years ago with things like Codex and others, just like you can really build stuff.

00:52:32.700 --> 00:52:37.200
<v Michael Kennedy>And if you work with them, you get what you want, build, not just some random thing, which is fun.

00:52:37.380 --> 00:52:37.660
<v Charlie Marsh>Yeah.

00:52:38.080 --> 00:52:43.540
<v Charlie Marsh>And even, I mean, first of all, I think it's actually super normal and pretty common feeling right now.

00:52:43.800 --> 00:53:01.720
<v Charlie Marsh>Like it's a weird, like existentially, it's a strange time to be a software engineer because like things are changing a lot and there are legitimately like elements of the craft that like I'm not going to say they're like going away, but it's like there are things that I used to do in terms of like type like how I wrote out code that I like don't really get to think about anymore.

00:53:01.820 --> 00:53:06.740
<v Charlie Marsh>and I don't want to say like typing out code like that sounds a little bit dismissive it's like

00:53:07.040 --> 00:53:11.320
<v Charlie Marsh>you know thinking hard about like the layout of like my data structure like I don't think quite

00:53:11.360 --> 00:53:16.140
<v Charlie Marsh>as hard about a lot of those things anymore and like I I do feel like I've lost something um at

00:53:16.280 --> 00:53:21.680
<v Charlie Marsh>you know at the same time uh even if you feel that way there's like a lot of uh I think there are a

00:53:21.680 --> 00:53:26.300
<v Charlie Marsh>lot of like redeeming nice things that are happening like I don't I haven't I don't deal

00:53:26.320 --> 00:53:32.960
<v Charlie Marsh>with or I haven't dealt with a rebase conflict in months, right? Or the thing that I really love

00:53:33.100 --> 00:53:39.920
<v Charlie Marsh>right now, especially is the cost of experimentation or just trying something. It's not zero, but it's

00:53:39.920 --> 00:53:46.240
<v Charlie Marsh>like very low. And there are so many things that I've always wanted to try. Like, I don't know,

00:53:46.380 --> 00:53:51.220
<v Charlie Marsh>like right now I'm working on a change in uv to content address our cache. Like we want to make

00:53:51.200 --> 00:53:56.560
<v Charlie Marsh>get more memory efficient. So if you download like lots of versions of a package and it has a lot of

00:53:56.700 --> 00:54:02.160
<v Charlie Marsh>overlapping files, we don't have to save a bunch of different copies of them. It's sort of, it's not

00:54:02.300 --> 00:54:06.540
<v Charlie Marsh>like critical what it is, but the point is like, it's pretty hard to like, pretty hard to implement.

00:54:07.060 --> 00:54:11.300
<v Charlie Marsh>But now if what I want is just to understand what the implications will be, like how will

00:54:11.420 --> 00:54:14.820
<v Charlie Marsh>affect performance, like what are some of the hard design, like I can just run that in the background.

00:54:15.100 --> 00:54:19.720
<v Charlie Marsh>Or like, if I want to try to find like interesting memory or performance optimizations, I can just

00:54:19.740 --> 00:54:25.560
<v Charlie Marsh>give codex a goal slash goal find an improvement that you know or find a change that improves like

00:54:25.720 --> 00:54:29.760
<v Charlie Marsh>reduces memory consumption by like at least one percent in this project and like it'll just like

00:54:29.780 --> 00:54:32.980
<v Charlie Marsh>go off and find something and then I can review what it does and think hard about what makes sense

00:54:33.080 --> 00:54:37.660
<v Charlie Marsh>and what doesn't so um I don't know I'm trying to for me I mentioned those because those are the

00:54:37.680 --> 00:54:41.580
<v Charlie Marsh>kinds of things that I think can bring a lot of joy back to building even if you feel like you

00:54:42.060 --> 00:54:49.700
<v Charlie Marsh>are losing something um and it's just a it's just like it's just a crazy time to be building like

00:54:49.800 --> 00:54:51.520
<v Charlie Marsh>It will continue so much.

00:54:51.820 --> 00:54:58.060
<v Charlie Marsh>But I do think, you know, to your point about, you know, like it is an extremely high leverage

00:54:58.240 --> 00:54:59.400
<v Charlie Marsh>time to like be a software engineer.

00:54:59.620 --> 00:55:03.440
<v Charlie Marsh>Like the value of software engineering skills are like extremely is it software engineering

00:55:03.700 --> 00:55:09.220
<v Charlie Marsh>skills right now, I think are extremely valuable because you it's like a multiplier on your

00:55:09.780 --> 00:55:10.660
<v Charlie Marsh>instincts and your abilities.

00:55:11.680 --> 00:55:15.660
<v Charlie Marsh>So like if you have a really good understanding of the problem space, you can like, I think,

00:55:15.740 --> 00:55:17.680
<v Charlie Marsh>get a lot of leverage out of building with agents.

00:55:18.360 --> 00:55:22.840
<v Charlie Marsh>So anyway, these are the things that I try to look at as I reconcile my own identity.

00:55:23.400 --> 00:55:27.940
<v Charlie Marsh>Not to get too philosophical, but my own identity as a software engineer with what does it mean

00:55:27.980 --> 00:55:28.680
<v Charlie Marsh>to be a software engineer?

00:55:28.880 --> 00:55:30.560
<v Charlie Marsh>How has it changed already?

00:55:30.740 --> 00:55:31.320
<v Charlie Marsh>How is it going to continue?

00:55:31.720 --> 00:55:32.920
<v Charlie Marsh>And also talk about it with people on the team.

00:55:33.080 --> 00:55:34.520
<v Charlie Marsh>Like everyone, I don't know.

00:55:34.680 --> 00:55:39.560
<v Charlie Marsh>I think a lot of people are thinking about this right now because there's just a lot of

00:55:39.680 --> 00:55:39.860
<v Michael Kennedy>change.

00:55:40.560 --> 00:55:44.600
<v Michael Kennedy>One more thought before we move on and kind of wrap things up is like, I know a lot of

00:55:44.720 --> 00:55:46.200
<v Michael Kennedy>people have a lot of opinions on these things.

00:55:46.360 --> 00:55:51.320
<v Michael Kennedy>as you were just saying, I feel like a lot of people out there have a, I think a challenge

00:55:51.380 --> 00:55:54.560
<v Michael Kennedy>of talking about this, let's put it this way. A challenge of talking about this is two people

00:55:55.020 --> 00:55:59.780
<v Michael Kennedy>can believe they're speaking about the same thing. Like I use Codex and I built this and this is,

00:56:00.120 --> 00:56:06.020
<v Michael Kennedy>it's so amazing. Someone else says, Hey, I used AI to build this thing and it was so dreadful and so

00:56:06.280 --> 00:56:11.460
<v Michael Kennedy>wrong. I can't believe it. And my theory of the world is there's the people who are willing to

00:56:11.480 --> 00:56:17.880
<v Michael Kennedy>like go all in and kind of learn the skill and like really try it and pay 20 or 100 or whatever

00:56:18.060 --> 00:56:23.360
<v Michael Kennedy>dollars and use the absolute peak model in the last year or the people who are skeptical say well

00:56:23.800 --> 00:56:27.120
<v Michael Kennedy>i don't really believe in this but people keep saying it's good so let me try it so i'll try a

00:56:27.380 --> 00:56:32.180
<v Michael Kennedy>free coding agent that's got a much lower model comes out with a bad experience and it's a self

00:56:32.540 --> 00:56:37.480
<v Michael Kennedy>reinforcing feeling like oh look this i knew it was crappy look it is crappy it's like no no no

00:56:37.460 --> 00:56:41.560
<v Michael Kennedy>know these people who talk about what looks like the same experience is not the same experience

00:56:42.060 --> 00:56:46.800
<v Charlie Marsh>what do you think about that no no i think i think there's something to this and like um i look we're

00:56:46.800 --> 00:56:51.180
<v Charlie Marsh>all human and we all have like biases and different like i'm also look i work at open ai like i'm sure

00:56:51.220 --> 00:56:55.180
<v Charlie Marsh>i'm biased towards thinking these things are great right like i'm sure but there are also a lot of

00:56:55.180 --> 00:56:59.260
<v Charlie Marsh>people who don't want it to be the case that these are great useful at all and you know it's very easy

00:56:59.260 --> 00:57:05.020
<v Charlie Marsh>to find ways to to to confirm that but i think i don't know people can people like everyone's free

00:57:04.980 --> 00:57:08.040
<v Charlie Marsh>to do what they want. I think you're doing yourself a bit of a disservice if you're like completely

00:57:08.200 --> 00:57:15.180
<v Charlie Marsh>dismissive because it's, you know, it takes, again, it takes time to learn. And, you know,

00:57:15.300 --> 00:57:20.220
<v Charlie Marsh>at least for us, like one perspective I had on this for the team when I was being sort of like

00:57:20.340 --> 00:57:24.780
<v Charlie Marsh>really annoying, like CEO and like kind of like pushing agents on people and being like, we need

00:57:24.780 --> 00:57:29.420
<v Charlie Marsh>to be like trying this stuff. That's like every CEO right now is like super annoying. But I think

00:57:29.420 --> 00:57:33.500
<v Charlie Marsh>a very genuine thing that I like believe and said to the team was like all of our users,

00:57:34.060 --> 00:57:39.420
<v Charlie Marsh>not all of our users, a lot of our users are building with agents. And so if, if all the good

00:57:39.480 --> 00:57:44.100
<v Charlie Marsh>work we've ever done is ultimately rooted in like understanding our users and like how they work,

00:57:44.500 --> 00:57:48.160
<v Charlie Marsh>then like, we need to be like trying this stuff, even just to understand like what it's like to

00:57:48.280 --> 00:57:53.420
<v Michael Kennedy>build something. Yeah. Because I will tell you what, I am super thankful for rough in particular

00:57:53.780 --> 00:57:59.940
<v Michael Kennedy>rough in working with agents because I have in my rules, like, look, whenever you're done,

00:58:00.220 --> 00:58:02.060
<v Michael Kennedy>You run ruff format, you run ruff check.

00:58:02.260 --> 00:58:03.880
<v Michael Kennedy>And it's just another layer,

00:58:04.160 --> 00:58:06.040
<v Michael Kennedy>especially for a non-compiled language like Python.

00:58:06.540 --> 00:58:08.420
<v Michael Kennedy>It makes the AI go, oh, I made a mistake.

00:58:08.640 --> 00:58:10.200
<v Michael Kennedy>It looks like that import's not really there.

00:58:10.500 --> 00:58:11.240
<v Michael Kennedy>You know, whatever, right?

00:58:11.320 --> 00:58:11.820
<v Michael Kennedy>It's really good.

00:58:12.120 --> 00:58:12.300
<v Charlie Marsh>Yeah.

00:58:12.660 --> 00:58:14.700
<v Charlie Marsh>And again, I think a lot of it's a skill.

00:58:15.060 --> 00:58:17.080
<v Charlie Marsh>I think weirdly, there's also like intuition

00:58:17.680 --> 00:58:20.260
<v Charlie Marsh>to a lot of this, like that I don't know if I can explain.

00:58:20.440 --> 00:58:22.100
<v Charlie Marsh>Like sometimes I'll see people complain.

00:58:22.600 --> 00:58:24.100
<v Charlie Marsh>I mean, I think your point is exactly right, by the way,

00:58:24.160 --> 00:58:26.220
<v Charlie Marsh>which is people will be like, I tried AI and did X

00:58:26.280 --> 00:58:27.480
<v Charlie Marsh>and it was great or it was terrible.

00:58:27.620 --> 00:58:30.320
<v Charlie Marsh>And it's like, they probably weren't doing quite the same thing.

00:58:30.830 --> 00:58:33.320
<v Charlie Marsh>But like, I'll see people say, how can these be useful?

00:58:33.390 --> 00:58:35.400
<v Charlie Marsh>I tried it once and like it hallucinated something.

00:58:35.959 --> 00:58:39.940
<v Charlie Marsh>And I don't know if I like, I don't think I've like dealt with like a real hallucination in

00:58:39.940 --> 00:58:40.580
<v Charlie Marsh>like a long time.

00:58:40.900 --> 00:58:44.420
<v Charlie Marsh>But like, if the model tells me something that it's like untrue, it's like, I can, I can,

00:58:44.800 --> 00:58:47.140
<v Charlie Marsh>if that does happen, I really think I can kind of tell.

00:58:47.880 --> 00:58:51.920
<v Charlie Marsh>And I don't know if I could explain to you why or how it's like, like, you just build

00:58:52.300 --> 00:58:52.940
<v Charlie Marsh>skills from this.

00:58:53.220 --> 00:58:54.560
<v Charlie Marsh>And I don't know.

00:58:54.760 --> 00:58:57.060
<v Charlie Marsh>I do think we're going to enter like a very strange time.

00:58:58.220 --> 00:59:00.200
<v Charlie Marsh>Like there's a bunch of, there's a bunch of things happening,

00:59:00.820 --> 00:59:03.580
<v Charlie Marsh>like sort of like escalating trends that I don't really know how to deal with.

00:59:03.760 --> 00:59:07.220
<v Charlie Marsh>Like, you know, I mean, one that gets talked a lot about a lot is like the,

00:59:07.420 --> 00:59:08.920
<v Charlie Marsh>the impact of agents on open source.

00:59:09.400 --> 00:59:10.700
<v Charlie Marsh>Like we feel this in our own projects.

00:59:11.210 --> 00:59:16.780
<v Charlie Marsh>We, the cost of putting up a plausible PR is like basically zero for like an

00:59:16.960 --> 00:59:17.640
<v Charlie Marsh>arbitrary contributor.

00:59:18.120 --> 00:59:19.820
<v Charlie Marsh>Like they can have the agent, you know,

00:59:19.860 --> 00:59:22.420
<v Charlie Marsh>put something together that looks like it plausibly solves the issue.

00:59:22.960 --> 00:59:27.740
<v Charlie Marsh>And so it takes them one minute and then it takes us like an hour to like read and understand

00:59:27.910 --> 00:59:28.460
<v Charlie Marsh>the code, right?

00:59:28.580 --> 00:59:31.840
<v Charlie Marsh>Like that hasn't really gotten that much easier, the part where you actually read and verify

00:59:32.000 --> 00:59:32.340
<v Charlie Marsh>and understand.

00:59:33.580 --> 00:59:34.220
<v Charlie Marsh>Same with issues.

00:59:34.390 --> 00:59:36.680
<v Charlie Marsh>We see people posting clearly just LLM outputs.

00:59:37.000 --> 00:59:41.260
<v Charlie Marsh>And then if you reply and ask a question, they just paste the question back into the agent

00:59:41.540 --> 00:59:42.700
<v Charlie Marsh>and like paste the response back.

00:59:42.870 --> 00:59:43.880
<v Charlie Marsh>And it's like, what are we doing here?

00:59:43.980 --> 00:59:45.720
<v Charlie Marsh>Like, why is this a useful interaction, right?

00:59:46.920 --> 00:59:50.540
<v Charlie Marsh>And then that's like one big piece I think that we're seeing.

00:59:50.660 --> 00:59:52.760
<v Charlie Marsh>The other is like people are just going to start shipping.

00:59:53.600 --> 00:59:57.940
<v Charlie Marsh>Like you could imagine a world where every day there's like 10 people publishing a new

00:59:58.200 --> 01:00:00.880
<v Charlie Marsh>Python package manager written that's like fully built by an agent.

01:00:01.240 --> 01:00:04.680
<v Charlie Marsh>And some of those might be really good and some of them might be really bad.

01:00:04.920 --> 01:00:06.940
<v Charlie Marsh>I have no, but I don't think I'll be able to tell.

01:00:07.320 --> 01:00:11.400
<v Charlie Marsh>And so like I don't, it's like hard, it's a little bit hard for me sometimes to imagine

01:00:11.580 --> 01:00:12.940
<v Charlie Marsh>like what's going to happen to software.

01:00:13.100 --> 01:00:16.800
<v Charlie Marsh>Like if the cost of building something like that does really, in terms of time, does really

01:00:16.940 --> 01:00:18.280
<v Charlie Marsh>go down like so dramatically.

01:00:18.540 --> 01:00:22.420
<v Charlie Marsh>I don't think that we have a really good understanding of like what would change about the world.

01:00:22.910 --> 01:00:23.040
<v Charlie Marsh>Yeah.

01:00:23.600 --> 01:00:26.840
<v Charlie Marsh>Anyway, I think this is just, there's a lot of changing right now.

01:00:26.970 --> 01:00:27.640
<v Charlie Marsh>Not all good.

01:00:28.660 --> 01:00:30.280
<v Charlie Marsh>I think a lot good, but not all good.

01:00:30.570 --> 01:00:33.640
<v Charlie Marsh>And there are things that we're absolutely going to need to figure out over the next few years.

01:00:34.400 --> 01:00:36.640
<v Charlie Marsh>But it'll be a time of, yeah, enormous change.

01:00:37.260 --> 01:00:37.480
<v Michael Kennedy>Yeah.

01:00:37.750 --> 01:00:41.540
<v Michael Kennedy>It is an absolutely wild and weird time, both positive and negative.

01:00:41.760 --> 01:00:48.060
<v Michael Kennedy>I do think that, you know, take that example, if there's 10 random variations of Rust-based

01:00:48.360 --> 01:00:55.260
<v Michael Kennedy>package managers for Python, there becomes even more value in reputation, community,

01:00:55.710 --> 01:00:56.360
<v Michael Kennedy>and so on.

01:00:56.660 --> 01:00:56.740
<v Michael Kennedy>Yeah.

01:00:56.860 --> 01:00:56.980
<v Michael Kennedy>Right?

01:00:57.220 --> 01:01:01.580
<v Michael Kennedy>So I'm thinking like uv, Astral, I'm thinking Django, right?

01:01:01.680 --> 01:01:04.860
<v Michael Kennedy>You're like, oh, there might be a hundred new web frameworks, but Django actually has

01:01:05.240 --> 01:01:06.020
<v Michael Kennedy>conferences and fellows.

01:01:06.210 --> 01:01:09.620
<v Michael Kennedy>And like, there's a, there's not just somebody that vibe coded it until they got bored with

01:01:09.760 --> 01:01:09.840
<v Michael Kennedy>it.

01:01:10.000 --> 01:01:14.360
<v Michael Kennedy>but I think people will start to buy into multiple aspects of it,

01:01:14.480 --> 01:01:16.620
<v Michael Kennedy>and that might not just be pure code and functions.

01:01:17.059 --> 01:01:18.340
<v Charlie Marsh>Yeah, no, no.

01:01:18.500 --> 01:01:20.500
<v Charlie Marsh>And I think, I mean, to me, it kind of gets back to a little bit

01:01:20.500 --> 01:01:23.720
<v Charlie Marsh>of our team principles, which is we want to keep building things

01:01:23.840 --> 01:01:24.580
<v Charlie Marsh>that we think are great.

01:01:25.440 --> 01:01:28.800
<v Charlie Marsh>And by the way, on our team, we have an amazing team, I think.

01:01:29.700 --> 01:01:33.920
<v Charlie Marsh>There's a whole spectrum in terms of how much people use AI in their coding.

01:01:34.220 --> 01:01:35.580
<v Charlie Marsh>And some people are really effective with it.

01:01:35.640 --> 01:01:38.800
<v Charlie Marsh>Some people don't like it that much and are still trying to...

01:01:38.820 --> 01:01:40.520
<v Charlie Marsh>some people want to get better at it,

01:01:40.600 --> 01:01:41.400
<v Charlie Marsh>but are still trying to learn

01:01:41.520 --> 01:01:42.620
<v Charlie Marsh>and figure out the ways to do it.

01:01:42.780 --> 01:01:44.400
<v Charlie Marsh>Like I, I'm not trying to be a person

01:01:44.520 --> 01:01:45.100
<v Charlie Marsh>that's a serious say,

01:01:45.220 --> 01:01:47.080
<v Charlie Marsh>you shouldn't be opening your editor code.

01:01:47.980 --> 01:01:50.140
<v Charlie Marsh>But I do think like you should

01:01:50.440 --> 01:01:52.580
<v Charlie Marsh>at least be curious about like what's happening.

01:01:53.499 --> 01:01:55.100
<v Michael Kennedy>You owe it to yourself and your career

01:01:55.220 --> 01:01:56.520
<v Michael Kennedy>to at least track this stuff.

01:01:56.660 --> 01:01:57.900
<v Michael Kennedy>All right, Charlie, final thoughts.

01:01:58.760 --> 01:01:59.180
<v Michael Kennedy>Where are we?

01:01:59.520 --> 01:02:00.120
<v Michael Kennedy>Where are things going?

01:02:00.580 --> 01:02:02.260
<v Michael Kennedy>I guess let me, let me refine that a little bit.

01:02:02.260 --> 01:02:03.800
<v Michael Kennedy>I know that there's some people out there,

01:02:04.240 --> 01:02:05.740
<v Michael Kennedy>some people who out there when they were,

01:02:06.160 --> 01:02:06.980
<v Michael Kennedy>they heard this announcement,

01:02:07.160 --> 01:02:08.580
<v Michael Kennedy>like, whoop, that for uv, it's toast.

01:02:08.800 --> 01:02:13.700
<v Michael Kennedy>I don't think so. But maybe give some thoughts on just the specifically on the tooling,

01:02:14.180 --> 01:02:18.300
<v Michael Kennedy>the astral tooling, the community, the open source side of things as we wrap this up.

01:02:18.540 --> 01:02:26.020
<v Charlie Marsh>Yeah, definitely. I mean, I think we feel a lot of responsibility to our users. And like,

01:02:26.100 --> 01:02:29.380
<v Charlie Marsh>we've built something that has become very important to a lot of users and a lot of companies. And we

01:02:29.480 --> 01:02:34.260
<v Charlie Marsh>love working on it. The whole point of starting this company was to like help people build things.

01:02:34.460 --> 01:02:47.500
<v Charlie Marsh>And, you know, that like that remains true. Like, I think if you like the work we've done and you've been happy with how we've run our repos and our community, then like I think you will be happy with how things play out.

01:02:48.060 --> 01:02:59.760
<v Charlie Marsh>But, you know, but again, like I, it's easy for me to say these things now and we'll, we'll do our best to live up to the commitments that we've made to our users over time.

01:03:00.700 --> 01:03:05.200
<v Charlie Marsh>I do hope that we're able to ship some things that surprise people too.

01:03:06.160 --> 01:03:12.400
<v Charlie Marsh>But, but, you know, continuing to build the tools, the tools remain important and, you know, a crucial part of everything.

01:03:12.720 --> 01:03:15.780
<v Michael Kennedy>Wonderful. Well, again, congratulations to you and the whole team.

01:03:16.600 --> 01:03:16.860
<v Michael Kennedy>Thank you.

01:03:17.200 --> 01:03:19.200
<v Michael Kennedy>What a crazy and awesome experience.

01:03:19.450 --> 01:03:25.120
<v Michael Kennedy>And also just on the success of all the tools, UVRough, ty, those are very, very popular tools.

01:03:25.210 --> 01:03:28.200
<v Michael Kennedy>And they made a true dent in the Python ecosystem.

01:03:29.690 --> 01:03:30.280
<v Michael Kennedy>And they're still going.

01:03:30.580 --> 01:03:30.900
<v Michael Kennedy>Thank you.

01:03:31.180 --> 01:03:31.480
<v Michael Kennedy>Thank you, Michael.

01:03:31.620 --> 01:03:31.940
<v Michael Kennedy>It means a lot.

01:03:32.140 --> 01:03:32.760
<v Michael Kennedy>You bet.

01:03:33.000 --> 01:03:33.160
<v Michael Kennedy>Bye.

01:03:34.000 --> 01:03:36.320
<v Michael Kennedy>This has been another episode of Talk Python To Me.

01:03:36.700 --> 01:03:37.420
<v Michael Kennedy>Thank you to our sponsors.

01:03:37.650 --> 01:03:38.960
<v Michael Kennedy>Be sure to check out what they're offering.

01:03:39.130 --> 01:03:40.480
<v Michael Kennedy>It really helps support the show.

01:03:41.060 --> 01:03:42.420
<v Michael Kennedy>Take some stress out of your life.

01:03:42.820 --> 01:03:48.240
<v Michael Kennedy>Get notified immediately about errors and performance issues in your web or mobile applications with Sentry.

01:03:48.740 --> 01:03:53.120
<v Michael Kennedy>Just visit talkpython.fm/sentry and get started for free.

01:03:53.660 --> 01:03:56.120
<v Michael Kennedy>Be sure to use our code talkpython26.

01:03:56.840 --> 01:04:00.460
<v Michael Kennedy>That's talkpython, the numbers two, six, all one word.

01:04:00.980 --> 01:04:11.600
<v Michael Kennedy>If you or your team needs to learn Python, we have over 270 hours of beginner and advanced courses on topics ranging from complete beginners to async code, Flask, Django, HTML,

01:04:11.820 --> 01:04:13.140
<v Michael Kennedy>and even LLMs.

01:04:13.440 --> 01:04:15.640
<v Michael Kennedy>Best of all, there's no subscription in sight.

01:04:16.300 --> 01:04:17.960
<v Michael Kennedy>Browse the catalog at talkpython.fm.

01:04:18.700 --> 01:04:20.640
<v Michael Kennedy>And if you're not already subscribed to the show

01:04:20.840 --> 01:04:22.040
<v Michael Kennedy>on your favorite podcast player,

01:04:22.680 --> 01:04:23.320
<v Michael Kennedy>what are you waiting for?

01:04:24.000 --> 01:04:25.760
<v Michael Kennedy>Just search for Python in your podcast player.

01:04:25.920 --> 01:04:26.740
<v Michael Kennedy>We should be right at the top.

01:04:27.160 --> 01:04:28.700
<v Michael Kennedy>If you enjoyed that geeky rap song,

01:04:28.800 --> 01:04:30.000
<v Michael Kennedy>you can download the full track.

01:04:30.140 --> 01:04:32.040
<v Michael Kennedy>The link is actually in your podcast blur show notes.

01:04:32.840 --> 01:04:34.200
<v Michael Kennedy>This is your host, Michael Kennedy.

01:04:34.600 --> 01:04:35.660
<v Michael Kennedy>Thank you so much for listening.

01:04:35.880 --> 01:04:36.660
<v Michael Kennedy>I really appreciate it.

01:04:37.100 --> 01:04:37.800
<v Michael Kennedy>I'll see you next time.

01:04:51.100 --> 01:04:52.500
We'll see you next time.