1
00:00:05,220 --> 00:00:09,540
[CLAIRE] Welcome to Talking Postgres, a monthly podcast for developers who love this database.

2
00:00:09,840 --> 00:00:14,900
I am your host, Claire Giordano, and in this podcast, we explore the human side of Postgres

3
00:00:15,060 --> 00:00:20,280
databases and open source, which means why do people who work with Postgres do what they

4
00:00:20,500 --> 00:00:21,940
do and how did they get there?

5
00:00:22,700 --> 00:00:25,680
Thank you to the team at Microsoft for sponsoring this podcast.

6
00:00:26,380 --> 00:00:30,280
And today's guest, without further ado, is Charles Feddersen.

7
00:00:30,920 --> 00:00:34,940
Charles is the Director of Product for all things Postgres at Microsoft, and he's been

8
00:00:35,120 --> 00:00:41,240
working in databases for over 20 years now, and on Postgres specifically since 2021.

9
00:00:42,180 --> 00:00:46,900
He's originally from Australia, you'll probably pick that up from his voice, and he's been

10
00:00:46,920 --> 00:00:49,160
in Seattle now for just over 14 years.

11
00:00:49,980 --> 00:00:50,600
Welcome, Charles.

12
00:00:51,740 --> 00:00:52,020
[CHARLES] Thank you.

13
00:00:52,110 --> 00:00:52,620
Good to be here.

14
00:00:53,030 --> 00:00:53,420
Thanks, Claire.

15
00:00:54,120 --> 00:00:59,460
[CLAIRE] I'm so glad that you're here. And today's topic is building Postgres services on Azure.

16
00:01:01,020 --> 00:01:07,600
So what I want to do, though, before we dive into your work that you do today, is back up,

17
00:01:07,840 --> 00:01:12,160
go through the Wayback Machine a little bit and talk about your origin story as a developer.

18
00:01:12,390 --> 00:01:14,960
How did you get started in software?

19
00:01:16,860 --> 00:01:22,860
[CHARLES] In software, yeah. So, you know, in college I studied a computing subject, but

20
00:01:23,480 --> 00:01:32,600
how I really started to get my hands coding was actually with a friend back in Melbourne.

21
00:01:33,520 --> 00:01:37,260
I'm going to say it was like the very, very early 2000s.

22
00:01:37,720 --> 00:01:41,420
And we were actually playing with technologies at the time,

23
00:01:42,320 --> 00:01:51,400
I think what came to be known as classic ASP, although I don't think it was called that at the time because I'm not sure if ASP.NET actually existed at that point.

24
00:01:52,680 --> 00:02:00,560
And we were building basically, you know, web sort of form-based applications in the browser sitting on top of Microsoft Access.

25
00:02:02,060 --> 00:02:20,280
And so that was really my first foray into databases while I was at college was, believe it or not, Microsoft Access.

26
00:02:15,040 --> 00:02:16,180
[CLAIRE] What is Microsoft Access? I'm sure there's people listening who might not be familiar.

27
00:02:21,320 --> 00:02:25,580
[CHARLES] Microsoft Access is, I mean, it shipped in Office, so you had Word and PowerPoint and Excel and Access

28
00:02:26,420 --> 00:02:30,080
and a very lightweight database that you could use.

29
00:02:30,700 --> 00:02:33,080
And so we were building on top of that.

30
00:02:34,800 --> 00:02:38,000
And it was interesting because you sort of had,

31
00:02:38,620 --> 00:02:41,880
on the one hand, we were writing ASP and JavaScript

32
00:02:42,360 --> 00:02:44,860
and sort of wrapping it all through HTML and what have you.

33
00:02:45,520 --> 00:02:46,960
And the other side, you had sort of the database.

34
00:02:47,500 --> 00:02:48,960
You're doing typical database-y things.

35
00:02:49,640 --> 00:02:55,160
And I just found it was almost sort of a litmus test as to the direction I wanted to take my career.

36
00:02:55,840 --> 00:03:01,160
You know, working on that project, I just found that I enjoyed working with the database more than the webpages.

37
00:03:02,140 --> 00:03:05,160
And so that's sort of how the ball started rolling.

38
00:03:05,980 --> 00:03:07,840
And, you know, it's been rolling ever since.

39
00:03:09,780 --> 00:03:12,960
[CLAIRE] Do you know why you enjoyed working with the database more?

40
00:03:13,140 --> 00:03:16,980
I mean, that's that people don't always know why they like what they like, but.

41
00:03:18,000 --> 00:03:23,320
[CHARLES] Yeah, I think so in the context of that project, I'm not a particularly creative or artistic person.

42
00:03:23,520 --> 00:03:27,620
So I remember wrestling forever with making web pages look good.

43
00:03:28,450 --> 00:03:30,700
And that's not something that you need to worry about too much in a database.

44
00:03:31,720 --> 00:03:36,940
You create a table, you put some data in and you run a query and you get an immediate response.

45
00:03:37,680 --> 00:03:41,560
For me, I also just found the SQL language to be incredibly approachable.

46
00:03:42,480 --> 00:03:47,520
And you could get a decent grip on it and be pretty productive with it.

47
00:03:47,620 --> 00:03:51,740
Quickly. And then, you know, you can also do some phenomenally advanced things.

48
00:03:53,060 --> 00:03:58,560
But for me, you know, it worked. And I've spoken to many other people over the years for whom

49
00:03:59,040 --> 00:04:02,940
it was the other way around. You know, they gravitated to more application-centric languages.

50
00:04:03,780 --> 00:04:08,800
And the database was a necessity, but something that they were never passionate about. So,

51
00:04:09,340 --> 00:04:12,160
you know, I just went the way of the database and I still am.

52
00:04:13,240 --> 00:04:18,880
[CLAIRE] Well, you answered my second question before I even got to it, which was how did you get

53
00:04:19,019 --> 00:04:20,079
started with databases then?

54
00:04:20,220 --> 00:04:22,820
So you kind of answered both in one fell swoop.

55
00:04:22,980 --> 00:04:29,440
But I'm assuming that you continued to work with databases after this first project with

56
00:04:29,460 --> 00:04:30,220
your friend in Melbourne.

57
00:04:31,960 --> 00:04:33,140
What was next?

58
00:04:33,620 --> 00:04:34,360
How did it?

59
00:04:33,639 --> 00:04:40,000
[CHARLES] Yeah I mean it yeah so access was relatively short-lived and then when I

60
00:04:40,580 --> 00:04:45,480
sort of finished college, I started to get more exposure to some of the earlier versions of SQL

61
00:04:45,720 --> 00:04:55,980
Server. SQL Server 7, I think. And then really when I was living in London, I started to, I had

62
00:04:55,980 --> 00:05:10,060
an opportunity actually to get really into the weeds of SQL Server 2005 and I think 2008. And

63
00:05:10,080 --> 00:05:15,660
the appreciation for the magnitude of things that databases can do and you can do with databases.

64
00:05:17,140 --> 00:05:21,260
And I probably made a lot of mistakes in how I implemented them over the years. And

65
00:05:21,780 --> 00:05:28,400
hopefully I did a few things right as well. But starting to think about building applications at

66
00:05:28,460 --> 00:05:35,900
scale, the differences in building perhaps web-facing applications that have unpredictable and potentially

67
00:05:35,920 --> 00:05:41,460
very spiky throughput, you know, versus, you know, analytical scenarios that might be, you know,

68
00:05:41,560 --> 00:05:47,840
serving, you know, a company and very defined set of users. And so, you know, the problem space is

69
00:05:48,000 --> 00:05:52,980
huge for how you can, you know, build, build solutions on databases. And over the years,

70
00:05:53,200 --> 00:05:58,940
they've become more optimized for, for different workloads as well. And then SQL Server, you know,

71
00:05:59,080 --> 00:06:05,540
led me actually into the next step beyond building really big, you know, SQL servers. And I remember,

72
00:06:05,940 --> 00:06:11,980
you know, sort of building, even before there were columnar solutions for analytics, you know,

73
00:06:11,980 --> 00:06:17,800
we were trying to wrestle your 20, 30, 40 terabyte, your data warehouses out of really big SQL

74
00:06:18,000 --> 00:06:24,700
servers. And then that sort of led into distributed workloads. I sort of was a very,

75
00:06:25,280 --> 00:06:31,139
had the opportunity to work on, and with a number of Microsoft customers, on the original parallel

76
00:06:31,160 --> 00:06:36,660
data warehouse appliance for distributed databases, and then that inherently led into Azure.

77
00:06:37,720 --> 00:06:42,800
And I've sort of papered over about 15 years in about two or three minutes there. [Yeah]

78
00:06:44,420 --> 00:06:51,500
And that sort of then, the distributed database was a different beast entirely,

79
00:06:52,540 --> 00:06:54,640
hyper-optimized for large-scale analytics.

80
00:06:56,160 --> 00:06:59,560
Many of the traditional compatibility challenges

81
00:06:59,860 --> 00:07:03,460
that any really distributed database starts to wrestle with.

82
00:07:05,210 --> 00:07:07,480
And then that ultimately, then I think,

83
00:07:08,020 --> 00:07:11,840
if we fast forward to 2021 and getting involved in Postgres

84
00:07:11,910 --> 00:07:13,660
and Microsoft, that started with Citus,

85
00:07:14,150 --> 00:07:16,740
which in and of itself is distributed.

86
00:07:18,020 --> 00:07:21,760
And I found it very natural to pick that tech up,

87
00:07:21,810 --> 00:07:24,980
albeit feeling like I'm starting with a new engine again

88
00:07:25,050 --> 00:07:25,540
in Postgres.

89
00:07:34,520 --> 00:07:38,920
[CLAIRE] So I am learning all sorts of new things about Charles that I had no idea.

90
00:07:39,170 --> 00:07:44,960
When you first started in 2021, working on Citus, and specifically it was Citus on Azure

91
00:07:45,320 --> 00:07:52,780
that you were the most senior PM for, that I didn't realize there was a connection to your

92
00:07:52,940 --> 00:07:56,320
past work that you had previously worked on distributed databases.

93
00:07:56,980 --> 00:07:59,300
And so now I know.

94
00:07:59,370 --> 00:08:01,560
Now I know there's a reason that you took that job.

95
00:08:03,840 --> 00:08:08,680
[CHARLES] Yeah, I mean, and I guess that maybe if you're, I got Citus to work, you know, pretty quickly.

96
00:08:08,960 --> 00:08:13,620
I remember spinning it up and, and it, I mean, it was, it was interesting.

97
00:08:14,360 --> 00:08:17,740
It behaved exactly the way I would, would have expected it to behave.

98
00:08:18,560 --> 00:08:20,620
You're coming from, from other distributed systems.

99
00:08:20,720 --> 00:08:25,560
There are different flavors, of course, of, of distributed systems, but, you know, in a,

100
00:08:25,580 --> 00:08:31,880
a model where you're sharding or distributing data based on keys,

101
00:08:32,419 --> 00:08:35,419
distributed and replica tables, a lot of that translated.

102
00:08:36,360 --> 00:08:40,400
And so I had a good sense of sending down some of my first queries,

103
00:08:40,960 --> 00:08:43,200
you found out queries on Citus what they were going to go do.

104
00:08:43,860 --> 00:08:46,380
And by and large, they did sort of what I expected.

105
00:08:47,580 --> 00:08:49,500
And I think I sort of had a head start there as well

106
00:08:49,780 --> 00:08:53,640
because I had a number of years understanding the customer challenges

107
00:08:53,640 --> 00:08:55,920
of leveraging distributed systems as well.

108
00:08:56,619 --> 00:08:57,920
Expectations are very high

109
00:08:58,700 --> 00:09:00,700
when you've come from non-distributed systems.

110
00:09:01,320 --> 00:09:03,140
And you need to change the way you think a little bit

111
00:09:03,720 --> 00:09:05,080
to get the most out of them.

112
00:09:05,080 --> 00:09:07,980
They can absolutely outrun and outscale

113
00:09:09,620 --> 00:09:10,860
your non-distributed systems,

114
00:09:11,200 --> 00:09:13,520
but you need to treat them the right way

115
00:09:13,620 --> 00:09:15,560
and build them the right way.

116
00:09:15,720 --> 00:09:16,480
And if you get it right,

117
00:09:16,760 --> 00:09:18,100
you know they can absolutely fly.

118
00:09:19,400 --> 00:09:26,180
[CLAIRE] So backing up for just a second in that description of 15 years of your career that you did in

119
00:09:26,200 --> 00:09:32,439
just a couple minutes, particularly on all of your work on SQL Server, what kind of role

120
00:09:32,460 --> 00:09:38,860
did you have? I actually don't know, were you a developer? Were you a solutions architect?

121
00:09:40,520 --> 00:09:44,720
How was it that you were working so closely with customers? Or did you cycle through different kinds

122
00:09:44,720 --> 00:09:50,360
of roles? Because I do think there are people out there who ultimately, you know, want to land in

123
00:09:50,510 --> 00:09:55,060
product leadership positions. And there's no one set way to get there. And I'm curious what path you

124
00:09:55,240 --> 00:09:55,340
took.

125
00:09:56,020 --> 00:10:03,140
[CHARLES] Yeah, they were evolving roles and they weren't necessarily, I didn't have a plan, you know,

126
00:10:03,270 --> 00:10:07,240
a 15-year plan to go do the diversity of things that I did.

127
00:10:07,240 --> 00:10:09,920
I think I was lucky in that regard.

128
00:10:12,700 --> 00:10:23,000
Prior to Microsoft, I worked as the SQL person in a mid-sized company.

129
00:10:24,040 --> 00:10:28,880
And that gave me exposure to everything within the SQL stack,

130
00:10:29,080 --> 00:10:29,960
including business intelligence,

131
00:10:30,570 --> 00:10:33,460
but also sort of a responsibility that spanned

132
00:10:33,640 --> 00:10:36,100
from database administration to database development.

133
00:10:37,320 --> 00:10:45,020
And, you know, back in the time, I read that I think one of the best books for learning SQL is called SQL Internals.

134
00:10:45,620 --> 00:10:46,980
And I read that one cover to cover.

135
00:10:47,720 --> 00:10:55,300
And a lot of it, I think, sort of with respect to how databases fundamentally work is translatable across a variety of different platforms.

136
00:10:55,400 --> 00:10:57,080
They're a bit a little different and they do different things.

137
00:10:58,339 --> 00:11:03,060
But that was, you know, a sort of a, that was a really good learning curve for me.

138
00:11:03,660 --> 00:11:05,399
But that was, you know, in-house development administration.

139
00:11:06,200 --> 00:11:08,680
And then that sort of moved into a consultancy role.

140
00:11:10,960 --> 00:11:16,120
Again, prior to Microsoft, where it was more sort of architecture, but also development.

141
00:11:16,890 --> 00:11:21,500
And then that inherently then led to Microsoft, which is when I relocated the United States.

142
00:11:22,460 --> 00:11:26,780
And I was working in a small center of excellence in what at the time was called Microsoft services.

143
00:11:27,720 --> 00:11:29,380
And so that was all customer facing as well.

144
00:11:29,940 --> 00:11:37,440
And then it was about 2016 or so that I sort of took the next step into product management.

145
00:11:37,570 --> 00:11:56,620
But if you draw a line through those, it was developer through, in the context of Microsoft, I would say, you know, a developer who was a customer of Microsoft technology to a partner and consultant using Microsoft technology externally to a consultant within Microsoft.

146
00:11:57,400 --> 00:12:00,820
And then to become a product manager within Microsoft.

147
00:12:01,260 --> 00:12:05,200
So it had a somewhat sort of logical trajectory

148
00:12:05,700 --> 00:12:08,220
that you can sort of thread a line through.

149
00:12:08,940 --> 00:12:12,680
And most importantly, it just gave me a ton of different perspectives

150
00:12:12,920 --> 00:12:15,320
and exposure into the technology and how it's being used

151
00:12:16,220 --> 00:12:17,620
that I think serves me well today.

152
00:12:18,600 --> 00:12:32,120
[CLAIRE] Well, I think one of the, from the PM work that I've done in my career, I think one of the most important attributes or skills you need is empathy and understanding of the customer, their pain points, what they're trying to do, what they really need.

153
00:12:33,440 --> 00:12:38,040
Obviously, you have to be able to listen to them as well, but then have empathy.

154
00:12:38,140 --> 00:12:44,660
And it looks like the path you took gave you a lot of that experience and understanding of how people are using this.

155
00:12:45,480 --> 00:12:49,500
[CHARLES] Yeah, and that's worked for and against me as well. [Oh!] You know, when, when we have,

156
00:12:49,940 --> 00:12:53,760
when we have some product, I remember early on in my product management career,

157
00:12:54,740 --> 00:12:59,280
you know, I quite often asserted that I knew what the customer wanted

158
00:13:00,020 --> 00:13:04,840
right? Because I had been the customer and I knew what didn't work and I knew what annoyed me.

159
00:13:06,360 --> 00:13:11,400
But you know, that's only one perspective, right? And you know, although I wanted to

160
00:13:11,500 --> 00:13:15,520
move fast and use my experience to go build things quickly,

161
00:13:17,180 --> 00:13:23,240
I learned, and correctly, relatively quickly, that I shouldn't be biased by my experiences.

162
00:13:23,500 --> 00:13:27,600
They're a good sniff test as to what maybe we should go do,

163
00:13:28,460 --> 00:13:33,860
but as a product manager, you still want to be surveying the scene broadly across your customers

164
00:13:33,960 --> 00:13:37,680
and validating that a given thing wasn't just annoying you.

165
00:13:38,160 --> 00:13:39,500
It actually has mass appeal.

166
00:13:39,980 --> 00:13:41,960
And it's the type of thing that we should be investing,

167
00:13:42,660 --> 00:13:45,200
you know, very finite engineering resources into.

168
00:13:47,240 --> 00:13:54,180
[CLAIRE] Do you, I know that 2021 was the year that you moved on to Citus and Postgres and you

169
00:13:54,420 --> 00:13:56,900
spent so much time on SQL Server before that.

170
00:13:58,000 --> 00:14:00,200
Do you remember those first impressions?

171
00:14:00,880 --> 00:14:06,140
Or is there a story about what that transition was like or what surprised you?

172
00:14:06,630 --> 00:14:07,240
What you hated?

173
00:14:07,410 --> 00:14:08,060
What you loved?

174
00:14:15,280 --> 00:14:19,480
[CHARLES] Nothing really comes to mind. I remember exactly where I was sitting the day that I installed

175
00:14:19,660 --> 00:14:22,260
pgAdmin and added it to the taskbar

176
00:14:23,580 --> 00:14:27,160
that was going to become my new go-to tool. And I remember

177
00:14:27,340 --> 00:14:31,260
having stared at SQL Management Studio every day for the best part of 15 years

178
00:14:31,960 --> 00:14:35,460
that my days looked a little different all of a sudden. So that was

179
00:14:36,300 --> 00:14:38,260
perhaps one of the more memorable things.

180
00:14:39,480 --> 00:14:42,120
With respect to Postgres itself, I found it incredibly approachable.

181
00:14:42,800 --> 00:14:46,380
But, you know, like any new technology, there is a degree of a learning curve.

182
00:14:47,760 --> 00:14:49,800
Things like extensions were completely new.

183
00:14:50,070 --> 00:14:52,700
And so I wanted to get my head around how they worked.

184
00:14:54,260 --> 00:14:57,600
And so I think they were probably the two that come to mind.

185
00:14:58,520 --> 00:15:01,760
But, you know, it's a phenomenal technology.

186
00:15:02,810 --> 00:15:09,419
And, you know, obviously, you know, a ton of industry data points to the popularity

187
00:15:09,440 --> 00:15:11,440
and breadth of deployment and workload

188
00:15:11,960 --> 00:15:12,760
that it's supporting today.

189
00:15:13,060 --> 00:15:15,680
So, you know, it's been super enjoyable.

190
00:15:16,080 --> 00:15:19,160
And, you know, I think, you know,

191
00:15:19,280 --> 00:15:20,260
we're making a ton of progress.

192
00:15:20,550 --> 00:15:22,140
And I'm learning a lot on the way, which is great.

193
00:15:23,020 --> 00:15:24,480
[CLAIRE] Okay, now you mentioned pgAdmin.

194
00:15:24,860 --> 00:15:31,820
I know some of the people who work on that and created it, and they're absolutely luminaries

195
00:15:31,880 --> 00:15:33,600
in their fields and just wonderful people.

196
00:15:34,500 --> 00:15:37,180
But why did you use pgAdmin and not VS Code?

197
00:15:37,480 --> 00:15:39,460
Doesn't VS Code have a Postgres extension?

198
00:15:40,140 --> 00:15:45,860
[CHARLES] Well it did but it didn't then so or at least it didn't have a great one and actually you

199
00:15:45,860 --> 00:15:51,199
know I asked a very naive question to some of the folks that were in the Postgres team at that

200
00:15:51,220 --> 00:15:56,440
time. And some of them had also worked on SQL and other databases. And I just asked,

201
00:15:56,530 --> 00:16:01,180
it was almost a passing question, so what's the management studio equivalent for

202
00:16:01,280 --> 00:16:08,560
Postgres? And they said, it's pgAdmin. And I said, okay, I'll go get it. So yeah, that was the

203
00:16:08,720 --> 00:16:18,839
simplicity of adopting it. And then more recently, we've done some work at Microsoft to build a new

204
00:16:18,860 --> 00:16:26,180
VS Code extension, we had one previously. And, you know, we retired that one. And, you know,

205
00:16:26,180 --> 00:16:32,060
I think it's, there's a ton of great feedback on that extension. I think we're making good

206
00:16:32,310 --> 00:16:37,900
progress in it. And, you know, hopefully, it's a tool that a lot of developers, in particular,

207
00:16:38,180 --> 00:16:43,420
find valuable, given that, you know, as I was, you know, once upon a time, as we said,

208
00:16:43,640 --> 00:16:47,100
building an app with one hand and building the database with the other hand, you know,

209
00:16:47,160 --> 00:16:49,340
they can get some kind of continuity of experience

210
00:16:49,540 --> 00:16:51,860
within the editor being VS Code,

211
00:16:52,520 --> 00:16:55,020
instead of context switching, as I know I did,

212
00:16:55,940 --> 00:17:01,520
jumping often from Visual Studio to Management Studio.

213
00:17:01,800 --> 00:17:04,640
Although there's also a way to build your database projects

214
00:17:04,860 --> 00:17:05,439
within Visual Studio,

215
00:17:05,560 --> 00:17:07,160
which I got my head around a little later on.

216
00:17:08,760 --> 00:17:13,219
[CLAIRE] I mean, there's a philosophy that a lot of people have espoused, which is you need to

217
00:17:13,240 --> 00:17:14,660
meet developers where they are.

218
00:17:15,920 --> 00:17:20,339
I've heard Satya say that, in fact, but he's not the only person who has said that.

219
00:17:20,699 --> 00:17:24,980
And I do feel like there's a ton of developers out there who do use VS Code.

220
00:17:25,439 --> 00:17:31,080
And so I'm pretty happy that finally, and it took a while, and I wish it had happened

221
00:17:31,160 --> 00:17:36,800
earlier, but finally there is this really good Postgres extension and people are adopting

222
00:17:36,980 --> 00:17:37,820
it like hotcakes.

223
00:17:38,200 --> 00:17:39,220
So that's kind of cool.

224
00:17:38,919 --> 00:17:54,140
[CHARLES] Yeah. Yeah. And I mean, I think, I think it more, more generally, you know, we think about just meeting your customers where they are as well, you know, and then that sort of probably disaggregates into the persona of the customer being the developer or an administrator or, you know, end user consumer.

225
00:17:55,240 --> 00:18:10,520
But, you know, I think, you know, habits are strong and you definitely, you want to try and as you exactly said, right, if you can, if you can make the life a little simpler by offering something new, that's often pretty appealing to people.

226
00:18:11,180 --> 00:18:12,760
If you can, if you can make them a little more productive.

227
00:18:15,060 --> 00:18:22,980
[CLAIRE] All right. So is there anything about Postgres that you've fallen in love with?

228
00:18:24,900 --> 00:18:28,160
Maybe that was something you, well, you mentioned extensions, obviously,

229
00:18:28,980 --> 00:18:32,240
and you started with Citus, which was an extension effectively, but

230
00:18:34,480 --> 00:18:36,220
anything else that's worth shining a light on?

231
00:18:37,500 --> 00:18:42,800
[CHARLES] I think some of the features, you know, that I, I think extensions for me were

232
00:18:42,820 --> 00:18:53,500
a stand-out because they were quite new. And I remember playing with, and I think we were pre-ChatGPT,

233
00:18:54,240 --> 00:19:00,460
pre-AI coding days when I got started, which may have been a good thing because I had to go write

234
00:19:00,970 --> 00:19:11,200
all my own code for playing with some PostGIS, for example. I do think in the era of AI that we're in

235
00:19:11,860 --> 00:19:17,660
where I can basically ask your Copilot or ChatGPT or any other,

236
00:19:18,300 --> 00:19:22,080
you know, AI engine to write code for me for a given thing.

237
00:19:22,720 --> 00:19:25,020
It'll do it really, really, really quickly.

238
00:19:25,960 --> 00:19:30,120
And, you know, I think people tend to learn a lot better

239
00:19:30,400 --> 00:19:33,780
when they're actually producing and typing than just reading code.

240
00:19:33,880 --> 00:19:35,280
Actually, that probably applies to anything.

241
00:19:36,220 --> 00:19:38,960
I've never managed to just read a textbook and know everything.

242
00:19:39,340 --> 00:19:41,880
You actually need to apply yourself to some of the problems

243
00:19:42,200 --> 00:19:43,900
and think more deeply about it.

244
00:19:44,500 --> 00:19:47,480
So I think sort of I learned a lot very quickly,

245
00:19:48,360 --> 00:19:50,560
fortuitously, because I had to write code before I came along.

246
00:19:52,880 --> 00:19:55,020
But the PostGIS was the one that I played with

247
00:19:55,200 --> 00:19:55,900
because it was so famous.

248
00:19:56,600 --> 00:20:00,660
And I think that a lot of people talked about the capabilities

249
00:20:00,880 --> 00:20:01,280
of that one.

250
00:20:01,980 --> 00:20:06,080
But they were extensions, I think, also, and we leveraged them

251
00:20:06,600 --> 00:20:08,280
at Microsoft as well for extending the product.

252
00:20:08,460 --> 00:20:23,560
It's a great way to extend the product quickly and efficiently, even to just validate scenarios before perhaps maybe one day things do upstream again.

253
00:20:25,390 --> 00:20:29,480
So, yeah, that's sort of my immediate impressions and what I found most interesting.

254
00:20:29,660 --> 00:20:38,580
[CLAIRE] Okay. So I maybe glossed over the introduction of your role in the beginning, but you are head

255
00:20:38,760 --> 00:20:47,300
of all things product at Microsoft for Postgres. And that means you keep an eye on our Postgres

256
00:20:47,460 --> 00:20:53,500
open source community work, right? That my team leads, but also Azure Database for PostgreSQL,

257
00:20:53,860 --> 00:20:58,300
which is our managed service that most listeners have probably heard of.

258
00:20:59,960 --> 00:21:02,800
And then there's a new offering that's in preview,

259
00:21:03,010 --> 00:21:04,960
which is Microsoft-speak for beta.

260
00:21:05,390 --> 00:21:08,860
And it's actually in private beta right now called Azure HorizonDB.

261
00:21:09,520 --> 00:21:11,100
That is based on Postgres as well.

262
00:21:11,820 --> 00:21:14,080
And it started off life having a really long name,

263
00:21:14,250 --> 00:21:15,900
Azure HorizonDB for PostgreSQL.

264
00:21:16,240 --> 00:21:18,880
And I think someone somewhere said, no, no, no, let's keep it short.

265
00:21:19,340 --> 00:21:20,160
Azure HorizonDB.

266
00:21:21,320 --> 00:21:23,340
But that's also a Postgres offering.

267
00:21:23,500 --> 00:21:25,420
So you're responsible for all these things.

268
00:21:25,490 --> 00:21:30,740
And I'm curious if you can, I don't know, open the lid and share with us.

269
00:21:30,960 --> 00:21:38,300
What is it like to lead product management for such a big portfolio that touches so many

270
00:21:39,140 --> 00:21:40,040
customers and developers?

271
00:21:42,860 --> 00:21:49,560
[CHARLES] Yeah, I mean, it's a, I enjoy the role, you know, for the diversity that it offers.

272
00:21:50,220 --> 00:21:54,140
And this is not necessarily a Postgres specific statement

273
00:21:54,320 --> 00:22:01,740
first, I would say that your product management, you know, and for anyone who wants to get into it is a wonderfully diverse role.

274
00:22:02,440 --> 00:22:08,160
You can, you know, in any given week, you know, you give a talk at a conference.

275
00:22:08,820 --> 00:22:12,580
You can be, you know, researching the next features that you want to build.

276
00:22:12,640 --> 00:22:18,560
You can be talking to, you know, a customer anywhere on the planet about what's working, what's not, you know, helping them through things.

277
00:22:18,700 --> 00:22:28,000
So I really love and I think the thing that keeps me excited every day about it is just the diversity of what you can work on.

278
00:22:28,830 --> 00:22:35,760
Within Microsoft's portfolio in and of itself, it's big and getting bigger.

279
00:22:37,240 --> 00:22:43,660
But with very careful planning to ensure that what we're doing is valuable to customers.

280
00:22:44,300 --> 00:22:48,360
[CLAIRE] And when you say it's big and getting bigger, I just want to be clear, you're talking about

281
00:22:48,500 --> 00:22:50,620
Postgres, the Postgres business.

282
00:22:49,420 --> 00:22:50,120
[CHARLES] I'm talking about Postgres.

283
00:22:50,420 --> 00:22:50,960
Yeah, yeah, yeah, yeah.

284
00:22:51,310 --> 00:22:53,820
[CLAIRE] Got it.

285
00:22:54,440 --> 00:22:55,460
[CHARLES] You know, with Flexible Server,

286
00:22:55,960 --> 00:22:57,960
it's been in market for a while now.

287
00:22:58,130 --> 00:23:01,900
I think you're getting maybe just over four years since GA,

288
00:23:02,300 --> 00:23:03,600
if I've got my years right.

289
00:23:05,200 --> 00:23:07,860
You know, and that's given us the opportunity

290
00:23:07,860 --> 00:23:10,240
to work with a lot of customers around the world.

291
00:23:10,960 --> 00:23:12,600
And then with Horizon, you're coming,

292
00:23:13,140 --> 00:23:16,920
which will deliver your higher scale,

293
00:23:17,920 --> 00:23:19,740
your throughput, your improvements

294
00:23:20,060 --> 00:23:21,120
around your availability.

295
00:23:23,620 --> 00:23:25,540
That will be a product that stands on itself.

296
00:23:26,120 --> 00:23:29,220
And then we're bringing the Citus extension

297
00:23:29,500 --> 00:23:31,100
into Flexible Server as well.

298
00:23:31,170 --> 00:23:34,220
And in essence, that comes back to the beauty

299
00:23:34,220 --> 00:23:35,960
of the extension model in Postgres.

300
00:23:36,090 --> 00:23:37,880
Here you've got this Citus extension

301
00:23:38,740 --> 00:23:41,099
that's phenomenally powerful in the sense

302
00:23:41,120 --> 00:23:43,180
that it can scale workloads out

303
00:23:44,750 --> 00:23:45,840
to a variety of different ways.

304
00:23:46,010 --> 00:23:47,020
It does a whole bunch of things.

305
00:23:47,710 --> 00:23:48,960
But the fact that it's so easy

306
00:23:49,280 --> 00:23:53,160
to bundle it into a Postgres service

307
00:23:54,559 --> 00:23:56,080
makes it incredibly approachable

308
00:23:56,420 --> 00:23:57,460
for a lot of customers.

309
00:23:57,750 --> 00:24:00,340
And so that's something that we've announced at Ignite

310
00:24:01,120 --> 00:24:03,580
and we're working on the Elastic Cluster feature

311
00:24:04,330 --> 00:24:05,140
within Flexible Server.

312
00:24:05,700 --> 00:24:07,360
And we've seen some great adoption since GA

313
00:24:08,010 --> 00:24:08,600
on that feature.

314
00:24:08,690 --> 00:24:10,439
And it's just another class of customer

315
00:24:11,000 --> 00:24:13,300
that we get to interact with.

316
00:24:13,580 --> 00:24:15,620
So, you know, it's a diverse gig.

317
00:24:14,180 --> 00:24:15,020
[CLAIRE] So, for any...

318
00:24:16,560 --> 00:24:22,240
For anyone who's watching at home about what has happened with Citus on Azure since the

319
00:24:22,420 --> 00:24:26,600
acquisition, I mean, obviously we started off with its own offering, right?

320
00:24:26,880 --> 00:24:29,640
So Azure Database for PostgreSQL Hyperscale Citus.

321
00:24:29,930 --> 00:24:35,060
And then it morphed over into Azure Cosmos DB, right?

322
00:24:35,110 --> 00:24:36,920
And it had an offering over there.

323
00:24:37,480 --> 00:24:39,920
And now it's part of Flex Server.

324
00:24:40,380 --> 00:24:43,500
It's a feature, Elastic Clusters, in Flex Server,

325
00:24:43,720 --> 00:24:47,020
which I think is cool because it makes it so much easier

326
00:24:47,260 --> 00:24:49,160
for Flex Server customers to adopt it.

327
00:24:49,820 --> 00:24:52,540
But it's had a...

328
00:24:51,560 --> 00:24:58,040
[CHARLES] That's part of it. And one of, I think, maybe the underappreciated things is that

329
00:25:00,080 --> 00:25:08,060
the cloud is a phenomenal vehicle for shipping software, right? In essence, it makes it much

330
00:25:08,140 --> 00:25:16,580
easier and removes that barrier to distributing your software. And you need to be a little more

331
00:25:16,900 --> 00:25:24,220
careful, in my humble opinion, that you don't proliferate a product portfolio too much, that

332
00:25:24,220 --> 00:25:29,380
the customer of a conversation becomes, well, for this, you should do this, or for this, this,

333
00:25:29,560 --> 00:25:36,339
or this, or this, and what have you, right? Fewer things, fewer arrows, with more wood behind them

334
00:25:36,400 --> 00:25:43,080
is more, I think, consumable by a customer.

335
00:25:43,900 --> 00:25:48,700
And so that's the approach we're taking with Flexible Server.

336
00:25:50,860 --> 00:25:53,180
More broadly speaking, Azure Database for PostgreSQL,

337
00:25:53,940 --> 00:25:55,080
it's managed open source.

338
00:25:55,520 --> 00:25:58,100
It's a fully managed service, comes SLA backed,

339
00:25:58,700 --> 00:26:00,460
wrapped in a collection of security,

340
00:26:01,160 --> 00:26:03,100
high availability and disaster recovery features.

341
00:26:03,720 --> 00:26:11,520
But its core, it's open source, Postgres 18, 17, 16, soon to be 19.

342
00:26:13,460 --> 00:26:17,080
And last year we shipped that on the same day that the community GAed it.

343
00:26:17,540 --> 00:26:18,620
There's no forks.

344
00:26:19,400 --> 00:26:21,160
And we do the same thing with extensions.

345
00:26:22,260 --> 00:26:23,500
We do the same thing with Citus.

346
00:26:23,980 --> 00:26:28,080
It's the same Citus extension that is open source.

347
00:26:28,900 --> 00:26:31,320
And so it's a very clear and crisp product definition.

348
00:26:31,700 --> 00:26:35,840
It's very easy to explain to customers precisely what it is.

349
00:26:37,080 --> 00:26:38,120
And the value prop is clear.

350
00:26:38,980 --> 00:26:41,140
So that's why we brought those together.

351
00:26:41,840 --> 00:26:47,680
And I think it is making it more easy to tell your part of Microsoft's Postgres story.

352
00:26:47,840 --> 00:26:52,720
And definitely, I think it's making it more easier for customers to rationalize what we're doing and see what we're doing.

353
00:26:53,900 --> 00:27:14,600
[CLAIRE] Okay, so I'm going to jump ahead. I probably shouldn't ask this question for another five or 10 minutes, but I just, I can't resist. So you talked about fewer arrows with more wood behind them. To make it easier for people to know what to adopt to, you know, simplify some of the choices that you have to make in deciding what you're going to build on.

354
00:27:15,040 --> 00:27:19,300
But at the same time, you just rolled out a new database offering, Azure HorizonDB.

355
00:27:19,600 --> 00:27:24,020
So if I'm a prospect and I'm trying to decide whether I'm going to deploy on Azure Database

356
00:27:24,020 --> 00:27:29,600
for PostgreSQL, what you were calling Flexible Server, which is, as you said, like a managed

357
00:27:29,720 --> 00:27:35,120
service for the open source offering, not a fork, or Azure HorizonDB, how am I going

358
00:27:35,120 --> 00:27:35,480
to choose?

359
00:27:35,860 --> 00:27:37,900
How do I know which one is a fit for my application?

360
00:27:38,780 --> 00:27:40,200
[CHARLES] And, look, it's a great question.

361
00:27:40,260 --> 00:27:48,520
And the answer is, no matter what we do, because they're both Postgres, there's always going to be a little bit of overlap in those, right?

362
00:27:49,740 --> 00:27:57,980
And frankly, I've had the similar question many times over many, many years about, more broadly speaking, which database do I use?

363
00:27:58,560 --> 00:27:58,720
Period.

364
00:27:59,600 --> 00:28:10,220
And I think maybe in some scenarios, people still make decisions on whether they want to use a relational database or a NoSQL database, which are two incredibly different things.

365
00:28:11,660 --> 00:28:19,220
And if you're asking that question, then you need to really think hard about what the app is going to do.

366
00:28:19,240 --> 00:28:35,200
But in the context of Postgres, I think that the way that we're building Horizon, we're doing a lot more engineering work in the storage engine itself, both with respect to your log and your storing database pages.

367
00:28:36,040 --> 00:28:48,800
And that is going to enable Horizon to scale a little further, go a little faster, and things like high availability will be superior.

368
00:28:48,860 --> 00:29:14,740
So, you know, we have a long roadmap and a long plan for Horizon. And the first step is to bring it to a broader public preview later this year. But, you know, I think that initially, we're just starting with ensuring that its scalable performance meets the needs of our enterprise customers, which we understand very clearly.

369
00:29:15,540 --> 00:29:32,900
And then on the side, and like we talked about at Ignite, you're starting to bring a few new innovative things that lean a little more towards the developer and AI, where we know Postgres is becoming incredibly popular and has been since the AI tidal wave broke.

370
00:29:33,520 --> 00:29:38,740
I know that a lot of people ran very early to that chat with your data scenario.

371
00:29:39,360 --> 00:29:40,800
What's this pgvector thing?

372
00:29:41,420 --> 00:29:45,160
And as I recall, you take a look at the star history for pgvector.

373
00:29:45,810 --> 00:29:52,000
And that thing basically hockey sticked up within a few weeks of ChatGPT.

374
00:29:52,310 --> 00:29:53,460
You're having its viral moment.

375
00:29:54,070 --> 00:29:59,520
And I think Postgres has been on a tear on that trajectory for AI since then.

376
00:30:03,420 --> 00:30:07,440
[CLAIRE] I know that people have a lot of questions about Azure HorizonDB

377
00:30:07,460 --> 00:30:12,180
because they, well, the people who've heard about it do because it's still in private preview,

378
00:30:12,420 --> 00:30:16,040
which means they don't have access yet to the documentation and the things they would normally

379
00:30:16,220 --> 00:30:22,580
do to kick the tires or try it out. And I know you said it's targeting preview, which is an open

380
00:30:23,020 --> 00:30:30,100
beta later this calendar year, which is great. But the good news is more and more people are

381
00:30:30,240 --> 00:30:35,779
starting to talk about it. I know you present to customers all the time about it. Is that a fair

382
00:30:36,000 --> 00:30:36,820
a fair statement. [Yeah that's a...]

383
00:30:37,340 --> 00:30:39,320
You have customer conversations

384
00:30:39,700 --> 00:30:40,400
every single week.

385
00:30:40,710 --> 00:30:41,420
Is that true?

386
00:30:41,419 --> 00:30:47,700
[CHARLES] We that would be correct if not multiple times a week so it's a it's a good part

387
00:30:47,700 --> 00:30:50,240
of the good part of the job I love speaking to customers and finding out what they're doing.

388
00:30:51,020 --> 00:30:52,160
[CLAIRE] And are these days

389
00:30:52,440 --> 00:30:54,340
because HorizonDB is still in private preview

390
00:30:54,450 --> 00:30:55,500
are most of your conversations

391
00:30:55,630 --> 00:30:56,360
still about flex?

392
00:30:57,070 --> 00:30:58,080
Or is it about both?

393
00:30:58,380 --> 00:30:59,200
Because people are curious.

394
00:31:00,300 --> 00:31:04,640
[CHARLES] Oh definitely both I mean there's a there's a ton of there's a ton of interest you know and

395
00:31:04,800 --> 00:31:08,620
obviously we're working with some of our customers already you know in the preview of

396
00:31:08,720 --> 00:31:17,620
Horizon but you know flex is established and you know it's easy to you know want to

397
00:31:17,640 --> 00:31:23,820
focus on the new shiny things. But, you know, the reality is that we, you know, we run a lot of

398
00:31:24,040 --> 00:31:29,380
critical workloads for many customers on Flex. And that's, that's the highest priority every single

399
00:31:29,500 --> 00:31:34,820
day is to ensure that they're, they're successful. So, you know, I would say if I'm to give a split,

400
00:31:35,230 --> 00:31:42,220
I probably spend 70% of my time talking about Flexible Server, because that's where our existing

401
00:31:42,220 --> 00:31:49,780
customers are today and learning about what they need, what's working well. These conversations

402
00:31:50,100 --> 00:31:56,580
in many cases have a common theme that we're talking about. We're asking similar questions

403
00:31:56,760 --> 00:32:02,800
and they're telling us similar things, but the content is very different. A given customer

404
00:32:03,000 --> 00:32:06,880
trying to run application A will have a whole bunch of different things to tell us than a

405
00:32:06,940 --> 00:32:10,840
different customer running application B. And that's part of the fun and that's part of the

406
00:32:10,860 --> 00:32:19,880
challenge at the same time is the breadth of workloads that Postgres is being adopted into

407
00:32:20,500 --> 00:32:30,260
right now from those tier one enterprise line of business applications to new AI apps that

408
00:32:31,700 --> 00:32:38,700
started being built this morning. That's a big spectrum, whether it's maturity, size, age,

409
00:32:38,720 --> 00:32:39,300
or anything else.

410
00:32:40,290 --> 00:32:44,780
And building a Postgres service or Postgres services now

411
00:32:45,410 --> 00:32:47,700
to accommodate that breadth of customer base,

412
00:32:48,540 --> 00:32:52,860
it needs some thought because our backlog

413
00:32:53,060 --> 00:32:54,500
will always be bigger than our capacity.

414
00:32:55,110 --> 00:32:57,180
And so we spend a lot of time.

415
00:32:57,340 --> 00:32:59,560
In fact, I spent a chunk of time yesterday morning

416
00:32:59,590 --> 00:33:04,240
and again this morning trying to get our priorities nailed

417
00:33:04,240 --> 00:33:06,660
for the upcoming, you know, periods

418
00:33:07,340 --> 00:33:10,300
because, you know, it matters to our customers

419
00:33:10,420 --> 00:33:11,600
and we've got to think really hard about it.

420
00:33:13,600 --> 00:33:17,820
[CLAIRE] For someone who might have fast forwarded and just started listening at this point in

421
00:33:17,820 --> 00:33:23,940
the conversation, when we say flex, it's kind of like the, it's an internal nickname for flexible

422
00:33:24,260 --> 00:33:26,840
server, which is basically Azure Database for PostgreSQL.

423
00:33:27,180 --> 00:33:30,980
We used to have two different flavors of Azure Database for PostgreSQL, and so that's why one

424
00:33:30,980 --> 00:33:32,420
of them was called Flexible Server.

425
00:33:32,560 --> 00:33:37,240
So anyway, I just, we did have three.

426
00:33:33,380 --> 00:33:36,360
[CHARLES] Actually I think we had I think we had three at one point, Claire.

427
00:33:37,440 --> 00:33:41,240
[CLAIRE] We had Single Server, Flexible Server, and Hyperscale Citus, which is a lot.

428
00:33:45,540 --> 00:33:50,820
One of the other things that's happening now, because HorizonDB is in private preview, is

429
00:33:51,300 --> 00:33:53,200
people are starting to give talks about it.

430
00:33:53,210 --> 00:33:58,140
So for example, FOSSASIA PGDay happened last week in Bangkok, Thailand.

431
00:33:59,360 --> 00:34:02,080
And Microsoft was, I think, a silver sponsor.

432
00:34:02,960 --> 00:34:05,360
And as a result, we gave a lightning talk.

433
00:34:05,620 --> 00:34:10,060
And so Brian McKerr went there and his lightning talk, it was like 15 minutes long, was completely

434
00:34:10,379 --> 00:34:11,639
focused on Azure HorizonDB.

435
00:34:12,679 --> 00:34:20,200
And then also PGConf India, also last week in Bangalore, Aditya Duvuri and Divya Bhargov

436
00:34:20,440 --> 00:34:23,419
co-presented and gave a talk about Azure HorizonDB.

437
00:34:23,639 --> 00:34:35,340
So people are starting to share more information, which I think is helping for those who have questions and want to know more and want to think about whether it's going to be a fit for them in the future or not.

438
00:34:37,520 --> 00:34:39,620
[CHARLES] How was PGConf India, by the way?

439
00:34:39,940 --> 00:34:41,399
[CLAIRE] PGConf India was awesome.

440
00:34:41,580 --> 00:34:42,540
It was incredible.

441
00:34:43,340 --> 00:34:52,480
There were some people who couldn't make it because some of the airports, like Dubai is a really popular hub to fly into Bangalore through, and that airport was closed.

442
00:34:53,000 --> 00:34:55,940
So there were a couple of speakers I know about who couldn't make it.

443
00:34:57,700 --> 00:35:04,660
But I was just, it was chock full of people, really crowded, a ton of energy, a lot of good

444
00:35:04,980 --> 00:35:06,580
conversations at the Microsoft booth.

445
00:35:07,860 --> 00:35:13,660
I just, I was like a pig in mud, if that's the right analogy.

446
00:35:14,740 --> 00:35:15,760
I had a great time.

447
00:35:15,960 --> 00:35:21,040
And at our booth, we actually had a really popular technical quiz that people got

448
00:35:21,040 --> 00:35:21,720
to compete in.

449
00:35:21,760 --> 00:35:24,580
And so a lot of the developers, you know, they like to compete.

450
00:35:24,910 --> 00:35:25,840
And so that was kind of fun.

451
00:35:27,500 --> 00:35:33,100
But the talks were super high quality and the organizers do a really good job.

452
00:35:33,670 --> 00:35:34,800
And they're going to keep growing.

453
00:35:35,460 --> 00:35:35,940
I don't know.

454
00:35:36,120 --> 00:35:40,440
Maybe PGConf India is going to give PGConf.EU a run for their money in terms of attendees,

455
00:35:40,910 --> 00:35:41,760
in three years time.

456
00:35:43,020 --> 00:35:47,460
[CHARLES] Yeah, so I saw PGConf.EU is in Valencia this year.

457
00:35:48,699 --> 00:35:50,800
[CLAIRE] Yes, October 20 through 23.

458
00:35:50,900 --> 00:35:57,480
Call for sponsorships is not yet open. So we have not had a chance to sign up yet,

459
00:35:57,660 --> 00:36:07,700
Charles, but don't worry.

460
00:35:59,020 --> 00:35:59,140
[CHARLES] All right.

461
00:35:59,360 --> 00:35:59,800
Thank you for that.

462
00:36:01,520 --> 00:36:03,100
I'll let you go back to asking the questions now.

463
00:36:07,880 --> 00:36:12,480
[CLAIRE] There was something else about HorizonDB that I wanted to mention, and we should throw a link in the show notes to this. Adam Prout,

464
00:36:12,980 --> 00:36:20,860
who is a distinguished engineer, is that the right title? [He is. He is. That's correct.] At Microsoft, very, very senior

465
00:36:20,880 --> 00:36:27,980
architect and an architect behind Azure HorizonDB, figuring out how it should work,

466
00:36:28,180 --> 00:36:34,840
what it should look like, what it should do. He gave a talk in the Carnegie Mellon database

467
00:36:35,420 --> 00:36:40,440
speaker series that happens virtually. And this was just a couple of weeks ago. So there's a

468
00:36:40,650 --> 00:36:45,040
recording online. For those of you who know Andy Pavlo, this is something that he and his team

469
00:36:45,360 --> 00:36:50,840
organized, all these virtual talks. I think they started during COVID and they were called the

470
00:36:50,860 --> 00:36:55,580
vaccination series or something like that. But they obviously have different names now.

471
00:36:57,120 --> 00:37:00,680
So it was really cool. And I haven't had a chance to tell you this, Charles, but

472
00:37:01,640 --> 00:37:06,040
kind of random. But I was on the show floor at PGConf India and somebody I didn't know

473
00:37:06,480 --> 00:37:10,380
came up to me, introduced themselves and said, listen, I listen to your podcast.

474
00:37:11,080 --> 00:37:15,640
And I really think you need to have Adam Prout on your show to talk about HorizonDB.

475
00:37:16,460 --> 00:37:18,660
And I was like, well, that's cool.

476
00:37:19,000 --> 00:37:21,920
He's already lined up to be the May guest on the episode.

477
00:37:22,120 --> 00:37:22,580
He's like, May?

478
00:37:22,960 --> 00:37:23,220
What date?

479
00:37:23,340 --> 00:37:23,960
What date in May?

480
00:37:24,400 --> 00:37:26,460
So I just thought that was really neat.

481
00:37:26,580 --> 00:37:31,420
Having listeners approach me is fun, but it was especially fun that he was interested

482
00:37:31,460 --> 00:37:33,180
in this topic and in Adam joining.

483
00:37:33,460 --> 00:37:36,540
[CHARLES] I will concede actually that I've not listened to Adam's talk either.

484
00:37:36,840 --> 00:37:39,280
The Carnegie one is on my list.

485
00:37:39,980 --> 00:37:43,660
I have been told for what it's worth by a few people that it's an exceptional talk. [Oh, good.]

486
00:37:44,440 --> 00:37:46,640
So I am planning to listen to it as well.

487
00:37:46,840 --> 00:37:49,900
And I would encourage everybody to have a listen.

488
00:37:50,240 --> 00:37:52,380
I think it'll probably shine a brighter light

489
00:37:52,600 --> 00:37:55,520
onto the workings of HorizonDB.

490
00:37:56,660 --> 00:37:59,500
And Adam also gave a great talk at Ignite last year,

491
00:37:59,520 --> 00:38:01,940
which I think is all on demand now as well

492
00:38:02,660 --> 00:38:03,820
with Denzel from my team.

493
00:38:03,880 --> 00:38:05,940
So you can take a look at that one as well

494
00:38:06,080 --> 00:38:06,860
if you're curious.

495
00:38:07,860 --> 00:38:10,000
[CLAIRE] I will include that in the show notes also.

496
00:38:11,060 --> 00:38:14,120
Hopefully it's ungated in terms of Ignite Talks.

497
00:38:14,120 --> 00:38:14,680
I think you're right.

498
00:38:14,840 --> 00:38:22,800
Think it should be. So what I remember about when you first took over the Azure Database for PostgreSQL

499
00:38:23,030 --> 00:38:28,760
Flex Server business, and anyone who listens knows I'm focused on the community side and the open

500
00:38:28,960 --> 00:38:33,280
source side of things, but that doesn't mean I'm not paying attention to what's going on internally

501
00:38:33,460 --> 00:38:40,120
at Microsoft. But I remember you advocating really strongly for requirements that enterprise

502
00:38:40,120 --> 00:38:47,040
customers had I don't know can you tell me more about that

503
00:38:48,420 --> 00:38:53,140
[CHARLES] Yeah I think so I mean it comes back to what I was saying earlier and then about sort of

504
00:38:53,140 --> 00:39:00,340
the breadth of where Postgres is being adopted today and then I think that it sort of has an

505
00:39:00,480 --> 00:39:06,299
element of you just sort of product management fundamentals as well right you

506
00:39:06,320 --> 00:39:10,120
need to understand who your customer is, first and foremost.

507
00:39:10,580 --> 00:39:14,400
It doesn't necessarily matter who they are, but whoever they are,

508
00:39:14,400 --> 00:39:17,940
you need to know them and you need to know what's important to them.

509
00:39:19,340 --> 00:39:21,920
It's very difficult to build something for everybody.

510
00:39:23,820 --> 00:39:26,380
And so when we're thinking

511
00:39:26,540 --> 00:39:30,260
about building your database services, and the way

512
00:39:30,260 --> 00:39:33,459
that we talk about your enterprise customers maybe is sort of more

513
00:39:33,880 --> 00:39:36,260
more sort of inside baseball at Microsoft.

514
00:39:37,000 --> 00:39:38,780
But there are some fundamental requirements

515
00:39:38,920 --> 00:39:40,480
that every database must have.

516
00:39:40,680 --> 00:39:42,200
And frankly, I think it probably extends

517
00:39:42,480 --> 00:39:43,300
beyond enterprise customers,

518
00:39:43,400 --> 00:39:45,920
but it's a good cohort to sort of ground yourself in.

519
00:39:46,900 --> 00:39:47,760
Things like security,

520
00:39:48,180 --> 00:39:49,040
disaster recovery,

521
00:39:49,720 --> 00:39:50,140
high availability,

522
00:39:52,120 --> 00:39:53,640
these things are non-negotiables

523
00:39:54,040 --> 00:39:55,620
in database systems, right?

524
00:39:56,880 --> 00:39:58,720
And how you handle high availability

525
00:39:59,640 --> 00:40:02,180
across availability zones within Azure, right?

526
00:40:02,220 --> 00:40:04,380
And how quickly you can fail it.

527
00:40:04,390 --> 00:40:05,340
How do you handle your backups?

528
00:40:05,930 --> 00:40:07,300
Do you offer geo-redundant backups?

529
00:40:07,970 --> 00:40:09,520
Do you offer zone-redundant backups?

530
00:40:11,000 --> 00:40:15,020
These are all nitty-gritty details that matter.

531
00:40:16,220 --> 00:40:17,120
How do you handle networking?

532
00:40:17,550 --> 00:40:18,640
Do you have private endpoints?

533
00:40:19,110 --> 00:40:20,020
Do you have VNets?

534
00:40:21,080 --> 00:40:23,120
And it's an incredibly long list.

535
00:40:23,880 --> 00:40:28,259
And so we were very intentional with Flexible Server

536
00:40:28,260 --> 00:40:34,920
that we focused on the things that mattered most

537
00:40:35,920 --> 00:40:37,560
with respect to security and availability

538
00:40:38,520 --> 00:40:40,300
because they're, like I said, they're non-negotiables

539
00:40:41,620 --> 00:40:42,920
and building them in order.

540
00:40:43,240 --> 00:40:46,540
And anyone who goes back and reads the release notes

541
00:40:47,340 --> 00:40:50,760
for the last three years will see just a steady stream

542
00:40:51,400 --> 00:40:53,900
of that class of feature coming online.

543
00:40:56,740 --> 00:41:03,080
And the other thing, and I sort of, I guess I gave a nod to it already, is it's one thing to build features.

544
00:41:03,240 --> 00:41:08,820
And that's another thing to actually finish the loop, which is to tell people they're there and why they matter.

545
00:41:09,600 --> 00:41:12,380
Because, you know, we ship frequently.

546
00:41:13,660 --> 00:41:14,520
Cadences vary.

547
00:41:16,140 --> 00:41:18,340
Scope or magnitude of a deployment varies.

548
00:41:19,280 --> 00:41:25,760
But ultimately, your customers need something consumable that they know what's there and why it matters to them.

549
00:41:26,640 --> 00:41:30,800
And so in the last few years, we've made a very intentional push.

550
00:41:31,040 --> 00:41:42,600
In fact, there's a given PM in my team who go through like, I think, six monthly rotations at the moment who basically own the authoring of monthly release notes.

551
00:41:43,920 --> 00:41:45,000
And we make sure they go out.

552
00:41:45,520 --> 00:41:50,640
We do the standard social blasts on LinkedIn and your network of choice.

553
00:41:51,600 --> 00:41:57,520
Just to make sure that we're trying to get as much information out there on what is happening in the service.

554
00:41:58,740 --> 00:42:00,680
And it's not specific to Postgres.

555
00:42:01,460 --> 00:42:06,640
It's really, I think, core to running any managed service is that you ship so frequently.

556
00:42:06,860 --> 00:42:07,640
And this is not new.

557
00:42:07,680 --> 00:42:08,540
I mean, this is the cloud.

558
00:42:08,560 --> 00:42:09,820
It's been around for a little while now.

559
00:42:10,540 --> 00:42:13,840
But we don't do sort of low-frequency big bang announcements.

560
00:42:14,480 --> 00:42:18,000
We do higher frequency, smaller announcements.

561
00:42:18,940 --> 00:42:21,760
And it's important just to keep that news feed flowing.

562
00:42:22,840 --> 00:42:28,960
But again, with an emphasis on why it would matter for a given customer and not just simply saying, okay, this feature's here.

563
00:42:29,560 --> 00:42:30,040
You know, good luck.

564
00:42:31,280 --> 00:42:32,820
And that's something we've made a big push on as well.

565
00:42:32,980 --> 00:42:35,680
And I think it's just a fundamental of program management all up.

566
00:42:40,140 --> 00:42:46,040
[CLAIRE] I think blogs still very much have a role in how people learn and consume information. Even as other things have changed, like the social

567
00:42:46,280 --> 00:42:51,440
media landscape has changed dramatically in the last three years. I would say that LinkedIn is

568
00:42:51,590 --> 00:42:57,120
probably more popular in the Postgres community than it was three years ago. It used to be Twitter.

569
00:42:57,480 --> 00:43:03,520
Twitter was where everybody shared all their information. And now both, and when I say Postgres

570
00:43:03,680 --> 00:43:09,220
community, I'm talking about people who use and work on the cloud managed services, as well as

571
00:43:09,780 --> 00:43:11,400
people who work in the open source community.

572
00:43:12,180 --> 00:43:14,520
So, but yeah, blogs matter.

573
00:43:15,940 --> 00:43:17,820
I should include a link in the show notes

574
00:43:18,000 --> 00:43:19,680
to the Microsoft blog for Postgres

575
00:43:19,960 --> 00:43:20,980
that's on tech community,

576
00:43:21,620 --> 00:43:22,840
just for anybody who's listening,

577
00:43:23,060 --> 00:43:24,020
who's never checked it out

578
00:43:24,220 --> 00:43:25,460
and maybe they're an Azure customer

579
00:43:25,540 --> 00:43:26,880
and they want to see that monthly recap.

580
00:43:27,200 --> 00:43:28,820
So I'll drop that in there.

581
00:43:29,640 --> 00:43:33,380
[CHARLES] And I mean, that blog in and of itself was another thing that we did quite intentionally.

582
00:43:33,760 --> 00:44:00,100
Like we, I remember years ago now, you know, sort of, you know, corralling, you know, there was a ton of content being produced, but it was just going everywhere. And we made a very intentional effort to try and consolidate it onto this blog. And we have authors on this blog who are even outside of the engineering team at Microsoft. But it's, again, it's just so much easier to consume information if there's fewer things or fewer places to go.

583
00:44:00,900 --> 00:44:14,420
And so you're the best we could do for Postgres at Microsoft, all encompassing of whether it's, you know, things we're doing in open source or things that we're doing in Azure, right, or your community announcements for Posette coming.

584
00:44:15,360 --> 00:44:16,920
Everything flows through a singular blog.

585
00:44:17,880 --> 00:44:19,840
And I don't think we can have less than one.

586
00:44:20,050 --> 00:44:21,820
So I think we've got that one right.

587
00:44:28,900 --> 00:44:30,320
[CLAIRE] Because I do get this question sometimes,

588
00:44:30,620 --> 00:44:34,740
why is it that Microsoft has built this open source contributors team?

589
00:44:35,060 --> 00:44:37,900
How does that help Azure? Don't you want, oh,

590
00:44:38,560 --> 00:44:41,800
actually someone came up to me at PGConf India and they were like,

591
00:44:41,920 --> 00:44:43,840
I don't understand why you do that. Why,

592
00:44:44,440 --> 00:44:49,260
why don't you take those engineers and work on features and, you know,

593
00:44:49,420 --> 00:44:53,460
don't put them in the open source upstream project and just put them into the

594
00:44:53,700 --> 00:44:55,440
proprietary bits in your managed services.

595
00:44:57,220 --> 00:45:00,420
So why is it that we do what we do with the open source project?

596
00:45:01,140 --> 00:45:04,860
[CHARLES] I think there's a few aspects to this, to be honest.

597
00:45:06,490 --> 00:45:17,560
First, I think that if you're going to leverage open source code to the extent and build on it,

598
00:45:17,710 --> 00:45:21,120
you need to be a responsible participant in that community.

599
00:45:21,680 --> 00:45:23,820
The Postgres project is phenomenal.

600
00:45:24,000 --> 00:45:27,180
Many people call it the Linux of databases.

601
00:45:28,700 --> 00:45:32,540
And I think that we are sort of one of a very small handful

602
00:45:32,980 --> 00:45:36,720
of companies that, you know, at the scale that we run it,

603
00:45:36,960 --> 00:45:39,960
you know, we can see things, we find things

604
00:45:40,540 --> 00:45:42,120
that we can potentially help with.

605
00:45:42,980 --> 00:45:46,680
So we do very intentionally make that investment.

606
00:45:47,640 --> 00:45:50,079
And the investment, you know, and as you and I have talked

607
00:45:50,100 --> 00:45:53,820
about many times over the years, Claire, you know, extends beyond code as well.

608
00:45:54,740 --> 00:45:59,560
You know, it extends into, you know, supporting community events, you know,

609
00:45:59,680 --> 00:46:01,740
be it like PGConf India we just talked about.

610
00:46:02,250 --> 00:46:06,640
You know, we've got, I think it's, I think this year it's now called PG Summit US

611
00:46:06,880 --> 00:46:14,460
or PG US Summit, which was the sort of the, that's right.

612
00:46:07,540 --> 00:46:08,960
[CLAIRE] Yes, Postgres Summit US.

613
00:46:10,460 --> 00:46:17,120
That's the rename rebrand of PGConf New York City, which I guess they renamed because they

614
00:46:17,270 --> 00:46:21,940
wanted to show everyone that, hey, we have people coming to this event from all over the

615
00:46:22,070 --> 00:46:22,220
country. [that's right]

616
00:46:23,060 --> 00:46:25,920
It isn't just limited to people in that tri-state area.

617
00:46:26,660 --> 00:46:31,340
[CHARLES] Yep and it's a phenomenal conference and exceptionally well organized as well and

618
00:46:31,420 --> 00:46:37,960
you've sponsored that as well and had the opportunity to speak there in EU and then

619
00:46:38,300 --> 00:46:43,399
you know a number of day events around the world you know I think the India US and EU

620
00:46:43,960 --> 00:46:50,340
conferences are probably recognized as the big ones globally and globally spread [In person.]

621
00:46:50,640 --> 00:46:58,800
Yes, thank you, Claire. But there's day events popping up all over the world. And they're great

622
00:46:59,090 --> 00:47:04,660
local events, smaller, but still some great content. And we're pleased to be able to get

623
00:47:04,860 --> 00:47:09,380
behind some of those as well and try to ensure they're going to be enduring.

624
00:47:10,480 --> 00:47:16,760
[CLAIRE] Well, what's really cool is there are people at Microsoft who are in our open source contributor

625
00:47:16,870 --> 00:47:20,340
team who are also organizers of some of these Postgres community events.

626
00:47:20,520 --> 00:47:28,780
Melanie Plageman is instrumental in PGConf.dev, which is the annual development event that happens in Canada every year.

627
00:47:29,480 --> 00:47:33,580
So she's both chair of the talk selection as well as on the organizing team for that.

628
00:47:33,670 --> 00:47:37,620
Or next week, Nordic PGDay is happening in Helsinki.

629
00:47:38,240 --> 00:47:40,640
And Daniel Gustafsson is an organizer of that.

630
00:47:42,680 --> 00:47:48,160
Prague Postgres Developer Day happened a couple of months ago now, obviously in Prague.

631
00:47:48,700 --> 00:47:50,740
And Tomas Vondra was one of the organizers for that.

632
00:47:50,940 --> 00:47:52,160
It's kind of cool.

633
00:47:52,280 --> 00:47:54,420
So there's the financial sponsorship that we do.

634
00:47:54,960 --> 00:47:57,560
And then there's the people giving their time also.

635
00:47:58,810 --> 00:48:03,000
[CHARLES] And then there's POSETTE, of course, which, you know, is a topic, topic...

636
00:48:01,780 --> 00:48:03,160
[CLAIRE] Thank you for mentioning that.

637
00:48:03,720 --> 00:48:05,220
[CHARLES] Well, you know, I was getting there.

638
00:48:05,860 --> 00:48:08,840
That's obviously a topic near and dear to your heart.

639
00:48:08,920 --> 00:48:11,060
And you guys do a phenomenal job of putting that on.

640
00:48:11,300 --> 00:48:18,160
But, you know, it's another, I think, I don't know where it stacks in the virtual Postgres conferences.

641
00:48:19,380 --> 00:48:20,900
I think it's probably up there.

642
00:48:21,080 --> 00:48:24,140
But we're coming into our 5th year, I think, this year. [Yep]

643
00:48:25,040 --> 00:48:31,760
And, you know, it's a platform for the community to, you know, give some talks.

644
00:48:31,820 --> 00:48:33,620
And, you know, there's been some phenomenal talks given there

645
00:48:34,000 --> 00:48:37,640
over the years, and obviously being virtual, it's immensely accessible to everybody.

646
00:48:38,440 --> 00:48:47,080
So, I mean, we've tried very intentionally, and I'll stress the intention behind it,

647
00:48:47,700 --> 00:48:52,820
to be great citizens in the Postgres community, broadly speaking.

648
00:48:54,020 --> 00:49:00,139
And that manifests in all of the ways that we just described, whether it's code into upstream

649
00:49:00,160 --> 00:49:06,020
projects or your sponsorships in support of, you know, community events or, you know,

650
00:49:06,260 --> 00:49:11,260
POSETTE or time, you know, which is far, far harder to, you know, precisely measure.

651
00:49:12,180 --> 00:49:17,620
I think it's important, you know, and it enables us to, you know, support our customers better,

652
00:49:18,170 --> 00:49:20,220
you know, when we're so deeply involved in the project.

653
00:49:21,330 --> 00:49:27,239
And it, you know, provides, you know, or contributes, I would say, to a foundation that

654
00:49:27,260 --> 00:49:34,360
Postgres is going to be successful over a longer period of time. And I think that's a good thing to go do.

655
00:49:35,760 --> 00:49:42,120
[CLAIRE] This year is the 30th birthday, the 30th anniversary of the beginning of the Postgres

656
00:49:42,340 --> 00:49:46,460
open source project. I know you might be thinking if you're listening, wait, I thought Postgres was

657
00:49:46,680 --> 00:49:52,980
40. Okay. So the technology itself is 40 years, but the open source project started in, I guess,

658
00:49:53,200 --> 00:50:03,300
Am I doing my math right? Is it 1996? Is that right? Yeah. So I know at PGConf.dev in Vancouver

659
00:49:57,800 --> 00:49:58,860
[CHARLES] I think it'll be 30 years.

660
00:49:58,870 --> 00:49:59,360
Yeah, '96.

661
00:49:59,780 --> 00:50:00,620
It's frightening, isn't it?

662
00:50:03,430 --> 00:50:08,460
[CLAIRE] This year in May, there's definitely going to be some special things to help celebrate

663
00:50:09,640 --> 00:50:17,620
that it's the 30th anniversary. But it's kind of cool that this project is thriving and kind of

664
00:50:18,740 --> 00:50:23,760
evolving. It's grown. I think if you go back to the beginning, there were five committers. Now

665
00:50:23,880 --> 00:50:31,700
there's 31. Obviously a lot more development, innovation, features, capabilities, it just

666
00:50:31,730 --> 00:50:37,300
keeps getting better. So I don't know. I'm very biased. If anyone's listening, a regular listener,

667
00:50:37,370 --> 00:50:42,340
they already know that. I guess that's part of the deal when you listen to Talking Postgres.

668
00:50:43,140 --> 00:50:44,120
[CHARLES] Oh, if there were going to be

669
00:50:44,140 --> 00:50:48,020
If there are going to be events, I might have to try and find my way up to Vancouver this year.

670
00:50:48,140 --> 00:50:50,500
It's a quick, quick road trip from Seattle.

671
00:50:50,980 --> 00:50:53,020
So one of the easier ones to get to.

672
00:50:52,900 --> 00:51:00,500
[CLAIRE] I hope you join. I think our team that's going to be there would love to see you because we have

673
00:51:00,600 --> 00:51:04,640
people flying in from all over the world. We have a whole bunch of speakers whose talks got accepted

674
00:51:04,670 --> 00:51:10,299
and everything. But it is like a reunion. It's all these developers who've been working on the

675
00:51:10,320 --> 00:51:14,520
project together. Some of them new to the project. Some of them have been involved for decades.

676
00:51:15,240 --> 00:51:20,720
And there's a lot of, actually a lot of negotiating for what's going to be in the next,

677
00:51:20,820 --> 00:51:31,760
next release happens at this, at PGConf.dev.

678
00:51:25,900 --> 00:51:27,240
[CHARLES] You better remind me the dates quickly...

679
00:51:31,960 --> 00:51:36,660
[CLAIRE] So, okay. I think it's May 19th is the beginning. I'll send you a note and we need to get it on your calendar.

680
00:51:35,940 --> 00:51:38,040
[CHARLES] It's just a useful plug for the audience as well...

681
00:51:38,500 --> 00:51:39,620
[CLAIRE] You can take us out to dinner.

682
00:51:40,500 --> 00:51:41,060
How's that sound? [Okay]

683
00:51:43,000 --> 00:51:47,660
Okay, so is there anything I should have asked you about?

684
00:51:47,840 --> 00:51:49,600
Let's go back to the title of the episode.

685
00:51:50,160 --> 00:51:55,080
Because I always wanted to deliver on the promise that the title communicates.

686
00:51:55,220 --> 00:51:57,820
So it's building Postgres services on Azure.

687
00:51:59,900 --> 00:52:02,260
Anything else you want people to know?

688
00:52:00,340 --> 00:52:04,260
[CHARLES] I think, yeah, look, I think, I mean, I'll add a couple of things to it.

689
00:52:04,340 --> 00:52:07,780
I mean, we've talked about, you know, Flexible Server, you know, we've talked about, you know,

690
00:52:07,840 --> 00:52:12,860
horizon and obviously that's you know going to be a huge area of focus both of them are

691
00:52:12,870 --> 00:52:19,700
huge areas focus for us you know through the coming year I think that you're we're one of the things

692
00:52:19,840 --> 00:52:23,660
going back to the topic that you made earlier or the point that you made earlier and so seeing some

693
00:52:23,690 --> 00:52:31,620
more community you know talks or more broadly talks giving on horizon I saw there was a talk

694
00:52:31,640 --> 00:52:35,180
I think given at SCaLE 23x last week by a member of the community

695
00:52:35,480 --> 00:52:38,960
who had a title, something to the effect of,

696
00:52:39,150 --> 00:52:42,220
you know, is VS Code quietly becoming the go-to tool for Postgres?

697
00:52:44,840 --> 00:52:48,320
And again, it was nice to see that sort of recognition

698
00:52:48,540 --> 00:52:51,780
of some of the work that we were doing was getting the community.

699
00:52:53,160 --> 00:52:56,320
You know, we think that I personally believe

700
00:52:56,500 --> 00:53:01,480
that you're building amazing tools for databases is really important.

701
00:53:01,920 --> 00:53:21,240
And like we talked about at the top of the session, I have a ton of bias in this space and I don't pretend that I don't because I spent a very large chunk of my career staring at database tools all day and every day and picking through execution plans and writing queries and all the rest of it.

702
00:53:21,980 --> 00:53:30,100
So, you know, I think that it was nice to see that some of the stuff that we're doing in VS Code was being picked up here.

703
00:53:30,840 --> 00:53:34,880
We've also got a lot more to get done in that tool as well.

704
00:53:35,540 --> 00:53:39,660
And we're going to try and keep shipping on a relatively quick cadence as well.

705
00:53:39,840 --> 00:53:42,240
But again, to the point that you made earlier around,

706
00:53:42,720 --> 00:53:44,460
so some of the things were being picked up in the community.

707
00:53:44,700 --> 00:53:46,200
This was in Horizon.

708
00:53:47,060 --> 00:53:49,320
This was another one in the tooling as well.

709
00:53:49,940 --> 00:53:51,480
So that was good to see.

710
00:53:52,860 --> 00:53:56,080
And yeah, we'll talk more about that, I'm sure, later this year as well

711
00:53:56,100 --> 00:53:57,040
at various Microsoft events.

712
00:53:58,200 --> 00:54:02,240
[CLAIRE] So one of the things I'm really curious to talk about before we finish is

713
00:54:02,260 --> 00:54:12,280
how LLMs and AI is changing the nature of work that both product managers do, say at Microsoft,

714
00:54:12,640 --> 00:54:17,040
people who are working on Postgres, but also for customers. And I think there's probably

715
00:54:18,340 --> 00:54:23,040
positives and negatives, or challenges and opportunities, maybe is a better way to say it.

716
00:54:23,040 --> 00:54:25,760
But what's your philosophy? What are you seeing?

717
00:54:27,200 --> 00:54:48,080
[CHARLES] It's a great question. And I'll give some of my observations in general. So number one, I could never go back to operating without AI. I'm fully converted. That's not to say that, you know, 95% of my day is spent leveraging AI.

718
00:54:49,720 --> 00:54:59,960
For me personally, it was learning and experimenting with how I could apply it to my job.

719
00:55:00,010 --> 00:55:03,060
My job didn't fundamentally change with the advent of AI.

720
00:55:03,190 --> 00:55:11,140
I still needed to get, generally speaking, the same things done each day and lead the

721
00:55:11,190 --> 00:55:15,060
product management for Postgres and MySQL.

722
00:55:16,280 --> 00:55:29,760
But changing the habits of how I did these things through experimentation of what worked to make me more productive and didn't has been the curve or the journey that I've been on in particular over the last 12 months.

723
00:55:31,480 --> 00:55:36,160
One of the best parts about my job when I had more time to do this was building demos.

724
00:55:36,620 --> 00:55:47,960
I used to love being able to put down your PowerPoint and email and stuff for a day and sink my teeth into code, leading up to a conference and build some demos.

725
00:55:51,220 --> 00:55:56,860
I can produce better demos 10x faster than using AI, hands down.

726
00:55:58,900 --> 00:56:01,220
Because I'm not a great application developer.

727
00:56:01,820 --> 00:56:08,960
I can do a lot with SQL, but often any demo is a combination of the two.

728
00:56:09,740 --> 00:56:14,400
And I used to enjoy cobbling various different types of application code together.

729
00:56:14,890 --> 00:56:16,080
But now I just let AI do it.

730
00:56:16,130 --> 00:56:18,060
And I get a better demo, and it's much quicker.

731
00:56:19,060 --> 00:56:21,580
So that's definitely one application for me.

732
00:56:23,020 --> 00:56:25,820
I summarize a lot of content every now and then.

733
00:56:26,420 --> 00:56:27,960
And I think everyone has this.

734
00:56:29,220 --> 00:56:32,240
The inordinately long email thread goes through the inbox

735
00:56:33,020 --> 00:56:35,180
where I realize it's probably time to read this

736
00:56:35,980 --> 00:56:37,380
and I'll just start with a summarization.

737
00:56:38,380 --> 00:56:41,860
And sometimes the summarization is sufficiently interesting

738
00:56:41,980 --> 00:56:44,200
that I realize I need to go read the entire thread.

739
00:56:44,920 --> 00:56:47,200
But I've qualified it at least that I'm not.

740
00:56:47,700 --> 00:56:49,120
You're going to spend 10 minutes reading something

741
00:56:49,940 --> 00:56:51,460
that was unimportant to me.

742
00:56:52,080 --> 00:56:54,039
So I think it's made me more effective as well

743
00:56:54,040 --> 00:56:59,260
in the efficient application of my time.

744
00:57:01,220 --> 00:57:04,280
I use it for streamlining things that I might...

745
00:57:05,260 --> 00:57:07,260
Sometimes I don't feel as fluent in what I'm writing

746
00:57:07,850 --> 00:57:08,800
that I do on other days.

747
00:57:09,200 --> 00:57:11,580
I'm struggling to convey ideas and messages.

748
00:57:12,820 --> 00:57:16,700
And so I'll get help from AI-based tools on that as well.

749
00:57:17,380 --> 00:57:18,200
Off the top of my head,

750
00:57:18,740 --> 00:57:23,180
they're probably the three where I see it the most.

751
00:57:23,940 --> 00:57:30,500
And then when you take a look at how we're approaching AI with respect to Postgres, part

752
00:57:30,500 --> 00:57:36,720
of it is AI features within the database, like vector indexes and AI functions that

753
00:57:36,840 --> 00:57:40,060
can call models for embeddings or what have you.

754
00:57:40,800 --> 00:57:45,740
And the other half is sort of how AI in and itself can supplement the database.

755
00:57:46,630 --> 00:57:50,879
And maybe the best thing to point to there is some of the work that we did with GitHub

756
00:57:50,900 --> 00:57:54,180
Copilot in VS Code for Postgres.

757
00:57:54,700 --> 00:57:56,980
And that started perhaps obviously

758
00:57:57,320 --> 00:57:59,000
with a more chat-based experience,

759
00:57:59,260 --> 00:58:00,780
which is where everyone begun

760
00:58:01,420 --> 00:58:02,660
with their AI journeys.

761
00:58:03,360 --> 00:58:04,480
But now we're doing some more things

762
00:58:04,700 --> 00:58:07,160
like putting one-click AI experiences

763
00:58:07,440 --> 00:58:09,340
directly into VS Code,

764
00:58:09,460 --> 00:58:11,800
like monitoring and the query plans

765
00:58:11,940 --> 00:58:12,580
that we just shipped.

766
00:58:13,300 --> 00:58:15,820
So the tool in and of itself

767
00:58:16,040 --> 00:58:18,579
can prompt the agent as to what it's seeing

768
00:58:18,620 --> 00:58:20,840
and what it might want to get some help with as well.

769
00:58:21,430 --> 00:58:27,860
And so as a product team, we're learning how we can apply AI

770
00:58:28,500 --> 00:58:30,940
to multiple facets of the product in and of itself.

771
00:58:30,970 --> 00:58:33,780
And that's something that I think every product team is probably learning

772
00:58:33,910 --> 00:58:36,520
given that it's still a relatively new technology.

773
00:58:37,830 --> 00:58:39,300
But it's a deep focus, of course.

774
00:58:39,530 --> 00:58:42,580
And then the other hand is for anybody in any role,

775
00:58:42,970 --> 00:58:48,520
I think experimentation of how AI works for you is important.

776
00:58:48,580 --> 00:58:55,500
And I think, look, anyone who's been using any software forever, you know, a given piece of software is going to be used slightly differently by a number of different people.

777
00:58:55,590 --> 00:58:57,280
And it's what works best for them.

778
00:58:57,760 --> 00:59:03,680
And I think AI is just so incredibly malleable that people are going to be able to use it to be more productive.

779
00:59:05,480 --> 00:59:09,100
You know, but there's some habits that need to be broken.

780
00:59:09,730 --> 00:59:12,160
And I think that is sort of part of the challenge as well.

781
00:59:13,400 --> 00:59:18,900
[CLAIRE] But overall what you're the story you're telling is a positive one.

782
00:59:18,960 --> 00:59:19,680
[CHARLES] Super positive.

783
00:59:19,950 --> 00:59:20,740
Super positive.

784
00:59:21,099 --> 00:59:25,740
[CLAIRE] Okay so in spite of the challenges that some people are running into problems with AI

785
00:59:25,820 --> 00:59:32,940
slop, for example, or people that are using the tools that are still in that experimentation

786
00:59:33,380 --> 00:59:38,900
stage, perhaps, and they haven't figured out how to use it as effectively as they want,

787
00:59:39,040 --> 00:59:41,440
they're more likely to generate AI slop, right? [Yep]

788
00:59:42,020 --> 00:59:45,540
But my hope is that that's just transitional.

789
00:59:46,280 --> 00:59:49,460
That's a problem that will go away as we all get better.

790
00:59:51,060 --> 00:59:55,040
[CHARLES] Yeah, I don't know exactly what sort of the solution is

791
00:59:56,400 --> 00:59:58,120
or whether it needs a solution at all.

792
00:59:58,170 --> 01:00:01,120
I think that, you know, any tool can be used correctly

793
01:00:01,150 --> 01:00:04,080
or incorrectly or can be used better or not as well.

794
01:00:05,260 --> 01:00:09,320
And look, I've seen some database implementations

795
01:00:09,720 --> 01:00:11,860
over the years that we'll just,

796
01:00:13,780 --> 01:00:15,500
I remember once upon a time,

797
01:00:15,860 --> 01:00:16,820
I'll tell this story quickly.

798
01:00:17,520 --> 01:00:19,700
You know, application developers

799
01:00:19,880 --> 01:00:20,440
write a lot of loops.

800
01:00:21,140 --> 01:00:22,260
That's how they do things.

801
01:00:22,900 --> 01:00:24,700
We don't need so many loops in databases.

802
01:00:24,980 --> 01:00:25,580
In fact, frankly,

803
01:00:26,160 --> 01:00:27,320
you should try to avoid loops

804
01:00:27,860 --> 01:00:29,660
and cursors as much as you can.

805
01:00:30,320 --> 01:00:32,400
But I have seen some database solutions

806
01:00:32,740 --> 01:00:34,920
implemented where, you know,

807
01:00:35,360 --> 01:00:36,980
the rows are in the table

808
01:00:37,140 --> 01:00:38,280
and they loop over the rows.

809
01:00:39,060 --> 01:00:44,440
And that's one of the, you know, it's crippling on a database's performance, right?

810
01:00:45,000 --> 01:00:49,620
Great technology, but implemented in a suboptimal way, right?

811
01:00:49,780 --> 01:00:51,880
And I think the same can be said for pretty much anything.

812
01:00:52,760 --> 01:00:57,740
And, you know, again, like the way, the reason I emphasize that I've experimented, you know,

813
01:00:57,880 --> 01:01:05,340
what works for me is that, you know, there's, that AI is integrated into so many different,

814
01:01:06,480 --> 01:01:09,520
elements or aspects of what we do,

815
01:01:11,700 --> 01:01:14,640
online software, cloud, you name it.

816
01:01:16,380 --> 01:01:18,480
It's hard to consume it all at once.

817
01:01:19,200 --> 01:01:21,500
So I've just tried to be very intentional

818
01:01:22,080 --> 01:01:24,720
that when I need to go do something,

819
01:01:25,100 --> 01:01:26,200
I stop and think,

820
01:01:27,640 --> 01:01:29,620
is there an application for AI here?

821
01:01:30,080 --> 01:01:31,580
Is it easy as accessible?

822
01:01:32,619 --> 01:01:33,620
Let's give it a go.

823
01:01:34,500 --> 01:01:52,000
Because, you know, you've always got the opportunity to review the product of AI and make your own decision on whether it's valuable, whether it's useful, whether you could try and use it differently, or frankly, whether this is maybe not a great application of it.

824
01:01:53,400 --> 01:01:55,620
And, you know, I think it's only going to get better from here, though.

825
01:01:55,920 --> 01:01:57,520
So that's the thing that I'm pretty optimistic about.

826
01:02:00,200 --> 01:02:04,460
[CLAIRE] All right. Well, we have gone through everything that I wanted to talk about.

827
01:02:06,780 --> 01:02:14,300
I think the only thing that we didn't touch on is the fact that as head of all of this Postgres PM

828
01:02:14,360 --> 01:02:20,280
work that happens at Microsoft, you often go to, well, you also go to some of the Postgres

829
01:02:20,460 --> 01:02:22,060
community conferences, which I love.

830
01:02:22,460 --> 01:02:23,400
You've been to PGConf.EU.

831
01:02:24,120 --> 01:02:25,700
You've been to PG Conf New York City.

832
01:02:25,910 --> 01:02:28,780
Those are probably the two big ones that you've been to several times.

833
01:02:29,470 --> 01:02:35,100
But you also show up and meet with customers and prospects and developers at Microsoft Build

834
01:02:35,270 --> 01:02:36,420
and Microsoft Ignite.

835
01:02:36,530 --> 01:02:41,800
Those are the two biggest Microsoft events that I know you participate in.

836
01:02:40,720 --> 01:02:45,620
[CHARLES] That's yeah there I think they're probably the two of the largest Microsoft conferences,

837
01:02:46,140 --> 01:02:52,400
each year, I think Build is in June this year [Yeah, early June.] I believe has recently

838
01:02:52,420 --> 01:02:59,960
been announced and Ignite typically in November, but I

839
01:03:00,060 --> 01:03:01,100
don't have dates for that one this year.

840
01:03:02,720 --> 01:03:02,900
[CLAIRE] All right.

841
01:03:02,970 --> 01:03:05,000
So are you going to Microsoft Build this year?

842
01:03:05,180 --> 01:03:06,660
I'm sure you'll be at Ignite, but...

843
01:03:06,619 --> 01:03:13,240
[CHARLES] Yeah I think I at this stage I plan to be so but actually the I mean just a topic this

844
01:03:13,370 --> 01:03:19,200
morning was also you know these us and big European conferences and these conferences are

845
01:03:19,560 --> 01:03:24,180
So in a way, they're somewhat useful because, well, they're very useful,

846
01:03:24,480 --> 01:03:28,940
but one of the unintended sort of byproducts for me is we have a whole bunch

847
01:03:28,940 --> 01:03:30,580
of customers that are on that side of the Atlantic,

848
01:03:31,770 --> 01:03:34,060
and it gives you an opportunity to go catch up with them in person

849
01:03:34,110 --> 01:03:38,780
as opposed to 6 a.m. calls on the west coast of the U.S.,

850
01:03:38,910 --> 01:03:43,000
which is often what you need to do to serve a large European customer base.

851
01:03:44,180 --> 01:03:50,220
[CLAIRE] You know you mentioned POSETTE: An Event for Postgres earlier which is virtual and in its fifth year I

852
01:03:50,300 --> 01:03:55,980
think we're going to have 44 talks this year and there are about 50 speakers and it is the

853
01:03:56,140 --> 01:04:00,800
largest virtual event on the planet by far there's no there's no question about that when you look at

854
01:04:00,880 --> 01:04:06,560
all the attendees live attendees and then there's the people who view the talks afterwards

855
01:04:06,560 --> 01:04:12,260
which is even greater. But what's my point? My point is that I'm a big fan of virtual events.

856
01:04:12,400 --> 01:04:18,180
I really am. I find it more accessible. More people can get access to those learnings and

857
01:04:18,240 --> 01:04:22,620
those speakers and those talks. Not everybody has travel budget. Some people have little kids or

858
01:04:22,820 --> 01:04:28,600
elderly parents. There's a lot of reasons people can't travel. So I'm a big, big fan. But I will say

859
01:04:28,740 --> 01:04:32,940
that there is also something magical about those in-person conversations that you get to have and

860
01:04:32,960 --> 01:04:38,020
the trust that you can build. And there was someone at PGConf India last week who told me

861
01:04:38,420 --> 01:04:43,960
that he had, I guess he had interacted with me a couple of years ago. And I don't know if he found

862
01:04:44,390 --> 01:04:50,180
me intimidating or what his impression was, but he said to me last week, he's like, wow,

863
01:04:50,720 --> 01:04:55,920
I've really enjoyed talking to you. You're not the way I imagined you would be. And so I don't know

864
01:04:56,070 --> 01:05:02,400
whether to feel good about that or feel bad about that, but I know that in-person does build

865
01:05:02,420 --> 01:05:02,880
relationships.

866
01:05:04,220 --> 01:05:08,960
[CHARLES] I think that there was definitely in my observation, there

867
01:05:09,060 --> 01:05:14,960
was, you use the word magic, like there was definitely something special about the

868
01:05:15,020 --> 01:05:19,680
first few in-person conferences as we came out of COVID and when conferences

869
01:05:19,920 --> 01:05:25,380
weren't run for a couple of years. You know for what it's worth I'm a

870
01:05:25,940 --> 01:05:32,740
deep proponent in having those interpersonal relationships, it just seems

871
01:05:32,800 --> 01:05:39,020
to be so much more productive to even have met someone in person that you're then going

872
01:05:39,040 --> 01:05:43,460
speak to the next hundred times on the phone, with or without video, to have established

873
01:05:43,680 --> 01:05:45,420
that, that connection.

874
01:05:45,860 --> 01:05:49,020
Conferences are a phenomenal vehicle for doing that.

875
01:05:49,620 --> 01:05:55,260
And you're right virtual is incredibly accessible for a variety of reasons that include

876
01:05:55,620 --> 01:06:00,720
hotel and airplanes and time and convenience for even picking up some of the

877
01:06:00,840 --> 01:06:01,260
content offline.

878
01:06:02,640 --> 01:06:03,840
I think it's great that we've got both.

879
01:06:05,060 --> 01:06:06,800
And I do, as you and I have talked about,

880
01:06:06,960 --> 01:06:12,200
I do think POSETTE being virtual is a nice complement

881
01:06:12,980 --> 01:06:18,200
to what is otherwise an in-person heavy conference circuit

882
01:06:18,600 --> 01:06:19,080
for Postgres.

883
01:06:19,820 --> 01:06:23,480
So I hope a lot of people are getting value out of the event.

884
01:06:24,120 --> 01:06:26,960
And I think I get to do a keynote again this year, Claire,

885
01:06:27,080 --> 01:06:28,660
which I better get to work on.

886
01:06:30,100 --> 01:06:30,940
[CLAIRE] Oh, for POSETTE.

887
01:06:31,100 --> 01:06:35,240
Yes, you and Affan Dar are co-presenting together, which I'm very excited about.

888
01:06:36,780 --> 01:06:41,300
Just the two of you, he heads up engineering, you head up product for all of our Postgres and

889
01:06:41,440 --> 01:06:44,600
MySQL businesses, and you're a good team.

890
01:06:45,320 --> 01:06:48,160
So it'll be interesting for everybody else to...

891
01:06:48,920 --> 01:06:50,540
[CHARLES] We need to get to work on that one.

892
01:06:50,760 --> 01:06:58,520
We haven't, aside from, I think, aside from the announcement, we haven't done a lot.

893
01:06:58,840 --> 01:07:02,060
So, but you know, yeah.

894
01:06:59,040 --> 01:07:01,140
[CLAIRE] I need to get some dates on your calendar.

895
01:07:01,620 --> 01:07:03,100
So I'll be working on that. [Yeah]

896
01:07:04,420 --> 01:07:04,620
All right.

897
01:07:04,620 --> 01:07:06,700
Well, thank you so much for joining.

898
01:07:08,440 --> 01:07:09,840
[CHARLES] I appreciate the opportunity.

899
01:07:10,200 --> 01:07:11,820
Thank you for, thank you for having me today.

900
01:07:19,720 --> 01:07:22,000
[CLAIRE] For those of you who meet Charles Feddersen at future conferences or on conference calls, if you enjoyed this episode, be sure to tell him.

901
01:07:23,160 --> 01:07:28,980
And also, if you like today's episode and you want to hear more of these Talking Postgres shows,

902
01:07:29,320 --> 01:07:33,960
you should subscribe on Apple and Spotify and YouTube or wherever you get your podcasts.

903
01:07:34,350 --> 01:07:35,200
And tell your friends.

904
01:07:35,880 --> 01:07:38,760
If you leave a review, that helps even more people discover the show.

905
01:07:39,240 --> 01:07:44,140
And that's how podcasts build their audiences, is with word of mouth and recommendations.

906
01:07:44,960 --> 01:07:49,340
You can get to all the past episodes and get links to subscribe on the different platforms

907
01:07:49,740 --> 01:07:51,260
at TalkingPostgres.com.

908
01:07:51,600 --> 01:07:55,340
And you'll find transcripts included on the episode pages as well.

909
01:07:55,660 --> 01:07:59,740
I know several people who prefer to read the transcripts instead of just listening to the

910
01:07:59,900 --> 01:07:59,980
show.

911
01:08:00,600 --> 01:08:05,340
A big thank you to people who joined live and participated in the text chat on Discord.

912
01:08:05,780 --> 01:08:07,400
And thank you again to Charles.

913
01:08:08,220 --> 01:08:08,480
[CHARLES] All right.

914
01:08:08,650 --> 01:08:09,040
Thank you.