1
00:00:00,001 --> 00:00:04,400
[CLAIRE] Welcome to Talking Postgres. In this podcast, we explore the human side of

2
00:00:04,400 --> 00:00:09,740
Postgres, databases, and open source, which means we want to dig into why people who

3
00:00:09,740 --> 00:00:14,280
work with Postgres do what they do and how did they get there. Thank you to the

4
00:00:14,280 --> 00:00:18,780
team at Microsoft for sponsoring this conversation about Postgres and I am

5
00:00:18,780 --> 00:00:23,700
your host, Claire Giordano. It is my privilege to introduce Robert Haas.

6
00:00:23,700 --> 00:00:28,900
Robert has worked with Postgres for more than 25 years, first as an application

7
00:00:28,900 --> 00:00:35,760
developer running on Postgres. In 2008, he became a patch reviewer and in 2009,

8
00:00:35,760 --> 00:00:40,360
he became a Postgres committer. Later became a major contributor and he has

9
00:00:40,360 --> 00:00:44,800
made contributions to incremental backup. Parallel query might be the biggest

10
00:00:44,800 --> 00:00:49,720
thing he's done. Also index-only scans and unlocked tables. He's based on the

11
00:00:49,720 --> 00:00:54,880
East Coast of the United States and works as a chief architect and VP of

12
00:00:54,880 --> 00:01:01,800
database servers at Enterprise DB. Welcome, Robert.

13
00:00:54,880 --> 00:01:01,800
[ROBERT] So happy to be here.

14
00:01:01,800 --> 00:01:06,480
[CLAIRE] Today we're going to be talking about mentorship and why mentor Postgres

15
00:01:06,480 --> 00:01:11,600
developers. The reason is that last June, so what is that, seven months ago

16
00:01:11,600 --> 00:01:15,320
now, you kicked off a new mentoring program for Postgres code contributors.

17
00:01:15,320 --> 00:01:21,280
I guess let's just start with why. Why do you care about mentoring? Why are

18
00:01:21,280 --> 00:01:26,280
we talking about it?

19
00:01:21,280 --> 00:01:26,280
[ROBERT] Well, I think there's a couple of ways to answer that

20
00:01:26,280 --> 00:01:32,680
question. I think on a personal level, one of the things that I really enjoy in all

21
00:01:32,680 --> 00:01:39,520
aspects of my life is seeing people succeed, seeing people go out and

22
00:01:39,520 --> 00:01:45,000
start out having trouble doing something and then after a period of time, you know,

23
00:01:45,000 --> 00:01:50,840
becoming good at it. I think that's a lot of fun and when I have the opportunity

24
00:01:50,840 --> 00:01:55,120
to mentor people, you sort of get to participate in that journey a little bit.

25
00:01:55,120 --> 00:02:00,400
People's accomplishments are always their own. If you're mentoring somebody

26
00:02:00,400 --> 00:02:03,400
and they go out and do great things, contribute wonderful features to

27
00:02:03,400 --> 00:02:06,440
PostgreSQL or become a committer themselves or whatever it is that they

28
00:02:06,440 --> 00:02:13,880
do, that's their accomplishment, a hundred percent. But I enjoy being with people on

29
00:02:13,880 --> 00:02:17,200
that journey and I think that's one of the reasons why this is sort of

30
00:02:17,200 --> 00:02:22,600
personally important to me. From the viewpoint of the PostgreSQL community,

31
00:02:22,600 --> 00:02:27,840
it's obviously very important as well because nobody works on an open source

32
00:02:27,840 --> 00:02:33,960
project forever. Some of us will move on at some point to other open source or

33
00:02:33,960 --> 00:02:37,280
closed source communities or other kinds of jobs altogether and even if we don't

34
00:02:37,280 --> 00:02:42,120
do that, eventually we're gonna all get old and stop working on Postgres for

35
00:02:42,120 --> 00:02:46,320
some reason or another and I think we're all hoping that there will be more

36
00:02:46,320 --> 00:02:50,840
people coming along after us who want to pick up the torch and continue to make

37
00:02:50,840 --> 00:02:58,600
PostgreSQL amazing. But I think also we'd like to not just sustain the

38
00:02:58,600 --> 00:03:06,120
community but to really see it grow. We'd like PostgreSQL to have more developers

39
00:03:06,120 --> 00:03:10,400
in the future than it does today and to have a greater pace of development than

40
00:03:10,400 --> 00:03:16,280
it does today. And I think that mentoring is a way that we can maybe try to help

41
00:03:16,280 --> 00:03:20,240
that happen at least a little.

42
00:03:16,280 --> 00:03:20,240
[CLAIRE] I think it's important that the Postgres

43
00:03:20,240 --> 00:03:26,040
community grow and change and evolve and so I think anybody listening would

44
00:03:26,040 --> 00:03:31,680
probably agree with those goals. It makes sense.

45
00:03:26,040 --> 00:03:31,680
[ROBERT] And just to be clear, there's a

46
00:03:31,680 --> 00:03:37,360
big difference between the PostgreSQL community growing, which I think it

47
00:03:37,360 --> 00:03:42,400
definitely is, and the developer community specifically growing. And I'm

48
00:03:42,400 --> 00:03:47,080
thinking here specifically of the developer community for PostgreSQL

49
00:03:47,080 --> 00:03:53,160
itself. So there's lots of ecosystem projects out there that hopefully are

50
00:03:53,160 --> 00:03:57,480
growing as well in terms of the number of those projects and the number of

51
00:03:57,480 --> 00:04:02,240
people working on them. I don't actually know what the numbers are around that or

52
00:04:02,240 --> 00:04:09,680
what is happening there exactly. I do statistics on development on PostgreSQL

53
00:04:09,680 --> 00:04:14,480
hackers specifically. I've been doing those blog posts annually for a number

54
00:04:14,480 --> 00:04:20,600
of years now and from that I know that the development velocity of PostgreSQL

55
00:04:20,600 --> 00:04:28,480
itself has increased a little bit but nowhere near as quickly as other things

56
00:04:28,480 --> 00:04:33,400
about PostgreSQL have probably increased. I think the increase in the

57
00:04:33,400 --> 00:04:37,840
number of people who are using PostgreSQL, advocating for PostgreSQL,

58
00:04:37,840 --> 00:04:42,000
organizing PostgreSQL events, and doing all of the other cool things that people

59
00:04:42,000 --> 00:04:48,880
do with PostgreSQL has probably increased at a much faster rate over the

60
00:04:48,880 --> 00:04:54,280
years that I've been involved in the project than development specifically. So

61
00:04:54,280 --> 00:04:59,400
I want to be clear that I'm not trying to devalue all of those other forms of

62
00:04:59,400 --> 00:05:05,000
contribution. They are important and I think they're hard, right? But this

63
00:05:05,000 --> 00:05:10,520
is the area of contribution that I have the most familiarity with and I see that

64
00:05:10,520 --> 00:05:14,440
I think we're struggling a little bit with scaling in this area and I'm

65
00:05:14,440 --> 00:05:18,920
hopeful that mentoring can be something that helps to move the needle there at

66
00:05:18,920 --> 00:05:22,480
least a little bit. I guess, you know, we'll see the degree to which we're able

67
00:05:22,480 --> 00:05:28,040
to make a difference but we're almost flat. We're just a little bit better than

68
00:05:28,040 --> 00:05:33,000
flat in terms of the number of people who are contributing code specifically

69
00:05:33,000 --> 00:05:38,960
to PostgreSQL itself over the years and I think we'd like to do better.

70
00:05:38,960 --> 00:05:43,880
[CLAIRE] So how did this new mentoring program start? I mean, I think it started in

71
00:05:43,880 --> 00:05:50,280
Vancouver last May at PGConf.dev but maybe it was born of conversations and

72
00:05:50,280 --> 00:05:57,520
inspiration that came before that point?

73
00:05:50,280 --> 00:05:57,520
[ROBERT] Yeah, definitely. I mean, I've been at EDB

74
00:05:57,520 --> 00:06:06,600
for a long time now. I started at EDB in 2010, April of 2010, so I'm not quite to

75
00:06:06,600 --> 00:06:12,240
15 years yet but I'm getting close and during that time I've been really lucky

76
00:06:12,240 --> 00:06:19,840
to be able to mentor quite a number of people within EDB and a few outside EDB

77
00:06:19,840 --> 00:06:26,760
as well. And that's been a good experience. I've really

78
00:06:26,760 --> 00:06:32,040
sincerely enjoyed working with those people and saying, "Hey, maybe, you know,

79
00:06:32,040 --> 00:06:35,440
this patch would go better if you presented it to the community this way," or

80
00:06:35,440 --> 00:06:39,800
"Maybe you need to think a little harder about that thing." Those, I think, were

81
00:06:39,800 --> 00:06:45,040
sort of foundational experiences that pushed me in this direction. But the more

82
00:06:45,040 --> 00:06:50,880
imminent thing that pushed me in this direction was Melanie sending me an

83
00:06:50,880 --> 00:06:55,600
email, Melanie Plageman sending me an email, and basically saying, "Hey, you know,

84
00:06:55,600 --> 00:06:59,640
would you be willing to meet with me once a month and give me some mentoring?"

85
00:06:59,640 --> 00:07:11,680
And of course I said, "Sure, I'd love to." And I think it's really great but also

86
00:07:11,680 --> 00:07:17,400
really difficult that she was willing to send that email. You know, writing an

87
00:07:17,400 --> 00:07:23,000
email to someone on the internet that you don't know and who you might view as,

88
00:07:23,000 --> 00:07:28,080
you know, very senior to you or very busy or somebody that for whatever reason

89
00:07:28,080 --> 00:07:36,560
you're not supposed to reach out to or whatever, that's hard to do. And I guess

90
00:07:36,560 --> 00:07:41,680
it's also kind of hard to do well. And so I think that really started to get me

91
00:07:41,680 --> 00:07:48,320
thinking. So Melanie knew what she wanted and she figured out how to get

92
00:07:48,320 --> 00:07:54,800
it. But how many other people are there out there who either don't quite know

93
00:07:54,800 --> 00:08:00,160
what it is that they're looking for or who maybe aren't quite so assertive in

94
00:08:00,160 --> 00:08:06,240
reaching out to try to get it? And that really made me start thinking about, you

95
00:08:06,240 --> 00:08:12,000
know, it would be great if we had a program for this so that, you know,

96
00:08:12,000 --> 00:08:15,280
committers and maybe eventually other people who have been around for a while

97
00:08:15,280 --> 00:08:20,400
and have some expertise to share could have a way to volunteer to do that. And

98
00:08:20,400 --> 00:08:26,320
people who are interested in being mentees and receiving some of that

99
00:08:26,320 --> 00:08:31,360
accumulated wisdom or, you know, what we hope is wisdom would feel comfortable

100
00:08:31,360 --> 00:08:37,680
asking for it without it seeming like something that was an exceptional case.

101
00:08:37,760 --> 00:08:42,400
So yeah, I think that was the genesis of it.

102
00:08:42,400 --> 00:08:49,080
[CLAIRE] And so I think this kicked off in June of last year, so a month afterwards. So

103
00:08:49,080 --> 00:08:53,400
you left the conference, you wrote a blog post with all your kind of

104
00:08:53,400 --> 00:08:57,720
learnings and perspectives about how to grow the community, if I remember

105
00:08:57,720 --> 00:09:02,120
correctly, and then a month later this new program came into existence. So I

106
00:09:02,120 --> 00:09:05,760
have a ton of questions for you, but for somebody listening who doesn't know what

107
00:09:05,760 --> 00:09:09,840
"this new program is," can you give us a quick summary and then we

108
00:09:09,840 --> 00:09:17,640
can we can dive in more?

109
00:09:09,840 --> 00:09:17,640
[ROBERT] Yeah, absolutely. So there's kind of three things that I'm

110
00:09:17,640 --> 00:09:24,240
trying to do right now. And the first one is that we have a

111
00:09:24,240 --> 00:09:29,840
relatively small number of people who are in one-on-one mentoring

112
00:09:29,840 --> 00:09:34,560
relationships with particular committers. That's something that I've found to be

113
00:09:34,560 --> 00:09:39,640
very helpful for people in the past, and I wanted to try to provide a

114
00:09:39,640 --> 00:09:45,080
vehicle for people to get matched up. So we did a round of matching after PGConf.dev

115
00:09:45,080 --> 00:09:49,480
last year, and we can talk about that, and we're planning to do a reorganization

116
00:09:49,480 --> 00:09:53,880
soon to maybe change some of those matches or add some new ones or whatever

117
00:09:53,880 --> 00:09:59,880
it is that we can do. So that one-on-one mentoring is the first component of it,

118
00:09:59,880 --> 00:10:05,240
which I initially thought would be mostly for people who are already pretty

119
00:10:05,240 --> 00:10:09,440
well-established and looking to kind of take it to the next level. Then the

120
00:10:09,440 --> 00:10:14,400
second component of it, is I've been organizing monthly what I call "hacking

121
00:10:14,400 --> 00:10:21,640
workshops", where the audience is a little bigger, people could just sign up, we all

122
00:10:21,640 --> 00:10:25,320
watch a talk in advance, and then we get together, talk about it, answer questions.

123
00:10:25,320 --> 00:10:29,800
And then the third component is we have a Discord server for the program as

124
00:10:29,800 --> 00:10:34,520
well, which anybody can join and hop in and ask questions, and you know, you might

125
00:10:34,520 --> 00:10:38,520
get a response from Tom Lane or from me or something like that, which, you know,

126
00:10:38,520 --> 00:10:43,560
hopefully people find that cool.

127
00:10:38,520 --> 00:10:43,560
[CLAIRE] Hopefully we can include a link to that

128
00:10:43,560 --> 00:10:47,440
Discord server in the show notes afterwards for anybody who's interested

129
00:10:47,440 --> 00:10:52,280
in joining or starting to lurk in the background, maybe become part of the next

130
00:10:52,280 --> 00:10:56,520
cohort or something like that. So how many people were in the first cohort in

131
00:10:56,520 --> 00:11:01,320
terms of mentees, in terms of people who wanted to be mentored? Are we talking

132
00:11:01,320 --> 00:11:07,280
like a hundred or ten?

133
00:11:01,320 --> 00:11:07,280
[ROBERT] It was more than ten, it was less than a hundred. I was, I'm

134
00:11:07,280 --> 00:11:10,560
actually wondering if you might have that statistic on hand, because I think

135
00:11:10,560 --> 00:11:15,200
you included it in your talk, as I remember, but I don't remember the

136
00:11:15,200 --> 00:11:21,320
precise number offhand. I want to say it was in the teens?

137
00:11:15,200 --> 00:11:21,320
[CLAIRE] Okay, I did include it

138
00:11:21,320 --> 00:11:28,640
in my talk and I will dig that up. So I think it was in the teens. Okay, and each of

139
00:11:28,640 --> 00:11:35,240
those people that's being mentored was mapped to an existing major

140
00:11:35,240 --> 00:11:39,040
contributor or committer, is that right? So we have an equal number of mentors.

141
00:11:39,040 --> 00:11:44,560
It's not many to one or one to many, is that correct? One to one?

142
00:11:44,560 --> 00:11:48,760
[ROBERT] So we do have some mentors who are mentoring more than one person. I think

143
00:11:48,760 --> 00:11:53,880
each committer is mentoring either one or two people, or maybe the

144
00:11:53,880 --> 00:11:57,240
committers are mentoring zero people, but everyone who's involved in the program

145
00:11:57,240 --> 00:12:01,840
is mentoring either one or two.

146
00:11:57,240 --> 00:12:01,840
[CLAIRE] Okay.

147
00:12:01,840 --> 00:12:12,120
What was the feedback like so far?

148
00:12:01,840 --> 00:12:12,120
[ROBERT] I think the feedback is pretty good. I

149
00:12:12,120 --> 00:12:20,120
think it's a little bit variable, right? So you have some people who expressed

150
00:12:20,120 --> 00:12:23,360
interest into the program and were accepted into the program and they were

151
00:12:23,360 --> 00:12:30,040
just like exactly perfect for this particular effort. They were at the phase

152
00:12:30,040 --> 00:12:37,680
of participating on hackers where they had a pretty good idea, you know, A) that

153
00:12:37,680 --> 00:12:40,920
they wanted to be there, that they really wanted this to be a big part of their

154
00:12:40,920 --> 00:12:48,600
career and what they did going forward. B) you know, how things worked there, how

155
00:12:48,600 --> 00:12:53,160
to take things forward. But they had questions. They had questions about

156
00:12:53,160 --> 00:12:56,000
projects, they had questions about procedures, they had questions about

157
00:12:56,000 --> 00:13:01,520
people. And I think the people who were in that category have probably had the

158
00:13:01,520 --> 00:13:07,040
best experience and have also given their mentors the best experiences, as

159
00:13:07,040 --> 00:13:10,080
far as I'm able to tell. I mean, I don't want to speak for the experience of

160
00:13:10,080 --> 00:13:14,880
everyone, but that's my impression. We did also accept some people to the

161
00:13:14,880 --> 00:13:21,200
program who were, you know, more aspiring hackers. They mostly had some presence on

162
00:13:21,200 --> 00:13:27,480
the list. They were people who were around a little bit, but they maybe had

163
00:13:27,480 --> 00:13:33,800
not already sort of taken that plunge off the deep end and, you know, decide,

164
00:13:33,800 --> 00:13:37,960
"Hey, no, this is what I want to do for my career or this section of my career."

165
00:13:37,960 --> 00:13:45,040
And I think those people have probably benefited a little bit less from the

166
00:13:45,040 --> 00:13:49,920
program, because you have to remember that this is new to the mentors, too. The

167
00:13:49,920 --> 00:13:53,880
people who are doing the mentoring are not necessarily people who have ever

168
00:13:53,880 --> 00:13:58,000
been asked to mentor before in their career or really have a clear idea of

169
00:13:58,000 --> 00:14:02,920
how to do it, and they basically just volunteered. They said, "I can make myself

170
00:14:02,920 --> 00:14:07,280
as available as a resource to talk to somebody and to try to answer their

171
00:14:07,280 --> 00:14:12,160
questions." And so the pitfall you can fall into there is if you get on the

172
00:14:12,160 --> 00:14:16,760
phone with somebody and like, "Well, I don't have any questions," then what do you do

173
00:14:16,760 --> 00:14:21,760
exactly, right? I think there are probably good answers to that question or at

174
00:14:21,760 --> 00:14:27,240
least better and worse answers to that question, but it's a little harder,

175
00:14:27,240 --> 00:14:31,160
I think, because people don't, you know, as I say, they're not necessarily trained.

176
00:14:31,160 --> 00:14:35,600
I'm certainly not trained as a professional mentor, and so when somebody

177
00:14:35,600 --> 00:14:39,760
shows up and says, "Hey, I want to know this, this, this, this," you're like, "Oh, this is

178
00:14:39,760 --> 00:14:44,080
great. I can answer those questions. I've been around." But when somebody shows up

179
00:14:44,080 --> 00:14:49,240
and what they want is a little bit less well-defined, then I think it's a little

180
00:14:49,240 --> 00:14:55,080
bit more difficult for the relationships to be rewarding and the results are a

181
00:14:55,080 --> 00:14:58,040
little bit more variable.

182
00:14:58,040 --> 00:15:01,240
[CLAIRE] I think one of the things that's challenging for an open-source project

183
00:15:01,240 --> 00:15:07,240
like Postgres is that unlike with, you know, proprietary software that's being

184
00:15:07,240 --> 00:15:11,480
developed by a company where there are professional managers, some of whom are

185
00:15:11,480 --> 00:15:18,320
really great and some of whom might not be, you know, there are managers, good and

186
00:15:18,320 --> 00:15:23,320
bad and in between, whose job it is to think about, "Is this person getting the

187
00:15:23,320 --> 00:15:28,960
right kind of mentorship?" They don't all do that really well, but there are,

188
00:15:28,960 --> 00:15:33,320
there is work that's happening to make sure that when there's a new hire, when

189
00:15:33,320 --> 00:15:36,920
there's a junior engineer, that they're paired with people who can guide them,

190
00:15:36,920 --> 00:15:42,200
who can kind of give them tips, pointers, suggestions, feedback, all that kind of

191
00:15:42,200 --> 00:15:48,080
stuff. And I think open-source projects don't have that. There is no management

192
00:15:48,080 --> 00:15:53,120
structure per se. There is a lot of structure, actually, within Postgres.

193
00:15:53,120 --> 00:15:57,760
There are committees, there is the core team, there are committers, right? There

194
00:15:57,760 --> 00:16:03,160
is a way of doing things and all sorts of development processes, but I do think

195
00:16:03,160 --> 00:16:08,240
that with this program you're filling a gap that was there. It was perhaps too

196
00:16:08,240 --> 00:16:14,760
informal and not accessible by everybody, right? Not everybody is...

197
00:16:14,760 --> 00:16:18,880
[ROBERT] I don't think we've completely solved the problem, but I think you've diagnosed the

198
00:16:18,880 --> 00:16:24,800
problem really well, you know, and one thing I would add is that not only is

199
00:16:24,800 --> 00:16:29,400
PostgreSQL an open-source project, but it's an independent open-source

200
00:16:29,400 --> 00:16:32,920
project that is not controlled and has never been controlled by any one

201
00:16:32,920 --> 00:16:37,600
particular company. So even in some open-source products, you know, that

202
00:16:37,600 --> 00:16:41,400
company might take certain level of leadership in determining, say, the

203
00:16:41,400 --> 00:16:45,820
direction of the project or who they want to be more and less involved in the

204
00:16:45,820 --> 00:16:50,680
project from among the pool of people who are available, and we really don't

205
00:16:50,680 --> 00:16:57,840
have that. So we have a bunch of people whose core skill set is highly technical,

206
00:16:57,840 --> 00:17:05,360
they're good at using GDB and using the shell and writing C code and other kinds

207
00:17:05,360 --> 00:17:12,240
of not very people-oriented skills, and then, you know, suddenly they're

208
00:17:12,240 --> 00:17:15,880
trying to figure out how to work with all of these other people, and as you say,

209
00:17:15,880 --> 00:17:19,960
nobody really knows who's in charge or who should do what or what direction the

210
00:17:19,960 --> 00:17:24,440
whole thing should be going or anything like that. So I think it's even more

211
00:17:24,440 --> 00:17:28,920
challenging for Postgres than it is for some other projects.

212
00:17:28,920 --> 00:17:32,360
[CLAIRE] In the chat, one of the things Melanie is saying that the majority of committers

213
00:17:32,360 --> 00:17:37,040
she's talked to have never themselves been mentored, and so what that means is

214
00:17:37,040 --> 00:17:41,980
that people who are in these leadership positions or, you know, have all the

215
00:17:41,980 --> 00:17:46,240
knowledge with which maybe they could mentor, you know, they haven't had role

216
00:17:46,240 --> 00:17:51,080
models themselves. And so that makes it tough to figure out, well, what's the

217
00:17:51,080 --> 00:17:55,800
right recipe to mentor, because they never really were on the receiving end,

218
00:17:55,800 --> 00:18:01,080
right, to feel what worked and what didn't, to build those skills.

219
00:18:01,080 --> 00:18:04,080
[ROBERT] Absolutely true, yeah, 100%.

220
00:18:04,080 --> 00:18:11,720
[CLAIRE] So I'm guessing that's maybe one of the challenges in front of you, and I think

221
00:18:11,720 --> 00:18:16,240
both Melanie Plageman and Andreas Scherbaum have been

222
00:18:16,240 --> 00:18:20,120
supporting you in this project, and I'm not quite sure in what roles, and maybe

223
00:18:20,120 --> 00:18:25,920
you can explain that, but, you know, how are you gonna help the people who are

224
00:18:25,920 --> 00:18:30,520
mentoring build that muscle?

225
00:18:30,520 --> 00:18:34,520
[ROBERT] Yeah, that's a question to which I don't yet know the answer.

226
00:18:34,520 --> 00:18:35,520
[Okay.]

227
00:18:35,520 --> 00:18:40,400
I would actually love to hear from your audience or really anyone who has some

228
00:18:40,400 --> 00:18:48,720
good insight on that to offer, because I'm convinced that this is an area with

229
00:18:48,720 --> 00:18:56,120
a lot of potential. But there's a difference between something having a

230
00:18:56,120 --> 00:19:02,280
lot of potential and actually being in a position to take advantage of the

231
00:19:02,280 --> 00:19:09,040
potential that's there, right? I think everyone who has tried to become involved

232
00:19:09,040 --> 00:19:14,800
on the mailing list, regardless of how well that went for them, knows that it's

233
00:19:14,800 --> 00:19:17,640
hard. There's a lot of email, there's a lot of people, there's a lot of

234
00:19:17,640 --> 00:19:21,560
personalities, there's an enormous amount of technical information that you have

235
00:19:21,560 --> 00:19:27,160
to absorb, but even if you absorb every bit of technical information perfectly,

236
00:19:27,160 --> 00:19:33,320
you're far from done because of all of these human factors that also exist.

237
00:19:33,320 --> 00:19:40,520
And I am pretty firmly convinced that we could do a lot to expand the

238
00:19:40,520 --> 00:19:45,560
development community, to make the people that we have more successful, to reduce

239
00:19:45,560 --> 00:19:51,560
burnout, to do all kinds of good things, if we could improve some of the human

240
00:19:51,560 --> 00:19:55,240
parts of these relationships, how people work with each other, how people learn

241
00:19:55,240 --> 00:20:01,200
from each other, which can encompass mentoring for new people, but also the

242
00:20:01,200 --> 00:20:05,800
long-established people work with each other. But I think it's really, really

243
00:20:05,800 --> 00:20:11,560
difficult to figure out how to do that because we've just done so little of it.

244
00:20:11,560 --> 00:20:17,640
A lot of the things that the PostgreSQL project does well are things that the

245
00:20:17,640 --> 00:20:24,320
project has done over and over again, and so the people who have done them many

246
00:20:24,320 --> 00:20:29,440
times are very good at them, and the next people who come along look at what the

247
00:20:29,440 --> 00:20:35,040
existing people do and they copy it. And that is the real recipe for success.

248
00:20:35,040 --> 00:20:40,000
It sounds a little silly, but one of the great ways to avoid making obvious

249
00:20:40,000 --> 00:20:45,200
mistakes is to look at what somebody did before you that worked out well and to

250
00:20:45,200 --> 00:20:51,760
do the same thing that they did. But with this mentoring stuff, we don't have any

251
00:20:51,760 --> 00:20:55,880
track record. It's not something that the project has historically done very much

252
00:20:55,880 --> 00:21:00,600
of, and what has been done has been done privately within companies, for example,

253
00:21:00,600 --> 00:21:06,040
or off-list in other kinds of ways. And so I think we're just at the beginning

254
00:21:06,040 --> 00:21:10,640
of a long learning process where we have to kind of try to experiment and figure

255
00:21:10,640 --> 00:21:14,000
out what works and what doesn't, and then as we understand that better, we can

256
00:21:14,000 --> 00:21:17,400
figure out which of the things that we want to double down on and which of the

257
00:21:17,400 --> 00:21:23,640
things that, you know, maybe are not quite going to work out.

258
00:21:23,640 --> 00:21:29,320
[CLAIRE] Well, and I think the thing about people is that they're all different. So what I

259
00:21:29,320 --> 00:21:33,080
mean by that is the way that you would mentor me would be different than the

260
00:21:33,080 --> 00:21:36,880
way you would mentor David would be different than the way you would mentor

261
00:21:36,880 --> 00:21:40,880
Melanie. I'm just making up names here. You know what I mean? We each have

262
00:21:40,880 --> 00:21:44,640
different strengths and weaknesses and experiences that we bring to the table.

263
00:21:44,640 --> 00:21:50,300
And so even as a mentor, you kind of have to be adaptive to the situation, to

264
00:21:50,300 --> 00:21:54,200
the person, to their needs. And even that person today is different than that

265
00:21:54,200 --> 00:22:00,080
person in 12 months. So I just think...

266
00:22:00,080 --> 00:22:04,800
[ROBERT] This is... sorry for jumping in there, but that's actually something that I have

267
00:22:04,800 --> 00:22:09,440
really struggled with a lot, in my own mentoring, the fact that people are

268
00:22:09,440 --> 00:22:15,860
different. Because my mental model, which is very naive, and you'll hear just how

269
00:22:15,860 --> 00:22:21,120
naive it is as soon as I say it, is often that, you know, "everyone is just like me,

270
00:22:21,120 --> 00:22:29,400
but some people are worse at it than I am." And that's so obviously ridiculous and

271
00:22:29,400 --> 00:22:34,160
wrong and insulting and tons of other things. But my brain sort of tends

272
00:22:34,160 --> 00:22:39,000
to default to that mode that everyone kind of is working with the same...

273
00:22:39,000 --> 00:22:43,800
Everyone who's working on Postgres is kind of working with the same skill set

274
00:22:43,800 --> 00:22:48,360
that I am, except some of them are better and some of them are worse at it.

275
00:22:48,360 --> 00:22:52,560
And one of the things that I've really learned in my time managing people and

276
00:22:52,560 --> 00:22:59,460
mentoring people and stuff like that is how wrong that really is. But even though

277
00:22:59,460 --> 00:23:03,680
I keep learning that over and over again, it's hard not to fall back into the

278
00:23:03,680 --> 00:23:08,600
pattern, because of course you know yourself better than anyone else. If

279
00:23:08,600 --> 00:23:13,800
you're trying to explain something to another person, it's very natural to

280
00:23:13,800 --> 00:23:17,160
think about, "Well, how did I first understand this? How did I first make

281
00:23:17,160 --> 00:23:21,840
sense of this concept?" And then you relate that to them in language that

282
00:23:21,840 --> 00:23:26,480
made sense to you. And sometimes that's just not the right approach at all.

283
00:23:26,480 --> 00:23:29,480
Sometimes you're even not talking about the right subject, or sometimes you're

284
00:23:29,480 --> 00:23:33,200
not explaining it in a way that will make sense to that person. So yeah, it's

285
00:23:33,200 --> 00:23:41,400
really challenging.

286
00:23:33,200 --> 00:23:41,400
[CLAIRE] So have you had a chance yet to try to do research into

287
00:23:41,400 --> 00:23:45,040
some of the other open-source communities and how they've tried to

288
00:23:45,040 --> 00:23:49,920
attack this problem? Or is that something on the list of things to do as you

289
00:23:49,920 --> 00:23:55,000
evolve these? I mean, I know it's an experiment, right? And it's a process and

290
00:23:55,000 --> 00:24:02,240
a journey. But I'm curious if...

291
00:23:55,000 --> 00:24:02,240
[ROBERT] Yeah, I haven't done that. I wouldn't even

292
00:24:02,240 --> 00:24:09,200
necessarily say that that's on my list, because honestly, just keeping up with

293
00:24:09,200 --> 00:24:13,240
everything that's going on right now is a pretty significant time investment to

294
00:24:13,240 --> 00:24:19,040
me. And I just do not have time to go and start learning how other open-source

295
00:24:19,040 --> 00:24:24,320
communities do this kind of stuff. But I would love for that information to

296
00:24:24,320 --> 00:24:27,920
somehow be transmitted in the other direction, either by people in the

297
00:24:27,920 --> 00:24:33,320
PostgreSQL community who already know, or maybe people who do have some

298
00:24:33,320 --> 00:24:38,400
bandwidth available to do some research. Because I think it's really important,

299
00:24:38,400 --> 00:24:45,440
but I don't think it's a project I can undertake myself.

300
00:24:38,400 --> 00:24:45,440
[CLAIRE] Well, anybody who's

301
00:24:45,440 --> 00:24:49,440
listening to this podcast, if you have suggestions or ideas or projects where

302
00:24:49,440 --> 00:24:54,960
you think there's a mentorship program that is working really well, obviously

303
00:24:54,960 --> 00:25:00,120
folks can reach out to you through the Discord, or reach out to me through the

304
00:25:00,120 --> 00:25:06,520
Talking... this Discord, the one where we host Talking Postgres. So I know that

305
00:25:06,520 --> 00:25:10,600
Melanie just commented that she has talked to the Linux Foundation and Hive

306
00:25:10,600 --> 00:25:15,280
and other open-source projects, and so far she hasn't found a program that is

307
00:25:15,280 --> 00:25:21,040
sufficient for the needs of the Postgres community. So we can perhaps delve

308
00:25:21,040 --> 00:25:26,480
into that, but let's go into the wayback machine for a second. We talked

309
00:25:26,480 --> 00:25:30,320
about role models earlier, right? Obviously anybody's perspective on

310
00:25:30,320 --> 00:25:34,520
mentoring is probably influenced by their own experiences, particularly maybe

311
00:25:34,520 --> 00:25:38,800
when they were early in their career or junior or their first kind of mentoring

312
00:25:38,800 --> 00:25:44,080
experience. I'm curious if you have a favorite mentor in your past, and if you

313
00:25:44,080 --> 00:25:48,680
can tell us what that was like and why that was a good experience for you.

314
00:25:48,680 --> 00:25:53,680
Obviously you're different. Everyone is not the same as you.

315
00:25:53,680 --> 00:26:00,360
[ROBERT] Yeah. Yeah, I mean, I think one of the things that I've had a few people who

316
00:26:00,360 --> 00:26:13,840
have done for me is just understand where I was at and what I was good at

317
00:26:13,840 --> 00:26:18,640
and what I was not good at, and instead of pressing on the stuff that I wasn't

318
00:26:18,640 --> 00:26:24,080
good at, they just sort of provided gentle encouragement and then an

319
00:26:24,080 --> 00:26:27,560
occasional suggestion that, "Hey, maybe you could think about being better about

320
00:26:27,560 --> 00:26:35,240
this thing," or whatever. I remember, you know, as regards programming, when I was

321
00:26:35,240 --> 00:26:43,200
very small, I don't even know how old I was, I saw my Dad and he was working on

322
00:26:43,200 --> 00:26:52,240
some program in Fortran, and I asked him a question about it, and basically the

323
00:26:52,240 --> 00:26:58,200
question had to do with how variables work in subroutines. And he just

324
00:26:58,200 --> 00:27:02,360
explained it to me, right? He didn't say it was a dumb question or that I

325
00:27:02,360 --> 00:27:05,680
didn't need to know the answer or whatever. He just told me

326
00:27:05,680 --> 00:27:11,060
how it worked, and I got it. I was like, "Oh, I get it. Every time you enter a

327
00:27:11,060 --> 00:27:15,520
subroutine, all of those variables kind of get a new copy, a new instance of

328
00:27:15,520 --> 00:27:19,640
themselves," which is a concept that everybody who is a programmer sort of

329
00:27:19,640 --> 00:27:23,600
probably intuitively understands at this point, but if you haven't programmed

330
00:27:23,600 --> 00:27:29,600
before, it's not obvious at all that it's not the same copy of the variable when

331
00:27:29,600 --> 00:27:34,940
you re-enter the same function. I remember in high school, I worked for a

332
00:27:34,940 --> 00:27:43,120
guy named Dave, who was very much the same, who would just kind of

333
00:27:43,120 --> 00:27:48,320
give me a lot of praise for whatever I accomplished, and then every once in a

334
00:27:48,320 --> 00:27:51,800
while give me a hint for how I could handle certain situations better or how

335
00:27:51,800 --> 00:27:58,400
I could overcome some obstacle. And later than that, I worked for Margo Seltzer, who

336
00:27:58,400 --> 00:28:06,960
gave the keynote at last year's PGConf.dev in Vancouver, and she was much the same.

337
00:28:06,960 --> 00:28:10,560
She would always tell me how great it was that I had accomplished all of

338
00:28:10,560 --> 00:28:14,240
these things that I'd gotten done, and then maybe once in a while a little

339
00:28:14,240 --> 00:28:20,080
suggestion would creep in. And I think all of those people understood the style

340
00:28:20,080 --> 00:28:25,440
of mentoring that worked for me. They understood that I was a little full of

341
00:28:25,440 --> 00:28:31,200
myself, and they didn't press that point and try to cut me down to size.

342
00:28:31,200 --> 00:28:37,840
They just found a way to be encouraging and help me improve

343
00:28:37,840 --> 00:28:43,280
without making me feel bad about anything that I was already doing.

344
00:28:43,280 --> 00:28:48,840
[CLAIRE] Well, I think in each of those stories, you mentioned the encouragement, the

345
00:28:48,840 --> 00:28:53,720
praise, the positives, the steering you toward doing more of what you were good

346
00:28:53,720 --> 00:29:00,880
at versus focusing on fixing your gaps or your weaknesses. And obviously

347
00:29:00,880 --> 00:29:05,240
not everybody needs that, but it clearly as a recipe worked for you. And by the

348
00:29:05,240 --> 00:29:09,720
way, that would work for me as well. If someone is just critical, critical,

349
00:29:09,720 --> 00:29:13,640
critical, critical of all the things I'm doing wrong, I would just be so

350
00:29:13,640 --> 00:29:18,440
discouraged. I'd want to just go hide in a cave or under a table. I

351
00:29:18,440 --> 00:29:23,440
wouldn't hide under a cave. I would probably just get a good night's

352
00:29:23,440 --> 00:29:28,960
sleep and come back at it and keep fighting. But I do think there is

353
00:29:28,960 --> 00:29:35,680
something to balancing the positives with the negatives.

354
00:29:35,680 --> 00:29:41,080
[ROBERT] Absolutely. But I've also worked with a number of people over the years who

355
00:29:41,080 --> 00:29:47,640
really valued a list of what needed to be different. Not about them,

356
00:29:47,640 --> 00:29:55,560
but say about a patch. Somebody's working on a patch and if

357
00:29:55,560 --> 00:30:00,560
you give them a comprehensive list of 17 things that you want changed or fixed,

358
00:30:00,560 --> 00:30:06,280
they're like, "This is amazing. I have exactly what I need. I'm going to go

359
00:30:06,280 --> 00:30:11,960
through all of these 17 lists and I'm not maybe even interested in exercising

360
00:30:11,960 --> 00:30:16,600
my own judgment about any of those questions. I just want you to tell me

361
00:30:16,600 --> 00:30:22,520
what I need to do." And they're happy when they know what it is that you want

362
00:30:22,520 --> 00:30:28,160
them to do. So whereas I tend, and it sounds like you probably also tend, to

363
00:30:28,160 --> 00:30:32,760
push back on that a little bit and to be like, "I know what I'm doing. I don't

364
00:30:32,760 --> 00:30:37,200
want to be given super specific instructions. Give me some creative

365
00:30:37,200 --> 00:30:41,600
freedom here." But people are in all different places with regard to those

366
00:30:41,600 --> 00:30:47,640
kinds of things. And some people like much more specific, much more

367
00:30:47,640 --> 00:30:51,800
direct feedback about like, "This is exactly how it needs to be," or "This is

368
00:30:51,800 --> 00:30:55,960
exactly how you should do this task in order to be most successful." And they're

369
00:30:55,960 --> 00:30:59,720
like, "I got my marching orders. I understand what I need to do now." Other

370
00:30:59,720 --> 00:31:03,200
people don't like that at all. So feeling your way through that's

371
00:31:03,200 --> 00:31:06,680
definitely, I think, part of the process of establishing a good relationship with

372
00:31:06,680 --> 00:31:11,360
somebody.

373
00:31:06,680 --> 00:31:11,360
[CLAIRE] Well, and maybe part of that is the difference between people

374
00:31:11,360 --> 00:31:17,000
management and project management. Or how do I mean? If I was working on

375
00:31:17,000 --> 00:31:21,360
writing a blog post, I would really value the 17 things that are confusing,

376
00:31:21,360 --> 00:31:27,040
ambiguous, missing, wrong, broken, right? So that I can go fix them, right? Just get

377
00:31:27,040 --> 00:31:33,280
those things fixed. So kind of like a patch. But if I was looking for feedback

378
00:31:33,280 --> 00:31:38,040
as to how I could be a more effective leader, how I could be a more effective

379
00:31:38,040 --> 00:31:44,200
communicator, then that's, I don't know, I don't think that lends itself

380
00:31:44,200 --> 00:31:49,360
as well to, "Okay, here's the 17 things you need to go fix." Maybe it does. Maybe I do

381
00:31:49,360 --> 00:31:59,480
have exactly 17 things.

382
00:31:49,360 --> 00:31:59,480
[ROBERT] I think that's true but I think another part of it is definitely cultural.

383
00:31:59,480 --> 00:32:06,280
I've noticed that working with people from different parts of the world is very different. I have a lot of

384
00:32:06,280 --> 00:32:14,080
colleagues in India. I've noticed certain ways of working together are different. Like on average,

385
00:32:14,080 --> 00:32:18,080
individual people are all over the spectrum, but it does, I think, make a

386
00:32:18,080 --> 00:32:22,320
difference to the average. People from Japan, we have a lot of very important

387
00:32:22,320 --> 00:32:26,440
PostgreSQL contributors from Japan. You know, they have a different way of

388
00:32:26,440 --> 00:32:29,840
communicating, a different way of thinking about things, and it's not just

389
00:32:29,840 --> 00:32:34,960
a language difference that, "Oh, we speak English and they speak Japanese." No, it

390
00:32:34,960 --> 00:32:40,000
goes beyond that. People actually sort of think about different things in different

391
00:32:40,000 --> 00:32:46,560
ways. Even when the words were understood with the correct meaning, it doesn't mean

392
00:32:46,560 --> 00:32:52,080
that the interpretation of that meaning is the same or that people relate to each other

393
00:32:52,080 --> 00:32:56,640
in the same kinds of ways or consider the same kinds of interactions to be positive

394
00:32:56,640 --> 00:33:02,800
or negative or constructive or not constructive or whatever. I think you saw that in the session

395
00:33:03,360 --> 00:33:09,760
that we did last year at PGConf.dev, where communication styles really came up

396
00:33:09,760 --> 00:33:18,160
quite a bit in the discussion of building a more inclusive community. And the slightly

397
00:33:18,160 --> 00:33:23,920
diverse group of people that we had as panelists for that all had somewhat different views

398
00:33:23,920 --> 00:33:31,440
on what a good communication looked like or how things should be phrased. So, yeah, some

399
00:33:31,440 --> 00:33:36,720
of it is personal, some of it is cultural. It's a very complicated set of things.

400
00:33:36,720 --> 00:33:44,400
[CLAIRE] I think I'm going to dig up the YouTube link to that panel discussion, because it was

401
00:33:44,400 --> 00:33:49,200
recorded at PGConf.dev last year. And it was called "Making Postgres Hacking More Inclusive,"

402
00:33:49,200 --> 00:33:57,040
and it was you and Melanie Plageman, and I think it was Amit, right?

403
00:33:57,040 --> 00:33:59,520
[ROBERT] Amit Langote and Masahiko Sawada.

404
00:34:00,160 --> 00:34:05,680
[CLAIRE] Okay, great. Yeah, and it was really interesting because you had four very different people,

405
00:34:05,680 --> 00:34:11,920
very different communication styles. The four of you live in three different countries,

406
00:34:11,920 --> 00:34:19,200
right? And you had a couple different languages in terms of like your first languages,

407
00:34:19,200 --> 00:34:26,560
your native languages. And so, yeah, I was fascinated by it. And it is online. I found

408
00:34:26,560 --> 00:34:28,720
the link, so I will get it shared out there.

409
00:34:28,720 --> 00:34:30,720
[ROBERT] Excellent.

410
00:34:30,720 --> 00:34:39,520
[CLAIRE] Okay, so when you first started mentoring people, when did that happen? Are there any

411
00:34:39,520 --> 00:34:45,760
stories you have to share from those experiences? Was it hard? Was it easy? Did it come naturally,

412
00:34:45,760 --> 00:34:47,280
like a duck to water?

413
00:34:47,280 --> 00:34:57,120
[ROBERT] I think it really started after I joined EDB. I had a few jobs prior to EDB where

414
00:34:57,920 --> 00:35:04,640
I was somebody's manager, but it was usually the case in those instances that they were

415
00:35:04,640 --> 00:35:08,480
doing something that was pretty different from what I was doing. So it was a different

416
00:35:08,480 --> 00:35:15,360
kind of relationship. Whereas at EDB, I managed a bunch of people who were doing work that was

417
00:35:15,360 --> 00:35:24,080
stuff that I was well-qualified to do myself. And I would say on the whole, it went pretty

418
00:35:24,080 --> 00:35:31,920
smoothly. I mean, I guess maybe it didn't go smoothly for everybody. Certainly, there

419
00:35:31,920 --> 00:35:39,440
were people who left EDB and maybe that was because they got a better opportunity elsewhere,

420
00:35:39,440 --> 00:35:43,920
or maybe it was because they didn't click with having me as their manager or a combination

421
00:35:43,920 --> 00:35:49,440
of things. I don't know. But I do feel like on the whole, it went pretty well. I feel

422
00:35:49,440 --> 00:35:55,520
like I developed a lot of good relationships with people at EDB that were people that I

423
00:35:55,520 --> 00:36:01,520
really enjoyed working with and still do enjoy working with. I feel like I made some of my

424
00:36:01,520 --> 00:36:08,000
best work friends through those conversations. And a lot of those are people I still keep

425
00:36:08,000 --> 00:36:09,120
in touch with from time to time.

426
00:36:09,120 --> 00:36:18,240
[CLAIRE] When you were first starting out in your career, did you have it in your mind that you wanted

427
00:36:18,240 --> 00:36:20,480
to work on Postgres?

428
00:36:20,480 --> 00:36:30,000
[ROBERT] No, not at all. I went to college with not a real clear idea of what I wanted to do with

429
00:36:30,000 --> 00:36:37,760
myself. And of course, the first question that everybody asks you is, "Well, what field

430
00:36:37,760 --> 00:36:42,720
are you going to go into? What's going to be your major or whatever?" And I just kind

431
00:36:42,720 --> 00:36:46,400
of started saying computer science because I'd been doing computer stuff for a long time

432
00:36:46,400 --> 00:36:54,240
and I didn't really have another good answer to that question. And well, once I said that,

433
00:36:54,240 --> 00:36:58,640
I ended up taking computer science classes. And then I eventually graduated and I had

434
00:36:58,640 --> 00:37:04,960
to find something to do with myself. And I ended up getting a job at a small startup

435
00:37:04,960 --> 00:37:14,560
company that needed some web application stuff built, which I did. And then I had a series

436
00:37:14,560 --> 00:37:20,320
of jobs, as I think I may have mentioned to you earlier, that were basically that, just

437
00:37:20,320 --> 00:37:24,960
building small web applications for different kinds of people. And the thing that got me

438
00:37:24,960 --> 00:37:30,640
interested in working on Postgres was I had this one particular job where I was building

439
00:37:30,640 --> 00:37:36,080
an internal-facing web application. And over time, it got more and more and more complicated

440
00:37:36,080 --> 00:37:40,800
and it had more things that it did and more features that went in there. And eventually,

441
00:37:41,520 --> 00:37:46,800
after it got to a certain point, I started running up against the limitations of PostgreSQL

442
00:37:46,800 --> 00:37:53,200
itself. In particular, the fact that PostgreSQL couldn't do any form of join removal at that

443
00:37:53,200 --> 00:37:58,960
time was making some of my queries annoyingly slow. I was like, "Huh, I wonder how hard

444
00:37:58,960 --> 00:38:03,280
it would be to fix that?" So that's how I ended up reading the mailing list and eventually

445
00:38:03,280 --> 00:38:03,920
getting involved.

446
00:38:07,760 --> 00:38:18,240
[CLAIRE] So you just went to the mailing list and started, what, asking questions or contributing ideas?

447
00:38:18,240 --> 00:38:20,960
Or do you remember your first patch?

448
00:38:20,960 --> 00:38:31,120
[ROBERT] Ah, I almost remember my first patch. Well, I think I do remember my first patch. So I

449
00:38:31,120 --> 00:38:36,960
started reading the mailing list and one of the first conclusions that I remember coming

450
00:38:36,960 --> 00:38:44,560
to is that this Tom Lane guy seemed really smart. I thought he had a lot of good things

451
00:38:44,560 --> 00:38:50,400
to say. I mean, sometimes they were abrasive things, but you could just tell, I could just

452
00:38:50,400 --> 00:38:56,240
tell that this was a really, really smart human being. And a lot of people on the mailing

453
00:38:56,240 --> 00:39:02,160
list were really smart. And I just love that. I love the intellectual engagement of being

454
00:39:02,160 --> 00:39:07,440
able to discuss ideas about an interesting topic with a bunch of other people who were

455
00:39:07,440 --> 00:39:13,200
really interested in that topic and had really clever things to say about it.

456
00:39:13,200 --> 00:39:20,160
And the first thing that I did is write a lot of email, like a lot of email. And then

457
00:39:20,160 --> 00:39:27,120
the second thing that I did is I started getting involved in doing patch reviews. And the question

458
00:39:27,120 --> 00:39:32,800
I tried to ask myself as I started reviewing actually really a lot of patches, I was very

459
00:39:32,800 --> 00:39:38,640
prolific as a reviewer back in those days, I kept asking myself, you know, "what is Tom

460
00:39:38,640 --> 00:39:43,680
going to say about this patch?" And could I say the thing that Tom is going to say before

461
00:39:43,680 --> 00:39:47,760
Tom says it, so that by the time Tom sees the patch, some of these things have

462
00:39:47,760 --> 00:39:52,560
been improved and maybe the patch will get committed whereas otherwise it would have

463
00:39:52,560 --> 00:39:57,120
run into trouble. And that was kind of my approach. I don't really know how successful

464
00:39:57,120 --> 00:40:03,920
I was at it. I think I didn't know how little I knew at that point. You know, I mean, I

465
00:40:03,920 --> 00:40:08,880
fancied myself a good programmer, but I didn't really know anything about Postgres internals.

466
00:40:08,880 --> 00:40:13,440
And I think if you went back and looked at some of my posts from that era, you'd be like,

467
00:40:13,440 --> 00:40:19,120
wow, I really didn't know very much back then and still had a lot of bold opinions,

468
00:40:20,000 --> 00:40:23,840
which would be absolutely true. But yeah, that's how I started getting involved. And

469
00:40:23,840 --> 00:40:29,440
then eventually I started writing a few patches of my own. I'm not 100% sure, but I think the

470
00:40:29,440 --> 00:40:38,080
first one was adding a grantable privilege for truncate. So you could say grant truncate on

471
00:40:38,080 --> 00:40:48,240
table whatever to whoever. And I found that project on the todo list. And the todo

472
00:40:48,240 --> 00:40:53,040
list is, in general, not a great source of project ideas, but I happened to find that project on

473
00:40:53,040 --> 00:40:59,280
todo list. And I was like, you know, I think I could probably figure out how to do this. I didn't

474
00:40:59,280 --> 00:41:04,720
really care about it for its own sake, but it just sounded doable. And I went through and I

475
00:41:04,720 --> 00:41:10,480
grepped for all the places in the source code where we were doing something with acl delete,

476
00:41:10,480 --> 00:41:17,040
which I figured out was the symbolic constant that controlled the grantable delete privilege.

477
00:41:17,840 --> 00:41:24,240
And I just modified them all so that they did something similar with truncate with appropriate

478
00:41:24,240 --> 00:41:30,640
modifications. And then I tested it and submitted patch and it got committed. And then I was

479
00:41:30,640 --> 00:41:39,040
off and going on my PostgreSQL hacking journey.

480
00:41:30,640 --> 00:41:39,040
[CLAIRE] Do you feel like the going through a lot of patch

481
00:41:39,040 --> 00:41:47,440
reviews first before making a first contribution? Is that like a typical pattern for a lot of

482
00:41:47,440 --> 00:41:54,320
contributors? Or are there lots of different paths? Like do some people come in with their

483
00:41:54,320 --> 00:42:01,600
first proposed contribution before even doing a patch review?

484
00:41:54,320 --> 00:42:01,600
[ROBERT] I think some people definitely do.

485
00:42:01,600 --> 00:42:14,000
I think that for me, the experience was really helpful because, you know, I

486
00:42:16,480 --> 00:42:24,000
didn't really know what I was doing with respect to PostgreSQL specifically. And I knew that.

487
00:42:24,000 --> 00:42:33,040
Like I knew how to program in C, but I could tell just looking at the PostgreSQL source code a

488
00:42:33,040 --> 00:42:38,800
little bit that there were all sorts of things to know about this code base specifically that I

489
00:42:38,800 --> 00:42:45,840
didn't know. And I also knew that I had no experience contributing to PostgreSQL or any

490
00:42:45,840 --> 00:42:52,640
other open source project. And I didn't really have a good idea of how that worked. And so

491
00:42:52,640 --> 00:42:59,600
reviewing patches for me was a really helpful way of getting my feet wet because it

492
00:42:59,600 --> 00:43:05,280
allowed me to look at a lot of different areas of the source code and start to become familiar

493
00:43:05,280 --> 00:43:09,840
with things. And of course, you're not going to remember everything you see the first time you see

494
00:43:09,840 --> 00:43:16,080
it or even the tenth time that you see it. But I think it really helped me to get my head around

495
00:43:16,080 --> 00:43:20,560
the culture of the community, or to start to get my head around the culture of the community,

496
00:43:20,560 --> 00:43:28,000
as well as how the source code worked to be able to compile the source code and run the regression

497
00:43:28,000 --> 00:43:36,560
tests and do all of those things. And some other people come in and they propose a patch straight

498
00:43:36,560 --> 00:43:42,160
off. And I think for some people that works fine. I would guess that for people for whom that works

499
00:43:42,160 --> 00:43:47,040
fine, they probably have a little bit more grounding in working on open source projects

500
00:43:47,040 --> 00:43:52,640
than I did when I started out, or they're just better at this kind of thing than I was.

501
00:43:52,640 --> 00:43:59,200
I do think there are people who try to get too ambitious straight off and they go straight to

502
00:43:59,200 --> 00:44:04,240
proposing a patch, maybe a patch for some quite large feature, and they don't really understand

503
00:44:04,240 --> 00:44:09,680
how many things they don't know. And I know I did not fully understand all of the things that I

504
00:44:09,680 --> 00:44:17,040
didn't know, but I did realize it to some extent. And I think I'm really glad that I started with

505
00:44:17,040 --> 00:44:22,320
reviewing because I think it really put me in a good position to be able to do a lot of things

506
00:44:22,320 --> 00:44:29,360
later.

507
00:44:22,320 --> 00:44:29,360
[CLAIRE] I mean, I guess when I think about other spaces, right, to look for analogies or to look

508
00:44:29,360 --> 00:44:35,280
for things that are common in like the human condition, like to be a good writer, most good

509
00:44:35,280 --> 00:44:43,040
writers also read for hours and hours every day, right? So, and they've consumed a lot of other

510
00:44:43,040 --> 00:44:51,760
writings created by other people. In sports, every athlete has also watched other athletes, right?

511
00:44:51,760 --> 00:44:57,200
Attended a lot of games, watched game tape, studied their own, you know, videos of their own

512
00:44:57,200 --> 00:45:04,960
performance. Like there is a lot of observation and dissecting like what's working and what's not

513
00:45:04,960 --> 00:45:10,480
and learning from other people, like standing on the shoulders of giants or whatever. And I think

514
00:45:10,480 --> 00:45:17,440
that's true in Postgres. Like it's got to be. One of the things Melanie told me once is that

515
00:45:17,440 --> 00:45:23,200
as she was learning Postgres, like she would listen to other conference presenters,

516
00:45:23,200 --> 00:45:29,040
both to learn about whatever the thing, the technical thing often they were trying to teach

517
00:45:29,040 --> 00:45:33,360
in those conference talks, as she would be out for a run and listening to, you know,

518
00:45:33,360 --> 00:45:41,280
some downloaded YouTube conference talk on, you know, in her earphones. But

519
00:45:41,280 --> 00:45:44,720
you're also learning about how to give a good conference talk at the same time.

520
00:45:46,560 --> 00:45:56,640
[ROBERT] Yeah, 100%. I mean, I think one of the things that's hard is that when you participate in

521
00:45:56,640 --> 00:46:03,920
hacking on Postgres or anything else, right, could be participating in the Postgres community

522
00:46:03,920 --> 00:46:11,200
in some other way, could be participating in some other kind of community. You probably think there

523
00:46:11,200 --> 00:46:18,320
is a problem or at least something that could be better. And so you want to bring your own

524
00:46:18,320 --> 00:46:24,400
knowledge, your own ideas, your own viewpoint to bear on whatever it is that you're doing.

525
00:46:24,400 --> 00:46:32,800
And that's absolutely true. That's a right thing for people to want. But at the same time,

526
00:46:32,800 --> 00:46:38,720
you also want to sort of acknowledge and understand that, you know, there's a lot of

527
00:46:38,720 --> 00:46:45,200
wisdom that's already embedded in that community, and that's why it exists and how it managed to

528
00:46:45,200 --> 00:46:50,080
get as far as it did before you came along. And so finding the right balance between those things,

529
00:46:50,080 --> 00:46:56,640
the right balance between sort of flexing or accepting the way that the community is,

530
00:46:56,640 --> 00:47:01,360
even if it's not what you personally would like or what you personally would prefer,

531
00:47:01,360 --> 00:47:08,560
and promoting your own good ideas and trying to change things and make it more into the way

532
00:47:08,560 --> 00:47:13,920
that you think it should be, that's a really difficult balance to get right. And I think

533
00:47:13,920 --> 00:47:19,120
probably everybody who participates in the PostgreSQL community is at some level

534
00:47:19,120 --> 00:47:28,160
familiar with the delicate balance there.

535
00:47:19,120 --> 00:47:28,160
[CLAIRE] The mailing list, I think the word that

536
00:47:28,160 --> 00:47:32,160
Melanie used to describe it is there's a particular groove to the communication style

537
00:47:33,040 --> 00:47:38,240
that exists on the mailing list. And so, yeah, people have to learn what that is, I guess,

538
00:47:38,240 --> 00:47:50,880
and understand it and pick up on those techniques and those ways of, I don't know, it is different.

539
00:47:50,880 --> 00:47:58,480
[ROBERT] Yeah, I mean, I think one way that I've heard it stated is that, you know, people are very direct,

540
00:47:58,480 --> 00:48:04,560
right? People tend to give very direct feedback without, I don't know, beating around the bush.

541
00:48:04,560 --> 00:48:10,720
They're just like, "This is what it is." And that can come across to some people as hostile,

542
00:48:10,720 --> 00:48:15,520
which admittedly sometimes might even be true. I mean, we hope not, but

543
00:48:15,520 --> 00:48:19,040
we're all people with emotions, right? We all have bad days.

544
00:48:19,040 --> 00:48:26,880
[CLAIRE] I'm glad you're not having a bad day today, Robert. I'm glad I'm not too.

545
00:48:28,240 --> 00:48:35,120
[ROBERT] But yeah, it does take some time to sort of get used to it and understand what people are really

546
00:48:35,120 --> 00:48:41,360
saying. And I think, you know, when you've been doing it as long as I have, things that

547
00:48:41,360 --> 00:48:46,480
some people say on the mailing lists start to even creep into your vocabulary and you find

548
00:48:46,480 --> 00:48:52,480
yourself using an expression that somebody uses on the mailing list on a regular basis when you're

549
00:48:52,480 --> 00:48:57,840
talking to your family or whatever. And you realize how much time that you've spent on this

550
00:48:57,840 --> 00:49:02,720
mailing list has really infiltrated your whole way of thinking. And that's not altogether good,

551
00:49:02,720 --> 00:49:10,720
of course, because the particular turns of phrase that Tom uses or I use or whoever use on the

552
00:49:10,720 --> 00:49:16,240
mailing list aren't necessarily anything special. But you do have to figure out how to work with

553
00:49:16,240 --> 00:49:21,680
people. You have to figure out how to communicate with people in a way that feels respectful enough

554
00:49:21,680 --> 00:49:29,280
to them, but is also direct enough to get the job done. And, you know, also just enables you to work

555
00:49:29,280 --> 00:49:33,840
together and accomplish more as a group than any of you could accomplish individually.

556
00:49:33,840 --> 00:49:42,000
[CLAIRE] Does anything specific come to mind in terms of these turns of phrases that have become

557
00:49:42,000 --> 00:49:45,920
part of your, I don't know, everyday life?

558
00:49:45,920 --> 00:49:50,240
[ROBERT] Ooh, I'm not thinking of one right at the moment, actually.

559
00:49:51,040 --> 00:49:58,480
[CLAIRE] Okay, well, maybe one will pop into your head as we're proceeding here. I did notice that

560
00:49:58,480 --> 00:50:03,680
one of the things that's important is that people not get defensive, you know, like,

561
00:50:03,680 --> 00:50:10,320
[yeah,] one of the things when I used to work in the kernel group at Sun is when you know that

562
00:50:10,320 --> 00:50:17,440
your software product is, I don't know, potentially going to be used in an air traffic control tower,

563
00:50:17,440 --> 00:50:24,960
or whatever, right, when it is being used for life or death scenarios, or scenarios that have,

564
00:50:24,960 --> 00:50:32,640
like, a huge financial impact on people. I don't know, you really want to get it right.

565
00:50:32,640 --> 00:50:38,560
You really want to make sure that it is going to do what it's supposed to do without bugs.

566
00:50:38,560 --> 00:50:41,120
Of course, there'll always be bugs, but...

567
00:50:42,080 --> 00:50:47,680
[ROBERT] I think people who are new to the PostgreSQL community or to PostgreSQL development often

568
00:50:47,680 --> 00:50:52,080
underestimate how difficult it is to keep bugs out of the product,

569
00:50:52,080 --> 00:50:59,200
or the project, I guess I should say. You know, we don't do a perfect job at that.

570
00:50:59,200 --> 00:51:02,960
Obviously, there are bug fix releases every quarter, and we make mistakes all the time.

571
00:51:04,800 --> 00:51:13,760
But I think it's often not visible how much care and how much effort goes into making it as good as it

572
00:51:13,760 --> 00:51:17,920
is, which can make people very frustrated because they're like, look, I'm just trying to get

573
00:51:17,920 --> 00:51:23,040
something done here. And they don't realize that the last time, you know, somebody was just trying

574
00:51:23,040 --> 00:51:27,040
to get something done, there was a lot of picking up the pieces that had to happen there. So,

575
00:51:28,960 --> 00:51:35,200
being open to that negative feedback and not getting defensive about it, as you say,

576
00:51:35,200 --> 00:51:40,320
and just realizing that people are worrying about things because they've been burned before

577
00:51:40,320 --> 00:51:46,960
is a really important part of it. But another thing that I notice in that way,

578
00:51:46,960 --> 00:51:56,080
an error that I have made uncountable times, is somebody writes something on the mailing list,

579
00:51:56,080 --> 00:52:04,160
and you read it, and you hear that person saying whatever it is that they wrote in your own voice,

580
00:52:04,160 --> 00:52:13,360
and you attribute to them the emotional state that you would have if you had written those words

581
00:52:13,360 --> 00:52:20,080
down. But that's not necessarily what they were feeling. That's what you would have been feeling

582
00:52:20,080 --> 00:52:27,840
if you had written the thing that they actually wrote. And a trick that I have found to be very

583
00:52:27,840 --> 00:52:33,600
helpful when I start to get really pissed off at somebody on the mailing list, especially if it's

584
00:52:33,600 --> 00:52:41,040
someone that I've met in person multiple times, is I read the email again, and I imagine them

585
00:52:41,040 --> 00:52:48,400
saying those things out loud in their voice, the intonation that they would have if they were

586
00:52:48,400 --> 00:52:55,600
saying those things out loud. And very often when I do that, I realize, "Yeah, this doesn't actually

587
00:52:55,600 --> 00:53:03,920
have nearly as hostile a tone when I hear them saying it as when I say it, because their word choice and the

588
00:53:03,920 --> 00:53:09,680
way they express approval or disapproval or agreement or disagreement or whatever is different

589
00:53:09,680 --> 00:53:16,480
than the way that I would express those things. So I think that's the other reason not to get too

590
00:53:16,480 --> 00:53:23,040
upset when somebody says something that sounds critical. They may not actually mean that the

591
00:53:23,040 --> 00:53:28,400
way that it sounds to you, because you're almost always projecting a little bit of yourself and

592
00:53:28,400 --> 00:53:34,480
your own communication style onto them. And sometimes that may be exactly what they meant,

593
00:53:34,480 --> 00:53:40,080
and they weren't being very nice. But I've found that surprisingly often it actually boils down

594
00:53:40,080 --> 00:53:47,120
to different people expressing the same sentiment in different ways.

595
00:53:40,080 --> 00:53:47,120
[CLAIRE] I have never in my life heard

596
00:53:47,120 --> 00:53:54,160
that trick, or certainly not heard it described in that way. And I think it's really cool. It only

597
00:53:54,160 --> 00:54:00,080
works if you have met the person, I think. [Yes.] You know, that ability to imagine them, their word

598
00:54:00,080 --> 00:54:04,800
choice, their facial expressions, etc. Although, actually, maybe that's one of the benefits of this

599
00:54:04,800 --> 00:54:11,920
podcast, right? I'm trying to help people in the community or future people in the community,

600
00:54:11,920 --> 00:54:18,160
people who are not yet here, but thinking about joining the Postgres project, to get to know some

601
00:54:18,160 --> 00:54:23,760
of the folks who contribute and get to know why they do what they do. And so maybe if someone has

602
00:54:23,760 --> 00:54:29,760
heard you speak here, or maybe heard a recording of a conference talk, then even if they haven't

603
00:54:29,760 --> 00:54:36,560
met you, maybe they could apply that trick.

604
00:54:29,760 --> 00:54:36,560
[ROBERT] Yeah, and I think it's also really helpful.

605
00:54:36,560 --> 00:54:43,440
It's a reason why events where people can get together are really helpful, right? We're

606
00:54:43,440 --> 00:54:51,040
currently planning PGConf.dev in May. And that is a time when a lot of developers will get there

607
00:54:51,040 --> 00:54:56,320
together, and we will get to hear each other in person and see each other in person and see each

608
00:54:56,320 --> 00:55:03,280
other's faces and see how people react to things. And I do think those kinds of events are a really

609
00:55:03,280 --> 00:55:12,080
important part of building community, because they just make it not an abstract voice on the internet

610
00:55:12,080 --> 00:55:17,440
telling you that you're wrong. They make it a specific person that you know, and that you

611
00:55:17,440 --> 00:55:22,880
hopefully don't think is a horrible person, telling you that you're wrong, and probably in a

612
00:55:22,880 --> 00:55:28,560
very specific way about a very specific issue, rather than, "Oh, they're just telling you you're

613
00:55:28,560 --> 00:55:35,440
wrong about everything in your life." So I think everything you said is true. And to that,

614
00:55:35,440 --> 00:55:41,280
I would say, I would just add that those in-person opportunities, when we have them,

615
00:55:41,280 --> 00:55:47,440
are also a really valuable part of that.

616
00:55:41,280 --> 00:55:47,440
[CLAIRE] So let's talk about PGConf.dev for a second.

617
00:55:48,080 --> 00:55:54,480
It's going to be happening in Montreal in the middle of May. It is the second year after this

618
00:55:54,480 --> 00:56:00,080
annual event focused on the development of Postgres has been kind of rebranded. So it was

619
00:56:00,080 --> 00:56:06,720
formerly the PGCon event that used to happen in Ottawa each year. So last year was the kind of

620
00:56:06,720 --> 00:56:11,760
first year post reorganization and rebrand, and that was in Vancouver. And this year will be in

621
00:56:11,760 --> 00:56:18,240
Montreal. And the conference is focused, if I can say it well, you're on the organizing team,

622
00:56:18,240 --> 00:56:20,640
is that right, Robert? [Yes, yes, that's right.]

623
00:56:20,640 --> 00:56:28,160
Okay. It's focused on the development of Postgres. So a lot of the contributors

624
00:56:28,160 --> 00:56:37,840
come, other community members as well. I plan to be there. And there's opportunities for like,

625
00:56:37,840 --> 00:56:45,600
there's a patch review workshop. And there's a lot of focus on how do we help contributors get

626
00:56:45,600 --> 00:56:51,840
better at their job? How do we help tomorrow's future contributors and committers? I don't know,

627
00:56:51,840 --> 00:56:56,640
I'm putting words in your mouth. You tell me.

628
00:56:51,840 --> 00:56:56,640
[ROBERT] Yeah, no, I think I agree with everything you

629
00:56:56,640 --> 00:57:03,680
said. I mean, I think the core content tends to be sort of more technical developer focused stuff.

630
00:57:04,640 --> 00:57:12,080
But I personally believe that it's really good when we grow beyond that. Right? So,

631
00:57:12,080 --> 00:57:20,000
you know, your talk that you have there this year, I believe, I think you had a talk at PG Europe.

632
00:57:20,000 --> 00:57:26,320
But I've heard you give a few talks that were about some of these community building topics.

633
00:57:26,320 --> 00:57:31,920
We had the, you know, the "Making PostgreSQL Hacking More Inclusive" session last year.

634
00:57:33,600 --> 00:57:38,560
There's a lot to talk about that's more than just the patch that I'm hacking on right at this moment,

635
00:57:38,560 --> 00:57:44,480
or the patch that I just finished hacking on, or the patch that I'm about to start hacking on. And

636
00:57:44,480 --> 00:57:51,440
I think, you know, the core constituency of this is really the group of developers and people do

637
00:57:51,440 --> 00:57:57,760
and should want to spend most of their energy talking about the development itself. But

638
00:57:57,760 --> 00:58:02,800
mixed in there with that, I think it's really valuable to have some discussion of community

639
00:58:02,800 --> 00:58:08,320
building topics, working together topics, all the things that aren't just what's in the patch.

640
00:58:08,320 --> 00:58:14,880
Because ultimately, our success or failure as a project, or even our success or failure,

641
00:58:14,880 --> 00:58:20,400
specifically, if you just think of the community of people who are developing for core PostgreSQL

642
00:58:20,400 --> 00:58:25,840
itself, the patches are only part of it. And acknowledging those other parts and working on

643
00:58:25,840 --> 00:58:32,080
those other things as well, I think is an important part of what we want to be doing along with the

644
00:58:32,800 --> 00:58:39,440
hardcore hacking.

645
00:58:32,800 --> 00:58:39,440
[CLAIRE] Well, and I know from talking to Melanie, how much work is going on in the

646
00:58:39,440 --> 00:58:46,640
background to make this thing as successful as it can be. And there's an unconference on the last

647
00:58:46,640 --> 00:58:55,920
day. So, and that everybody seemed to be engaged in last year. Right? Just...

648
00:58:46,640 --> 00:58:55,920
[ROBERT] I think last year,

649
00:58:55,920 --> 00:59:03,040
we had a great event, a huge shout out to Melanie and Steve Singer and Jonathan and everybody who

650
00:59:03,040 --> 00:59:12,320
was involved in bringing that event together. There's usually a developer meeting and some

651
00:59:12,320 --> 00:59:17,360
other bits of, let's say, alternative content on the first day of the event. And then we have two

652
00:59:17,360 --> 00:59:22,640
regular days of talks and then we finish up with the unconference. And there's always an amazing

653
00:59:22,640 --> 00:59:27,120
hallway track going on the entire time with people just standing around and talking about

654
00:59:27,120 --> 00:59:34,160
patch ideas or community ideas, getting to know people, putting a face and a voice to a name,

655
00:59:34,160 --> 00:59:39,200
all of those kinds of things. And I think it's just such a valuable event for the community.

656
00:59:39,200 --> 00:59:46,960
So if you are at all interested in that kind of stuff, you should definitely register for the

657
00:59:46,960 --> 00:59:52,400
event. Maybe you should convince your company to sponsor the event. I think it's a great event for

658
00:59:52,400 --> 00:59:57,040
the community. And I think that team that was involved last year, which did not involve me,

659
00:59:57,040 --> 01:00:02,960
did really, really well. And that's why I wanted to volunteer to be a little more involved this

660
01:00:02,960 --> 01:00:10,080
year and to try to help keep things rolling.

661
01:00:02,960 --> 01:00:10,080
[CLAIRE] You mentioned earlier when you talked about

662
01:00:10,080 --> 01:00:15,360
your first patch that you got it off the to-do list, but that wasn't a particularly good list

663
01:00:15,360 --> 01:00:22,000
to necessarily find a first patch on. And then Tristan Partin in the chat commented that

664
01:00:22,000 --> 01:00:30,640
Tomas Vondra, who is another Postgres committer and who is now a teammate of mine at Microsoft,

665
01:00:30,640 --> 01:00:38,480
but he apparently keeps a list of good first patches that people might do. And I don't know,

666
01:00:38,480 --> 01:00:43,200
is that something that's come up a bit in the whole mentorship program? Like where people...

667
01:00:43,200 --> 01:00:51,600
[ROBERT] It comes up all the time. It's actually a huge issue because, of course, people need

668
01:00:51,600 --> 01:00:57,200
getting started patches. People need things to work on. And they want suggestions that are

669
01:00:57,200 --> 01:01:01,920
things that are perceived as valuable by the project, that are likely to be accepted if they

670
01:01:01,920 --> 01:01:06,800
do the work, but that are also doable for somebody who doesn't yet have a lot of experience.

671
01:01:06,800 --> 01:01:14,560
And what I've seen is that if those lists get out there on the internet, they tend to become empty

672
01:01:14,560 --> 01:01:24,560
extremely quickly. I don't know if Tomas is better at keeping his list filled than I've ever been at

673
01:01:24,560 --> 01:01:30,720
keeping any list that I've ever seen filled, or if it just hasn't quite made the rounds yet.

674
01:01:30,720 --> 01:01:36,720
But I think there are a lot of people who are really keen to be involved in development with

675
01:01:36,720 --> 01:01:40,880
the project and who would love a project for beginners. And I have to tell people

676
01:01:40,880 --> 01:01:45,680
"I don't have anything for you. I'm sorry." on a really regular basis and every time

677
01:01:45,680 --> 01:01:54,000
I hear about somebody who has a list, I'm like, "[whistles] really?" Because there's always, always, always

678
01:01:54,000 --> 01:02:00,240
people who are looking for projects.

679
01:01:54,000 --> 01:02:00,240
[CLAIRE] Well, maybe you can take a peek after the podcast recording

680
01:02:00,240 --> 01:02:08,880
is over. Tristan dropped a link to Tomas's list and tags there. So I don't know. Maybe that's

681
01:02:08,880 --> 01:02:14,000
something that will help the mentorship program too, just having more eyeballs on it or having

682
01:02:14,000 --> 01:02:21,120
it grow even longer than it currently is.

683
01:02:14,000 --> 01:02:21,120
[ROBERT] I would also love to see other committers or

684
01:02:21,120 --> 01:02:26,640
senior contributors in the community publish their own lists for things like that and

685
01:02:26,640 --> 01:02:33,120
try to keep adding things to them. Because I think without those kinds of project ideas,

686
01:02:33,760 --> 01:02:39,920
it really does become very difficult for people to get involved. And so the more of those kinds

687
01:02:39,920 --> 01:02:45,760
of ideas that we generate and record and find ways to filter out to people who want to be involved,

688
01:02:45,760 --> 01:02:49,840
probably the more people are going to end up getting involved.

689
01:02:49,840 --> 01:02:59,600
[CLAIRE] Have you ever, I don't know, gone back to your alma mater or given talks at local universities

690
01:02:59,600 --> 01:03:07,120
and tried to, I don't know, sell the value of working on the Postgres open source project?

691
01:03:07,120 --> 01:03:11,120
Is that something that you've done or are thinking about doing? And if you have done it,

692
01:03:11,120 --> 01:03:18,160
what's the story you told? How did you try to entice tomorrow's future contributors?

693
01:03:18,160 --> 01:03:23,680
[ROBERT] I'm going to be honest, I've never really tried to do anything like that.

694
01:03:23,680 --> 01:03:24,820
[Okay.]

695
01:03:29,280 --> 01:03:35,200
I think part of that is, I mean, part of that is probably short-sightedness, but part of that,

696
01:03:35,200 --> 01:03:43,600
I think, is also that I think one of the ways that we're sort of struggling as a community is

697
01:03:43,600 --> 01:03:51,600
to figure out how to get people plugged into the development dynamic in a useful way when they do

698
01:03:51,600 --> 01:03:57,440
show up. And the thing we were just talking about with project lists is, in my opinion,

699
01:03:57,440 --> 01:04:01,920
a pretty big part of that. I mean, I think there's a lot more to it than that, but that is,

700
01:04:01,920 --> 01:04:09,600
you know, that is good evidence of a problem, right? When lists of projects that are good

701
01:04:09,600 --> 01:04:19,600
for new contributors empty out really fast, that means that you have more people who want to be

702
01:04:19,600 --> 01:04:26,640
involved than you know what to do with. And I do think that's where we are. I think people show up

703
01:04:26,640 --> 01:04:32,720
on the mailing list and they're interested in getting involved. And, you know, there's a variety

704
01:04:32,720 --> 01:04:37,520
of things that can happen that you've had conversations about as a community, and I

705
01:04:37,520 --> 01:04:43,840
think we're doing better with some of those things. There used to be a lot of complaints about people

706
01:04:43,840 --> 01:04:49,280
getting very rude responses on the list when they showed up to post there. And maybe that still

707
01:04:49,280 --> 01:04:54,400
happens from time to time, but my personal impression is that that's actually gotten

708
01:04:54,400 --> 01:05:00,480
much better over the years. And I very often see someone post the list for the very first time,

709
01:05:00,480 --> 01:05:05,840
or even the second or third time, and they get a very encouraging response from whoever writes back,

710
01:05:05,840 --> 01:05:12,000
a very, probably a much more patient response than an experienced contributor posting the same thing

711
01:05:12,000 --> 01:05:18,960
would get. So I think that's really good. I think that is a sign of progress. But I think, you know,

712
01:05:20,400 --> 01:05:27,360
the fact that we don't have great project ideas for people, the fact that we probably need a much

713
01:05:27,360 --> 01:05:32,480
more extensive mentorship program than we've already got, probably a bunch of other things

714
01:05:32,480 --> 01:05:39,680
kind of make it hard for us to absorb all of the interest that we get. So I don't think our main

715
01:05:39,680 --> 01:05:45,520
problem is finding more people who would be willing to dip their toe in the water. That's probably

716
01:05:45,520 --> 01:05:50,960
part of the problem. Maybe that part of the problem deserves more thought than I've given it.

717
01:05:50,960 --> 01:05:57,920
But I think a lot of the problem is actually more along the lines of, well, okay, great,

718
01:05:57,920 --> 01:06:03,680
somebody showed up, but do we have any way of making them feel like they're accomplishing

719
01:06:03,680 --> 01:06:07,760
something useful? Because if they don't feel that way, then they're probably not going to stick

720
01:06:07,760 --> 01:06:18,560
around.

721
01:06:07,760 --> 01:06:18,560
[CLAIRE] Okay. So the to-do lists are super important. The reception people receive, that

722
01:06:18,560 --> 01:06:23,440
welcomingness, is super important. And then obviously when people get further along, because

723
01:06:23,440 --> 01:06:28,560
I assume they're a little bit further along before they're motivated to join any kind of mentorship

724
01:06:28,560 --> 01:06:34,240
program, obviously that's why we're here, because that's also an important part of the recipe,

725
01:06:34,240 --> 01:06:39,600
another ingredient. And I'm sure there's more ingredients beyond these.

726
01:06:34,240 --> 01:06:39,600
[ROBERT] Yeah. I mean,

727
01:06:39,600 --> 01:06:45,600
so we haven't talked much about the monthly hacking workshop that I've been doing.

728
01:06:45,600 --> 01:06:50,960
[Let's talk about it.] But those have been really interesting in regards to the point that

729
01:06:50,960 --> 01:06:58,080
you just made, because we really get people of all levels who show up to participate in those

730
01:06:58,080 --> 01:07:04,400
discussions. We get people who have never posted an email on hackers, and we get committers,

731
01:07:04,400 --> 01:07:17,920
and everything in between. And so I think that that, it isn't necessarily true that people don't

732
01:07:17,920 --> 01:07:25,360
want mentorship before they have gotten involved, posted their first patch, written something on

733
01:07:25,360 --> 01:07:32,000
the mailing list. I think even before that, there's an opportunity to do better at welcoming

734
01:07:32,000 --> 01:07:38,320
people and pulling them in. I don't know that we've exactly figured out how to do that, but in

735
01:07:38,320 --> 01:07:45,200
my opinion, that hacking workshop has been an extremely successful part, possibly the most

736
01:07:45,200 --> 01:07:50,880
successful part of the mentoring program, because you have a lot of people who come back every month.

737
01:07:52,320 --> 01:07:59,760
They're at such a wide variety of levels. They seem really engaged and interested. I mean,

738
01:07:59,760 --> 01:08:04,560
of course, there's usually somebody who isn't engaged and interested, but on average, the

739
01:08:04,560 --> 01:08:12,480
level of engagement is very high. The questions are great. And I don't know, I just have the

740
01:08:12,480 --> 01:08:18,800
feeling that there's probably a lot more potential there than we've quite figured out yet.

741
01:08:18,800 --> 01:08:23,760
[CLAIRE] Well, one of the, two of the things that I really like about what you've done,

742
01:08:23,760 --> 01:08:34,240
maybe three, is first of all, I like that you use Discord. And in particular, that Discord is open.

743
01:08:34,240 --> 01:08:39,920
I mean, yes, you have to create an account and you have to log in. So there is a little bit of

744
01:08:39,920 --> 01:08:47,040
a wall, right? It's not out there on the public internet per se, but anybody's welcome to do that.

745
01:08:47,040 --> 01:08:52,640
And so I can imagine a mentorship program where you could have had this totally walled garden,

746
01:08:52,640 --> 01:08:57,760
where only the mentors and the mentees and you and Melanie and Andreas were in there,

747
01:08:57,760 --> 01:09:04,320
and nobody else was allowed. But instead, you've got over 700 people that have joined this

748
01:09:04,320 --> 01:09:13,680
Postgres Mentorship Discord. That's a lot, right? A lot of lurkers. Obviously, 700 people are not

749
01:09:13,680 --> 01:09:19,840
coming to your monthly workshops, I assume. But, you know, they are popping on there occasionally,

750
01:09:19,840 --> 01:09:24,800
looking at the chat, looking at what's going on, maybe paying attention to what the next topic is

751
01:09:24,800 --> 01:09:29,120
going to be. How many people are you getting in these monthly workshops? Do you know?

752
01:09:29,120 --> 01:09:40,240
[ROBERT] Yeah. So I think we've been, I think the recent low has been like 36 signups. And then the highs

753
01:09:40,240 --> 01:09:46,160
have been like, I don't know, mid 40s. Maybe we've been over, we've probably been over 50 at some

754
01:09:46,160 --> 01:09:52,800
point. We usually do it as two or three sessions so that you don't have a giant number of people

755
01:09:52,800 --> 01:09:58,800
in an individual call. But yeah, I think it's been great discussion. I've really enjoyed the

756
01:09:58,800 --> 01:10:05,520
discussions. And I feel like both that and the discussion in the Discord kind of show that

757
01:10:06,240 --> 01:10:12,160
there's opportunity to find more ways to engage with people. So these are some things that I've

758
01:10:12,160 --> 01:10:17,280
managed to find the time to do. And it does take a fair amount of time to organize it.

759
01:10:17,280 --> 01:10:24,640
But I think that, I really hope that if other people are listening to this who are

760
01:10:24,640 --> 01:10:31,440
established PostgreSQL developers or established in the PostgreSQL community in other ways, that

761
01:10:31,440 --> 01:10:37,360
you'll also think about what you could do, because I really believe there's a lot of

762
01:10:37,360 --> 01:10:43,440
untapped potential here. I think when you look at not even so much the 700 people who joined the

763
01:10:43,440 --> 01:10:49,120
Discord server, but the much smaller group of people who comment regularly in there and chat

764
01:10:49,120 --> 01:10:53,520
and ask questions and participate in the discussion, and especially when you look at

765
01:10:53,520 --> 01:10:57,760
the people who are coming to the hacking workshop month after month and are taking time out of their

766
01:10:57,760 --> 01:11:03,520
day to sign up for the workshop, to watch the talk, to show up for the session, to ask some

767
01:11:03,520 --> 01:11:10,480
questions, to seem interested, to seem engaged. You know, those are people who we're bringing

768
01:11:10,480 --> 01:11:18,960
something to them that just otherwise wouldn't have existed. Right. But this is just one idea.

769
01:11:18,960 --> 01:11:25,200
This is an idea that occurred to me to help people who are doing a very specific thing, which is

770
01:11:25,200 --> 01:11:31,200
thinking about hacking on core Postgres, you know, to have a little bit of exposure to senior

771
01:11:31,200 --> 01:11:39,600
community members and to some of how the development process works. But it is not believable that like

772
01:11:39,600 --> 01:11:48,080
the first or second idea that I had about how to improve things for people is 100% of what could

773
01:11:48,080 --> 01:11:54,480
be done. I mean, it's probably not even 5% of what could be done. So I think there's huge untapped

774
01:11:54,480 --> 01:12:00,160
potential to find ways of connecting with people who are interested in becoming more involved in

775
01:12:00,160 --> 01:12:06,160
development or other aspects of the community and finding ways to really get them involved and to

776
01:12:06,160 --> 01:12:13,040
become, you know, a big part of what we do. But I'm not sure what we know. We know what those ways are

777
01:12:13,040 --> 01:12:20,960
yet.

778
01:12:13,040 --> 01:12:20,960
[CLAIRE] Okay. So for anybody listening to this podcast, we'll include a link to the Postgres

779
01:12:21,920 --> 01:12:28,960
mentorship, Postgres hackers Discord that Robert created in the show notes for the podcast episode.

780
01:12:28,960 --> 01:12:36,480
And then when you go there, there's a #hacking-workshop channel that is open to anybody

781
01:12:36,480 --> 01:12:40,960
who joins this Discord, right? You don't have to be one of those mentors and mentees.

782
01:12:40,960 --> 01:12:48,960
[ROBERT] Absolutely. And I do also post the signup links every month on my blog. So if you go to

783
01:12:50,160 --> 01:12:54,320
my blog, you'll see a monthly post there as well, inviting people to sign up.

784
01:12:54,320 --> 01:12:58,960
The advantage of joining the Discord is that you then get to vote on which talks

785
01:12:58,960 --> 01:13:07,280
we should cover each month. And you get to discuss those talks in the Discord with anybody else who's

786
01:13:07,280 --> 01:13:13,840
also discussing those talks. But Discord is not mandatory. You can participate just by checking

787
01:13:13,840 --> 01:13:18,960
the blog and using the signup link there. But you get to do a few extra things if you

788
01:13:18,960 --> 01:13:23,680
tap into the Discord as well.

789
01:13:18,960 --> 01:13:23,680
[CLAIRE] So when you say invitations for February's workshop have

790
01:13:23,680 --> 01:13:30,400
been sent, where does the workshop happen on what forum or what platform?

791
01:13:23,680 --> 01:13:30,400
[ROBERT] Workshop happens on Zoom.

792
01:13:30,400 --> 01:13:40,080
So EDB graciously provides me with a paid Zoom account. And I'm familiar enough with Zoom to sort

793
01:13:40,080 --> 01:13:46,880
of be confident that I can, you know, handle anything that might unexpectedly happen during

794
01:13:46,880 --> 01:13:52,560
the workshop. So that's the tool I've been using. I know that's probably not to everyone's taste.

795
01:13:52,560 --> 01:13:56,000
Some people would probably prefer Google meet or Discord itself or something else.

796
01:13:56,000 --> 01:14:05,600
But I just picked a Zoom because it's already paid for and I'm sort of confident of my ability

797
01:14:05,600 --> 01:14:12,080
to administer it as may be required.

798
01:14:05,600 --> 01:14:12,080
[CLAIRE] And the topic for the February workshop,

799
01:14:12,080 --> 01:14:17,680
is that Heikki to talk about the wire protocol? Is that right? Or am I confusing January with February?

800
01:14:17,680 --> 01:14:27,600
[ROBERT] So we just did Andres's talk on NUMA, non uniform memory access. And I think Heikki is next. Yeah,

801
01:14:27,600 --> 01:14:35,760
he's one of the ones that I recall is coming up. In fact, I think our first session is tomorrow.

802
01:14:35,760 --> 01:14:41,440
Yeah, first session is tomorrow. We'll have three sessions, I believe, over the next three weeks.

803
01:14:42,240 --> 01:14:45,920
And at some point in there, we'll open signups for March when we'll be doing,

804
01:14:45,920 --> 01:14:52,720
I'm going to get this pronunciation wrong, but Louise Grandjonc Leinweber has a

805
01:14:52,720 --> 01:14:57,520
talk about planner statistics. So we'll be doing that one in March.

806
01:14:57,520 --> 01:15:05,680
[CLAIRE] And Louise is such an amazing presenter, speaker, technologist. I've always enjoyed her talks.

807
01:15:06,560 --> 01:15:11,680
[ROBERT] Yeah, I don't think she's a hacker in the sense of writing code for PostgreSQL itself.

808
01:15:11,680 --> 01:15:19,680
But the talk is so relevant to the task of hacking on PostgreSQL that I think it's going to be a

809
01:15:19,680 --> 01:15:26,960
great discussion.

810
01:15:19,680 --> 01:15:26,960
[CLAIRE] Very cool. I'm trying to make sure before we wrap that we've talked about,

811
01:15:26,960 --> 01:15:33,120
I don't know, all the things that you want a listener to know about the new mentorship program.

812
01:15:33,920 --> 01:15:39,440
Let me ask this, is there going to be a second cohort? And like, when should people be on their

813
01:15:39,440 --> 01:15:45,680
toes if they're interested in potentially applying to be part of the more

814
01:15:45,680 --> 01:15:49,920
formal mentor and mentee aspect of the program where you're matching people together?

815
01:15:49,920 --> 01:15:58,240
[ROBERT] Yeah, we're going to be doing that soon. Just yesterday, I sent out an email to the current

816
01:15:58,240 --> 01:16:04,320
mentors and mentees and asked them to provide me with some feedback, some specific questions about

817
01:16:04,320 --> 01:16:10,480
their current mentoring relationship. And what I hope to figure out on the heels of that is,

818
01:16:10,480 --> 01:16:16,400
you know, which of those relationships might come to end for one reason or another, and then how

819
01:16:16,400 --> 01:16:22,960
much potential do we have to absorb some new people into the program? And then when I've figured

820
01:16:22,960 --> 01:16:30,400
all of that out, probably sometime in the next month or so, there will be an email to PostgreSQL

821
01:16:30,400 --> 01:16:38,240
hackers and a post on my blog letting people know that signups are open. I don't know how many

822
01:16:38,240 --> 01:16:45,440
people we'll be able to accommodate. You know, I think there are a good number of current mentors

823
01:16:45,440 --> 01:16:50,560
who are happy with their current arrangements and want to continue mentoring the same person.

824
01:16:50,560 --> 01:16:56,080
And I think that that may mean that there aren't that many slots available for new people,

825
01:16:56,080 --> 01:17:00,000
but we'll see. Maybe we'll have some more committers volunteer to participate who haven't

826
01:17:00,000 --> 01:17:06,880
in the past, or maybe some people will volunteer to take on an extra person, or I'm not sure exactly

827
01:17:06,880 --> 01:17:12,560
what's going to happen yet. I don't want to set expectations too high, but do keep an eye out if

828
01:17:12,560 --> 01:17:18,320
you're interested over the next month or so. There should be something coming out where you can sign

829
01:17:18,320 --> 01:17:25,920
up and we'll do the best we can with the volunteers that we have.

830
01:17:18,320 --> 01:17:25,920
[CLAIRE] Okay. And do you have learning chat,

831
01:17:25,920 --> 01:17:32,160
or maybe you haven't done this yet, because you're not really at the exact end of cohort one yet.

832
01:17:32,160 --> 01:17:36,720
But I'd be really curious to know, for the people who are in the mentorship role,

833
01:17:36,720 --> 01:17:45,680
what, I don't know, what things they want to learn from each other, right? What parts of it they

834
01:17:45,680 --> 01:17:51,360
found hard? What parts of it they struggled with, or they wish they, like, how do you deal with this

835
01:17:51,360 --> 01:17:56,880
type of situation? I don't know. Is that something you're going to be surveying them on, or maybe you

836
01:17:56,880 --> 01:18:03,920
have already?

837
01:17:56,880 --> 01:18:03,920
[ROBERT] Well, Melanie did, actually. Melanie had a couple of meetings, I think, back approximately

838
01:18:03,920 --> 01:18:11,280
in September of last year with the mentors and mentees to sort of gather feedback. And I confess,

839
01:18:11,280 --> 01:18:17,920
I was a little bit blindsided by this. I sort of thought that it was kind of obvious what you

840
01:18:17,920 --> 01:18:24,320
were going to do as a mentor. But some of the feedback that we got is that it either wasn't

841
01:18:24,320 --> 01:18:29,280
obvious at all, or that the stuff that I thought that you would want to do was not necessarily the

842
01:18:29,280 --> 01:18:34,720
right stuff. So this is another example of when you first start doing something that you haven't

843
01:18:34,720 --> 01:18:39,440
really done as a project before, you have to make a bunch of mistakes before you start to try to get

844
01:18:39,440 --> 01:18:45,920
things on better footing.

845
01:18:39,440 --> 01:18:45,920
[CLAIRE] If I can tease you a little bit, maybe it's also another example of

846
01:18:45,920 --> 01:18:52,880
Robert thinking that "the rest of the world is just like Robert, except maybe worse."

847
01:18:45,920 --> 01:18:52,880
[ROBERT] Oh, 100%. 100%.

848
01:18:52,880 --> 01:19:01,520
It's silliness and arrogance on my part, completely...

849
01:18:52,880 --> 01:19:01,520
[CLAIRE] But that is normal, by the way.

850
01:19:01,520 --> 01:19:06,320
There are so many people who think of themselves as the model for the world. I mean, it's just,

851
01:19:06,320 --> 01:19:11,520
it's, I don't know. You're not the only one.

852
01:19:06,320 --> 01:19:11,520
[ROBERT] You know yourself better than you know anybody else,

853
01:19:11,520 --> 01:19:18,000
right? So you got to start somewhere. I don't remember exactly, I can't do justice to

854
01:19:18,000 --> 01:19:25,680
the results of Melanie's conversations with people. She did do a write-up on it, but I

855
01:19:25,680 --> 01:19:29,840
haven't looked at that lately, and I don't want to try to say something off the top of my head

856
01:19:29,840 --> 01:19:35,440
and then get it completely wrong, because that would be unfair to her and to the work

857
01:19:35,440 --> 01:19:40,800
that she did on it. But I do think we're going to have to continue talking to each other.

858
01:19:40,800 --> 01:19:45,760
Mentors are going to need to talk to each other. Mentees are going to need to talk to mentors.

859
01:19:45,760 --> 01:19:51,600
We've definitely gotten some feedback from some people that, hey, the kind of mentoring that I'm

860
01:19:51,600 --> 01:19:58,960
getting is not really the kind of mentoring that I need, right? And that's very fair, because

861
01:19:58,960 --> 01:20:05,680
everybody, you know, is an expert on what they want, what they themselves want. So we're just

862
01:20:05,680 --> 01:20:10,080
going to have to figure out how to slowly get better at it, right? We can't necessarily do

863
01:20:10,080 --> 01:20:15,440
all of the things that everybody wants. Some of the things people want might take too much time,

864
01:20:15,440 --> 01:20:19,760
or just nobody's interested in doing the work. This is a volunteer effort. It's an open-source

865
01:20:19,760 --> 01:20:26,640
project. Nobody is getting paid by their employer specifically to do mentoring. I think, you know,

866
01:20:28,640 --> 01:20:33,120
my employer has actually been very good about supporting the time that I've spent on this, but,

867
01:20:33,120 --> 01:20:38,480
you know, it's not the main thing that they're hoping for me to get done either, and I suspect

868
01:20:38,480 --> 01:20:44,720
it isn't for anybody. So there are a lot of limits on what we can realistically do here.

869
01:20:44,720 --> 01:20:52,320
But at the same time, it's totally, totally true that there's ample opportunity for us to get

870
01:20:52,320 --> 01:20:59,280
better at doing this in many ways. And I think as we slowly understand, well, what exactly is it that

871
01:20:59,280 --> 01:21:05,680
the mentees would like, and how does that differ from person to person? What exactly are the mentors

872
01:21:05,680 --> 01:21:10,480
doing, and which of those things are working better, and which of those things are working

873
01:21:10,480 --> 01:21:15,360
not as well? And is that because the things that people are doing are better or worse, or is it just,

874
01:21:15,360 --> 01:21:21,200
you know, a question of doing the right thing for the right person, as opposed to the thing I'm doing,

875
01:21:21,200 --> 01:21:25,440
could, doesn't work well for this person, but it might actually be perfect for, something, somebody

876
01:21:25,440 --> 01:21:32,080
else. That's all stuff we still need to find our way through, right? And I think, you know, the

877
01:21:32,080 --> 01:21:37,200
thing that I would say to everybody, whether you're involved as a mentor or a mentee, or you're not

878
01:21:37,200 --> 01:21:41,760
involved at all and have no interest in being involved, or wherever you are with it, is just

879
01:21:41,760 --> 01:21:47,360
that, you know, we're all human, and we all make mistakes, and that's okay, right? We shouldn't

880
01:21:47,360 --> 01:21:53,920
give up on this process, because it isn't perfect on the first try. I think what we've accomplished

881
01:21:53,920 --> 01:22:00,240
in the last year is limited, but I think it's good, and I'm hopeful that, you know, as we continue to

882
01:22:00,240 --> 01:22:04,800
sort of mess around with it, and we're honest that we don't really know what we're doing,

883
01:22:04,800 --> 01:22:11,520
but that we're trying to figure out how to do it better, I'm pretty hopeful that we will improve.

884
01:22:11,520 --> 01:22:17,280
I think being willing to admit that you're wrong about your patch is a really important

885
01:22:17,280 --> 01:22:23,520
part of learning to write better patches, and I think being willing to admit that you don't

886
01:22:23,520 --> 01:22:28,480
really know how to do mentoring properly, or as well as you'd like to be able to do it,

887
01:22:28,480 --> 01:22:35,120
is an important part of getting better at that. So we're just gonna hopefully try to

888
01:22:35,120 --> 01:22:40,960
continue and fumble through it, and I hope that people are encouraged rather than discouraged

889
01:22:41,360 --> 01:22:45,920
by the fact that we're trying to learn from our mistakes and grow and do it better in the future

890
01:22:45,920 --> 01:22:54,240
than we have in the past.

891
01:22:45,920 --> 01:22:54,240
[CLAIRE] Well, I want to say thank you. I mean, I really appreciate that you've

892
01:22:54,240 --> 01:22:59,760
kicked off this experiment. Of course there's going to be mistakes or things that you decide

893
01:22:59,760 --> 01:23:07,040
to improve or change or iterate on in cohort two, but I think it's important, and I'm really glad

894
01:23:07,040 --> 01:23:11,520
you're spending time on it, and obviously a lot of other people, all the mentors, all the mentees,

895
01:23:11,520 --> 01:23:20,640
everybody who's participating in the monthly workshops. So change doesn't just happen. It

896
01:23:20,640 --> 01:23:26,880
takes effort and energy and motivation, and anyway, I'm very glad that you're doing it and

897
01:23:26,880 --> 01:23:32,560
that you were willing to come here today and talk to people about it so that more folks who might

898
01:23:32,560 --> 01:23:39,520
want to become involved in future cohorts will hopefully learn about it and bring their own

899
01:23:39,520 --> 01:23:46,000
contributions to the mix.

900
01:23:39,520 --> 01:23:46,000
[ROBERT] Yeah, absolutely, and I'd also like to, by a similar token, thank you for

901
01:23:46,000 --> 01:23:52,160
sharing your stage with me today so that I can talk a little about this and how it's going and how it

902
01:23:52,160 --> 01:23:57,920
might be better in the future and how I'm thinking about it because that's a valuable way for other

903
01:23:57,920 --> 01:24:03,040
people to learn what's in my head, and it's also maybe a prompt for some of them to give me their

904
01:24:03,040 --> 01:24:09,440
own feedback on what they think can be improved in the program. So thank you a lot for having me.

905
01:24:09,440 --> 01:24:14,080
[CLAIRE] We can't leave, though, without me asking you about cheese.

906
01:24:14,080 --> 01:24:15,760
[ROBERT] Oh, really?

907
01:24:15,760 --> 01:24:19,840
[CLAIRE] I don't know if you know, there have been a couple of guests on the podcast.

908
01:24:19,840 --> 01:24:25,920
It first started with David Rowley, whose path to become involved in the Postgres project

909
01:24:25,920 --> 01:24:32,480
literally started in a cheese factory with a forklift, and then it turns out that

910
01:24:32,480 --> 01:24:39,360
Melanie Plageman had a cheese story and Andy Atkinson had a cheese story in his path,

911
01:24:39,360 --> 01:24:43,520
so I'm just curious, did you ever have a job that had to do with cheese

912
01:24:43,520 --> 01:24:46,320
that was formative in your journey toward Postgres?

913
01:24:46,320 --> 01:24:55,360
[ROBERT] No, I can't say that I have. I do enjoy good cheese, 100%, but as far as I know, that's

914
01:24:56,240 --> 01:24:57,840
pretty separate from Postgres hacking.

915
01:24:57,840 --> 01:25:03,600
[CLAIRE] Okay, got it. Just had to fish for it because it seems to be a trend somehow. Don't know why.

916
01:25:03,600 --> 01:25:11,040
All right, well, thank you very much, Robert, for joining us today. I really appreciate it.

917
01:25:11,040 --> 01:25:18,960
And for people who want more of this podcast, the next episode, episode 25, will be recorded live

918
01:25:18,960 --> 01:25:27,440
on Wednesday, March 12th at 10am PDT, and our guest will be Dawn Wages, and we're going to

919
01:25:27,440 --> 01:25:33,600
talk about why Python developers love Postgres. Dawn is very active in the Python community.

920
01:25:33,600 --> 01:25:41,040
So if you want to mark your calendar, you can use this link aka.ms/talkingpostgres-ep25-cal,

921
01:25:45,280 --> 01:25:50,240
and you can always get to past episodes and get links to subscribe on all the different podcast

922
01:25:50,240 --> 01:25:57,600
platforms at talkingpostgres.com. Before we leave, if you have enjoyed it, please tell your friends,

923
01:25:57,600 --> 01:26:05,040
in person, on social media, in DMs, however you want to spread the word about this podcast.

924
01:26:05,040 --> 01:26:10,880
Word of mouth is probably one of the best ways for people to discover a show like this.

925
01:26:10,880 --> 01:26:15,920
And also a big thank you to everybody who joined the live recording and participated

926
01:26:15,920 --> 01:26:19,120
in the text chat on Discord. Thank you so much.