Why Python developers just use Postgres with Dawn Wages

CLAIRE: 00:00:05
Welcome to Talking Postgres. I'm your host, Claire Giordano, and in this podcast, we explore the human side of Postgres, databases, and open source, which means we focus on why do people who work with Postgres do what they do, and how did they get there? I want to say thank you to the team at Microsoft for sponsoring this community conversation about Postgres. And I'd like to introduce today's guest, Dawn Wages. Dawn has worked in the Python developer community for more than nine years. She currently serves as chair of the board of directors for the PSF, the Python Software Foundation. And for about three years, Dawn served as a Python Community Advocate at Microsoft in the Developer Division in Scott Hanselman's org. Scott is VP of Open Source and Developer Communities at Microsoft. And quite recently, Dawn took on a new role as Director of Community and Developer Relations at Anaconda. And for as long as Dawn has been a programmer, she's been volunteering in the Django community, organizing conferences, and more. So Dawn, welcome.

DAWN: 00:01:12
Thanks so much for having me. I'm thrilled and I'm a fan of the podcast.

CLAIRE: 00:01:17
I'm glad to hear that. Obviously, you've been in Django for a while, and it's true, I think, that a lot of Django and Python developers really like Postgres, which is the perfect segue into today's topic, which is "Why Python developers just use Postgres". And in the new book you're writing, which I believe your working title is Domain Driven Django, there's even a chapter that's currently called Just use Postgres. Am I right?

DAWN: 00:01:44
Yes, and the tone of voice is a soft recommendation from friend to friend.

CLAIRE: 00:01:52
In that chapter or in the whole book?

DAWN: 00:01:54
In that chapter, but I guess that's also the vibe of the whole book. A lot of it is very practical and comes from years of consulting and also just hallway chat during conferences. Just use Postgres is a common adage.

CLAIRE: 00:02:15
Well, what I found really interesting, I tried to do my research because we met while you were still at Microsoft. And I was fascinated by this book you're writing and this chapter and how you feel about Postgres and why you feel that way about this database. So that's why I invited you on the show. But I had to do some research because we don't know each other that well. And as I did the research, one of the things I learned is that you are self-taught and community-taught as a Djangonaught, as a programmer. And so what that means is this affinity for Postgres, like somehow you too picked it up along the way in your journey to become a developer.

DAWN: 00:02:58
Yes. So the community taught is, I feel very fortunate that I learned Python through conferences. So I am absolutely a Django dev. I think we could probably have like a tally counter on the number of times I say Django in this podcast. And I started in 2016 at DjangoCon US when it came to Philadelphia. I was, I don't know, we could say it was down on my luck, but I was an analyst. I was struggling to keep a job that really respected me and made me feel empowered. I did SQL and I was learning Python. And I really liked the data analytics space. But then when I stumbled upon Django, I just fell in love with the community. And really I like to say that I also learned through osmosis. So I just made really smart friends and and learned through that. And it was the same with Postgres. There are lots of Postgres consultancies and also Postgres contributors who show up to Python conferences, give open source talks and are really part of that open source ethos. And were really generous with their knowledge. And I think that's not just an experience that I've had. It's across the whole community. I think it's really easy to pick up Postgres because there's so many friends around who also use it. And giving back to the community. I mean, documentation is one of the key ways to make sure that you have easy access and onboarding to your tools. And I think the Python documentation for Postgres is really unmatched.

CLAIRE: 00:04:45
Why do you think that is? I mean, obviously, you probably weren't involved yet when it was first created, I'm imagining. So I'm asking you a history question.

DAWN: 00:04:57
Yeah, I don't know. I can do it from my vantage and then we can infer from the history. But I think the ethos that I mentioned, the culture of open source and giving back to the community that runs through Python is really, for good and for bad, I think there is a lot of emphasis on free and low barrier.

CLAIRE: 00:05:02
Okay.

DAWN: 00:05:23
Free as in, not free as in cake, but free as in puppy, right? So you have to tend to the new thing that you're creating, and that's going to grow beyond you and have subgroups and open issues and quests, side quests. And I think that Python and Postgres community really share that ethos on tending to this free resource that is a service for your peers. And you also end up benefiting from it as well. I mean, reducing friction and having really great documentation is just unmatched. And I think we do very well in that.

CLAIRE: 00:06:06
I think one of the things I've heard about both the Python and the Django communities is that they have wonderful getting started documentation. And that may be part of what attracts new developers, self-taught developers, traditionally taught developers to those communities is that focus on docs.

DAWN: 00:06:28
Definitely I'd be interested I know you're hosting but I'd be interested in your perspective on how the getting started docs in Postgres started, "getting started on the getting started", but like how did it, how did it get started, or your experience with them?

CLAIRE: 00:06:51
You know, there's, there's two different audiences typically, although you're bringing in a third audience to this podcast. The two audiences are people who are currently or aspiring, right, or potential future contributors and developers to the Postgres database. So we've had a lot of Postgres committers and Postgres contributors on the show. But there's also this hope that somebody listening to it gets inspired to kind of come check out what's going on with Postgres and figure out if they want to become a contributor as well. So that's one audience. Another audience are just really curious Postgres users. Now, a lot of people who run their apps on this database, their focus is on the application, as it should be, right? But sometimes people want to know more about the team that is behind it or how Postgres came to be the way it is. So that's kind of another audience. And then you're introducing this third audience, right? I imagine that today's episode is going to attract more Python developers and Django developers who maybe are curious about that affinity between those languages and the Postgres database. So for me, in terms of the documentation within the Postgres contributor community, it's the contributors themselves who, like, as they make a change, often make the corresponding documentation change. And our docs are known to be really solid, like really, really clear. And there's a big commitment to them. Every single contributor and developer takes them very seriously. And so that's one perspective that I have. But I also know that there's a lot of work being done right now to make it easier for, say, new contributors to join the community. So for example, There's an annual developer event for people who want to work on the database itself, which used to be called PGCon, but now is called PGConf.dev as of last year. And the next second version of it is happening in May in Montreal, Canada. And there are a bunch of sessions there on the schedule that are patch review workshop or advanced patch feedback sessions. So I try to help people who are budding contributors or want to become contributors in the future, learn more about the project, the processes, the way people get things done, and more. So that's a kind of getting started are all these new sessions. There was a conference in Prague, a couple of, I guess it was in early February. It's called P2D2. and there too I'll dig up the schedule, see if I can get the exact name, but they had a whole half-day session focused on nurturing people who wanted to learn more, yeah it was called Intro to Postgres Hacking, and actually it was two half-day sessions so there was the first and the second.

DAWN: 00:09:59
Very cool. We do a bit with our sprints. We put a lot of emphasis on sprints at Python events, which I think might be a little bit different than a lot of open source conferences that I see. We'll have a few days and it kind of just provides the snacks and the tables and the extension cords and let people kind of go wild. And we do have contributing documentations, But I think we have a lot to learn on that front. And I'm in constant conversation on how we can improve. And I really, really, like that approach. I'm going to have to sneak and look at those schedules and maybe poke some people to see if I can get some feedback on it.

CLAIRE: 00:10:41
But I won't say things are perfect in the Postgres world, only because I have some friends who are working on trying to set up even more educational resources. And so we know that we can always do better and make it easier for people to kind of get started and learn what they need to learn. Last week, I was in Bengaluru, India, for the annual PGConf India conference. It was my first time going to it and there was so much buzz in the room. And what was really cool is my talk was a beginner's guide on a particular topic in Postgres and the room was full. There absolutely were people there who were not beginners with Postgres, but beginners with those particular features in Postgres. And so I do think there's always an appetite for even more beginner guide content.

DAWN: 00:11:33
I was just telling a developer advocate that just a few minutes ago, they're intimidated. It was actually they're working in a different database and they said they needed to brush up before they can feel confident talking about it. And in a different perspective, but kind of the same point you made is that your fresh eyes are really, really valuable and it's an asset. So that kind of I really love on coming on seeing stage presentations from first time speakers or first time to a particular feature or the whole project. Just kind of talking about pain points and giving new perspective on something that people may take for granted or think are really intuitive.

CLAIRE: 00:12:23
All right, so I want to pivot back to the book you're writing for just a second. Why are you writing it? And who's going to read it? Who's the target audience?

DAWN: 00:12:37
Because I come from a freelancing and consulting background, and because the companies that I work with keep a really great moonlighting policy. So I am able to keep collaborating with my co-founders on consulting projects. The lens that people use to approach these projects are many times bringing the subject matter expert, for example, you're building accounting software and I'm using a very typical MVC framework for people who are not familiar with app development. That's model view controller. And there are other frameworks like Ruby on Rails, for example, or .NET that have their own MVC framework. But it's a way to speed up the development process. But in that, in simplifying that workflow, you're now bringing the non-technical developers or technical in their own domain, into your coding exercise. And what I like about Domain-driven design, which was created in 2003 and has this couple decades long legacy of trying to simplify approaching technology where you are now putting the onus on the technologist to adopt language and real world behaviors into their code rather than pushing the code knowledge onto your customer or client. So an example of that, because I said a lot of words, would be like the accounting software that I mentioned before. I'm going to tell them why I can't do transactions the way that they're asking me because there's a race condition. And I'm going to tell them why Postgres has this feature and this tool, but you have to use it this particular way. But instead, there are options to front load the work where you are having a lot of introductory and exploratory meetings. You are designing diagrams and having overlap on context and separation of context as well, where you can start doing a lot of that heavy lift at the front and remove a lot of the effort for your client to have to know the technical details or have to have delays in development and programming. It'll take a couple hundred pages to explain in full detail, but I appreciate the practice and getting on it. I am writing the book right now and I am going to be on a speaking tour afterwards. So we'll keep practicing the pitch. But hopefully that jives with understanding and the expectation of the audience.

CLAIRE: 00:15:39
So who is the target audience for your book though is it someone who already knows a lot about Django, is it someone who's new to Django, who who is the person who's going to go buy it

DAWN: 00:15:51
I'm hoping to keep it really broad. So there is an opening section where we cover domain-driven design in general terms. And then you can skip to a section where if you're starting your first Django application, because Django and other MVC frameworks will supercharge your development experience. They're what people reach for with very little or very advanced developer experience because they want to just do it really fast. So I'll kind of talk about the components of Django and how you get your first application started. And then the last portion of the book is connecting domain-driven design competencies with features that actually exist in Django or don't exist. For example, there's a concept about service layers that doesn't fit very well within Django, but exist in domain-driven design. And I can tell you how to set up your project so you can be cognizant of the service layer. And that also transcends to Postgres. So the domain-driven design, you're starting out with client terminology at the top of your planning. And that should go all the way to down to the way that you're naming your databases and the interaction between your tables. So the answer to your question, which I twice almost evaded, is it should be everyone but the consultant or the person who wants to move fast and work with people who don't have technical expertise or programming expertise and have their own domain and technology, they all could do very well with this. So hopefully project managers, program managers, CTOs, and individual contributors who are just really ambitious on understanding a full-scale application.

CLAIRE: 00:17:45
Okay. So to the extent that a lot of the audience for this podcast is, at least historically, you're going to bring some new listeners to the show, I think, but has been people who work with Postgres, either as contributors or as users. And one of the things I was hoping to do, and you have to help me with this because it's your skills that I'm relying on, is to help all those Postgres people have more empathy with how someone who's a Python developer or Django developer thinks about the database. Like, are there any common misunderstandings or common gotchas? One thing you've already given me is that I want to go check out the documentation about Postgres that's in the Python documentation. I'm really curious to see what the Python world is teaching people about Postgres. But maybe there's more empathy to be had or more perspective you can share.

DAWN: 00:18:48
There is always room for more empathy, I think we share that perspective, and that's one of my favorite things about both you and Aaron. So to answer, that's a good question. So, I really enjoy or I like the consistency that happens between projects whether you're doing Django, which I said a lot, or doing Flask or Bottle or other types of Python applications, you're going to use the database connector Psycopg. And it allows for consistency across, so it's transferable from one Python type project to another, as long as you know about the features that Postgres offers to suit your use case. There's some things that I would love to, that may not have translated to the Python community yet that I know exist with non-relational databases and hyperscaling and event-driven architecture patterns that are going to need to be supported by your database layer. And I think turning up the volume on some of those features so people don't immediately or only think of Postgres as a relational database, nothing more. If you just need a very, very big table or multiple very big tables that relate to each other, Postgres is great. And then for everything else, you should start, you should explore. I know Postgres does more, and I'm excited to kind of continue to explore those. And I'm actually learning some more about it so I can put them in the book.

CLAIRE: 00:20:33
I'm glad you mentioned Psycopg. I know that's something that has come up a lot in Paolo Melchiorre's talks that I've seen. He will often give talks about Python and Postgres together, so now it's making it into the show notes which is great. So there's a question on the chat which I was listening to a podcast earlier today, you were on a podcast with someone named Will and Carlton and it was a couple years ago and you talked about Django and Wagtail and Gatsby [Yeah.] but one of the things I loved is you also talked about your approach to networking and you said, "yeah, networking sounds like such a professional term, but really I just make really smart friends," which I thought was fantabulous. Cause that kind of explains my entry into Postgres as well. I'm just very lucky. I've made some really smart friends. But one of the questions, and I'm wondering if you or any of your smart friends have experienced this, Tristan was asking about whether anyone has done the Psycopg 2 to Psycopg 3 transition. Have you heard anything from people about that?

DAWN: 00:21:48
No, no I haven't—I love coming to things like this because that gives me new things to research and it will definitely make it into the book, but maybe I'll do some blogging on it as well and see what my really smart friends have seen. But I've not seen that yet. And I'd love to know if they want to follow up with their experience with it, if they've heard anything.

CLAIRE: 00:22:14
So in the book that you're writing, the chapter of Just use Postgres, is it written yet? Or is it just the chapter title and you still have to dive in and do the work?

DAWN: 00:22:25
It's a little bit of this, and a little bit of that, so I definitely have the chapter title and some outlines and then I filled in some more thoughts so a lot of it is dependent upon the domain-driven design concepts and then as they flow through the application and then eventually get to the database layer. So it will also continue to evolve as the book evolves. Some of the things, like I mentioned a couple of them, but event-driven design is an important one. We're also talking about transactions. And then I do have a demo that I'm building for a very high level AI application, it's just like an agent, a chat agent, which is all the rage these days. But there's really cool demos and architecture patterns that are happening, but then they rely on NoSQL database and I'm working through doing that with Postgres and trying some new features that I've not played with before.

CLAIRE: 00:23:31
Okay. You know, there's two interesting full circles here that I'll throw out. One is on the chat. Tristan just mentioned that the postgresql.org website, which is the community website where you can get lots of information about the open source project, it is written in Django. So any Django developers that are listening that also want to kind of connect more with the Postgres community, maybe there's an opportunity there [Mm-hmm.] And the second full circle I want to mention is that on the very first episode of this podcast, Talking Postgres, which had a different name back then. When we first started, it was called Path to Citus Con. But we had two guests in that episode, and one of them was Simon Willison, who is one of the co-creators of Django.

DAWN: 00:24:21
Yeah, he's also on the chair, he's one of the board members on the Python Software Foundation. And I came to Django obviously much after they've gotten Django started and it was a little bit intimidating. It was like, "Oh, there's a celebrity amongst us." And similar to the point that you made of just making really cool friends, people I've seen similarly in the Postgres community are just incredibly accessible. I remember one of my first lunches or breakfast days at DjangoCon, I sat down and I was like, This framework is fantastic. No notes. There's nothing they can improve upon. Meanwhile, there are likely active discussions on architecture patterns and considerations and hanging issues that have not been addressed yet, and people are up in arms about. We have a very, from my understanding, we have a very thoughtful and amicable conversation and debating process on architecture and feature additions. But there is a magic that happens when you're new and you don't even see the not-shiny bits of a new program and can't even figure out how it can improve. And it's been a really cool journey to see some of the glitter fall off, but also recognize that I get to add the glitter back on or shine it up more or whatever the metaphor is. But that makes it more fun. I get to jump in. I get to see deficiencies in the open source framework that I'm using or the tool that I'm using. And I get to be one of the people who makes it better and make someone saunter up on the first day and go, this is perfect. I see no notes.

CLAIRE: 00:26:26
Yeah, I mean, that's part of the joy of being new to something, right? Is that you're not aware of all the warts, and the bugs, and the dust, and the dirt. But you get there. And then you hopefully are in a position to help make things even better. In the show notes, someone just dropped the actual link to the source code for the postgresql.org website. So you can go take a peek after we're done with the recording. With regards to Simon Willison, though, that particular episode was called Working in public [on open source]. And just shout out to how fun it is to talk to him about the way in which he is such a prolific blogger and shares his learnings. He's got like a Today I Learned themed blog where, I asked him, well, actually, no, I complimented him and thanked him. I said, this is so fascinating that you share all these learnings for the rest of us. It's so altruistic of you. I don't know if I use that word, but it's a good word. And he said, "oh, no, I don't do it for any of you. I do it for me. I do it for future Simon. So that, you know, two years from now, six months from now, three years from now, when I'm trying to figure something out, it's all documented already. And I can just go look it up in the blog."

DAWN: 00:27:47
I love that.

CLAIRE: 00:27:47
I thought that was really cool. And I wish I personally did more of that. Because you do make things better for, in my case, future Claire.

DAWN: 00:27:57
We all could aspire to have a little more Simon, but he sets this very high bar.

CLAIRE: 00:28:05
That he does. Okay. So, you started to delve into this, but I want to see if we can go a little bit deeper for a few minutes. Tell me more about how you yourself have worked with Postgres. [Yeah.] I don't know if you remember your first encounter with it, or the first time you chose it for one of your consulting projects, and whether you had likes or dislikes or surprises, I'm just fishing for a story.

DAWN: 00:28:30
So like many Python developers, it was chosen for me. It was what we just happened to be using on the project. I started in, it actually was my first Django Girls tutorial. So it was deploying my first project and I'm upgrading from SQLite to Postgres. So I can have not just a persistent database, but also one that is going to be easily deployed and not write over itself because I make a newbie mistake. And although with a note that I probably did that a couple of times anyway. And I think one of the confusing parts in the very beginning for me was actually starting with the psql CLI. And when you're learning about CLIs and psql at the same time, and I never used a GUI for it, and now I'm really excited to use GUIs, especially there's an extension in VS Code that has a really cool Postgres GUI. And I hear through the grapevine that there's more to come with cool GUIs for Postgres.

CLAIRE: 00:29:59
Really? You do, huh?

DAWN: 00:30:01
I hear very good things, and I'm so excited.

CLAIRE: 00:30:05
I couldn't possibly comment.

DAWN: 00:30:09
So that's I think that's a really cool journey from where I was in around 2015-16 to now is that there's a ton more support and also old habits die hard, I still go into psql to figure out my my tables and its permissions and to fiddle with things and create new users and things like that. But it was, I think there's opportunity perhaps to maybe grow that interface for newbies like me, if they still want to use the CLI but it's a little bit daunting or they'd like to have more, what is it what is it called, feedback in the terminal on what you're doing and have maybe more verbose for example.

CLAIRE: 00:31:01
Any other memories of your first encounter with Postgres?

DAWN: 00:31:07
I remember forgetting my password so many times. What is my Postgres user password? But, you know, you just kind of push through some of these things and you keep the notes, the Simon Willison-esque notes somewhere in a markdown somewhere. and it's not as hard the next time you do it. But yeah, I think there's just a learning curve to kind of understanding the database and accessing it and then also creating these new features that exist in it.

CLAIRE: 00:31:49
So I want to pivot if we can because one of the things you told me before we hopped on the show here today is you were telling me about the Python Developer Survey. And I do think about surveys sometimes as a really interesting way to gather from a broad set of people a perspective on a technology or a project. And particularly when it's an open source project that's distributed around the world, right? It's not like it's all in one company or all in one team. So tell me more about the Python Developer Survey, please.

DAWN: 00:32:27
Yeah, I think it's the, so it is definitely the staple survey. It's run by JetBrains. And they have this cool relationship with the Python Software Foundation where they also will do like some type of donation or something, something around the same time that they're doing the survey. But they provide the infrastructure to be able to tap into the community and hear what they're using and their use cases and their experience level and whether or not they're upgrading to the next version. And so maybe it could be interesting to the audience. But if people are interested in what Python version people are using, most of us are hanging around 3.11. 3.13 just came out last year. Python 3.14 is going to be coming out this October. So kind of understanding that we have annual releases, which may not be common for all languages. We're kind of on that cycle, and that most people are maybe two releases behind and then an enterprise will be a full release behind that when they're doing well, and then like if you're on 3.9 I want to hug and shake you, but you'll even find people who are rushing to upgrade from deprecated versions.

CLAIRE: 00:34:07
Yeah well it's "if it ain't broke don't fix it" is kind of a thing in the human existence and so there are plenty of, I think understandable, scenarios in which people don't upgrade because it's working and they have other bigger problems to deal with. And then, but what that does is it does put you in fire drill mode when there's no time left and you have to do it now.

DAWN: 00:34:33
Exactly. And I think one of the things I really like about Postgres and then also the Django community is that we take security concerns very seriously. And there is this time period where the security concern that's reported is a bit secret, but until they fix it, they can patch it. But really upgrading to those patches to support the security fixes are, I've been very lucky that I've not come into any of those issues in production. But the fact that there are experts who are leading the charge makes me feel so much more comfortable with the both the communities. And so also to the contributors who are maybe listening for Postgres, I appreciate you. Thank you.

CLAIRE: 00:35:25
Okay, now we'll pivot to PyCon. So PyCon is probably one of my most favorite conferences that's not a Postgres conference per se. Although, obviously, when I've been to PyCon in the past, I was wearing a Postgres hat or Citus hat because I used to work at a small Postgres startup called Citus Data. So I went there with Postgres in mind and there were talks, there were talks, like you were saying, about how to use Postgres, how to scale with Postgres that were geared toward Python developers. But anyway, it is so much fun. Are you going this year?

DAWN: 00:36:04
I am. It's going to be in Pittsburgh. It'll be, let me make sure I get the dates right...

CLAIRE: 00:36:14
It's in mid-May sometime, I feel.

DAWN: 00:36:16
Yes, 14th through 15th, or excuse me, 14th through 22nd. So if you want to catch any of the tickets are on sale, the full conference schedule just was released. If you want to jump in on a tutorial, Postgres is going to be mentioned in the Microsoft tutorial. And if you want to learn how to deploy Postgres to Azure, that's an option. There's also a lot of, uh, so the first couple of days are going to be tutorials and then we have a few days of conference talks, there's also a whole conference talk, or excuse me, a whole conference lane for Spanish speakers. So if you are a native Spanish speaker, you will feel at home. And then we have several days of sprints afterwards, which I mentioned before. If you're not familiar, we all just kind of gather around and hack on open source.

CLAIRE: 00:37:23
So for anyone who's listening, whether it's for this year or future years, if you are looking, even if you're a Postgres developer, Postgres user, maybe you're not a Python developer yourself, but you want to better understand the app developer mindset, the Python developer mindset, I think PyCon is a really great place to do that. The sessions are really high quality. It's very well organized and it's over a week long. So the main expo, the main showroom floor, it's only open for what, three days?

DAWN: 00:37:51
Yeah.

CLAIRE: 00:37:57
But there's even more training and tutorials and sessions beyond that.

DAWN: 00:38:02
And that ethos that I was talking about, kind of keeping it very, very open source, similar to the Postgres community. Also, people say that Python is the second best language for everything. And there's a lot of that energy at PyCon. So it's really, I think it attempts to be really accessible with just energies of people being very, very kind and willing to start wherever you are in your Python journey and then talk you through even the most advanced concepts. I felt very seen and respected in the Python community. And it's why I stick around.

CLAIRE: 00:38:45
Python is the second best language for everything. Help me understand that. Break it down. What does that mean?

DAWN: 00:38:51
In many cases it's considered maybe like a glue layer for data people, or for application building, or for platforms. Python is a really good glue language and I think one of the things that we're seeing with the rise of AI and the commodification of AI and people building a lot of AI forward apps is that you're seeing the merging of a bunch of different worlds and then you're seeing that Python has come, like exploded in popularity because it is jokingly the second best language for everything. So if you want a more performant language in the browser, you will probably go for a JavaScript, or TypeScript, an ECMAScript language. But we are working on WebAssembly support for the default distribution of Python, CPython on PyPI. And that's really exciting. So maybe it's not the first thing that you're going to reach for, for developing in the browser. But the work is there. There's active channels and workstreams for contribution on that. And people are really excited about it. And that's the similar story for a lot of different things with Python. And so I think there's a really fun place to play in for a language group that calls themselves the second best language for everything. I don't think we take ourselves particularly seriously, which means we get to have fun and experiment.

CLAIRE: 00:40:34
Well, this year, PGConf.dev in Montreal, it feels like it overlaps the date. So I'm not able to swing two trips in the middle of May. So I will be at PGConf.dev in Montreal. But yeah, I look forward to following you online and seeing photos and hearing more about what happens at this year's PyCon. I'm sure it's going to be fun. It always is.

DAWN: 00:40:59
And we'll be in closer time zones. So when I see your cool posts from Montreal, I haven't been, I hear the food and the jazz and the people are wonderful. So I'm hoping to get up to Montreal and PGConf.dev soon.

CLAIRE: 00:41:15
Okay, so I don't know if you know this, but last month on the Talking Postgres podcast, Robert Haas, who is a senior Postgres committer and major contributor, he's been involved with the project a long time. He works for EDB. And he recently, last year, last summer, summer in the northern hemisphere, started a new mentorship program for the Postgres developer community. And so that's what we talked about. It was an episode that was all about mentorship. and I don't know if you had a chance to listen in but I know that mentorship is something that you care about a lot and you do a lot of. [Yeah.] I thought we could talk about that a little bit.

DAWN: 00:42:00
Yeah, definitely. So, selfishly, we could start with a selfish reason. I think mentorship makes me a much better developer. I find myself, for example, the developer advocate, who's been a programmer for years and has recently moved into developer advocacy. We are going to pair on a new database that she's never used before. And being able to talk through the issues that I've seen before, go through new documentation or new use case that I just wouldn't have on my desk otherwise, and then chat through how to break it all down into bite-sized pieces and attack it together, really clears up some of my brain space. And when I return to the work that I was doing before, that's kind of my bread and butter or my nine to five or whatever. I absolutely am directly referencing a lot of the conversations that I have and skills and muscles that I'm building with someone else. And one of the things that is really important to me is that full loop and letting people know, that I'm working with or mentoring, how valuable their conversation is to me. I can't tell you how many times I've had someone say, "I'm so sorry for taking your time," or "wow, you're so good at unblocking me" from whatever issue, and really all it was is I provided a safe space for them to talk through. I'm a very nice, smiley rubber duck. So mentorship is able to kind of provide some of that. And in the respect of the previous podcast episode and creating actual formalized mentorship program, Django launched a mentorship program, I believe two years ago about now, called Djangonaut Space, where we have this, where we play on the whole space theme, where we have Djangonauts played off of the astronaut naming. I don't know if that's a pun. I'm terrible at puns. [Right.] And then we have navigators and captains. And so we put people into small cohorts of like maybe five or so people. We'll have a navigator who is an expert contributor in the community who is leading each group. And then there'll be a captain who runs in parallel to the navigator and Djangonaut relationship where they are cheerleaders and they also help kind of direct their path of like if they need to be connected to additional people for mentorship or for subject matter expertise. And so we've found a lot of success. We've had maybe four or five cohorts of it so far. And really, each time we have such great reviews, we get new contributors to the whole ecosystem. We don't even just focus on Django, although that is the main goal. And it seems to really inspire a lot of people to jump in.

CLAIRE: 00:45:27
Interesting. So instead of just the traditional one-on-one, which to be fair, what Robert Haas and Melanie and others have set up for the Postgres Mentorship Program, there is the one-on-one pairing in the first cohort. But then they also have these hacking workshops, which are a bigger group. And I don't remember the exact number, but it feels like maybe 30-ish people. People can sign up just for that one month and they all will watch the same talk and then get together and talk about it and learn from each other, explore questions, things like that. So they have those. [Yes.] But this is interesting, this notion of five people and people wearing different hats and having different roles. And wow, kind of cool.

DAWN: 00:46:12
Yeah, it really evolved from where I thought it was going to start. It actually was born from a State of Django panel on stage at one of the conferences. and someone said we should have a mentorship program. And then it just kind of blossomed from there. And nobody really knew where it was coming from. But one of our fellows, so fellow is the term that we use for a full-time contributor to the language that is paid for by the foundation. Django gets two. And one of the fellows, before she was a fellow, actually just started participating in the mentorship. She was an active contributor and then became a fellow, continues to help with the mentorship. And it really just has this cool effect of just bringing all of the energy together. And it was a lot more organized than I was expecting. I'm usually just like, let's set some time on the calendar and be a ragtag group of kids just hacking. And I think this is just a different approach. I think it has its benefits and some drawbacks. But the group that comes through that do really benefit from it specifically say they like the structure. And if they are looking for less structured ways of doing mentorship, then we'll create other more casual meetings as well.

CLAIRE: 00:47:29
You've said that you've had such great reviews, is any of that published? Is any of this process and the feedback, like, is there a blog post I can go read or that I can include the show notes?

DAWN: 00:47:50
Yeah, totally. I think we even have a page where we say, so we have a media one. And then we also have like successes or something like that. I'll absolutely add them in the show notes. But if you're looking to just figure out all of all of that, it's Djangonaut, so djangonaut.space. So we use the space DNS for that.

CLAIRE: 00:48:15
This is just my own curiosity. I am super thrilled with everything that Robert Haas and everyone involved in the new Postgres Mentorship Program has been doing, but I'm always curious as to, well, how have other how have other teams done it. So it's for my own my own learning here that I'm asking but probably some listeners will be curious as well I'm probably not the only one. All right, so one other thing that I was Googling you as I prepared for this podcast, and you've been on a whole bunch of podcasts, and you've hosted one or two different ones right?

DAWN: 00:48:52
Yeah, I am currently the co-host of the Sad Python Girls Club podcast with my co-host who is also a friend and colleague of yours, Luciana Abud, on the VS Code team. We keep it pretty loose on topics so we are all VS Code fans, but we absolutely talk about other editing environments. And then we had a really great guest from Ruby talk about language maintenance and kind of the symbiotic relationship between companies that support that mission and will develop, will give full-time engineering hours, to supporting a language. And Microsoft does a little bit of that, but we also really do a lot of support for the Python coding environment in VS Code. And I think it's a really, really, a fun forum to chat. And then we always end with our favorite sad song and our favorite ice cream, because I like to associate ice cream with sad feelings.

CLAIRE: 00:50:08
Well, speaking of songs, I want to tell you that Aaron and I and another teammate, Isaac, work together. And your episode, this episode 25 of Talking Postgres, is going to be the first episode that has music. So I feel like we're finally going mainstream. Not a different song every time like what you're describing, but we will have music that plays in the beginning and at the end of each podcast episode moving forward.

DAWN: 00:50:37
I love that. Awesome. And this is for people who are listening or in the channel. This is such a well run organization. It was every step of the way you are class acts and I really appreciate actually I'm learning a lot about how to run a very well run podcast from being here. So I'm appreciative of being invited.

CLAIRE: 00:51:06
Oh, well, we're thrilled to have you. Is there anything that you particularly love about working in the Python developer community or the Django space that you wish other open source and developer projects also did? I'm just looking to learn from you.

DAWN: 00:51:24
Oh, yeah, this is a really good one. I think that the, so I started in the Django sphere, Django area, and then I moved into Python and the audience is much larger, and much scarier, but I do think that we have, some of us have, when what when it goes well, a humility to look to other communities to learn things. I've seen that in abundance. Just even in this hour-long conversation, we've really talked about sharing tips and tricks and learning from each other in open source. But like a lot of our code of conduct conversations or ideas on mentorship or inclusivity have come from the really cool, and even of having full-time fellows working on the language, they're called, what is it, they go under a different name in Python, we got that from another subgroup of the community and borrowed from other communities so I think having that openness to chat and kind of lower the silos in some of these programming communities, even when the technologies are disparate and the solutions we're solving for are, or the problems we're solving for, are very different. I think we can learn a lot. And I like that about Django and Python.

CLAIRE: 00:53:18
Well, I've definitely, I'm going to follow up on a bunch of the leads and tips and links and things I'm going to get from you here, because I do think there are, even when we work in different technology, parts of the technology stack, we're still people trying to figure out how to make things happen together. We still need processes. We still need to help each other. And there's a lot we can learn from each other, which I think is pretty awesome. Okay, so is there anything else that you want Postgres people, whether they are users or developers and contributors and committers, to keep in mind or to know wearing your Django hat and your Python hat? Okay, besides that they should all listen to the Talking Postgres podcast. Okay, because that kind of goes without saying, right?

DAWN: 00:54:06
That's number one! I think we are in, so this has nothing to do with languages or technology, and I love that this is a human approach. I think we're in a really interesting time in tech where open source kind of won. There was a while, and we've kind of won for the last maybe decade or so, I think. So we can gloat a little bit. And there is ways that people are able to sustain themselves, have families and have fruitful lives and contribute or focus their careers around open source. And it's because there is this there's path to symbiotic relationships between the open source tools that you're building and the people who benefit from using it. And then, you know, funneling funds from one place to another that sustains lives and treats people like humans first. It's not easy. I think there's many podcasts now that have popped up talking about how do we fund and maintain open source and sustain open source. But if I could like charge with everyone here about looking to different communities, I'm organizing a conference in Tanzania for the second time. It's called DjangoCon Africa. If you're interested in participating, you are more than welcome to join. I think we're going to have some friends and partnerships with Canonical as well, and Ubuntu. So if those sound really interesting, join and have fun with us. But really think about like, think globally and act locally is, yeah, that's what it's boiling down to. Think globally and act locally on your open source experience, on treating people as humans first, And lending your knowledge and your skills and your resources to this new era of open source and technology.

CLAIRE: 00:56:20
Well, the good news is, and of course I'm biased, I think the Postgres open source project is very global.

DAWN: 00:56:27
Yes.

CLAIRE: 00:56:28
I did a talk last fall about as many contributions as I could gather to Postgres version 17, which was developed over a 16 month-ish long period. So I looked not just at the code contributions, although that was actually an important thing to pull, but also looked at conferences and who gave talks and who shared their expertise, who published podcasts, who organized conferences, right? It's not just about the speakers, but also about the people who do all that blood, sweat, and tears behind the scenes to make it happen. And anyway, I put together a map at one point where we looked at all the speakers and all the code contributors, and it is global. So we have people from all over the place, and some of whom are self-employed or work for teeny tiny companies, and other ones who might get paid by a larger company to work on Postgres full-time, which is pretty awesome to get paid for doing this type of work.

DAWN: 00:57:29
Oh, cool. Where did you give that talk again? I need to go watch that. That sounds very, very cool.

CLAIRE: 00:57:37
Oh, I'll drop the link in the show notes at PGConf.EU, which takes place in a different European city. Usually it's in October, and last year it was in Athens, Greece, which is super cool for me because I'm half Greek and I got to talk like a five-year-old, which is about the level of my language skills. But it was really an amazing event, and shout out to the people who organized it because we all had so much fun.

DAWN: 00:58:02
That sounds fantastic.

CLAIRE: 00:58:03
Okay, Dawn, I know you need to go. Thank you so much for coming on the show and sharing some of your perspective on Postgres. Good luck writing the book. I look forward to buying a copy as soon as it gets published.

DAWN: 00:58:19
You don't have to buy one. I'll send you one. You're fantastic. You're in the awesome friends category. So I appreciate it.

CLAIRE: 00:58:26
Well, then they need a signature on it, right?

DAWN: 00:58:28
Oh, I got you.

CLAIRE: 00:58:29
Okay. All right. Cool. All right. And best of luck with Anaconda, too. I'm sure you're going to enjoy it.

DAWN: 00:58:33
Thank you so much. I miss you all a bunch. But I'm having fun with these new challenges. But we'll stay connected.

CLAIRE: 00:58:43
All right, thank you and if you like today's episode, those of you who are listening, and you want to hear more of these Talking Postgres episodes you can subscribe on Apple, Spotify, YouTube, or wherever you get your podcasts. Please tell your friends too. And if you leave a review that helps even more people discover the pod. You can get to past episodes and get links to subscribe on the different platforms at TalkingPostgres.com. And transcripts are included on those episode pages as well. A big thank you to everybody who joined the live recording and participated in the text chat. Thank you again, Dawn Wages.

DAWN: 00:59:19
Thanks so much.

Creators and Guests

Claire Giordano
Host
Claire Giordano
Claire Giordano is head of the Postgres open source community initiatives at Microsoft. Claire has served in leadership roles in engineering, product management, and product marketing at Sun Microsystems, Amazon/A9, and Citus Data. At Sun, Claire managed the engineering team that created Solaris Zones, and led the effort to open source Solaris.
Aaron Wislang
Producer
Aaron Wislang
Open Source Engineering + Developer Relations at Microsoft + Azure ☁️ | Go (golang), Cloud Native, Linux 🐧 🐍 🦀 ☕ 🍷📷 🎹 | Toronto 🇨🇦🌎 | 💨😷💉 | https://aaronw.dev/hello/
Why Python developers just use Postgres with Dawn Wages
Broadcast by