1
00:00:05,260 --> 00:00:10,040
[CLAIRE] Welcome to Talking Postgres. It's a monthly
podcast for developers who love this database.

2
00:00:10,320 --> 00:00:11,680
I'm your host, Claire Giordano,

3
00:00:12,240 --> 00:00:18,540
and in today's podcast and all the episodes,
we explore the human side of Postgres databases

4
00:00:18,550 --> 00:00:23,570
and open source, which means why do people
who work with Postgres do what they do

5
00:00:23,600 --> 00:00:25,120
and how did they get there?

6
00:00:25,500 --> 00:00:29,950
I want to say thank you to the team at Microsoft
for sponsoring today's community conversation.

7
00:00:30,420 --> 00:00:33,460
And today's guest is Simon Willison.

8
00:00:33,820 --> 00:00:38,930
This is Simon's third time back on the podcast,
which makes me feel really, really good

9
00:00:38,960 --> 00:00:40,520
that he's willing to come back.

10
00:00:40,560 --> 00:00:43,820
He's experienced it before and
he's willing to do it again.

11
00:00:44,120 --> 00:00:45,419
[SIMON] It's always a great time.

12
00:00:46,280 --> 00:00:47,160
[CLAIRE] Thank you.

13
00:00:47,820 --> 00:00:53,000
Simon is an independent open source developer,
and his first claim to fame, which most people

14
00:00:53,040 --> 00:00:56,490
have heard of, is that he was
co-creator of the Django web framework.

15
00:00:57,300 --> 00:01:03,610
Since 2002, which is a while ago now, he's
been a prolific blogger, sharing what he's

16
00:01:03,640 --> 00:01:08,610
learned on a daily basis, as far as
I can tell, multiple posts a day in

17
00:01:08,660 --> 00:01:12,900
many cases. And you can find
his blog at SimonWillison.net.

18
00:01:13,640 --> 00:01:18,720
Officially, Simon works full-time building
open source tools for data journalism,

19
00:01:19,240 --> 00:01:23,250
creating software that is going to help
somebody win a Pulitzer Prize someday,

20
00:01:24,220 --> 00:01:27,260
including tools like Datasette, which he created.

21
00:01:27,520 --> 00:01:30,980
And he also spends a lot of
time these last couple of years.

22
00:01:31,060 --> 00:01:37,360
Exploring the cutting edge of the latest LLMs
and AI tools, sharing his observations and what

23
00:01:37,370 --> 00:01:43,960
he's learned, which of course the rest of us
are really happy about. So, welcome, Simon.

24
00:01:44,800 --> 00:01:46,080
[SIMON] Hey, I'm really glad to be back.

25
00:01:47,280 --> 00:01:53,750
[CLAIRE] So today's topic, officially, I
pushed out a social media post earlier today,

26
00:01:55,080 --> 00:01:58,700
was titled How AI is changing
software development.

27
00:02:00,020 --> 00:02:06,140
But I considered a couple other titles: How
AI is changing how I build software, where

28
00:02:06,260 --> 00:02:11,320
I is you, Simon, or How AI is affecting
open source projects, because I do want

29
00:02:11,320 --> 00:02:13,900
to talk a little bit about open
source projects later in the show.

30
00:02:15,280 --> 00:02:21,300
So what I really want to jump into
are specific stories and examples

31
00:02:21,820 --> 00:02:25,860
of how you are using AI to

32
00:02:26,360 --> 00:02:31,740
build software now, how it's changed
what your day-to-day life looks like.

33
00:02:31,760 --> 00:02:35,420
And then also, I'm hoping you share some stories
about things you've heard from friends and

34
00:02:35,480 --> 00:02:40,560
other people as well, because I want people
listening to be able to visualize, to be

35
00:02:40,600 --> 00:02:42,420
able to imagine what's possible,

36
00:02:43,200 --> 00:02:47,140
because maybe, maybe they're not there
yet in terms of their day-to-day use.

37
00:02:47,840 --> 00:02:50,630
[SIMON] You know what? I have
the perfect story to kick us off.

38
00:02:50,940 --> 00:02:51,440
[CLAIRE] Oh, good.

39
00:02:51,840 --> 00:02:53,020
[SIMON] So one of, I've got.

40
00:02:52,700 --> 00:02:55,440
[CLAIRE] Does it involve a seal named No?

41
00:02:55,740 --> 00:03:00,640
[SIMON] Named Chonkers? It doesn't, but Chonkers
is always on my mind. There was a wonderful

42
00:03:01,140 --> 00:03:05,060
giant Steller sea lion in San Francisco a
couple of months ago called Chonkers, who is

43
00:03:05,100 --> 00:03:08,250
three times the size of the other sea
lions and made, made quite an impression on

44
00:03:08,260 --> 00:03:09,180
people.

45
00:03:09,940 --> 00:03:14,880
Okay, so this morning, I was— one of my
open source projects is a little tool

46
00:03:14,920 --> 00:03:18,240
called sqlite-utils. I do
most of my work with SQLite.

47
00:03:18,360 --> 00:03:24,420
sqlite-utils is a command line tool for dumping
data into a SQLite database, and a Python

48
00:03:24,440 --> 00:03:25,380
library as well. So

49
00:03:26,000 --> 00:03:28,980
a lot of my projects end up as both
Python libraries and command line tools.

50
00:03:29,460 --> 00:03:33,510
And the neatest feature of sqlite-utils
is that you can take a bunch of JSON and

51
00:03:33,560 --> 00:03:37,700
say, stick this in my database, and it
will create the correct schema for you.

52
00:03:37,710 --> 00:03:40,400
It'll go, Oh, okay, this JSON has a

53
00:03:41,080 --> 00:03:44,090
title, which is a string, and it has
an age, which is an integer in it,

54
00:03:44,360 --> 00:03:47,000
creates the table and inserts the
data, and that all just works. And

55
00:03:47,940 --> 00:03:51,390
it's a one-liner in your terminal
to do that. And this morning,

56
00:03:52,260 --> 00:03:54,000
I was thinking, you know what, I've always wanted—

57
00:03:54,060 --> 00:03:57,960
To have a version of that that works with
Postgres and with other databases as well,

58
00:03:58,000 --> 00:04:00,060
like DuckDB and such like.

59
00:04:00,680 --> 00:04:05,480
So literally, while I was in the shower
this morning, on my phone, I fired up

60
00:04:05,780 --> 00:04:09,020
a coding agent session on my laptop,
because you can remote control.

61
00:04:09,060 --> 00:04:11,660
I'm using Codex, and you can remote
control that from your phone.

62
00:04:12,120 --> 00:04:13,049
And I fired it up and I said,

63
00:04:13,500 --> 00:04:17,080
go and look at sqlite-utils and build me
a new version of this library which works

64
00:04:17,120 --> 00:04:22,380
against PostgreSQL and DuckDB as well, and do it
with test-driven development and build everything.

65
00:04:22,780 --> 00:04:24,899
And that was it, and it's done it.

66
00:04:25,040 --> 00:04:28,800
And so now I'm looking on my computer
right now at a new version of my

67
00:04:28,820 --> 00:04:34,040
software that works against PostgreSQL and
DuckDB in addition to SQLite. And this is

68
00:04:34,080 --> 00:04:37,450
It's one of these weird,
it's a research spike, right?

69
00:04:37,800 --> 00:04:39,860
It's a little proof of concept
to see if that would work.

70
00:04:40,580 --> 00:04:42,540
Except that the software's
got over 100 tests now, and

71
00:04:43,280 --> 00:04:47,000
it runs the full test suite against
all three of those database engines.

72
00:04:47,020 --> 00:04:51,070
And my involvement was pretty much typing
on my phone in the shower to try and

73
00:04:51,100 --> 00:04:54,010
kick the thing off, and then a couple
of follow-up prompts to get it to add

74
00:04:54,200 --> 00:04:56,450
new features. This is wildly—this

75
00:04:58,800 --> 00:05:02,780
is, when we talk about what's changed in software
engineering, this is sort of the ultimate

76
00:05:02,800 --> 00:05:04,270
extreme end of all of this.

77
00:05:04,380 --> 00:05:08,150
This is where you can have an idea for
quite a sophisticated piece of software, and

78
00:05:08,180 --> 00:05:12,020
this is something which I'd been idly
thinking about for a couple of years now.

79
00:05:12,490 --> 00:05:13,530
I like using this tool.

80
00:05:13,600 --> 00:05:15,980
Wouldn't it be great if I could use
this tool with other database engines?

81
00:05:16,740 --> 00:05:22,340
The latest frontier models
are now capable of taking

82
00:05:22,920 --> 00:05:27,400
as loose as, take the ideas from this project
and rebuild them against these other things,

83
00:05:27,740 --> 00:05:29,070
and churning out working software.

84
00:05:29,910 --> 00:05:33,340
And that, I feel like this is new as of.

85
00:05:34,220 --> 00:05:40,200
Really, November was when we got the first
models that, like Opus 4.5, that were capable

86
00:05:40,240 --> 00:05:44,580
of taking these larger projects and actually
delivering them without making too many stupid mistakes

87
00:05:44,620 --> 00:05:45,780
along the way.

88
00:05:45,820 --> 00:05:48,560
Is that what, it's what, that was
what, 8 months ago, 9 months ago?

89
00:05:48,230 --> 00:05:52,900
[CLAIRE] November, November 2025. Okay, and that's
what you call the inflection point, I think.

90
00:05:53,060 --> 00:05:57,540
[SIMON] I think that was the inflection point,
because prior to that, Claude Code itself was born

91
00:05:57,560 --> 00:05:59,280
in February of last year.

92
00:05:59,320 --> 00:06:04,150
So that was really the first coding
agent of the kind that we think of today.

93
00:06:04,220 --> 00:06:06,310
Really isn't that old as a piece of software.

94
00:06:06,320 --> 00:06:09,800
It came out in February, but it was—and
for the first sort of six months of

95
00:06:09,860 --> 00:06:13,860
that year, it was fun to poke around
with, but you wouldn't trust it to build

96
00:06:13,920 --> 00:06:15,020
you useful software.

97
00:06:15,948 --> 00:06:18,938
As of November, the models caught up
to the point where now you can trust it

98
00:06:18,968 --> 00:06:20,508
to write software. Now, what is it?

99
00:06:20,548 --> 00:06:25,688
It's August now, and yeah, I'm increasingly
outsourcing extremely ambitious projects

100
00:06:26,368 --> 00:06:28,848
to these tools and getting back software that

101
00:06:29,968 --> 00:06:33,948
I trust myself, but I won't release to
other people until I've done a little bit

102
00:06:33,988 --> 00:06:37,398
of extra work because I don't want to stake
my reputation on something that I'm not

103
00:06:37,428 --> 00:06:39,728
100% confident in. But it's astonishing.

104
00:06:43,728 --> 00:06:46,808
What an incredible rate of advancement
we've had in the past sort of nine months.

105
00:06:47,230 --> 00:06:51,110
[CLAIRE] Okay, so I want to get
really nitty gritty and dig into

106
00:06:52,350 --> 00:06:54,720
the request that you made
when you were in the shower.

107
00:06:55,510 --> 00:06:58,990
You didn't use voice apparently because
you said you were typing it on your phone.

108
00:06:59,010 --> 00:07:00,740
Is that right?

109
00:07:00,028 --> 00:07:03,848
[SIMON] I've not hooked up voice via
my phone to control my laptop yet.

110
00:07:04,008 --> 00:07:07,208
I believe it is possible. I use voice
a lot, but for this particular one,

111
00:07:08,088 --> 00:07:09,648
I haven't quite got that working yet.

112
00:07:09,260 --> 00:07:12,010
[CLAIRE] So how long of a
request was it that you typed in?

113
00:07:12,090 --> 00:07:14,910
How long were you sitting there
typing and pecking into your phone?

114
00:07:15,288 --> 00:07:18,908
[SIMON] I'm looking at it now.
It is two paragraphs of text.

115
00:07:19,688 --> 00:07:20,608
I can read the whole thing.

116
00:07:20,628 --> 00:07:23,648
It says, do a research spike to see
what it would take to build a library

117
00:07:23,688 --> 00:07:28,598
with the same core API as sqlite-utils, in
particular the insert and upsert and create and

118
00:07:28,648 --> 00:07:33,328
update methods and the table introspection stuff,
but backed by SQLAlchemy so it works for multiple

119
00:07:33,348 --> 00:07:37,068
database engines. Test against
Postgres and SQLite and DuckDB.

120
00:07:37,128 --> 00:07:42,428
Use `~/dev/sqlite-utils` for reference. Create
a Git repo for this. Commit early and often.

121
00:07:42,768 --> 00:07:45,228
Use `uv init` to set up the project.
Use red-green TDD and pytest.

122
00:07:45,448 --> 00:07:48,788
So a bunch of jargon in there about
how I wanted this to work, but that

123
00:07:48,808 --> 00:07:49,108
was it.

124
00:07:50,488 --> 00:07:53,388
This is, and it's one of those things
as well where a lot of people are

125
00:07:53,428 --> 00:07:57,708
concerned about the impact this has on
software careers, because now I can knock out a

126
00:07:57,728 --> 00:08:00,358
couple of paragraphs on my phone in the
shower and it does a substantial piece of

127
00:08:00,408 --> 00:08:01,068
work.

128
00:08:01,108 --> 00:08:06,168
But you have to have so much expertise
yourself in the sort of domain in order

129
00:08:06,208 --> 00:08:07,168
to drive these things.

130
00:08:07,748 --> 00:08:12,998
I was pointing it at SQLAlchemy and
telling it how to use red-green TDD and all

131
00:08:13,028 --> 00:08:15,018
of these different bits and pieces.

132
00:08:15,028 --> 00:08:19,068
And because I've spent so much time tinkering
with these models, I was pretty confident that

133
00:08:19,068 --> 00:08:23,977
it was going to work. I can now
sort of imagine a prompt that will

134
00:08:26,187 --> 00:08:29,408
more likely than not get me to the
desired state. And that was it.

135
00:08:29,448 --> 00:08:31,618
And off it went, and it worked for 43 minutes.

136
00:08:32,528 --> 00:08:36,248
And delivered something that mostly worked,
and then I told it to refactor the code so

137
00:08:36,288 --> 00:08:40,848
the engine-specific portability stuff lives in a
file for each specific engine, because the code was

138
00:08:40,868 --> 00:08:43,408
full of if-then statements that I didn't like.

139
00:08:43,428 --> 00:08:47,507
And it said, okay, I did that, and
off it went. And yeah, this is...

140
00:08:48,548 --> 00:08:52,598
Honestly, this is, this is like a week
of work for me in the before times,

141
00:08:52,828 --> 00:08:56,098
and it got it done in an hour this
morning while I was having a shower

142
00:08:56,108 --> 00:08:57,088
and then making breakfast.

143
00:08:57,810 --> 00:09:00,730
[CLAIRE] So wait, you said the
software has over a hundred tests now.

144
00:09:01,750 --> 00:09:04,570
How does it have a hundred tests?
Where did that spec come from?

145
00:09:04,610 --> 00:09:10,330
Are you satisfied with those tests, or
are they superficial and incomplete, or?

146
00:09:09,768 --> 00:09:12,248
[SIMON] Well, so I've hardly even looked at them.

147
00:09:12,648 --> 00:09:17,228
The reason it has tests is I told
it to use red-green TDD and pytest.

148
00:09:17,378 --> 00:09:21,168
And red-green TDD, that's the thing where
you have to write a test and watch it

149
00:09:21,288 --> 00:09:24,068
fail, and then you write the
implementation and get the test to pass.

150
00:09:24,368 --> 00:09:25,668
I've found that this has

151
00:09:26,548 --> 00:09:28,628
This has been giving me really
good results with agents,

152
00:09:29,168 --> 00:09:31,668
because the one thing you don't want
is you don't want an agent to write a

153
00:09:31,688 --> 00:09:34,567
bunch of code that hasn't
really been exercised at all.

154
00:09:34,998 --> 00:09:38,988
And then you're basically just rolling
the dice as to if the thing works or not.

155
00:09:39,428 --> 00:09:43,128
I want every line of code they write to
have been exercised, and the easiest way

156
00:09:43,188 --> 00:09:45,588
to get them to exercise them is to tell
them to write tests, because they're very

157
00:09:45,608 --> 00:09:46,868
good at writing tests generally.

158
00:09:47,228 --> 00:09:51,328
The one test file I did browse, I
poked into a couple of them, and it

159
00:09:51,348 --> 00:09:54,358
was doing exactly the right thing in that it was

160
00:09:55,328 --> 00:09:58,608
It was exercising the sort of
user-facing library feature.

161
00:09:59,408 --> 00:10:03,368
And then it was using pytest fixtures to
run the exact same test against the three

162
00:10:03,388 --> 00:10:06,468
different backends. And that's
exactly how I want this to work.

163
00:10:06,508 --> 00:10:10,808
I want every test to run against Postgres
and then SQLite and then DuckDB, and only

164
00:10:10,868 --> 00:10:14,248
pass if all three engines pass. And that worked.

165
00:10:14,288 --> 00:10:19,448
And partly as well, this is because I'm using
pytest, the Python testing framework, which is

166
00:10:19,488 --> 00:10:22,228
very well established, extremely mature software.

167
00:10:22,288 --> 00:10:26,408
All of the agents have seen it running
in so many different configurations.

168
00:10:26,588 --> 00:10:32,138
And pytest has baked-in features called fixtures
for running the same test against three different

169
00:10:32,167 --> 00:10:34,607
backends. All of that kind of stuff
is at well-understood patterns.

170
00:10:34,998 --> 00:10:36,878
So once you know that, you can

171
00:10:36,908 --> 00:10:41,498
Point to the agent, you can basically
say to the agent, use pytest, and

172
00:10:42,068 --> 00:10:45,828
you know that the agent is going to pick up
those techniques from that because you've

173
00:10:45,848 --> 00:10:49,688
got that deep understanding of that software
and you've seen the agent use it well in

174
00:10:49,728 --> 00:10:52,368
the past. So all of this stuff comes down to

175
00:10:53,208 --> 00:11:00,248
enormous quantities of sort of built-up experience
across both the technologies that you're using

176
00:11:00,388 --> 00:11:05,328
and across the agents. You have to know
what kinds of things they're capable of.

177
00:11:05,568 --> 00:11:08,807
If I'd tried this with an agent six
months ago, I very much doubt I'd have

178
00:11:08,848 --> 00:11:14,128
got good results out of it. But this
one, I'm using GPT-5.6 Sol Ultra,

179
00:11:14,728 --> 00:11:20,688
which is the mode of GPT-5.6 where it fires
up multiple sub-agents and does research and

180
00:11:20,988 --> 00:11:21,628
has something else

181
00:11:21,638 --> 00:11:24,328
looking at the documentation,
all of those kinds of things.

182
00:11:26,108 --> 00:11:30,138
And it's cost me, well, it's been, it
hasn't cost me anything at all because I've

183
00:11:30,168 --> 00:11:36,988
got a subscription, but apparently I've
burnt through $66 worth of tokens already.

184
00:11:38,328 --> 00:11:39,128
Just today.

185
00:11:40,078 --> 00:11:45,728
$61, because you, and this is off my
$100 a month subscription to OpenAI.

186
00:11:46,448 --> 00:11:50,728
Because the subscriptions give you just a massive
discount on the actual price of the tokens.

187
00:11:50,768 --> 00:11:55,768
If I was paying API prices, if I was
an enterprise, I would have spent $61

188
00:11:56,128 --> 00:11:58,568
on this project so far.

189
00:11:57,990 --> 00:12:02,710
[CLAIRE] Okay, but instead it's
included as part of your subscription,

190
00:12:02,868 --> 00:12:03,528
[SIMON] Exactly.

191
00:12:03,230 --> 00:12:07,470
[CLAIRE] no matter how little you use or
how much you use, or is there some threshold

192
00:12:07,550 --> 00:12:10,890
after which you're going to be capped?

193
00:12:09,128 --> 00:12:13,408
[SIMON] Well, there's a threshold.
I'm now 71% of the way through my— no,

194
00:12:13,898 --> 00:12:17,548
I'm 29% of the way through my five-day threshold.

195
00:12:18,488 --> 00:12:23,788
But OpenAI resets the usage limits
all the time as a marketing exercise.

196
00:12:25,616 --> 00:12:28,046
So there's almost this
thing. I actually see people;

197
00:12:30,376 --> 00:12:34,046
somebody from OpenAI announced that they were going
to reset everyone's usage limits in four hours,

198
00:12:34,056 --> 00:12:37,616
and a bunch of people were saying, brilliant,
fire up Ultra, let's, let's burn through those

199
00:12:37,636 --> 00:12:42,256
four hours because we know we're getting a reset,
which is unhealthy, quite frankly, you know,

200
00:12:42,796 --> 00:12:47,676
back when Claude Fable was on limited release,
people were losing sleep because they didn't want

201
00:12:47,736 --> 00:12:51,196
to waste a second of the day that they could
have been spent prompting these models.

202
00:12:51,476 --> 00:12:53,376
So that whole side of things is kind of gross.

203
00:12:55,156 --> 00:12:57,876
But yeah, the results that we're getting are.

204
00:12:58,136 --> 00:12:59,755
Really quite astonishing at this point.

205
00:13:00,640 --> 00:13:05,730
[CLAIRE] So one of the things you said on,
I don't know how many podcasts you're on.

206
00:13:06,930 --> 00:13:11,460
I feel special because this is your third
time on Talking Postgres, but I do know.

207
00:13:12,340 --> 00:13:13,570
Was it, let's see, it's August.

208
00:13:13,600 --> 00:13:17,969
So five months ago, you were on Lenny's
podcast and you talked about the state of

209
00:13:18,000 --> 00:13:19,890
the AI union or something like that.

210
00:13:19,890 --> 00:13:25,430
And in that podcast, you said something
like, by 11 o'clock in the morning, you are

211
00:13:25,500 --> 00:13:31,400
exhausted because you and your agents
have done so much at that point in time.

212
00:13:31,440 --> 00:13:34,660
And I guess you were trying
to describe your day-to-day.

213
00:13:35,040 --> 00:13:37,680
And I want to understand
what your morning looks like

214
00:13:38,140 --> 00:13:40,540
from when you wake up till 11 a.m.

215
00:13:40,640 --> 00:13:44,760
That leads you to being exhausted at
that point. Did I capture that right?

216
00:13:45,116 --> 00:13:49,236
[SIMON] Well, so the good news is I've
found a bit more balance than I had five

217
00:13:49,276 --> 00:13:55,596
months ago. So five months ago, this was
like peak, God, Claude Opus 4.6, I think.

218
00:13:55,956 --> 00:14:00,266
But it was that period where, in January
and February of this year, that's when

219
00:14:01,116 --> 00:14:04,896
People really started paying attention to
these tools because they got good in November,

220
00:14:05,516 --> 00:14:08,036
and then we had December and we
had the sort of holiday break.

221
00:14:08,076 --> 00:14:10,816
And during the holidays, individuals
were tinkering with them a bit.

222
00:14:10,836 --> 00:14:15,056
But January and February was when companies started
figuring out, oh, actually, this stuff works

223
00:14:15,156 --> 00:14:15,336
now.

224
00:14:15,596 --> 00:14:20,856
And you had the token-maxxing and all of these
absurd sort of absurd scenarios while people

225
00:14:20,876 --> 00:14:23,476
are trying to understand what we
can do with this stuff. And yeah,

226
00:14:24,036 --> 00:14:27,756
that was a very exhausting period of time
because you did feel this pressure to—

227
00:14:29,276 --> 00:14:33,516
you almost felt like if one of your agents
isn't writing code, you're wasting time, which

228
00:14:33,556 --> 00:14:37,376
is a very unhealthy mentality. So
I've definitely got over that now.

229
00:14:37,456 --> 00:14:41,856
I do not feel like I'm missing out if
I don't have something churning away.

230
00:14:42,736 --> 00:14:47,426
But there is a real challenge here in
finding this new balance, because we can work

231
00:14:47,456 --> 00:14:50,776
so much faster and, you know, an agent
can churn out 10,000 lines of code in

232
00:14:50,796 --> 00:14:51,256
an hour.

233
00:14:52,136 --> 00:14:52,776
That's not.

234
00:14:53,496 --> 00:14:56,436
That doesn't mean that it's code that
you can ship, because even if the code is

235
00:14:56,496 --> 00:14:58,656
good, even if the code is good and passes tests,

236
00:14:59,176 --> 00:15:03,156
my, I feel like our professional
responsibility is we have to understand it.

237
00:15:04,116 --> 00:15:08,236
Delivering code to the rest of the world
that you don't understand yourself is a very

238
00:15:08,256 --> 00:15:14,256
dangerous thing to do. It's a, that's where
you get the sort of cognitive overload where

239
00:15:15,296 --> 00:15:18,516
firstly you're sort of getting
exhausted by what's going on.

240
00:15:18,556 --> 00:15:20,326
You don't really understand
what you've been delivering.

241
00:15:21,036 --> 00:15:25,236
And also for projects that you intend to keep
on working on, there's this interesting thing

242
00:15:25,296 --> 00:15:30,486
where if you don't understand the state of
your project in enough detail, you can't make

243
00:15:30,496 --> 00:15:34,076
decisions about it. You can't sit down
and think, okay, what should I do next?

244
00:15:34,136 --> 00:15:38,396
Because the amount that you don't understand
about your own piece of software just keeps on

245
00:15:38,456 --> 00:15:42,176
Growing. So that's, I think that's
one of the most interesting sort of

246
00:15:43,856 --> 00:15:48,086
friction points at the moment, is figuring
out, okay, what is the fastest we can work

247
00:15:48,156 --> 00:15:50,216
while we're still confident
that the software is good,

248
00:15:50,776 --> 00:15:54,456
and we're confident that we understand it
well enough to be able to make good decisions

249
00:15:54,516 --> 00:15:55,516
about what to do next.

250
00:15:56,396 --> 00:15:58,116
And when you start thinking about it like that,

251
00:15:58,836 --> 00:16:02,976
firstly, it means that you can slow down
a little bit because there's no point in

252
00:16:03,036 --> 00:16:05,766
churning out a million lines of code
in a week if you don't know what you

253
00:16:05,856 --> 00:16:06,736
built.

254
00:16:07,685 --> 00:16:13,176
And you start building much, much, much more sort
of sensible habits in terms of spotting—there

255
00:16:13,196 --> 00:16:17,976
are tasks that are tiny and inconsequential, and
you can completely outsource them to an agent.

256
00:16:20,416 --> 00:16:22,616
The other day, a website that I work on

257
00:16:23,196 --> 00:16:25,516
had that bug where when you log in,

258
00:16:25,976 --> 00:16:29,216
you visit a page and you're logged out,
and you log in, and it doesn't send

259
00:16:29,256 --> 00:16:31,796
you to where you were before.
You know, the classic:

260
00:16:32,416 --> 00:16:34,056
when you log in, it really needs to send you back.

261
00:16:34,266 --> 00:16:36,976
And I knew I'd implemented that in the
past and it worked, and now it didn't

262
00:16:37,016 --> 00:16:40,476
work. And again, on my phone,
I fired up an agent and I said,

263
00:16:41,256 --> 00:16:44,556
Figure out why redirects don't work, and
it found the bug, and it was a two-line

264
00:16:44,596 --> 00:16:47,336
change, and it wrote a test, and we
shipped the change, and it was done.

265
00:16:47,356 --> 00:16:50,196
And it was great because
that's the kind of thing where

266
00:16:50,236 --> 00:16:51,936
If I'd carved out time for it myself.

267
00:16:52,616 --> 00:16:55,976
It would have been a minimum of 20 minutes
of me sort of researching, trying to

268
00:16:55,996 --> 00:16:57,906
figure out, and it was open-ended task.

269
00:16:57,976 --> 00:17:00,266
Maybe it would take me four hours to
fix, and maybe it would take me half

270
00:17:00,376 --> 00:17:00,796
an hour to fix.

271
00:17:01,136 --> 00:17:05,526
But it was very difficult for me to justify
investing that time on something which was

272
00:17:05,556 --> 00:17:08,736
an irritation, but it wasn't the
most important thing I could work on.

273
00:17:08,756 --> 00:17:09,996
You outsource that to the agent.

274
00:17:10,536 --> 00:17:14,136
Either the agent solves it, in which case
it's solved, or it doesn't, in which case,

275
00:17:14,216 --> 00:17:16,986
okay, it was harder than I thought.
Maybe I'll look at it later.

276
00:17:17,396 --> 00:17:20,876
That kind of work, that sort of parallel
work where you can be working on something

277
00:17:20,956 --> 00:17:25,676
else while these sort of smaller,
more irritating, but not necessarily

278
00:17:26,476 --> 00:17:30,716
Worth spending large amounts of time on
tasks are just being investigated over there.

279
00:17:31,716 --> 00:17:37,996
But yeah, so I feel I've diverted from your
original question. These days, yeah, the mornings,

280
00:17:38,596 --> 00:17:42,286
I'm not exhausted by 11 a.m. Anymore
because I'm pacing myself properly.

281
00:17:42,716 --> 00:17:46,606
I don't have that, I don't feel that
tension to have as many things going as

282
00:17:45,500 --> 00:17:51,000
[CLAIRE] And I'm glad you've course corrected
my question because I'm, I hate to say it, but

283
00:17:46,696 --> 00:17:47,016
[SIMON] possible.

284
00:17:47,596 --> 00:17:47,836
Ooh,

285
00:17:51,060 --> 00:17:54,600
[CLAIRE] I'm not actually interested in what
your mornings were like five months ago.

286
00:17:55,020 --> 00:17:59,720
I'm kind of interested in today because
I know the AI world has changed so much

287
00:17:59,780 --> 00:18:04,410
in the last five months. So, yeah, talk me through

288
00:18:04,920 --> 00:18:10,570
a typical morning in the last week or two,
assuming you haven't been on vacation or

289
00:18:10,580 --> 00:18:11,240
something like that.

290
00:18:13,636 --> 00:18:14,016
[SIMON] okay.

291
00:18:14,893 --> 00:18:17,130
[CLAIRE] Because I want, I want people to, to

292
00:18:17,680 --> 00:18:20,940
be able to visualize how they
could be using these tools.

293
00:18:21,000 --> 00:18:23,940
Now, I know a lot of people are on the
bandwagon and they're there, but not

294
00:18:23,980 --> 00:18:26,360
everybody is, so.

295
00:18:26,380 --> 00:18:27,660
Or not as far as they want to be.

296
00:18:28,208 --> 00:18:32,908
[SIMON] Okay, so something I've been
doing recently, which I spent a day on

297
00:18:33,448 --> 00:18:36,928
just a couple of days ago, I've got way
too many open issues and pull requests

298
00:18:36,968 --> 00:18:38,908
against some of my projects. And

299
00:18:39,488 --> 00:18:42,388
I've got to that point of that sort
of that guilt where you're like, if I

300
00:18:42,408 --> 00:18:44,948
don't look at them, maybe I won't
feel bad about all of the ones that I

301
00:18:44,988 --> 00:18:46,587
haven't got to yet.

302
00:18:46,648 --> 00:18:50,708
And it turns out they're all available by
the GitHub API, and the agents know how

303
00:18:50,728 --> 00:18:51,588
to use the GitHub API.

304
00:18:51,708 --> 00:18:54,758
So you can basically, so I
actually said to, I said to Codex,

305
00:18:55,468 --> 00:18:59,628
Do a review of every open issue and
pull request from the last six months on

306
00:18:59,668 --> 00:19:04,117
this repository and figure out what are the
low-hanging fruit, which are the ones where the

307
00:19:04,148 --> 00:19:08,528
fix is actually quite straightforward and it
won't take much time, or there's a pull request

308
00:19:08,538 --> 00:19:13,328
that's ready to land with a few changes, and
then prioritize them by easiest to hardest.

309
00:19:13,928 --> 00:19:16,328
And it gave me a list of ten, and
I went through and I knocked off

310
00:19:16,348 --> 00:19:20,288
the first four, and I felt
so good about it. This was—

311
00:19:20,388 --> 00:19:23,238
Actual, meaningful. It was,
it was, it was probably.

312
00:19:24,288 --> 00:19:27,928
I invested about an hour of my time
closing down four issues that had been open

313
00:19:27,968 --> 00:19:28,648
for quite a while,

314
00:19:29,508 --> 00:19:31,988
landed good code that I fully
understood. I felt good about it.

315
00:19:32,048 --> 00:19:32,908
I didn't write the code.

316
00:19:33,408 --> 00:19:37,778
In two of those cases, it was pull requests
from someone else, and I reviewed their

317
00:19:37,828 --> 00:19:38,148
code.

318
00:19:38,348 --> 00:19:42,008
Codex reviewed their code, made a couple of
tiny formatting tweaks and landed it, and that

319
00:19:42,048 --> 00:19:45,628
was fine. And the other two were open issues where

320
00:19:45,698 --> 00:19:47,808
The fix was, it was tiny.

321
00:19:47,908 --> 00:19:50,988
You know, these are fixes that are four
or five lines of code, but the problem

322
00:19:51,028 --> 00:19:53,928
is always figuring out where the
four or five lines of code go.

323
00:19:53,948 --> 00:19:55,298
And so it was very quick to review.

324
00:19:55,908 --> 00:20:00,198
Reviewing four or five lines of code that
an agent has checked out is no major—

325
00:20:01,508 --> 00:20:04,118
The problem with review comes
when you've got a thousand lines.

326
00:20:04,328 --> 00:20:05,848
That's when things sort of freeze up.

327
00:20:05,868 --> 00:20:09,728
But if you can arrange things into these
much smaller commits, and that was great.

328
00:20:09,848 --> 00:20:11,798
You know, that was, and that sort of—

329
00:20:12,468 --> 00:20:16,468
It unstuck me on that, that
aspect of that particular project.

330
00:20:18,228 --> 00:20:22,968
And so that, but part of the
problem is that I'm very, yeah.

331
00:20:23,310 --> 00:20:25,950
[CLAIRE] But does the unsticking continue?

332
00:20:26,010 --> 00:20:30,490
Okay, so in other words, you had the low-hanging
fruit and you integrated, you said four

333
00:20:30,530 --> 00:20:33,730
of them, right? So now what?

334
00:20:31,508 --> 00:20:31,808
[SIMON] Yes.

335
00:20:34,330 --> 00:20:36,110
[CLAIRE] What about all the rest of them?

336
00:20:36,247 --> 00:20:39,868
[SIMON] So I got inspired, and I'm like, you
know what, there's this one much bigger task

337
00:20:39,908 --> 00:20:42,008
on this project that I've been putting off.

338
00:20:42,548 --> 00:20:46,308
Let's spend some time on
that, and that turned into a—

339
00:20:46,388 --> 00:20:50,788
Two-and-a-half-hour session of paying
close attention to what was going on.

340
00:20:51,008 --> 00:20:58,468
This was solving a particularly gnarly sort
of database migration-related problem. But

341
00:20:59,088 --> 00:21:02,948
because I'd got that momentum going from
fixing some small things, I could move, I could

342
00:21:03,048 --> 00:21:06,508
start taking on the much, much larger
project. And that was the kind of thing where

343
00:21:07,428 --> 00:21:11,948
You have to pay. That's more of a
collaboration with the agent, where you're

344
00:21:12,728 --> 00:21:15,257
not just setting off on a side
quest and then wandering off.

345
00:21:15,308 --> 00:21:18,008
You're actually paying attention to
what it's doing. You're directing it.

346
00:21:18,048 --> 00:21:20,648
You're modifying little bits and pieces yourself.

347
00:21:21,628 --> 00:21:25,148
But that was good, you know, and that,
that, so that sort of the low-hanging fruit

348
00:21:25,208 --> 00:21:27,668
turned into shipping actually
quite a significant feature,

349
00:21:28,128 --> 00:21:30,208
which I'd been putting off again for months.

350
00:21:30,268 --> 00:21:35,188
All of this keeps on coming back to procrastination
and guilt, which is kind of interesting.

351
00:21:35,628 --> 00:21:40,488
Something I have noticed, though,
that's very weird is that sometimes,

352
00:21:41,088 --> 00:21:45,558
in traditional software engineering, you have hard
problems where you really do need to carve out

353
00:21:45,908 --> 00:21:49,308
four hours of uninterrupted time.
You have to focus everything.

354
00:21:49,348 --> 00:21:54,198
There's that famous idea that if you
interrupt a programmer to ask them a question,

355
00:21:54,688 --> 00:21:58,148
you might have just cost them half an
hour because the whole stack of cards in

356
00:21:58,168 --> 00:22:02,037
their head comes tumbling down, and then
they have to get back into the zone, and

357
00:22:02,088 --> 00:22:06,138
that, that's, that's, that's a major
problem. That's not a problem for me anymore.

358
00:22:06,148 --> 00:22:07,688
Only because.

359
00:22:07,748 --> 00:22:11,178
If you're working with an agent, the
agent holds a lot of that context itself.

360
00:22:11,528 --> 00:22:13,978
See, and you can ask it questions
and say, Oh, where did we get to?

361
00:22:13,998 --> 00:22:16,788
and get back up and running really quickly.

362
00:22:16,808 --> 00:22:20,628
But the really weird thing is
that the harder a task is, the

363
00:22:21,548 --> 00:22:25,268
more you can be distracted from it, because
you might have a task where an agent

364
00:22:25,328 --> 00:22:27,638
has to crunch away for 15 minutes working on it,

365
00:22:28,188 --> 00:22:30,858
and that's suddenly 15 minutes that
you have free for something else.

366
00:22:31,257 --> 00:22:34,638
I do get substantial amounts of work done.

367
00:22:35,528 --> 00:22:36,628
When I'm walking the dog,

368
00:22:37,228 --> 00:22:43,018
which is a bizarre state of—it's absolutely
bizarre that that's true these days, but I can

369
00:22:43,308 --> 00:22:46,168
fire up a really difficult task, go
on a walk with the dog, check in on

370
00:22:46,208 --> 00:22:49,628
my phone occasionally to see if it's going
in the right direction and maybe prod it

371
00:22:49,928 --> 00:22:51,088
somewhere else.

372
00:22:51,138 --> 00:22:52,397
And by the end of the walk,

373
00:22:52,968 --> 00:22:56,268
I've got 90% of a very
difficult problem solved for me.

374
00:22:56,848 --> 00:22:59,528
And then the challenge is, it's that discipline.

375
00:22:59,608 --> 00:23:02,527
It's making absolutely sure that you
fully understand everything in there.

376
00:23:02,588 --> 00:23:06,228
My gold standard is, could I
explain this to somebody else? Can

377
00:23:06,728 --> 00:23:08,918
I take this change, which is going
to have my name on it, you know, I

378
00:23:09,008 --> 00:23:11,878
have to be able to take
accountability for the work.

379
00:23:12,248 --> 00:23:14,748
Could I sit down with somebody else and
talk them through exactly how it works?

380
00:23:14,788 --> 00:23:15,478
And if I can,

381
00:23:16,028 --> 00:23:20,528
I feel confident shipping that as production
software, even though I wrote hardly any of the

382
00:23:20,568 --> 00:23:21,988
lines of code that make up the change.

383
00:23:22,610 --> 00:23:27,230
[CLAIRE] So I feel like that gold standard
is something that a lot of people are.

384
00:23:28,310 --> 00:23:34,709
Either struggling with or not getting right
yet. It's, it's, it takes discipline to do that.

385
00:23:34,800 --> 00:23:39,210
And in fact, you wrote a blog post
the other day that I loved that was

386
00:23:40,030 --> 00:23:42,350
a blog post about a blog
post, which you do sometimes.

387
00:23:42,410 --> 00:23:45,850
You see another blog, you really like
it, and you want to give it a shout-out

388
00:23:42,868 --> 00:23:42,955
[SIMON] Mhm.

389
00:23:42,955 --> 00:23:43,041
Yes.

390
00:23:43,041 --> 00:23:43,128
It's

391
00:23:45,910 --> 00:23:48,110
[CLAIRE] and quote from it and
kind of shine a light on it.

392
00:23:48,130 --> 00:23:54,200
And it was a Sophie Alpert blog post titled,
There Are No Lossless Transformations of Natural

393
00:23:54,270 --> 00:23:58,550
Language Text, which I'd love you to expound
on why you thought that was so important,

394
00:23:58,620 --> 00:23:58,710
but—

395
00:23:59,368 --> 00:24:01,388
[SIMON] such a great post, yeah. So this was

396
00:24:02,188 --> 00:24:07,148
the internal policy on acceptable use of AI
writing by engineers that Sophie wrote for her

397
00:24:07,208 --> 00:24:11,788
employer, Clay. And it's very short.
You should read the whole thing.

398
00:24:11,828 --> 00:24:13,868
It's like, what, five paragraphs of text.

399
00:24:13,670 --> 00:24:14,130
[CLAIRE] Yeah, yeah, yeah.

400
00:24:14,528 --> 00:24:21,468
[SIMON] But it's such an important topic right now
because these things are really, really good at—they're

401
00:24:21,488 --> 00:24:25,508
really good at writing code, and they're
very good at writing technical documentation.

402
00:24:25,828 --> 00:24:29,528
AI writing, if you're trying to be
convincing or creative, I think it's garbage.

403
00:24:29,688 --> 00:24:33,128
You know, you can—you just read these
things and your teeth get set on edge.

404
00:24:33,488 --> 00:24:37,788
I use it for documentation all the time
because the whole point of documentation is it

405
00:24:37,868 --> 00:24:42,048
just has to describe in the most boring
way possible exactly what the thing does.

406
00:24:42,584 --> 00:24:43,804
And so if you manage to

407
00:24:44,364 --> 00:24:48,274
tell your AI not to add any jokes
or try and fluff things up, you can

408
00:24:48,304 --> 00:24:51,764
get very, very useful results out of it.

409
00:24:51,804 --> 00:24:55,744
And you know, it's great at writing things like
pull request descriptions because a pull request

410
00:24:55,744 --> 00:25:00,284
description just has to describe exactly
what it is. And yet, when I see an AI-written

411
00:25:01,054 --> 00:25:02,454
pull request description,

412
00:25:03,444 --> 00:25:04,624
I don't want to read it.

413
00:25:04,664 --> 00:25:09,344
You know, it's like eight paragraphs, and it's
all technically accurate, but it's not telling me

414
00:25:09,404 --> 00:25:13,184
that sort of higher-level thing where a human
being is communicating to me, these are the

415
00:25:13,244 --> 00:25:14,084
things that matter.

416
00:25:14,624 --> 00:25:17,864
That, it turns out that I care about
that more than accuracy in a lot of

417
00:25:17,904 --> 00:25:18,804
cases. I want to know,

418
00:25:19,344 --> 00:25:23,513
what did you, with your unique human judgment,
think is the most valuable thing about this?

419
00:25:24,164 --> 00:25:29,124
And so, Sophie, one of the things Sophie
said is, you must stand behind every idea

420
00:25:29,164 --> 00:25:31,224
and every sentence in your documentation.

421
00:25:32,004 --> 00:25:34,884
It has to be representative of your
own thoughts before you share it.

422
00:25:35,144 --> 00:25:37,324
If a reviewer asks, What
did you mean by this line?

423
00:25:37,564 --> 00:25:41,984
It's not acceptable to reply with, Oh,
sorry, AI wrote that. Just ignore it.

424
00:25:42,124 --> 00:25:42,554
I love that.

425
00:25:42,604 --> 00:25:47,154
That, to me, because the other thing, I
think it's very important not to tell people

426
00:25:47,154 --> 00:25:48,264
they shouldn't use AI for

427
00:25:48,304 --> 00:25:53,564
Writing, because a lot of people have
English as a second language. I've

428
00:25:54,524 --> 00:25:57,844
got nearly 25 years of blogging
experience. I'm a very experienced writer.

429
00:25:58,344 --> 00:26:01,784
It is not fair for me to say to other
people, You should not use technical

430
00:26:01,804 --> 00:26:04,744
assistance for your writing, just because I
find it easy because I've been doing it for

431
00:26:04,904 --> 00:26:09,264
25 years. But at the same time, there's
a very important thing about respect.

432
00:26:09,344 --> 00:26:12,204
You have to show respect to
your readers, to your coworkers.

433
00:26:12,584 --> 00:26:16,404
You have to have put the effort in to
make sure that the thing that you're

434
00:26:16,444 --> 00:26:21,134
communicating to them is good and it
reflects the exact truth in your mind of what

435
00:26:21,224 --> 00:26:25,304
matters. And that, I think, Sophie
caught that beautifully with this piece.

436
00:26:25,344 --> 00:26:29,924
Then her closing, that line about lossless
transformations, she says, There are no lossless

437
00:26:29,964 --> 00:26:33,184
transformations of natural language
text. Every rewrite and rephrase...

438
00:26:33,244 --> 00:26:36,494
Changes the meaning of your writing, and
if this is done by an entity that doesn't

439
00:26:36,544 --> 00:26:40,464
have the most detailed mental representation of
what you personally are trying to communicate,

440
00:26:40,504 --> 00:26:45,404
information will be lost. And that, that
nails it for me. You know, I don't care

441
00:26:46,024 --> 00:26:49,964
if the AI wrote it, as long as you
will stand by every single detail on

442
00:26:49,984 --> 00:26:54,544
it and you're confident that it's the best
expression of what you're trying to communicate, and

443
00:26:54,584 --> 00:26:56,364
it's not going to waste my
time to read through it.

444
00:26:57,860 --> 00:26:59,220
[CLAIRE] Yeah, so I feel like.

445
00:27:00,000 --> 00:27:01,600
I just feel like that's, that's a—

446
00:27:02,420 --> 00:27:06,580
A struggle for some people, because it's
just so easy to skip that step, be like,

447
00:27:06,630 --> 00:27:08,350
okay, it did it, I'm going
to move on. I want to get—

448
00:27:08,860 --> 00:27:12,690
Sometimes people just want to get things done, and

449
00:27:13,320 --> 00:27:17,780
they glance at it, they give it a
superficial review. Anyway, I've seen—

450
00:27:17,840 --> 00:27:20,940
AI slop, and I don't like it. So...

451
00:27:21,534 --> 00:27:23,704
[SIMON] It's, it's a plague right
now. It's an absolute plague.

452
00:27:23,964 --> 00:27:27,144
I've got this problem on
Twitter in particular because

453
00:27:27,624 --> 00:27:30,904
I show up on lists of
prominent AI voices to follow.

454
00:27:30,964 --> 00:27:36,454
Anything I post on Twitter gets at least
a dozen automated AI bot replies with all

455
00:27:36,484 --> 00:27:40,254
of the, the, the— and it's just soul-destroying.

456
00:27:40,384 --> 00:27:43,404
It's— I've seen a few of them start
to show up on Bluesky as well,

457
00:27:43,904 --> 00:27:50,224
and it's just horrifying. It's like this,
this, this is absolute junk, and it instantly—

458
00:27:50,244 --> 00:27:54,044
Which if it destroys the credibility
of the people using the bots, which

459
00:27:54,544 --> 00:27:58,144
is, is, is something people
just aren't understanding yet.

460
00:27:58,940 --> 00:28:04,620
[CLAIRE] I mean, it's no different, I suppose,
that as a project lead or a maintainer,

461
00:28:05,540 --> 00:28:10,280
just because a PR was written by another
engineer on the project, if you're the maintainer

462
00:28:10,320 --> 00:28:13,560
and you commit it and you accept
it, you have to stand by it.

463
00:28:13,920 --> 00:28:16,380
So in many ways, these agents are like

464
00:28:17,080 --> 00:28:21,960
the people submitting the code or the
employee or the intern, if you will.

465
00:28:22,760 --> 00:28:26,080
You still are responsible and accountable for it.

466
00:28:25,644 --> 00:28:29,904
[SIMON] Absolutely, yeah, it's the, the accountability
and the credibility are the two most important

467
00:28:30,004 --> 00:28:30,344
things.

468
00:28:30,624 --> 00:28:34,564
If you want to stay credible with your
co-workers, with the world at large, you can't

469
00:28:34,904 --> 00:28:40,884
be seen as just—there was a great term for
this—there's slop cannons, there's the, the word

470
00:28:40,964 --> 00:28:43,164
slop shows up in all sorts
of different ways around it.

471
00:28:44,204 --> 00:28:47,024
A slop proxy, I think was it. It's just.

472
00:28:47,140 --> 00:28:47,960
[CLAIRE] Oh.

473
00:28:47,924 --> 00:28:51,644
[SIMON] Copying and pasting in through exactly
what the AI said, and that adds no value at

474
00:28:51,744 --> 00:28:57,764
all. And my optimistic hope here
is I think this is a passing phase.

475
00:28:58,080 --> 00:28:58,600
[CLAIRE] I hope so.

476
00:28:59,164 --> 00:29:01,004
[SIMON] Because it's all so new.

477
00:29:01,274 --> 00:29:05,554
The fact that an AI can write you a decent
pull request has been—that's, again,

478
00:29:04,120 --> 00:29:04,340
[CLAIRE] Yeah.

479
00:29:06,044 --> 00:29:07,964
[SIMON] six months ago that
started being the case.

480
00:29:08,464 --> 00:29:12,764
And the friction is already starting to show up,
and people are beginning—it's becoming socially

481
00:29:12,844 --> 00:29:15,303
unacceptable to do that in certain circles.

482
00:29:15,764 --> 00:29:20,174
And I'm hoping that spreads because what I've
actually, something I've started doing recently is,

483
00:29:21,764 --> 00:29:29,294
so GitHub Issues supports the summary details
HTML element. So you can say less than summary,

484
00:29:29,844 --> 00:29:34,424
no, less than details greater than less than
summary greater than bit of text, and then

485
00:29:34,504 --> 00:29:37,164
splat in the rest of the stuff. And
it gives you a little collapsed,

486
00:29:38,074 --> 00:29:39,424
a little piece of collapsed text.

487
00:29:39,444 --> 00:29:43,164
So there's a little arrow and a single
line, and when you click the single line,

488
00:29:43,444 --> 00:29:44,024
it expands.

489
00:29:44,044 --> 00:29:47,904
And shows you everything else. I've started
using this for the AI pull requests.

490
00:29:48,224 --> 00:29:51,484
So if my agent wrote a very detailed pull request,

491
00:29:52,624 --> 00:29:56,004
I will make it available on the pull
request, but I will collapse it.

492
00:29:56,044 --> 00:29:59,154
So I will have a paragraph of text
that I wrote saying, I fixed this and

493
00:29:59,184 --> 00:30:04,454
this and this, and then I'll have a little
thing that says Claude 5 PR description.

494
00:30:04,744 --> 00:30:08,914
And if you click that, you'll get 20 paragraphs
of detail from Claude, which is useful

495
00:30:08,944 --> 00:30:13,744
if you want to see it, but it just
feels less pollute-y and less sloppy to

496
00:30:13,964 --> 00:30:16,784
hide that stuff by default
unless people opt into seeing it.

497
00:30:17,160 --> 00:30:20,860
[CLAIRE] Oh, that's a literal example of
having to double click into something.

498
00:30:21,040 --> 00:30:25,730
You know, that horrible, horrible phrase
that people use, but yeah, I like it.

499
00:30:29,180 --> 00:30:36,180
The 20 paragraphs, though, I do sometimes
find that AI-generated text can be too long.

500
00:30:36,624 --> 00:30:36,764
[SIMON] Yep.

501
00:30:36,840 --> 00:30:39,240
[CLAIRE] It can be too much.
It can be overwhelming.

502
00:30:39,420 --> 00:30:41,150
And it goes back to what you said,

503
00:30:41,760 --> 00:30:46,500
you need that human to figure out what
matters, or we need to use our LLM

504
00:30:46,520 --> 00:30:48,830
tools to get to the crux of what matters more.

505
00:30:49,212 --> 00:30:53,712
[SIMON] Honestly, like I said, I
do let the AI write a lot of my

506
00:30:54,212 --> 00:30:58,332
technical library documentation, but
I read every single line it wrote and

507
00:31:00,052 --> 00:31:04,092
I try to edit it not by editing it
myself, by saying to the agent, make

508
00:31:04,112 --> 00:31:08,092
that shorter. Don't mention that detail. Drop
that bit off. Split that into two bullet points.

509
00:31:08,432 --> 00:31:11,472
And that's something I found as useful
as a technique for code review as well.

510
00:31:11,552 --> 00:31:16,682
So occasionally you do need to review
a thousand lines of AI-generated code.

511
00:31:17,052 --> 00:31:19,722
It's built some kind of complex subsystem.

512
00:31:19,792 --> 00:31:21,742
You need to take responsibility,
so you have to review it.

513
00:31:21,972 --> 00:31:24,012
Reviewing a thousand lines of code is miserable.

514
00:31:24,652 --> 00:31:28,172
It's very, very easy for your eyes to
glaze over and you skip over the details.

515
00:31:28,652 --> 00:31:34,192
Something I found quite helpful is, I think
of it as a sort of aggressive nitpicking.

516
00:31:34,252 --> 00:31:38,532
Review, the kind of thing you would never
do to your coworker because it's really rude

517
00:31:38,572 --> 00:31:40,021
to go after your coworker and

518
00:31:40,692 --> 00:31:43,912
nitpick every single tiny detail
of the code that they've written.

519
00:31:43,932 --> 00:31:45,722
It's not rude to do that to an agent at all.

520
00:31:45,772 --> 00:31:51,112
So you can set yourself a goal to basically
force it to rewrite almost every single

521
00:31:51,152 --> 00:31:51,502
line.

522
00:31:52,652 --> 00:31:56,632
And it's the tiniest, tiniest little
things, like absolute nitpicking.

523
00:31:56,652 --> 00:31:59,862
But the goal isn't actually to improve
the code so much as to make sure that

524
00:31:59,912 --> 00:32:04,082
you've had to think about and transform
every bit of that code just so that you've

525
00:32:04,112 --> 00:32:05,312
paid attention to it.

526
00:32:05,332 --> 00:32:07,932
And I've done that for a few of these
larger changes, and I think it works

527
00:32:07,972 --> 00:32:11,432
pretty well. I come out of it at the
end, I definitely understand the code.

528
00:32:11,752 --> 00:32:15,122
I feel like I've got—I'm ready
to stake my credibility on that.

529
00:32:15,172 --> 00:32:17,977
I'm ready to say, no, this is, I have
reviewed this, even though it was a

530
00:32:17,977 --> 00:32:18,612
thousand lines.

531
00:32:19,612 --> 00:32:23,052
Made a bunch of little tiny changes
to it. I feel good about it.

532
00:32:23,060 --> 00:32:26,410
[CLAIRE] So you said a few minutes
ago that your gold standard with

533
00:32:26,950 --> 00:32:30,770
a thousand lines of code or whatever is,
could you explain it to someone else?

534
00:32:30,952 --> 00:32:31,292
[SIMON] Yes.

535
00:32:31,190 --> 00:32:36,670
[CLAIRE] But it sounds like the way you're
getting to that ability to explain it to someone

536
00:32:36,730 --> 00:32:42,370
else is perhaps this aggressive
nitpicking review that causes the rewrite.

537
00:32:42,380 --> 00:32:43,330
Are there other ways?

538
00:32:43,792 --> 00:32:48,892
[SIMON] I mean, you can just sit down and read
it really, really, really carefully. I just,

539
00:32:50,032 --> 00:32:54,252
I'm skeptical. I don't think I have the
ability to read a thousand lines of code

540
00:32:54,872 --> 00:32:59,052
and really come out at the end fully
confident that I understood the whole thing.

541
00:32:59,512 --> 00:33:02,132
I feel like I have to be
manipulating that code in some way.

542
00:33:02,412 --> 00:33:05,672
And sometimes I'll fire up, I use Python,
so I can fire up a Python interactive

543
00:33:05,732 --> 00:33:11,332
interpreter and try a few things interactively
there. That can help. But honestly,

544
00:33:11,912 --> 00:33:14,552
for those larger code blocks,
I think it really, the,

545
00:33:15,532 --> 00:33:19,732
the nitpicking review so far is the thing
I found that feels the most credible.

546
00:33:19,952 --> 00:33:24,092
It feels like I've really forced myself to
engage with the code because I'm actively trying

547
00:33:24,112 --> 00:33:25,332
to find reasons to change it.

548
00:33:28,650 --> 00:33:29,370
[CLAIRE] All right, so.

549
00:33:30,630 --> 00:33:32,550
You can see I've done a tiny bit of research here.

550
00:33:32,690 --> 00:33:36,730
I want to go back to, or go over
to another podcast that you were on

551
00:33:36,790 --> 00:33:40,650
recently, which was with Bryan Cantrill
and Adam Leventhal, Oxide and Friends,

552
00:33:40,852 --> 00:33:41,861
[SIMON] Oh, that was fun, yeah.

553
00:33:42,050 --> 00:33:45,030
[CLAIRE] who, you know, I
used to work with them at Sun.

554
00:33:45,110 --> 00:33:46,710
We were all in the kernel group together.

555
00:33:46,730 --> 00:33:50,930
Bryan was across the hall, Adam was down
the hall and around the corner, and so

556
00:33:50,940 --> 00:33:53,310
I've known them for decades, and they're awesome.

557
00:33:53,830 --> 00:33:58,910
But there was an example you used on that
podcast where you described something that had

558
00:33:58,920 --> 00:34:01,290
happened that day. You said, I...

559
00:34:02,570 --> 00:34:06,830
I think you, I don't know which LLM
you were working with, but you said, I

560
00:34:06,870 --> 00:34:10,610
gave it my main open source project and I
prompted it and said, do some experiments

561
00:34:10,630 --> 00:34:15,990
and try to make it faster. And I'm assuming
that's Datasette that you're talking about. Okay.

562
00:34:14,452 --> 00:34:15,492
[SIMON] Yeah, yeah, it.

563
00:34:16,070 --> 00:34:19,790
[CLAIRE] And you just checked in to see
the results and it had sped it up by

564
00:34:19,930 --> 00:34:20,710
36%.

565
00:34:21,292 --> 00:34:25,192
[SIMON] And you know what? I've not
even reviewed or landed that code.

566
00:34:25,252 --> 00:34:26,832
That is somewhere on my computer.

567
00:34:26,952 --> 00:34:31,732
I have a branch of Datasette that is
39% faster, and I just haven't got round

568
00:34:31,650 --> 00:34:34,870
[CLAIRE] That's exactly what I wanted to ask.

569
00:34:31,742 --> 00:34:33,152
[SIMON] to reviewing what it did yet.

570
00:34:35,290 --> 00:34:38,850
[CLAIRE] I wanted to know, and so maybe we can
talk about this theoretically then, since you

571
00:34:38,890 --> 00:34:42,430
haven't gotten to it yet. But
what are you going to do next?

572
00:34:42,750 --> 00:34:47,160
What do you have to do before you can
accept that 36% improvement change?

573
00:34:47,590 --> 00:34:51,790
To verify it, to QA, to review it, to make
sure there's no regressions, to document

574
00:34:50,602 --> 00:34:53,852
[SIMON] That is such a good question.

575
00:34:51,830 --> 00:34:51,990
[CLAIRE] it.

576
00:34:54,250 --> 00:34:54,770
I know.

577
00:34:57,872 --> 00:35:04,331
[SIMON] I think the reason I've not done it is
everything in software engineering is about trade-offs,

578
00:35:04,932 --> 00:35:07,432
and the number one trade-off is your time, right?

579
00:35:07,651 --> 00:35:12,332
This is what's so disruptive about coding
agents is a lot of people will tell you

580
00:35:12,392 --> 00:35:15,452
that it makes no sense at all to measure
productivity in terms of lines of code

581
00:35:15,472 --> 00:35:19,872
written. That's, that's, that's— and I'd
actually disagree with those people because

582
00:35:20,432 --> 00:35:23,632
there is this sort of hard
limit in the before times.

583
00:35:24,712 --> 00:35:28,232
A software engineer could produce a few
hundred lines of working code per day.

584
00:35:29,112 --> 00:35:33,982
And when I say working code, I mean a few
hundred lines of production-ready, and that's

585
00:35:34,052 --> 00:35:39,682
actually an incredibly good day if you produce
200 lines of working, debugged, production-level

586
00:35:39,812 --> 00:35:40,092
code.

587
00:35:40,932 --> 00:35:42,702
You can feel very, very good about yourself.

588
00:35:42,732 --> 00:35:46,422
Most days you'd produce 50 or 60 lines
of production-ready debugged code.

589
00:35:47,072 --> 00:35:51,512
If agents let you produce a thousand lines
of debugged code, that really is a very

590
00:35:51,552 --> 00:35:55,472
meaningful improvement, as long as that
code is of the same quality, right?

591
00:35:55,532 --> 00:35:59,152
It has to be high quality, it has to
be maintainable, it has to be tested,

592
00:35:59,192 --> 00:36:00,152
all of that kind of stuff.

593
00:36:00,492 --> 00:36:04,932
You can get to that point with agents,
but it takes a huge amount of skill

594
00:36:04,992 --> 00:36:09,502
and knowledge and experience and all of the,
this is what senior engineers are made of,

595
00:36:10,072 --> 00:36:10,802
is this ability.

596
00:36:11,552 --> 00:36:14,792
So on the basis of those trade-offs,
the problem is I've now got a branch of

597
00:36:14,832 --> 00:36:17,092
Datasette with a 39% performance improvement.

598
00:36:18,252 --> 00:36:21,312
I know that getting that
from where it is right now to

599
00:36:22,812 --> 00:36:27,972
Feeling confident, properly tested, QA'd, in the
project such that I can explain to other people

600
00:36:28,072 --> 00:36:29,452
is.

601
00:36:29,552 --> 00:36:33,782
Several hours to several
days of work, and I've not.

602
00:36:33,852 --> 00:36:35,912
Chosen to put that at the top of my stack yet.

603
00:36:36,822 --> 00:36:38,812
And at some point, I hopefully will.

604
00:36:38,832 --> 00:36:41,922
But it's a huge problem because
that's not the only one.

605
00:36:41,992 --> 00:36:46,772
I've got dozens of branches of my major open
source projects now with changes of that

606
00:36:46,812 --> 00:36:49,092
nature, oh, it's sped it up by 39% and so forth.

607
00:36:49,332 --> 00:36:54,312
And they all just sit there sort of going
stale because just because you can do

608
00:36:54,412 --> 00:36:55,452
this, just because you can

609
00:36:55,976 --> 00:37:00,295
point this agent and say, hey, make it faster,
doesn't mean that you're ready to commit

610
00:37:00,456 --> 00:37:04,816
to landing that code. With code that
you land, you have to feel like you're,

611
00:37:05,556 --> 00:37:08,696
on a major open source project, that's
a commitment for life. It's the puppy

612
00:37:10,056 --> 00:37:11,566
is for life, not just for Christmas thing.

613
00:37:12,056 --> 00:37:15,876
Am I going to be able to maintain
this code with these optimizations in?

614
00:37:15,956 --> 00:37:19,036
Yes, but only if I understand
them. So yeah, it's a real problem.

615
00:37:19,276 --> 00:37:21,766
I can, I could have, that was probably another...

616
00:37:21,766 --> 00:37:24,176
The shower one, right? I can spin
these things up in the shower.

617
00:37:24,656 --> 00:37:27,656
I learn something from them, but the gap between

618
00:37:28,476 --> 00:37:32,896
A very high quality prototype where all the
test pass and production software that I'm ready

619
00:37:32,916 --> 00:37:37,476
to stake my reputation on still
exists. And there's still a commitment.

620
00:37:37,486 --> 00:37:43,006
There's a decision I have to make to
commit my time and my sort of mental

621
00:37:43,036 --> 00:37:45,356
energy to getting these things into production.

622
00:37:49,320 --> 00:37:49,600
[CLAIRE] Wow.

623
00:37:50,476 --> 00:37:50,996
[SIMON] And you know what?

624
00:37:51,156 --> 00:37:54,016
This is another reason that I don't
think we're all going to get laid off.

625
00:37:54,516 --> 00:37:57,846
This is, well, because it turns out, as

626
00:37:58,556 --> 00:38:02,136
I can do way more work as a single
engineer than I could without agents.

627
00:38:02,756 --> 00:38:06,056
So you could argue, well, in that case,
why should a company have more than one

628
00:38:06,096 --> 00:38:07,996
engineer? Just have one engineer, buy them a

629
00:38:08,876 --> 00:38:11,456
Codex Max subscription and
stick them in the corner.

630
00:38:11,556 --> 00:38:14,896
And the answer, apart from the obvious bus
factor thing, like having a team of one

631
00:38:14,916 --> 00:38:21,386
is a very badly designed team, is that
the new limiting factor is mental.

632
00:38:22,136 --> 00:38:24,636
Capacity, it's cognitive capacity.

633
00:38:25,376 --> 00:38:29,256
And I can work a hundred times. I can
churn out code a hundred times faster.

634
00:38:29,556 --> 00:38:29,916
I can't.

635
00:38:30,716 --> 00:38:34,076
I don't have the cognitive capacity to
stay on top of 100 times the amount of

636
00:38:34,116 --> 00:38:38,696
code, so you still need a team of engineers
so you can load balance that cognitive

637
00:38:38,736 --> 00:38:41,216
capacity effectively across that team.

638
00:38:42,880 --> 00:38:44,720
[CLAIRE] I mean, I wonder if.

639
00:38:45,400 --> 00:38:51,440
The way in which your day-to-day work has
changed has caused you to change how you

640
00:38:51,520 --> 00:38:53,560
make trade-offs, how you do time management,

641
00:38:54,100 --> 00:38:57,620
how you do your priority setting,
and I would love for you to tell me

642
00:38:58,900 --> 00:39:00,400
what's working and what's not.

643
00:38:59,076 --> 00:39:02,496
[SIMON] This, and it's not just me, this is the—

644
00:39:03,996 --> 00:39:07,675
any development team that starts taking on
coding agents, I think this is the single most

645
00:39:07,756 --> 00:39:12,256
disruptive change, is that all of
that baked-in intuition that you have.

646
00:39:12,476 --> 00:39:15,236
I've got 25 years of intuition about
how long it takes to build a piece of

647
00:39:15,276 --> 00:39:17,316
software, and all of these knock-on

648
00:39:18,216 --> 00:39:22,496
intuitions from that, where I might look at
something and say, should I fix this bug?

649
00:39:23,156 --> 00:39:26,436
It only affects a tiny little
edge case. It'll take me a day.

650
00:39:26,876 --> 00:39:29,516
I shouldn't fix it. Let's learn to live with it.

651
00:39:29,616 --> 00:39:32,356
If that now takes me 10 minutes, I should fix it.

652
00:39:32,416 --> 00:39:36,496
If it takes me— if it takes an
agent an hour to get to a proof

653
00:39:36,536 --> 00:39:38,636
of concept, but I don't have
to monitor what it's doing,

654
00:39:39,116 --> 00:39:42,616
then suddenly all of these intuitions I
have about what takes a long time and what

655
00:39:42,656 --> 00:39:45,496
doesn't take a long time and what's
worth spending time on, all of—

656
00:39:45,536 --> 00:39:47,046
My intuition has kind of been shattered,

657
00:39:47,516 --> 00:39:52,896
which is quite upsetting because one of my
competitive advantages as a software engineer is 25

658
00:39:52,936 --> 00:39:57,076
years of intuition about how long things
take. All of that's up in the air now.

659
00:39:58,216 --> 00:40:03,696
It's one of the reasons I'm constantly trying
new experiments with agents. I love throwing,

660
00:40:04,256 --> 00:40:07,966
the task I threw it this morning to get my library
working against different database engines.

661
00:40:08,816 --> 00:40:10,076
I did that.

662
00:40:10,156 --> 00:40:14,976
Just out of curiosity, because I'd learned
something from that exercise, and it would help me

663
00:40:15,416 --> 00:40:18,886
build up a bit more of a mental
model of, okay, is that the scale of

664
00:40:18,956 --> 00:40:21,336
task that an agent can take on?
Can it do this kind of thing?

665
00:40:21,416 --> 00:40:22,576
How long does it take?

666
00:40:22,616 --> 00:40:24,686
How much of my effort do I have to invest in it?

667
00:40:25,186 --> 00:40:27,826
And the more of those experiments you
do, the better. I'm doing a lot of,

668
00:40:28,756 --> 00:40:31,056
I'm doing quite a bit of game
development at the moment.

669
00:40:31,356 --> 00:40:33,696
I've been putting up little games.

670
00:40:34,856 --> 00:40:36,788
Partly because it's a...

671
00:40:35,790 --> 00:40:38,020
[CLAIRE] Wait, are there pelicans in these games?

672
00:40:38,036 --> 00:40:41,836
[SIMON] Oh, of course, absolutely. And
actually, mostly more raccoons than pelicans.

673
00:40:41,976 --> 00:40:43,616
I like raccoons in my games, yeah.

674
00:40:42,140 --> 00:40:43,980
[CLAIRE] Really?

675
00:40:44,116 --> 00:40:48,216
[SIMON] And the reason I do the vibe coding
games thing is I know nothing about game

676
00:40:48,236 --> 00:40:51,136
development. I've never built a game in my life.

677
00:40:51,176 --> 00:40:54,596
So it's a great way to see what happens
when you point these tools at domains

678
00:40:54,606 --> 00:40:55,756
that you do not understand.

679
00:40:56,736 --> 00:41:01,766
And it's also really fun, and it's very
humbling because one of the things I've learned

680
00:41:01,796 --> 00:41:02,966
from this is that

681
00:41:03,616 --> 00:41:08,576
it's very easy right now with—any coding
agent can get you a thing that looks like

682
00:41:08,636 --> 00:41:09,036
a game.

683
00:41:09,536 --> 00:41:12,965
You can get from a zero state to
something that visually you look at it and

684
00:41:12,976 --> 00:41:15,626
go, Oh wow, that's a computer
game, very, very quickly.

685
00:41:16,316 --> 00:41:19,416
It's not going to be any fun.
Building a game that is fun

686
00:41:19,976 --> 00:41:25,446
is far beyond me and Claude and Codex and
all of these tools, because actually there's

687
00:41:25,536 --> 00:41:27,926
a reason game development is a skill, right?

688
00:41:27,936 --> 00:41:30,636
And it's not that it's difficult to
put the pixels in the right place.

689
00:41:30,676 --> 00:41:36,256
It's that designing a game loop that is rewarding
and entertains people and keeps people engaged

690
00:41:36,276 --> 00:41:41,376
and is just challenging enough, that is
incredibly difficult. And so I quite enjoy.

691
00:41:42,356 --> 00:41:46,366
How I can knock up these little— I built
a Command and Conquer variant with these

692
00:41:46,416 --> 00:41:47,756
drones flying around.

693
00:41:47,796 --> 00:41:52,176
The other day I was building a raccoon
heist game where a team of raccoons break

694
00:41:52,216 --> 00:41:55,556
into a museum and try and do heists together.

695
00:41:56,736 --> 00:42:02,456
They're garbage games. The Raccoon Heist
one looks really cool, where you can tell

696
00:42:03,036 --> 00:42:07,975
Claude Code or Codex to generate
textures for a 3D game, and they can use

697
00:42:08,476 --> 00:42:11,796
the OpenAI image generation
thing and actually generate

698
00:42:12,636 --> 00:42:15,796
assets that are good enough
for a naughty little prototype.

699
00:42:16,536 --> 00:42:19,556
And, but the game's junk,
you know, you play it, and

700
00:42:20,036 --> 00:42:23,346
the, the, the, the, I got to a case
where one of my raccoon heist games

701
00:42:23,736 --> 00:42:27,636
is fun for about one minute and 15
seconds, and then you get bored of it.

702
00:42:27,820 --> 00:42:31,380
[CLAIRE] That's very precise. I'm
taking you, you clocked it. You used a—

703
00:42:31,736 --> 00:42:35,116
[SIMON] By far the best result I've had
for one of these games. So much fun though.

704
00:42:35,596 --> 00:42:36,896
And also, to be honest.

705
00:42:37,696 --> 00:42:42,956
If you were to invest real time in one of
these game projects, actually iterate on

706
00:42:42,976 --> 00:42:46,656
it and playtest it yourself and think really
carefully about things, I bet you could build

707
00:42:46,696 --> 00:42:48,296
something that's genuinely fun.

708
00:42:48,376 --> 00:42:51,976
I've been doing these as little sort of
vibe-coded, not spending a huge amount of time

709
00:42:52,036 --> 00:42:53,436
just seeing what you can get from a prompt.

710
00:42:54,276 --> 00:42:58,066
But it's a fun way to learn more about
the capabilities of the models, and it's

711
00:42:58,116 --> 00:43:00,736
a good way to remind yourself
that just because you can

712
00:43:01,308 --> 00:43:05,028
get the 3D thing, the raccoon running around
the garden doesn't mean that you've got a

713
00:43:05,068 --> 00:43:05,448
game.

714
00:43:07,036 --> 00:43:10,146
[CLAIRE] Okay, so I want to go back to
the question about how it's changed your,

715
00:43:10,636 --> 00:43:13,416
how you prioritize, how you manage your time.

716
00:43:14,336 --> 00:43:18,246
My sense of you, and you tell me
if I'm wrong, is that you do a

717
00:43:18,296 --> 00:43:20,636
lot of experiments. You're very curious.

718
00:43:20,736 --> 00:43:24,916
You recognize that you have to go down
rabbit holes and rat holes in order to

719
00:43:25,016 --> 00:43:25,216
have—

720
00:43:26,236 --> 00:43:30,336
Unexpected learnings. Oh, some people hate the
word learnings. I don't know what to say instead.

721
00:43:30,376 --> 00:43:31,536
Unexpected lessons?

722
00:43:31,668 --> 00:43:32,488
[SIMON] Discoveries.

723
00:43:33,066 --> 00:43:35,976
[CLAIRE] Discoveries, unexpected
discoveries. That's so much better.

724
00:43:36,916 --> 00:43:39,976
And so my sense is you give yourself time.

725
00:43:40,796 --> 00:43:45,196
That's not regimentedly
disciplined scheduled, right?

726
00:43:46,018 --> 00:43:50,057
[SIMON] This is where it helps that I am
self-employed and I don't have a boss and

727
00:43:50,168 --> 00:43:51,528
I can do whatever the heck I want.

728
00:43:53,305 --> 00:43:53,996
[CLAIRE] I love that.

729
00:43:54,488 --> 00:43:55,518
[SIMON] I mean, but it's a very

730
00:43:55,998 --> 00:43:59,788
privileged position to be in, especially right
now when we've got all of this crazy stuff

731
00:43:59,828 --> 00:44:02,308
going on, and I can.

732
00:44:02,468 --> 00:44:04,048
I get to set my agenda.

733
00:44:04,188 --> 00:44:06,788
I get to decide at the beginning
of the day what I want to try and

734
00:44:06,808 --> 00:44:07,228
do.

735
00:44:07,688 --> 00:44:10,628
I will set myself goals, and by the end
of the day, I often haven't achieved

736
00:44:10,668 --> 00:44:12,558
those goals, but I've achieved
a bunch of other stuff.

737
00:44:12,936 --> 00:44:13,176
[CLAIRE] Okay.

738
00:44:13,608 --> 00:44:19,848
[SIMON] Partly, so January the 1st this year,
my New Year's resolution, every year I make the

739
00:44:19,888 --> 00:44:22,758
same resolution, which is do
less stuff and focus more.

740
00:44:23,368 --> 00:44:26,318
Pick the things that you really
want to get done and focus on those.

741
00:44:26,458 --> 00:44:28,628
This year, I set the opposite ambition.

742
00:44:28,748 --> 00:44:32,868
My ambition was to be more ambitious and
do more projects because of coding agents.

743
00:44:32,968 --> 00:44:34,468
I'm like, okay.

744
00:44:34,548 --> 00:44:35,948
These things exist.

745
00:44:36,308 --> 00:44:39,188
What about if I set an ambition
to do more stuff, and I've been

746
00:44:39,688 --> 00:44:43,708
sticking to that ambition, and it's
been really, really fun, and my focus

747
00:44:44,688 --> 00:44:47,328
is still a problem, but I'm
churning out a lot of cool stuff.

748
00:44:48,168 --> 00:44:50,008
So I'm getting away with it for the moment.

749
00:44:50,596 --> 00:44:54,156
[CLAIRE] Okay, but it sounds
like you actually do pause.

750
00:44:54,816 --> 00:44:56,666
Did I hear you right that you do pause every

751
00:44:57,456 --> 00:44:59,116
morning and set yourself goals for the day?

752
00:44:59,916 --> 00:45:03,516
And that sounds like something
you used to do even prior to LLMs.

753
00:45:03,798 --> 00:45:05,328
[SIMON] I've always tried to.

754
00:45:05,368 --> 00:45:10,018
It's the greatest— honestly, this is
my biggest challenge in my career, is

755
00:45:10,828 --> 00:45:15,128
because everything is interesting, and it's
so— and the problem with LLMs is that they make

756
00:45:15,168 --> 00:45:17,828
the cost of going down a
rabbit hole so much lower.

757
00:45:18,608 --> 00:45:23,388
This thing I built this morning, this multi-database
command line tool thing, that's a rabbit hole.

758
00:45:23,928 --> 00:45:24,488
I've spent—

759
00:45:25,368 --> 00:45:29,808
Five minutes prompting it and five minutes
looking at it, and, and, but so the amount

760
00:45:29,848 --> 00:45:31,568
of time I've spent in that rabbit hole is tiny.

761
00:45:31,888 --> 00:45:35,828
The amount of mental energy that's being
absorbed by it is difficult to measure.

762
00:45:36,248 --> 00:45:39,558
I've got this sort of thing in my head
now where I'm like, hey, there's this

763
00:45:39,588 --> 00:45:44,528
little rabbit hole which I haven't put any effort
into, but it's leading somewhere interesting.

764
00:45:44,568 --> 00:45:45,848
Do I get sucked down it?

765
00:45:45,908 --> 00:45:48,668
So, and imagine that with
half a dozen projects a day.

766
00:45:48,888 --> 00:45:50,738
You know, you just come up with, because the,

767
00:45:51,308 --> 00:45:54,568
and this is a really interesting
challenge for product design, right? So.

768
00:45:55,768 --> 00:45:57,418
The challenge with product design is that

769
00:45:58,228 --> 00:46:01,488
You need to decide exactly which set of
features to build such that you end up

770
00:46:01,508 --> 00:46:03,448
with a coherent product at the end of it.

771
00:46:04,268 --> 00:46:07,488
There's actually, there's a concept in
The Mythical Man-Month about this from—

772
00:46:10,268 --> 00:46:11,728
Oh, I'm gonna have to look that one up.

773
00:46:17,657 --> 00:46:20,868
I'll find it in a moment.
But yeah, so you need to have

774
00:46:22,908 --> 00:46:23,988
conceptual integrity.

775
00:46:23,998 --> 00:46:29,708
The Mythical Man-Month is a whole idea of conceptual
integrity, where well-designed software has

776
00:46:29,768 --> 00:46:32,248
that sort of integrity to it,
where there are no surprises in it.

777
00:46:32,308 --> 00:46:36,308
It covers exactly the right domain of things.
Everything fits together and makes sense.

778
00:46:36,948 --> 00:46:39,868
That is so much harder with coding
agents, where you can have an idea for a

779
00:46:39,948 --> 00:46:44,508
feature, and you run a prompt, and five
minutes later now you've got the feature, and

780
00:46:44,548 --> 00:46:50,168
so your software grows little weird
bumps in funny different directions.

781
00:46:48,636 --> 00:46:53,716
[CLAIRE] You know my analogy for that?
The Winchester Mystery House in San Jose.

782
00:46:52,208 --> 00:46:54,508
[SIMON] Exactly, exactly, yes.

783
00:46:54,346 --> 00:46:57,356
[CLAIRE] So for anyone who's never
heard of it, it's this house that

784
00:46:57,936 --> 00:47:02,936
grew little by little by little,
and it's kind of just a mess. So.

785
00:47:01,688 --> 00:47:03,988
[SIMON] Wonderful to visit.

786
00:47:04,018 --> 00:47:08,928
It's got 140 rooms, I think, because
the woman who built it was the widow.

787
00:47:09,408 --> 00:47:12,838
She was the widow of the guy who
invented the Winchester rifle,

788
00:47:13,428 --> 00:47:17,848
and her psychic told her that she would be
haunted by the ghosts of everyone killed

789
00:47:17,868 --> 00:47:21,608
with that rifle unless she kept
on building her house forever.

790
00:47:22,608 --> 00:47:26,388
So she built her house forever. So for
40 years, she kept on adding new rooms.

791
00:47:26,668 --> 00:47:31,028
That's exactly the problem with coding agents
and software, is that it's very easy to keep

792
00:47:31,068 --> 00:47:34,228
on adding new rooms because the cost of
adding those rooms is so much cheaper.

793
00:47:34,848 --> 00:47:38,188
But what you end up with is a piece of
software, the conceptual integrity falls apart,

794
00:47:38,428 --> 00:47:40,748
and then it's harder to
make decisions about it. And

795
00:47:41,708 --> 00:47:44,888
that's, it's all of this stuff, it just
keeps on coming back to discipline.

796
00:47:45,548 --> 00:47:47,228
You have to have—

797
00:47:47,328 --> 00:47:51,188
Way more discipline, because it used to be
that the discipline was enforced on you by

798
00:47:51,248 --> 00:47:52,528
the amount of time it took.

799
00:47:52,728 --> 00:47:55,528
You could come up with an idea for a
crazy feature and think, yeah, but that

800
00:47:55,548 --> 00:47:57,938
would take me a week, and—

801
00:47:58,008 --> 00:48:01,838
Yeah, I cannot justify spending a week
building this thing, so I'll forget about that.

802
00:48:01,888 --> 00:48:06,098
If it takes you an hour, it's so much
easier to justify, oh, it's just, you

803
00:48:06,128 --> 00:48:08,008
know, just seeing how that works out.

804
00:48:08,028 --> 00:48:10,428
And now you've got a piece of, now
you've got an additional feature.

805
00:48:11,488 --> 00:48:14,158
And so one thing you have to do is
you have to learn to throw things

806
00:48:14,208 --> 00:48:19,708
away, which is another thing where, in a
world where a good day of work produces

807
00:48:19,748 --> 00:48:22,888
a couple of hundred lines of code, throwing
away a couple of hundred lines of code

808
00:48:22,908 --> 00:48:24,048
is throwing away a day's work.

809
00:48:25,388 --> 00:48:29,148
There's a very strong incentive not
to waste the effort you've put in.

810
00:48:29,768 --> 00:48:32,408
If the few hundred lines of code was
knocked out by an agent in the corner,

811
00:48:33,808 --> 00:48:35,028
it's entirely disposable.

812
00:48:35,068 --> 00:48:39,468
We live in a world of where code has
gone from the most valuable asset to

813
00:48:39,508 --> 00:48:41,738
almost the least valuable asset, which is—

814
00:48:41,716 --> 00:48:44,036
[CLAIRE] Yeah, and you don't
want to end up like a pack rat.

815
00:48:44,356 --> 00:48:45,296
You don't want to end up like

816
00:48:45,856 --> 00:48:49,486
a hoarder in a house full of stuff, stuff
that you're not willing to throw away,

817
00:48:49,616 --> 00:48:49,876
right?

818
00:48:50,328 --> 00:48:53,168
[SIMON] Well, so I'm a
total hoarder on that front.

819
00:48:53,868 --> 00:48:57,688
What I've been doing, I've got certain
projects which are my hoarding projects.

820
00:48:57,998 --> 00:49:03,528
So my favorite one of those is I've got a
GitHub repository just called Tools, T-O-O-L-S,

821
00:49:03,608 --> 00:49:07,428
and it's got 240 HTML pages in it.

822
00:49:07,728 --> 00:49:11,688
And each of those 240 things is a little
tool that's entirely self-contained.

823
00:49:11,708 --> 00:49:17,632
It's HTML, JavaScript, and CSS, and it gets
deployed to my tools.simonwillison.net website,

824
00:49:18,132 --> 00:49:24,672
and that's the whole thing. And it's wonderful
because anything, that's where my hoarding happens.

825
00:49:24,772 --> 00:49:28,352
Any idea I have for a piece of software
that could turn into a single page

826
00:49:28,372 --> 00:49:30,772
of HTML, I'll vibe code it up.

827
00:49:29,886 --> 00:49:36,646
[CLAIRE] But that's structured hoarding. That's
good hoarding. That's useful hoarding. That's not,

828
00:49:33,392 --> 00:49:35,022
[SIMON] It is kind of good, yeah.

829
00:49:37,646 --> 00:49:39,736
[CLAIRE] it sounded like
what you were describing was

830
00:49:40,406 --> 00:49:43,476
code that had been created
that wasn't going to get used,

831
00:49:43,926 --> 00:49:47,986
that wasn't good enough, didn't meet the standards,
or didn't have that conceptual integrity or

832
00:49:48,026 --> 00:49:52,066
whatever. And so, but you
don't want to throw it away.

833
00:49:51,052 --> 00:49:51,312
[SIMON] I don't know.

834
00:49:51,372 --> 00:49:55,732
I think my tools thing, the only conceptual
integrity to that is that they're all things

835
00:49:55,772 --> 00:49:59,612
that run in a browser. That's it. That's
the theme. And it's a release valve.

836
00:50:00,012 --> 00:50:04,562
If I have an idea for some tiny little,
pointless, stupid whatever it is,

837
00:50:05,212 --> 00:50:06,902
I can knock it up as a tool and
I'll stick it in with the other

838
00:50:07,072 --> 00:50:09,552
240, and it's not going to cause any damage.

839
00:50:10,092 --> 00:50:14,552
It's not going to corrupt any of my project
outside of that one terrifying repository full

840
00:50:14,612 --> 00:50:15,572
of weird experiments.

841
00:50:16,212 --> 00:50:19,552
And I feel like that's quite a useful
thing to do, is to have those release

842
00:50:19,612 --> 00:50:22,402
valves. Okay, because I don't
want to throw these things away.

843
00:50:23,072 --> 00:50:26,652
But really, they just need to live in a GitHub
repository somewhere where they're, where I

844
00:50:26,692 --> 00:50:27,642
never have to think about them again.

845
00:50:27,902 --> 00:50:30,672
And if I do think about them again,
you know, and then I'll go back to

846
00:50:30,692 --> 00:50:33,042
a tool from a year and a half ago
and I'll add a new feature that

847
00:50:33,042 --> 00:50:34,212
I need, and it's—

848
00:50:35,072 --> 00:50:40,772
It's very well isolated. All of that
crazy vibe coding weird stuff can live in

849
00:50:41,232 --> 00:50:44,372
my junk drawer, but it doesn't
impact the rest of my project.

850
00:50:44,646 --> 00:50:48,326
[CLAIRE] You know, one of the things, I
have this concept, I didn't coin the term,

851
00:50:48,926 --> 00:50:49,946
of a cutting room floor.

852
00:50:50,166 --> 00:50:55,686
And when I'm writing, sometimes I need to
make something better, and I'm not able to

853
00:50:55,746 --> 00:50:59,886
edit the paragraph, the thing,
the chapter, and make it better.

854
00:50:59,986 --> 00:51:04,076
In place. I have to put the
thing in the cutting room floor,

855
00:51:04,586 --> 00:51:05,946
and then I can edit it.

856
00:51:05,986 --> 00:51:10,486
But I need to save that copy just
in case I want to revert to it,

857
00:51:10,526 --> 00:51:11,366
or just in case

858
00:51:12,406 --> 00:51:16,866
I need to go back, or I don't know,
my brain isn't free to create the

859
00:51:16,946 --> 00:51:20,426
next version unless I can revert.

860
00:51:19,332 --> 00:51:23,122
[SIMON] And this is the same because that
paragraph of text represents real work.

861
00:51:23,212 --> 00:51:26,912
That was an investment, 15 minutes or half an hour

862
00:51:27,622 --> 00:51:30,792
of effort that you put into that.
So throwing it away is difficult.

863
00:51:30,932 --> 00:51:33,092
Yeah, I like that. I might have to

864
00:51:34,092 --> 00:51:35,782
borrow that for some of my own writing projects.

865
00:51:36,255 --> 00:51:39,106
[CLAIRE] Well, it's also that I put them
side by side then, and I look at them

866
00:51:39,126 --> 00:51:40,186
and I'm able to compare them.

867
00:51:40,226 --> 00:51:43,296
But if I just make my edits in place,
then I can't compare them easily.

868
00:51:44,072 --> 00:51:45,892
[SIMON] Yeah, yeah, that makes sense.

869
00:51:47,286 --> 00:51:52,856
[CLAIRE] Okay, so challenge for product design is how
you started before you got into conceptual integrity

870
00:51:53,246 --> 00:51:54,806
for the concept in The Mythical Man-Month.

871
00:51:54,886 --> 00:51:59,846
If you had to summarize the challenge for
product design right now with LLMs, it is.

872
00:51:57,172 --> 00:52:02,592
[SIMON] Features are cheap. That doesn't
mean that you should build them all.

873
00:52:02,732 --> 00:52:08,552
That means that the editorial step becomes
even more important because it used to be that

874
00:52:08,612 --> 00:52:11,932
the big forcing factor was
features take a long time to build.

875
00:52:12,552 --> 00:52:17,112
As a result, it's easy to justify then
prioritizing just the most important things.

876
00:52:17,172 --> 00:52:19,241
They don't take a long time to build anymore.

877
00:52:19,252 --> 00:52:22,312
That means it's very tempting, if you don't
have the discipline, you can end up with

878
00:52:22,332 --> 00:52:23,432
a Winchester Mystery House.

879
00:52:24,746 --> 00:52:28,026
[CLAIRE] And you don't want to end up with
a Winchester Mystery House, I think is

880
00:52:28,546 --> 00:52:29,606
the moral of the story, right?

881
00:52:29,232 --> 00:52:31,332
[SIMON] I mean, I, I kind
of do, it's a great house,

882
00:52:31,992 --> 00:52:34,732
but yeah, I think in, in this particular
case, you, you do not want to end

883
00:52:34,792 --> 00:52:35,392
up one of those.

884
00:52:36,306 --> 00:52:41,426
[CLAIRE] Okay, so one of the things I'm curious
about is how you interact with the LLMs.

885
00:52:41,496 --> 00:52:44,686
And you gave your example in the very
beginning of the episode about being in the

886
00:52:44,746 --> 00:52:48,546
shower, and in that case, you don't have
voice hooked up to your phone, and so

887
00:52:48,746 --> 00:52:54,016
you actually typed in your
two-paragraph request to the agent. But

888
00:52:54,546 --> 00:52:58,906
I know, my son uses Wispr [Flow] all
the time, and he talks to his agents

889
00:52:58,926 --> 00:53:05,626
and things like that as dictating requirements.
It's a completely different way to spec

890
00:53:06,406 --> 00:53:09,276
what you want to have done,
using voice and not typing.

891
00:53:07,872 --> 00:53:09,872
[SIMON] Yes.

892
00:53:09,726 --> 00:53:11,626
[CLAIRE] And when you're
typing, when I type at least,

893
00:53:12,116 --> 00:53:16,636
I back up, I correct, I clarify, I
rewrite, I'm making all these changes.

894
00:53:16,646 --> 00:53:21,116
But voice is like stream of
consciousness almost. So I'm curious.

895
00:53:21,226 --> 00:53:25,196
How do you use voice? What tools
do you use? Is it as effective as

896
00:53:26,026 --> 00:53:27,026
typing for you?

897
00:53:28,066 --> 00:53:28,666
Tell me about it.

898
00:53:28,892 --> 00:53:30,932
[SIMON] So, my best, so

899
00:53:31,472 --> 00:53:34,802
for voice, I do all, I don't like
talking to my, I talk to my phone,

900
00:53:34,872 --> 00:53:35,852
I don't talk to my laptop.

901
00:53:36,012 --> 00:53:39,032
And I should probably figure out a way
to talk to my laptop at some point.

902
00:53:39,966 --> 00:53:42,696
[CLAIRE] Wait, you talked to your phone, but
you didn't talk to your phone this morning in

903
00:53:42,726 --> 00:53:43,206
the shower.

904
00:53:43,352 --> 00:53:48,132
[SIMON] I didn't, and that's purely because
I haven't figured out how to do that.

905
00:53:48,172 --> 00:53:54,312
Well, also because in that particular case,
I was typing in specific, like ~/dev/sqlite-

906
00:53:55,052 --> 00:53:56,612
and that kind of thing. And, but,

907
00:53:57,592 --> 00:54:03,592
so my favorite way at the moment to talk
to these things is ChatGPT iPhone app

908
00:54:04,132 --> 00:54:07,412
with the new advanced voice mode
that they launched a month ago.

909
00:54:07,432 --> 00:54:11,812
I think they called it GPT Live, and
it's a very, very good voice model.

910
00:54:11,892 --> 00:54:17,112
It's like you can interrupt it while it's
talking. It feels very natural to talk to.

911
00:54:17,132 --> 00:54:20,792
And the most important thing about that
model is their previous voice model

912
00:54:21,352 --> 00:54:25,272
was based off of GPT-4o, and it was
like two years out of date, and it

913
00:54:25,332 --> 00:54:26,632
just wasn't very bright.

914
00:54:27,462 --> 00:54:32,192
And the new voice model actually has the
ability to prompt a real, a bigger model

915
00:54:32,232 --> 00:54:32,902
in the background.

916
00:54:33,232 --> 00:54:36,952
So sometimes it'll say to you, Oh, let
me think about that, and that means it's

917
00:54:37,032 --> 00:54:39,272
actually running it through a
better model to get a better answer.

918
00:54:39,672 --> 00:54:42,812
So it's a much better sort of,
much, much higher quality baseline.

919
00:54:44,132 --> 00:54:48,646
So what I've started doing is I will
fire up my phone, I'll fire up Voice

920
00:54:48,646 --> 00:54:52,662
mode, I'll go on a walk with the
dog with an AirPod in, and I will

921
00:54:52,732 --> 00:54:56,572
talk through an idea for a project
with that, with it on the phone.

922
00:54:56,652 --> 00:54:59,792
So I'll say, hey, I want to
solve this particular problem.

923
00:55:01,232 --> 00:55:03,352
I forgot, I was messing around with

924
00:55:04,032 --> 00:55:06,892
that perennial problem of how
do you change, how do you store

925
00:55:07,432 --> 00:55:11,332
text revisions in a database,
right? You've got an article,

926
00:55:11,812 --> 00:55:14,372
and you want to, every time someone edits
the article, you want to store the old

927
00:55:14,392 --> 00:55:16,822
version so that you can see diffs
and all of that kind of thing.

928
00:55:17,352 --> 00:55:20,392
And I've tried a whole bunch of
ways of doing this in the past.

929
00:55:20,432 --> 00:55:24,232
For this particular experiment, I thought, hang
on, what if we— compression algorithms work really

930
00:55:24,272 --> 00:55:26,392
well, and SQLite has a blob column.

931
00:55:26,792 --> 00:55:30,452
What about if we store every
revision in a big JSON array

932
00:55:31,052 --> 00:55:35,412
and then run zstandard compression on that
to squish it down to a blob column and

933
00:55:35,492 --> 00:55:38,882
stick it in the database that way? That
would be an interesting thing to try out.

934
00:55:39,922 --> 00:55:41,732
So on this walk with the dog,

935
00:55:42,372 --> 00:55:46,852
I described my intended scheme to the
chat model, and it talked back to me, and

936
00:55:46,892 --> 00:55:48,852
we got to a point. And then

937
00:55:49,392 --> 00:55:52,822
I turned off the voice mode, and I typed into the

938
00:55:53,772 --> 00:55:57,732
app, Build me a prototype with your Python
tool, because at the moment the voice mode

939
00:55:58,052 --> 00:56:03,672
doesn't have access to the Python tool,
but the text mode does. And so we had

940
00:56:04,452 --> 00:56:10,292
our voice conversation was already in the
context, and I fired up GPT-5.6 Pro, which is

941
00:56:10,392 --> 00:56:13,792
very effective, and I told it,
Build a prototype, and it did.

942
00:56:14,172 --> 00:56:17,452
That was a project where
it was entirely me having a

943
00:56:18,192 --> 00:56:22,022
two-way voice conversation with the
model to derive the specification.

944
00:56:22,692 --> 00:56:26,412
And then I typed, use your Python tool
and build it, and it built it, and

945
00:56:26,492 --> 00:56:30,452
I got working software out of the end
of it. And that was very effective.

946
00:56:31,876 --> 00:56:33,736
[CLAIRE] I like it. I'm gonna try that.

947
00:56:33,472 --> 00:56:37,572
[SIMON] 38 minutes to build the
software as well, because 5.6 Pro

948
00:56:38,072 --> 00:56:39,912
will burn a lot of tokens.

949
00:56:40,732 --> 00:56:44,632
But yeah, that one is on my
blog for the 9th of August. I've

950
00:56:45,532 --> 00:56:47,612
actually got the transcript of what I said to it,

951
00:56:48,272 --> 00:56:50,632
because you can copy and paste that out as well.

952
00:56:50,956 --> 00:56:53,876
[CLAIRE] I love it. Okay, I'll
link to that in the show notes.

953
00:56:53,916 --> 00:56:56,636
I'll try to, you've mentioned lots of
things that I'll try to make sure we

954
00:56:57,276 --> 00:56:58,396
link to in the show notes.

955
00:57:00,956 --> 00:57:04,376
I'm giving a talk in New York
City at the end of September.

956
00:57:04,916 --> 00:57:05,996
That's a new talk for me.

957
00:57:07,736 --> 00:57:12,676
And it's about replication, and it's supposed
to be a beginner's guide to Postgres.

958
00:57:13,236 --> 00:57:15,916
The event is called Postgres
Summit US, which is kind of

959
00:57:16,416 --> 00:57:20,036
a renamed event from what was
PGConf New York City in past years.

960
00:57:20,536 --> 00:57:24,356
And it's a beginner's guide to
replication in Postgres. And

961
00:57:25,276 --> 00:57:29,916
one of the things I try to do in my
beginner talks in particular is give

962
00:57:29,926 --> 00:57:35,416
people analogies, things that fit
within their existing mental model.

963
00:57:35,456 --> 00:57:39,916
And obviously, a Postgres expert is not
going to attend my talk unless they're like a

964
00:57:39,936 --> 00:57:43,536
friend of mine, and they just
want to see me give a talk. So

965
00:57:44,086 --> 00:57:49,296
I'm expecting people come who need that beginner's
guide, and I'm really, really curious, just to

966
00:57:49,356 --> 00:57:51,316
take advantage of the fact
that we're talking today.

967
00:57:52,596 --> 00:57:59,056
What analogies, what explanations you would give
to people who are trying to understand the various

968
00:57:59,096 --> 00:58:02,045
many flavors of replication in
Postgres for the first time?

969
00:58:02,612 --> 00:58:05,192
[SIMON] Oh wow.

970
00:58:06,636 --> 00:58:09,616
[CLAIRE] Is that, is that something
that's in your wheelhouse at all?

971
00:58:14,212 --> 00:58:18,432
[SIMON] My understanding of Postgres replication, the
most interesting difference, it's the statement-based

972
00:58:18,492 --> 00:58:21,592
versus row-based. Is that accurate?

973
00:58:26,416 --> 00:58:31,436
[CLAIRE] When you look at the terminology that
gets used for Postgres replication, and I'm still,

974
00:58:32,136 --> 00:58:35,236
you know, the reason I'm asking is
I'm still doing my research because

975
00:58:37,656 --> 00:58:42,986
I, you know, don't have the talk created yet, but
there's synchronous, there's asynchronous, there's

976
00:58:44,176 --> 00:58:47,456
different names, there's physical replication,

977
00:58:48,636 --> 00:58:52,896
and so there's, there's, I feel like
it's a bit of alphabet soup almost.

978
00:58:54,492 --> 00:58:58,001
[SIMON] I mean, I don't know about analogies, but
I feel like the thing that's always interested

979
00:58:58,032 --> 00:58:59,432
me most with replication is

980
00:58:59,952 --> 00:59:05,432
how long does it take to, if you say update
articles set is published equals true

981
00:59:05,532 --> 00:59:09,232
across 10,000 articles,
does that result in a sync?

982
00:59:09,292 --> 00:59:12,752
Is that quick to send to the replicas
because it just sends that update, or is

983
00:59:12,792 --> 00:59:17,532
it slow because it has to modify 10,000
articles and then replicate all 10,000 of those

984
00:59:17,592 --> 00:59:21,312
in a sequence? Because that
makes so much of a difference to—

985
00:59:21,412 --> 00:59:27,352
All sorts of operational concerns around
this. I've worked at companies where

986
00:59:27,432 --> 00:59:31,872
You just have to avoid doing things like that
at all costs, because the infrastructure cannot

987
00:59:31,912 --> 00:59:36,092
handle 10 million rows all needing to be
schlepped out to all of the different replicas.

988
00:59:36,982 --> 00:59:39,122
And then you have to start thinking in
terms of, okay, well, we'll batch it, we'll

989
00:59:39,132 --> 00:59:41,812
do 100 at a time and all of that sort of stuff.

990
00:59:41,852 --> 00:59:46,092
But yeah, maybe because I feel like the biggest
challenges I've always found in replication are

991
00:59:46,432 --> 00:59:48,122
the operational edge cases, right?

992
00:59:48,152 --> 00:59:52,392
It's what are the cases where this
is going to break in weird ways.

993
00:59:52,432 --> 00:59:57,872
Certainly with MySQL replication, the challenge
of adding new columns, like schema updates

994
00:59:58,332 --> 00:59:59,732
in replicated MySQL has

995
01:00:00,612 --> 01:00:05,412
been so difficult that I've worked at companies
where they will avoid adding new columns to

996
01:00:05,472 --> 01:00:08,192
the main tables because it's just too hard.

997
01:00:07,396 --> 01:00:08,956
[CLAIRE] Really.

998
01:00:10,552 --> 01:00:13,812
[SIMON] I've seen projects that put data
in Redis because it was too hard to add a

999
01:00:13,892 --> 01:00:17,932
new column to a MySQL table, and
that always made me so upset.

1000
01:00:20,672 --> 01:00:23,712
That's such a great way to
take on extra technical debt.

1001
01:00:24,272 --> 01:00:28,462
But yeah, I don't know about analogies, but I
definitely feel like the operational concerns are

1002
01:00:26,996 --> 01:00:31,316
[CLAIRE] I've got a month and
a half. I will figure it out.

1003
01:00:28,512 --> 01:00:28,972
[SIMON] things I find—

1004
01:00:31,336 --> 01:00:36,256
[CLAIRE] All right, switching back to AI
questions. One of the things I'm curious about is,

1005
01:00:36,796 --> 01:00:43,556
obviously, you had decades of development experience
under your belt before LLMs hit and you started

1006
01:00:43,636 --> 01:00:44,986
on this adventure that you're on.

1007
01:00:46,876 --> 01:00:52,566
What's your take on which of the skills that you'd
already built, that you'd already strengthened,

1008
01:00:53,196 --> 01:00:56,856
are benefiting you the most
personally in your work with LLMs?

1009
01:00:56,712 --> 01:01:00,392
[SIMON] Weirdly, one of them
is engineering management.

1010
01:01:01,102 --> 01:01:04,912
I've been an engineering manager, and I've been
an engineering lead, and I've coordinated large

1011
01:01:04,932 --> 01:01:08,152
software projects across teams of people.

1012
01:01:08,252 --> 01:01:09,502
And

1013
01:01:09,732 --> 01:01:12,332
I hate anthropomorphizing agents,

1014
01:01:12,792 --> 01:01:17,622
but it certainly is the case that having that
experience in managing teams of people does

1015
01:01:17,732 --> 01:01:20,282
help with managing agents, partly because.

1016
01:01:21,182 --> 01:01:23,242
It means that you're better at breaking,

1017
01:01:23,942 --> 01:01:26,482
looking at the large problem and saying, okay,
here's how we can break this into smaller

1018
01:01:26,522 --> 01:01:30,622
chunks that different people can work on. And
you're much better at communicating clearly.

1019
01:01:31,002 --> 01:01:36,082
The art of dealing with LLMs is always,
forget about fancy prompting tricks.

1020
01:01:36,082 --> 01:01:37,602
It's just clear communication.

1021
01:01:37,662 --> 01:01:40,962
You have to be able to express very
clearly, here is the thing that needs to

1022
01:01:40,982 --> 01:01:44,132
be done, and figure out, okay, and here
are the bits of information you will need

1023
01:01:44,162 --> 01:01:48,962
to get those things done. So having that, having
experience with that has helped enormously.

1024
01:01:49,302 --> 01:01:52,562
And I feel like that pattern
is playing out elsewhere.

1025
01:01:52,642 --> 01:01:56,402
I keep on, the people I know who are
having the best time with agents tends

1026
01:01:56,482 --> 01:02:01,552
to be people who've done engineering, they're
senior engineers who've done engineering management

1027
01:02:02,142 --> 01:02:05,802
work of some sort. That does
seem to map very closely.

1028
01:02:05,882 --> 01:02:10,562
Having great success with agents. I've noticed
something that I've been really enjoying observe is

1029
01:02:11,182 --> 01:02:17,502
Anthropic, the company, keep on
hiring CTOs and startup founders

1030
01:02:18,182 --> 01:02:20,152
to be individual contributors at Anthropic.

1031
01:02:20,852 --> 01:02:25,722
I know quite a few people who have been
the CTO of a large organization, and

1032
01:02:25,761 --> 01:02:27,522
they went to work at Anthropic, and now they're an

1033
01:02:28,622 --> 01:02:31,042
engineer at Anthropic, and
they're having an amazing time

1034
01:02:31,962 --> 01:02:36,962
because so much of that experience they have from
leading large, complicated engineering teams.

1035
01:02:38,222 --> 01:02:43,762
Turns out to be applicable to managing
these agent-driven projects as well.

1036
01:02:44,472 --> 01:02:48,582
So definitely, some level of engineering
management does seem to help a lot.

1037
01:02:49,942 --> 01:02:54,562
The other thing, the thing that I think is
particularly important today, as of maybe just

1038
01:02:54,602 --> 01:02:59,282
two months ago, the Claude
Fable and GPT-5.6 era of models.

1039
01:03:00,222 --> 01:03:04,082
If you can break a problem down into a

1040
01:03:04,162 --> 01:03:09,022
Clearly defined goal that the
agent can demonstrate it's got to.

1041
01:03:09,802 --> 01:03:13,222
If you can take a problem and say, okay,
this problem will be solved when this

1042
01:03:13,242 --> 01:03:18,702
particular thing is true, or when these tests
pass or whatever, it's honestly extraordinary

1043
01:03:19,342 --> 01:03:23,162
what the agents can get done. Because
they're basically brute force engines.

1044
01:03:23,202 --> 01:03:27,722
They can brute force a problem
until they hit the success criteria.

1045
01:03:27,762 --> 01:03:31,862
If you can define that success criteria,
you can get amazing results out of them.

1046
01:03:31,882 --> 01:03:34,482
And the way this has been playing out the
most, obviously, recently is all of these

1047
01:03:34,522 --> 01:03:35,522
security incidents.

1048
01:03:36,362 --> 01:03:42,222
Agents are very, very, very good at finding
security vulnerabilities because that's an extremely

1049
01:03:42,231 --> 01:03:43,722
easy goal to define, right?

1050
01:03:43,742 --> 01:03:47,112
The goal is get at this data that
you're not supposed to be able to get

1051
01:03:47,182 --> 01:03:48,082
to

1052
01:03:48,182 --> 01:03:49,262
by

1053
01:03:49,342 --> 01:03:52,791
figuring out the vulnerabilities and creating
exploits for vulnerabilities and so forth, and they

1054
01:03:52,862 --> 01:03:57,332
can do this really, really,
really well, worryingly well.

1055
01:03:57,342 --> 01:04:00,682
But it's exactly the same kind of
thing as an ambitious software project.

1056
01:04:00,882 --> 01:04:01,712
If you can say,

1057
01:04:02,212 --> 01:04:05,822
I need all of the, I need this
conformance suite of tests to pass.

1058
01:04:07,202 --> 01:04:09,062
And you've got an existing suite of tests.

1059
01:04:09,362 --> 01:04:11,302
Go and build it in Go or go and build it in Rust.

1060
01:04:11,402 --> 01:04:14,522
They can go ahead and they can do that.
So that's an important one, I think,

1061
01:04:15,182 --> 01:04:18,902
being able to define problems in terms of a goal

1062
01:04:19,682 --> 01:04:21,782
that the agent can test itself against.

1063
01:04:23,686 --> 01:04:28,466
[CLAIRE] Yeah, and I mean, what you're
describing too is not just what makes a good CTO,

1064
01:04:28,566 --> 01:04:31,386
what makes a good technical lead.
It's also what makes a good PM.

1065
01:04:31,776 --> 01:04:33,146
It's what makes a good manager.

1066
01:04:33,186 --> 01:04:38,556
It's that ability to get to the crux
of the issue, to take a problem and

1067
01:04:38,666 --> 01:04:42,126
really know what is the problem we're
trying to solve. How do we get there?

1068
01:04:43,166 --> 01:04:43,686
It's just—

1069
01:04:44,242 --> 01:04:47,842
[SIMON] And you know, there's one group of
specialists who I really hope are having a great

1070
01:04:47,962 --> 01:04:53,722
time right now, and that's QA
people, like QA and testers.

1071
01:04:53,882 --> 01:04:58,262
I, I feel like in Silicon Valley, sort
of five to ten years ago, having a

1072
01:04:58,422 --> 01:05:02,252
QA team went a bit out of fashion. There
were a lot of companies that, that.

1073
01:05:01,926 --> 01:05:03,506
[CLAIRE] DevOps, right, or.

1074
01:05:03,312 --> 01:05:06,262
[SIMON] Well, no, and more like companies that
are saying, you know what, we have our separate

1075
01:05:06,272 --> 01:05:08,082
testing teams. Let's get rid of them.

1076
01:05:08,242 --> 01:05:10,192
Tell the engineers to write,
to test their own software.

1077
01:05:10,242 --> 01:05:12,382
It's better for the engineers to
take responsibility for that. And

1078
01:05:12,962 --> 01:05:14,062
there's an aspect of truth to that.

1079
01:05:14,082 --> 01:05:17,632
But at the same time, it missed
the fact that QA is a skill.

1080
01:05:18,122 --> 01:05:22,782
Being able to find the edge cases in pieces
of software, find the things that break

1081
01:05:23,422 --> 01:05:27,462
consistently and methodically figure
out where those edge cases are.

1082
01:05:27,472 --> 01:05:29,462
And I've worked with people with
this skill, and it's amazing.

1083
01:05:29,772 --> 01:05:34,432
The quality of software that you build if
you've got somebody who's really good at finding

1084
01:05:34,442 --> 01:05:37,511
the edge cases and finding the bits where
it works, even if they don't know anything

1085
01:05:37,522 --> 01:05:38,612
about writing code.

1086
01:05:39,412 --> 01:05:43,872
They're wonderful people to work with, and it's
suddenly the most important skill. Anyone who does

1087
01:05:46,052 --> 01:05:49,262
agentic engineering projects knows
that it built you some software.

1088
01:05:50,142 --> 01:05:52,122
You, you're on the hook for
making sure the software works.

1089
01:05:52,182 --> 01:05:54,862
You have to manually test that. You
have to root out those edge cases.

1090
01:05:55,322 --> 01:05:58,832
I kind of, I love the idea that there
are all of these QA engineers now

1091
01:05:58,862 --> 01:06:03,642
who are like, "Brilliant, we don't need the
programmers anymore. Forget about the programmers.

1092
01:06:03,662 --> 01:06:06,062
We know how to test this stuff.
We can get really good results."

1093
01:06:07,306 --> 01:06:08,086
[CLAIRE] Yeah, that's cool.

1094
01:06:10,846 --> 01:06:14,986
All right, I'm looking at my stuff to
make sure before we end that we've covered

1095
01:06:15,086 --> 01:06:18,286
all the things I wanted to cover, and we didn't.

1096
01:06:19,206 --> 01:06:22,186
Talk about skill atrophy as much. So I asked you,

1097
01:06:19,872 --> 01:06:20,947
[SIMON] Ooh.

1098
01:06:23,026 --> 01:06:28,076
[CLAIRE] what are the skills that you're really
leaning on that are making you more successful in

1099
01:06:28,126 --> 01:06:31,836
your new workflows, in how
you use the agents, but—

1100
01:06:32,006 --> 01:06:35,676
I, I, I gave a talk at FOSDEM earlier
this year, and it was a really

1101
01:06:35,686 --> 01:06:39,825
big deal for me because it was on the
main, what's it called, the main track.

1102
01:06:39,866 --> 01:06:42,626
So it's that big room. You've been
there before in Brussels, right?

1103
01:06:42,646 --> 01:06:44,056
You've been to FOSDEM, right, with the—

1104
01:06:43,622 --> 01:06:45,162
[SIMON] I have a long time ago, but yeah.

1105
01:06:45,486 --> 01:06:49,106
[CLAIRE] Okay, with a ginormous room
that seats 1,500 people or whatever.

1106
01:06:49,556 --> 01:06:54,046
And the talk was about building the next
generation of open source contributors.

1107
01:06:54,546 --> 01:06:58,446
And when I think about that, because
obviously Postgres has been around.

1108
01:06:58,866 --> 01:07:03,826
This year is the 30th birthday, the 30th
anniversary of the open source project.

1109
01:07:03,866 --> 01:07:09,066
The technology is 40 years old, but the open
sourceness of Postgres happened 30 years ago.

1110
01:07:09,606 --> 01:07:11,866
And so I've been thinking about the future.

1111
01:07:12,166 --> 01:07:13,986
What's it going to look like
in five years, 10 years?

1112
01:07:14,086 --> 01:07:17,166
How will the committer team
change and evolve and grow?

1113
01:07:17,226 --> 01:07:19,606
And where will the next generation come from?

1114
01:07:19,666 --> 01:07:22,766
And what are their challenges going
to be in spinning up and learning?

1115
01:07:23,326 --> 01:07:29,676
And so I guess I do worry a little
bit about people who are maybe earlier

1116
01:07:29,726 --> 01:07:30,346
in their career

1117
01:07:31,046 --> 01:07:34,226
who are leveraging these tools. How are
they going to stand by every line of code?

1118
01:07:34,286 --> 01:07:37,916
How are they going to build their skills?
How are they going to build their judgment?

1119
01:07:38,442 --> 01:07:44,442
So I'm just curious, what are your thoughts
about skill atrophy and how AI is positively

1120
01:07:44,522 --> 01:07:48,182
and/or negatively impacting learning?

1121
01:07:48,212 --> 01:07:50,812
[SIMON] So this one, this one,
so this is such a big topic.

1122
01:07:51,462 --> 01:07:52,862
[CLAIRE] I know. It's a whole episode.

1123
01:07:53,392 --> 01:07:55,652
[SIMON] I mean, the one I worry
about most actually is writing.

1124
01:07:55,872 --> 01:07:59,472
You hear about all of these kids going through
university who the AI writes their essays

1125
01:07:59,512 --> 01:07:59,772
for them.

1126
01:07:59,792 --> 01:08:04,352
And I feel like writing is one of those
things where you cannot take shortcuts.

1127
01:08:04,632 --> 01:08:07,702
The misery, the misery of crunching through,

1128
01:08:08,292 --> 01:08:11,522
figuring out all of the words for your
essay is the whole point. That's the thing.

1129
01:08:11,612 --> 01:08:13,572
That's the skill that you have to
learn, because writing is thinking.

1130
01:08:13,652 --> 01:08:15,172
So, yeah, I get very worried about.

1131
01:08:15,762 --> 01:08:19,602
[CLAIRE] And I was just going to say that
writing is thinking is my favorite phrase

1132
01:08:20,142 --> 01:08:20,862
because it's true.

1133
01:08:21,452 --> 01:08:23,062
[SIMON] And so that, that, that worries me a lot.

1134
01:08:23,062 --> 01:08:27,222
At the same time, I think skill atrophy
itself, at least as a software engineer, is

1135
01:08:27,412 --> 01:08:28,502
a choice that you make.

1136
01:08:30,792 --> 01:08:35,191
Because you can choose not to learn anything
at all and have the agents write everything.

1137
01:08:35,912 --> 01:08:39,372
And you will then become one
of these—a slop proxy, right?

1138
01:08:39,472 --> 01:08:42,812
You're not adding any value, which is terrible
for your career, and it's terrible for your

1139
01:08:42,852 --> 01:08:45,632
sort of sense of self-worth as well.

1140
01:08:45,712 --> 01:08:48,362
Or you can say, you know what, we've
got these tools that give us all of

1141
01:08:48,412 --> 01:08:49,732
these new abilities.

1142
01:08:49,792 --> 01:08:53,732
They can explain things to us that we
previously would have had to find a tutor

1143
01:08:53,772 --> 01:08:56,382
for. How am I going to lean into that?

1144
01:08:56,392 --> 01:09:00,632
And if you do that, if you say,
okay, my goal is to learn new things,

1145
01:09:00,692 --> 01:09:04,452
and one of the skills you have to
learn is learning itself, right? That's

1146
01:09:05,232 --> 01:09:07,742
a difficult thing to figure
out. You have to learn what

1147
01:09:09,232 --> 01:09:12,872
style of learning works best for me. How can I

1148
01:09:12,932 --> 01:09:17,492
Take something I want to learn and best,
best use the tools that I have available

1149
01:09:17,552 --> 01:09:20,662
to me to help me get to that
point. So I don't know, my

1150
01:09:21,292 --> 01:09:24,642
optimistic hope for the sort
of beginner programmers is

1151
01:09:25,952 --> 01:09:27,092
I think.

1152
01:09:27,272 --> 01:09:30,762
Some of them are going to figure this
out, and they are going to learn, like

1153
01:09:30,952 --> 01:09:32,692
I did at the start of my career, but faster.

1154
01:09:32,732 --> 01:09:37,112
They are going to get to the point
that I got to in an accelerated way

1155
01:09:37,132 --> 01:09:40,312
because they're applying these new tools that
they have available to them, and they're able to

1156
01:09:40,332 --> 01:09:41,912
do that. And hopefully

1157
01:09:42,552 --> 01:09:46,932
that behavior will be rewarded, and people
like that will bubble up to the sort of

1158
01:09:46,992 --> 01:09:50,962
top of the sort of incoming set of programs,
which will inspire other people, and

1159
01:09:51,692 --> 01:09:54,052
maybe the kids will be all right
because they'll figure this stuff out.

1160
01:09:54,852 --> 01:09:59,512
But I have no idea, right? I'm not—I'm
25 years past that point in my career,

1161
01:10:00,272 --> 01:10:03,392
and the temptation of this stuff, where
it just solves the problem for you,

1162
01:10:03,912 --> 01:10:04,912
is very real.

1163
01:10:05,592 --> 01:10:07,361
So yeah, I feel like

1164
01:10:07,812 --> 01:10:12,632
the most important thing people can do as individuals
is to understand that skill atrophy exists,

1165
01:10:12,662 --> 01:10:15,492
and everyone knows that, right? It's
very obvious to people that if you

1166
01:10:16,134 --> 01:10:18,372
If you get the agent to do all the
work for you, you're not doing the

1167
01:10:18,392 --> 01:10:22,111
work. You're not developing those muscles.
And then deliberately develop those muscles.

1168
01:10:22,192 --> 01:10:26,332
Deliberately say, okay, this is the project
where I'm going to try and learn Rust, and

1169
01:10:26,352 --> 01:10:29,252
in doing Rust, I'm going to set the
agent to one side, and I'm going to

1170
01:10:29,312 --> 01:10:32,992
work through these exercises and
so forth. I believe in people.

1171
01:10:33,112 --> 01:10:38,112
I believe people who are motivated to
do that will be able to get that done.

1172
01:10:39,112 --> 01:10:41,732
And then the other thing, just
sort of open source generally.

1173
01:10:42,192 --> 01:10:45,632
I've already got the problem
where my projects used to get

1174
01:10:46,641 --> 01:10:48,492
a couple of pull requests a
month. Now they're getting

1175
01:10:49,052 --> 01:10:52,072
five or six pull requests
a week because the cost of

1176
01:10:53,192 --> 01:10:57,062
creating a pull request has gone down so
much, which increases the burden on me as

1177
01:10:57,092 --> 01:11:00,972
a maintainer, on the review and so forth. And

1178
01:11:01,152 --> 01:11:01,492
I don't know.

1179
01:11:01,632 --> 01:11:06,062
I feel like open source itself is right
in the middle of this, this sort of

1180
01:11:06,092 --> 01:11:10,112
piece of disruption. We're having to learn new
balances. We need to figure out new etiquette.

1181
01:11:10,152 --> 01:11:13,972
Different projects are coming up
with different policies around this.

1182
01:11:14,072 --> 01:11:14,982
Hopefully it'll shake out.

1183
01:11:15,332 --> 01:11:20,132
Hopefully in six months' time, these conversations
we're having about open source will look a lot

1184
01:11:20,141 --> 01:11:23,861
different because we'll be able to say, this
project over here figured this thing out and

1185
01:11:23,892 --> 01:11:26,892
it worked for them. This pattern
here has been well established.

1186
01:11:26,912 --> 01:11:29,372
But yeah, no, it's a messy time for all of this.

1187
01:11:30,682 --> 01:11:32,782
[CLAIRE] Yeah. I mean, there's definitely, you

1188
01:11:33,282 --> 01:11:36,002
answered my question before I asked
it, which is how in the world are

1189
01:11:36,482 --> 01:11:42,322
maintainers going to keep up with the
onslaught of AI-reported issues? And

1190
01:11:42,862 --> 01:11:44,522
I think people out there are

1191
01:11:45,082 --> 01:11:49,702
using AI tools to find these issues because
they want to contribute, and it's a way

1192
01:11:49,762 --> 01:11:52,002
they can contribute, and it is valuable,

1193
01:11:52,462 --> 01:11:55,282
right, to find things that are
wrong that need to be fixed, but—

1194
01:11:55,092 --> 01:11:56,442
[SIMON] The frustrating thing is,

1195
01:11:56,952 --> 01:12:00,842
any one of these bug reports, if it
had been produced at the pace that I

1196
01:12:00,892 --> 01:12:02,582
was used to last year,

1197
01:12:03,352 --> 01:12:04,232
Pure upside.

1198
01:12:04,922 --> 01:12:09,772
The level of detail they're providing in these
AI-driven pull requests is very good detail.

1199
01:12:09,832 --> 01:12:10,872
It's just the volume.

1200
01:12:10,912 --> 01:12:16,372
It's that the sort of the systems that we
have, the societal systems that we have

1201
01:12:16,392 --> 01:12:20,912
in place are not set up to
deal with this volume of—

1202
01:12:20,992 --> 01:12:24,382
All of this stuff. So every,
every, every pattern that we have,

1203
01:12:26,032 --> 01:12:30,482
every working pattern we have is breaking down
because it wasn't designed for this just cannon

1204
01:12:30,512 --> 01:12:31,832
of stuff that's being fired at us.

1205
01:12:33,162 --> 01:12:39,662
[CLAIRE] There's got to be historical examples for how
other disruptions in transportation or whatever caused

1206
01:12:39,052 --> 01:12:46,792
[SIMON] So that's the big problem is,
yeah, you can absolutely find lots of

1207
01:12:39,742 --> 01:12:42,272
[CLAIRE] changes, you know, and—

1208
01:12:42,322 --> 01:12:43,642
How long it took, I don't

1209
01:12:46,812 --> 01:12:49,072
[SIMON] historic examples, but they
all played out over the case of

1210
01:12:49,642 --> 01:12:51,642
[CLAIRE] know.

1211
01:12:49,812 --> 01:12:54,542
[SIMON] 5 to 10 years at the least,
and this stuff is playing out 5 to 10

1212
01:12:52,882 --> 01:12:54,502
[CLAIRE] And this is so much faster.

1213
01:12:54,572 --> 01:13:01,912
[SIMON] months, right? So yeah, it's a wild
time to be alive and involved in this industry.

1214
01:13:02,602 --> 01:13:04,642
[CLAIRE] Beyond the onslaught of

1215
01:13:05,462 --> 01:13:11,082
PRs and/or bug reports that are being found
by AI tools and submitted to open source

1216
01:13:11,162 --> 01:13:14,642
projects, do you have any other
stories or examples of open source

1217
01:13:15,132 --> 01:13:20,052
projects that you're close to of the impact on
maintainers and how they're dealing with them?

1218
01:13:21,502 --> 01:13:24,202
I ask, of course, wearing my Postgres hat. We

1219
01:13:24,742 --> 01:13:27,942
as a community, we're evolving,
we're growing, we're changing.

1220
01:13:29,332 --> 01:13:32,262
But always looking to learn
from other communities too.

1221
01:13:32,980 --> 01:13:37,250
[SIMON] I think, I think it's too early
to be able to point to any one community

1222
01:13:37,260 --> 01:13:41,040
and say what they're trying worked,
because all of these policies are so new.

1223
01:13:42,000 --> 01:13:45,460
It's, I mean, a lot of places have
just turned off pull requests.

1224
01:13:46,060 --> 01:13:48,570
GitHub had to add that feature so that people

1225
01:13:49,140 --> 01:13:52,840
could take more control of what was
going on, which is sad, but it does, it

1226
01:13:52,900 --> 01:13:57,000
is, it's a rational thing to do if
you've got this massive influx of things.

1227
01:13:57,160 --> 01:14:01,400
It's funny, it was curl, the
curl project, a year ago,

1228
01:14:01,860 --> 01:14:03,740
they were saying, we are being inundated

1229
01:14:04,540 --> 01:14:08,080
with security reports and they're complete
junk and it's just a waste of time.

1230
01:14:08,120 --> 01:14:11,110
And then six months ago they were saying, we're
still being inundated with security requests.

1231
01:14:11,400 --> 01:14:15,770
Most of them are legit; most of them are
real issues. It's exhausting, but we're

1232
01:14:16,380 --> 01:14:17,200
having to step up.

1233
01:14:18,100 --> 01:14:22,900
My hope there is, I think any given
piece of software has a finite number of

1234
01:14:22,940 --> 01:14:28,660
security holes in it, and I'm hoping that
we'll get them all. Ideally, we'll get to—

1235
01:14:28,361 --> 01:14:30,632
[CLAIRE] And then move on to
a different whack-a-mole game.

1236
01:14:30,880 --> 01:14:35,440
[SIMON] Exactly, because the
security thing is very real. It's the

1237
01:14:35,960 --> 01:14:38,980
agents are so good at finding
security issues in software,

1238
01:14:39,520 --> 01:14:41,100
and they will find real security issues.

1239
01:14:41,230 --> 01:14:44,820
And we have got, we do need to accelerate
the way that we're dealing with these

1240
01:14:44,880 --> 01:14:47,540
because the bad people have
access to the same tools now.

1241
01:14:49,320 --> 01:14:53,080
But yeah, so no, my optimistic take on that is—

1242
01:14:53,120 --> 01:14:56,100
There's no such thing as infinite
security holes. We can close them all.

1243
01:14:56,140 --> 01:14:59,080
We have the tools that let us close
them all. Let's lock everything down.

1244
01:15:00,902 --> 01:15:04,632
[CLAIRE] All right, so before
we wrap up, is there anything

1245
01:15:06,412 --> 01:15:10,412
That you're looking forward to, that you're excited
about, that you haven't tried yet, but you're

1246
01:15:10,432 --> 01:15:13,852
looking forward to trying, or, yeah.

1247
01:15:11,960 --> 01:15:13,280
[SIMON] Okay, there is one, yeah.

1248
01:15:14,440 --> 01:15:18,480
I try very hard not to get excited about
models that haven't been released yet because

1249
01:15:18,520 --> 01:15:20,160
who knows how good they're going to be.

1250
01:15:20,220 --> 01:15:28,060
The one exception, Qwen 3.8 27B is due
out on Thursday or Friday of this week,

1251
01:15:28,160 --> 01:15:28,860
and this is

1252
01:15:28,752 --> 01:15:32,812
[CLAIRE] Okay, that sounds like to someone who's
not paying attention to all the new models and

1253
01:15:32,912 --> 01:15:37,652
all the new names, that, it sounds
like gibberish almost, yeah.

1254
01:15:34,220 --> 01:15:35,160
[SIMON] That's noise.

1255
01:15:36,980 --> 01:15:41,560
Yeah, it's total gibberish. The key thing
to know: Qwen are Alibaba's AI research lab.

1256
01:15:41,889 --> 01:15:45,700
They are one of the best Chinese AI
labs putting out open-weight models.

1257
01:15:46,600 --> 01:15:51,450
The 27B size runs on a laptop with
just 30 gigabytes of RAM; a Mac with

1258
01:15:51,560 --> 01:15:56,040
32 gigabytes of RAM can run a 27B model
and still have space for other software.

1259
01:15:56,440 --> 01:16:04,140
So I think 27B is the largest size that
you can run on a laptop realistically.

1260
01:16:04,220 --> 01:16:09,470
And Qwen's last 27B model is one of my
favorite models. Their Qwen 3.6 27B is,

1261
01:16:10,060 --> 01:16:12,240
it can do all of the things that
you want a model to be able to

1262
01:16:12,280 --> 01:16:16,880
do when it runs on a laptop. I
think their 3.8 one is going to be

1263
01:16:16,920 --> 01:16:17,920
An improvement in quality.

1264
01:16:18,080 --> 01:16:20,950
I think it's going to be the new best
model to run locally on a laptop.

1265
01:16:21,860 --> 01:16:23,970
And that's exciting because the laptop models.

1266
01:16:24,860 --> 01:16:27,180
They're getting to the point now
where they can drive a coding agent.

1267
01:16:27,190 --> 01:16:30,760
They can write code and test the
code and execute in a loop and do the

1268
01:16:30,820 --> 01:16:32,780
tool calling and all of that kind of stuff.

1269
01:16:32,860 --> 01:16:38,140
One of the Google models, Google's Gemma
4, I think it was their 27B one, the

1270
01:16:38,180 --> 01:16:38,900
same size.

1271
01:16:38,920 --> 01:16:41,940
That one, I took a screenshot of a
web page and I gave it the screenshot

1272
01:16:41,960 --> 01:16:44,470
and said, build this web page, and it
built the web page in HTML and CSS.

1273
01:16:44,520 --> 01:16:46,240
And my laptop did that.

1274
01:16:46,300 --> 01:16:50,380
My laptop can now turn an image of
this web page into working HTML.

1275
01:16:51,360 --> 01:16:53,480
Unbelievable! Unbelievable that that works.

1276
01:16:53,892 --> 01:16:58,252
[CLAIRE] Were you, did you look at the code?
Were you happy with it? Was it maintainable?

1277
01:16:57,660 --> 01:17:01,609
[SIMON] That's the great thing about the, oh
no, it's the, it wasn't great quality code, but

1278
01:17:01,640 --> 01:17:04,530
you can at least open it in a web
browser and you can see that it

1279
01:17:04,560 --> 01:17:05,540
worked, you know.

1280
01:17:05,212 --> 01:17:10,412
[CLAIRE] Okay, so you saw the potential,
but it wasn't deployable at that stage yet.

1281
01:17:07,120 --> 01:17:07,760
[SIMON] Exactly.

1282
01:17:10,492 --> 01:17:12,102
[CLAIRE] It would need more post-processing.

1283
01:17:12,480 --> 01:17:17,280
[SIMON] But my laptop can build me a web
page from a screenshot. Unbelievable.

1284
01:17:17,380 --> 01:17:19,600
So I'm very excited. That
one I'm looking forward to.

1285
01:17:20,200 --> 01:17:22,020
I feel like the local models thing.

1286
01:17:23,580 --> 01:17:26,470
The problem with local models has always
been that they're nowhere near as good as

1287
01:17:26,950 --> 01:17:31,200
the hosted models, and normally they're
not good enough to get real work done.

1288
01:17:31,440 --> 01:17:33,380
I think that's been changing
in the past six months.

1289
01:17:33,500 --> 01:17:36,790
I think the models I can run on my
laptop now are good enough that I

1290
01:17:36,840 --> 01:17:41,140
can—they're comparable to the
best available models in the world

1291
01:17:41,620 --> 01:17:44,270
a year and a half ago, and I was getting
real work done with those models.

1292
01:17:44,580 --> 01:17:48,160
So now I can run that level
of capacity on my laptop.

1293
01:17:48,260 --> 01:17:49,620
That's pretty exciting. It's

1294
01:17:50,340 --> 01:17:55,160
very good news for not ending up in a dystopia
where just three companies control all

1295
01:17:55,220 --> 01:17:59,280
of the intelligence in the world, you
know? I'm much more excited about the—

1296
01:18:01,700 --> 01:18:03,260
The competition between the local AI models,

1297
01:18:03,900 --> 01:18:06,290
the fact that they're getting
good, the fact that we've got

1298
01:18:06,920 --> 01:18:11,100
Meta's new Muse—what do they call
their most recent one? Glimmer.

1299
01:18:11,400 --> 01:18:13,600
I've run that on my laptop.
That one's quite capable.

1300
01:18:14,320 --> 01:18:17,940
That one can describe my photographs and
write competent Python code and stuff.

1301
01:18:18,520 --> 01:18:20,640
It's really exciting. I think

1302
01:18:22,780 --> 01:18:26,650
we are going to be able to dodge the
bullet of just a few companies controlling

1303
01:18:26,700 --> 01:18:29,090
these private models that you can
only use with their permission.

1304
01:18:30,412 --> 01:18:31,812
[CLAIRE] Okay, I have one last question for you.

1305
01:18:32,192 --> 01:18:36,412
And remember, going back to the beginning, my
goal through the whole conversation was to dig

1306
01:18:36,472 --> 01:18:42,282
into specifics and details so that people could
really imagine doing things that they're not yet

1307
01:18:42,292 --> 01:18:46,832
doing. So we talked about software development
and coding. We talked about writing.

1308
01:18:47,552 --> 01:18:54,742
We talked about skills. But I'm curious if
there are other types of tasks—I'm not making

1309
01:18:56,370 --> 01:19:02,452
guacamole—but types of work-related tasks that
you've seen you or your friends are also using the

1310
01:19:02,552 --> 01:19:04,552
LLMs that have changed your day-to-day.

1311
01:19:04,720 --> 01:19:06,420
[SIMON] Really big one for me is research.

1312
01:19:07,940 --> 01:19:12,780
A couple of years ago, LLMs started getting
search tools, and they were absolute garbage, just

1313
01:19:12,820 --> 01:19:13,400
the worst.

1314
01:19:13,480 --> 01:19:17,280
You'd ask it a question, it would go and
search some websites, find the cheapest, worst

1315
01:19:17,340 --> 01:19:23,828
information, and then hallucinate back at you,
and you just got total junk. These days, GPT-5.6

1316
01:19:24,520 --> 01:19:27,780
Pro, or GPT-5.6 Sol on the phone.

1317
01:19:28,660 --> 01:19:30,760
I can't remember the last time I got bad

1318
01:19:31,390 --> 01:19:35,671
research results out of it, and I'm often setting
it very challenging research tasks where it

1319
01:19:35,680 --> 01:19:39,510
will go away for 15 minutes and look at
150 different web pages and then give

1320
01:19:39,520 --> 01:19:40,720
me back useful information.

1321
01:19:40,832 --> 01:19:46,912
[CLAIRE] Now, is that interaction via chat or
via, so it's not, you're not setting off agents

1322
01:19:43,670 --> 01:19:44,250
[SIMON] Yep. Yep.

1323
01:19:46,972 --> 01:19:49,372
[CLAIRE] on a task there. It's
just you're chatting with it?

1324
01:19:49,690 --> 01:19:51,440
[SIMON] It is, but I, it's, it's an agent.

1325
01:19:51,530 --> 01:19:55,270
It just doesn't call itself an agent, you
know, effectively, because it can write bits of

1326
01:19:55,330 --> 01:19:56,680
code and stuff as well. It can,

1327
01:19:57,130 --> 01:20:02,600
sometimes it'll download PDFs and
then do OCR on bits of the PDFs .

1328
01:20:03,920 --> 01:20:08,510
The amount of success I'm having with this
helping me out with really complex research tasks

1329
01:20:08,550 --> 01:20:11,570
is super interesting. And again, the
trick with that is to play with it.

1330
01:20:11,610 --> 01:20:14,550
So when I walk the dog, we go down
to the local harbour, and it's a

1331
01:20:14,590 --> 01:20:17,330
commercial fishing harbour, so there
are lots of fishing boats there.

1332
01:20:17,810 --> 01:20:20,990
And every time I go past that harbour,
I take a photo of a new fishing

1333
01:20:21,050 --> 01:20:24,170
boat, and I tell GPT-5.6 Pro.

1334
01:20:25,370 --> 01:20:26,930
This is a fishing boat, Pillar Point Harbor.

1335
01:20:27,570 --> 01:20:30,150
Research it and tell me the history
and who built it and when it was built

1336
01:20:30,170 --> 01:20:32,790
and who's owned it and as
much information as possible.

1337
01:20:32,830 --> 01:20:37,410
And it will churn away for 10 minutes, and
it'll look up the visible license number

1338
01:20:37,430 --> 01:20:41,710
in the Coast Guard's records, and it'll
go, Oh, this one was built in 1954 in

1339
01:20:41,790 --> 01:20:44,830
Puget Sound by this shipping
company, and then this.

1340
01:20:45,190 --> 01:20:49,850
And of course, I'm not fact-checking every detail,
but I do occasionally click through and look

1341
01:20:49,890 --> 01:20:52,450
at some of the links that it
used to determine that. And

1342
01:20:53,090 --> 01:20:56,090
so far it looks pretty
credible. It's zero risk, right?

1343
01:20:56,170 --> 01:20:58,480
There is nothing bad happens in the world

1344
01:20:58,930 --> 01:21:03,200
if my AI tells me the wrong date that a
fishing boat was manufactured when I'm

1345
01:21:03,230 --> 01:21:05,340
sort of serving my own personal curiosity.

1346
01:21:05,370 --> 01:21:09,750
But watching how it solves those problems
is a great way of learning the process that

1347
01:21:09,770 --> 01:21:10,110
it goes through

1348
01:21:10,310 --> 01:21:14,010
and getting a sort of idea for, okay,
what kind of problems can it, can you

1349
01:21:14,070 --> 01:21:14,850
outsource to this?

1350
01:21:15,650 --> 01:21:19,650
My rule again is if I'm going to share
information with someone else, I fact-check it.

1351
01:21:20,342 --> 01:21:20,642
[CLAIRE] Yes.

1352
01:21:20,610 --> 01:21:23,610
[SIMON] Information for my own curiosity,
that's completely fine. I'll accept the risk.

1353
01:21:23,750 --> 01:21:27,350
If I'm going to publish something on my
blog, it is not enough that a chatbot

1354
01:21:27,360 --> 01:21:31,600
told me that this is true. I need
to find those primary sources.

1355
01:21:32,922 --> 01:21:34,522
[CLAIRE] I could not agree with that more.

1356
01:21:34,582 --> 01:21:38,412
I guess I've always had a bit of
an intolerance for sloppiness,

1357
01:21:38,604 --> 01:21:39,128
[SIMON] Mhm.

1358
01:21:39,002 --> 01:21:43,402
[CLAIRE] and it drives me crazy if someone uses
that phrase you described earlier, which is, Oh,

1359
01:21:43,482 --> 01:21:46,642
I got that from AI. It must be a
mistake, you know, just ignore it.

1360
01:21:47,782 --> 01:21:48,841
Drives me crazy.

1361
01:21:49,630 --> 01:21:50,370
[SIMON] You're the human in the loop.

1362
01:21:50,410 --> 01:21:54,050
The whole point of the human in the loop
is to protect other people from dumb

1363
01:21:54,090 --> 01:21:55,350
mistakes that AI makes.

1364
01:21:56,530 --> 01:21:57,890
We have to take responsibility for that.

1365
01:21:59,102 --> 01:22:03,702
[CLAIRE] Well, and somewhere in something I read
on your blog, and maybe you were quoting someone

1366
01:22:03,742 --> 01:22:05,592
else, maybe it came from you, it's this

1367
01:22:06,062 --> 01:22:10,462
notion that when you publish something,
it's going to get read by a ton of people.

1368
01:22:10,472 --> 01:22:12,732
And so you need to respect all those people.

1369
01:22:12,610 --> 01:22:13,190
[SIMON] Absolutely.

1370
01:22:12,732 --> 01:22:17,112
[CLAIRE] And an extra five minutes or 10
minutes or even 15 minutes of your time is

1371
01:22:18,502 --> 01:22:19,142
time well spent.

1372
01:22:19,370 --> 01:22:23,179
[SIMON] And there's a selfish, there's a
selfish reason to do this as well, which is that

1373
01:22:23,210 --> 01:22:27,570
your personal credibility is the most important
asset you have in this, especially in this world

1374
01:22:27,630 --> 01:22:29,480
of slop and everything.

1375
01:22:30,010 --> 01:22:33,730
You want people to trust to come to
you because they're like, I trust you.

1376
01:22:33,870 --> 01:22:38,610
I know that you are a reliable source of
information. And credibility is so easily lost.

1377
01:22:39,010 --> 01:22:45,830
One undisclosed AI-generated bunch of rubbish,
and people will stop having faith in you.

1378
01:22:45,890 --> 01:22:49,209
And that's bad. You don't want
that damage to your reputation.

1379
01:22:48,262 --> 01:22:54,211
[CLAIRE] So, so let's go back to these research
questions about the fishing boats that you're asking

1380
01:22:54,242 --> 01:22:59,402
when you take your dog for the walk.
What settings do you have ChatGPT on?

1381
01:22:59,422 --> 01:23:02,342
Are you using the deep
research mode when you do that?

1382
01:23:02,382 --> 01:23:05,842
Because you said it goes off for 15 minutes,
which means it's not coming back with

1383
01:23:05,110 --> 01:23:10,910
[SIMON] So this is the thing, is I think
Deep Research may have even been retired, but

1384
01:23:05,862 --> 01:23:06,562
[CLAIRE] a quick answer.

1385
01:23:11,270 --> 01:23:13,860
[SIMON] it's just Deep Research
under a new name. It's called,

1386
01:23:14,490 --> 01:23:17,070
so I think this is the thing you
have to pay them at least $100 a

1387
01:23:17,110 --> 01:23:19,001
month for, because $100 a month

1388
01:23:19,590 --> 01:23:24,070
unlocks the Pro models, and the Pro models
are the ones that will spend 15 minutes

1389
01:23:24,110 --> 01:23:24,630
on something.

1390
01:23:25,282 --> 01:23:25,682
[CLAIRE] Okay.

1391
01:23:25,510 --> 01:23:31,020
[SIMON] So that's what I'm— although,
to be honest, GPT-5.6 high and xhigh.

1392
01:23:31,730 --> 01:23:34,690
Those are, those are good for search
things, but I wouldn't have those.

1393
01:23:34,870 --> 01:23:37,030
I wouldn't send those off on a 15-minute quest.

1394
01:23:39,202 --> 01:23:42,491
[CLAIRE] Got it. Any other?
Well, I think that's it.

1395
01:23:42,602 --> 01:23:45,582
We've, we've, we're definitely, we've
spent a lot of time talking today.

1396
01:23:45,762 --> 01:23:48,702
I have loved every minute
of this conversation, Simon.

1397
01:23:49,182 --> 01:23:55,962
Thank you for being continually willing to
share your experiences and your perspectives.

1398
01:23:56,062 --> 01:23:58,282
A lot of us learn so much from you.

1399
01:23:57,990 --> 01:23:58,570
[SIMON] You know what?

1400
01:23:58,709 --> 01:24:02,270
I hope that one of the things people take
away from this conversation is it's all

1401
01:24:02,350 --> 01:24:06,250
still up in the air. All
of this stuff, it's so new.

1402
01:24:06,750 --> 01:24:10,410
It's been six months since we got the sort
of—it's only been, what, three months since

1403
01:24:10,450 --> 01:24:16,250
we had the Fable-class models. And everyone
is figuring this stuff out together right now.

1404
01:24:16,270 --> 01:24:18,440
And actually, I'll throw in one last observation.

1405
01:24:19,150 --> 01:24:21,910
One of the problems with using coding
agents is that you can come up with a

1406
01:24:21,970 --> 01:24:23,680
very convoluted way to use them.

1407
01:24:23,710 --> 01:24:29,000
You can say, you know what, I'm going
to use story cards modeled after

1408
01:24:31,350 --> 01:24:35,250
how Roman generals fought their wars. You
can come up with some wild scheme like that,

1409
01:24:35,710 --> 01:24:37,870
and it will work because everything works.

1410
01:24:37,950 --> 01:24:41,830
No matter what you give to a coding agent,
it will produce software that runs and

1411
01:24:41,890 --> 01:24:42,730
does something useful.

1412
01:24:43,200 --> 01:24:44,830
So the signal is really hard to find.

1413
01:24:44,870 --> 01:24:49,210
You can try all sorts of crazy schemes, and
everything will give you working software.

1414
01:24:49,220 --> 01:24:51,530
What are we even supposed
to do with that, you know?

1415
01:24:54,122 --> 01:24:56,492
[CLAIRE] What are we supposed to
do with that? Is there an answer?

1416
01:24:57,310 --> 01:25:00,360
[SIMON] I think just keep on
trying to find the— keep it simple.

1417
01:25:00,810 --> 01:25:04,970
Go for, try and figure out what is the
simplest possible way of interacting with these

1418
01:25:05,030 --> 01:25:06,520
tools that gives you working software.

1419
01:25:06,970 --> 01:25:11,670
And then only when something doesn't work,
say, okay, maybe I should try a little bit

1420
01:25:11,710 --> 01:25:12,970
of an extra twist on that.

1421
01:25:13,190 --> 01:25:15,420
Because the other problem is that
the models really do increase—

1422
01:25:16,380 --> 01:25:20,220
the models improve to a point that old
prompting techniques are no longer worthwhile.

1423
01:25:20,940 --> 01:25:26,890
I'm always telling models, use red-green TDD. I'm
suspicious that maybe you don't need to anymore.

1424
01:25:26,970 --> 01:25:29,500
I think maybe Claude Fable 5 will

1425
01:25:29,970 --> 01:25:31,750
use that technique without
even having to tell it to.

1426
01:25:33,622 --> 01:25:36,562
[CLAIRE] When I think about how models are

1427
01:25:37,022 --> 01:25:44,722
and will be changing my life, it's interesting
because there's the angle of trying to make

1428
01:25:44,782 --> 01:25:48,002
me better at my job, make me better at my work.

1429
01:25:48,022 --> 01:25:52,952
But then going back to your New Year's resolution,
there's also the angle of figuring out,

1430
01:25:52,962 --> 01:25:57,282
well, what was I not even contemplating
doing in the past that I can now do?

1431
01:25:57,622 --> 01:26:01,722
So it's not just about getting better at
the things, but it's maybe I should be

1432
01:26:01,742 --> 01:26:04,512
doing different things. And I don't know.

1433
01:26:05,242 --> 01:26:09,502
I'm still figuring it out myself,
and I'm not where I want to be at.

1434
01:26:10,380 --> 01:26:13,740
[SIMON] One of my dream situations for
all of this, I want there to be so many

1435
01:26:13,780 --> 01:26:18,480
more little small businesses because entrepreneurship,
like starting a coffee shop, is one of the

1436
01:26:18,560 --> 01:26:24,830
hardest things to do in society, right? Just
unbelievable amounts of bureaucracy and insurance and

1437
01:26:25,440 --> 01:26:26,740
licenses and all of this stuff.

1438
01:26:27,420 --> 01:26:31,740
If we get to a point where AI
helps soften off all of the sort of

1439
01:26:31,780 --> 01:26:35,140
bureaucratic burden of just figuring out
what the hell do I have to do to take

1440
01:26:35,180 --> 01:26:39,440
on this ambitious project, and we get more small
businesses and coffee shops and things, that

1441
01:26:39,460 --> 01:26:41,899
would be great. You know, that
would be a wonderful thing.

1442
01:26:42,332 --> 01:26:44,332
[CLAIRE] Yeah.

1443
01:26:44,632 --> 01:26:48,042
I mean, the other thing that'll be really
nice is there's other places in our lives

1444
01:26:48,062 --> 01:26:52,522
that have bureaucracy. You could
think about getting permits or

1445
01:26:53,962 --> 01:26:59,882
renewing your passport or, for me, getting compliance
approval to renew a software subscription at

1446
01:26:59,922 --> 01:27:01,382
Microsoft or whatever.

1447
01:27:01,402 --> 01:27:06,372
And I actually, just yesterday, submitted a
request for compliance approval to renew a software

1448
01:27:06,442 --> 01:27:07,622
subscription at Microsoft.

1449
01:27:08,022 --> 01:27:11,622
And in the past, it might have taken
longer than I want to say out loud.

1450
01:27:11,920 --> 01:27:12,160
[SIMON] Mhm.

1451
01:27:12,242 --> 01:27:15,662
[CLAIRE] I got it back within
24 hours. I'm like, whoa.

1452
01:27:14,580 --> 01:27:15,000
[SIMON] Nice.

1453
01:27:15,842 --> 01:27:19,992
[CLAIRE] And I do it every year, so compared
to a year ago, that's a dramatic improvement.

1454
01:27:18,560 --> 01:27:25,780
[SIMON] That's exciting, yeah, a society where all
of those frictions just get shaved down a bunch

1455
01:27:20,502 --> 01:27:21,552
[CLAIRE] I was very happy about that.

1456
01:27:25,880 --> 01:27:29,350
[SIMON] is that sounds pretty good. That, that's
my sort of utopian version of all of this.

1457
01:27:29,882 --> 01:27:31,922
[CLAIRE] I like it. I like your dream there.

1458
01:27:32,642 --> 01:27:40,022
And then someone can form a small business having
to do with pelican-based artwork on bicycles,

1459
01:27:40,062 --> 01:27:40,362
maybe.

1460
01:27:41,060 --> 01:27:42,100
[SIMON] Indeed, yep.

1461
01:27:43,272 --> 01:27:47,422
[CLAIRE] Greeting cards, posters,
little luggage tags for our suitcases.

1462
01:27:48,642 --> 01:27:53,622
You actually have a lot of those pelicans,
and people would pay money to put them

1463
01:27:53,662 --> 01:27:57,402
on luggage tags on their suitcases.
I mean, the total geeky thing to do.

1464
01:27:57,882 --> 01:28:02,982
And only those who read your blog would
recognize it on a luggage tray on the

1465
01:28:03,042 --> 01:28:04,502
island of Paros in Greece.

1466
01:28:05,100 --> 01:28:07,720
[SIMON] OK, fine, I'll do
merch. I need to do merch.

1467
01:28:07,942 --> 01:28:11,702
[CLAIRE] Yeah, you need to do merch. I
think so. Okay, this has been awesome.

1468
01:28:12,442 --> 01:28:15,802
Thank you to everybody who's listened to
the whole episode, which I imagine will be a

1469
01:28:15,982 --> 01:28:16,602
lot of people.

1470
01:28:16,902 --> 01:28:20,942
Thank you to you, Simon, for carving
time out of your summer to talk to us

1471
01:28:21,022 --> 01:28:24,922
again. It's been a year since
your last episode with us, so

1472
01:28:25,802 --> 01:28:30,122
I hope you come back again someday, and
the world will be different when you do.

1473
01:28:30,202 --> 01:28:31,182
That's a guarantee.

1474
01:28:31,600 --> 01:28:35,060
[SIMON] Yep, and hopefully
different and better, but we'll see.

1475
01:28:36,022 --> 01:28:39,022
[CLAIRE] All right. Thank you to
Simon Willison for joining us today.

1476
01:28:39,842 --> 01:28:44,142
For those listening, if you liked today's
episode, and I think you will have, and you

1477
01:28:44,162 --> 01:28:47,802
want to hear more of these Talking
Postgres episodes, you should subscribe

1478
01:28:48,282 --> 01:28:53,762
on Apple, Spotify, YouTube, or wherever you get
your podcasts. And please tell your friends.

1479
01:28:54,582 --> 01:28:57,262
In the podcast world, word of mouth is gold.

1480
01:28:57,962 --> 01:29:03,362
You can always get to past episodes and links
to subscribe by going to TalkingPostgres.com,

1481
01:29:04,022 --> 01:29:08,142
and transcripts are included on the
episode pages on TalkingPostgres.com too.

1482
01:29:08,682 --> 01:29:12,642
And a big thank you to everybody who
joined the live recording today on Discord.