Summary
Keeping up with the work being done in the Python community can be a full time job, which is why Dan Bader has made it his! In this episode he discusses how he went from working as a software engineer, to offering training, to now managing both the Real Python and PyCoders properties. He also explains his strategies for tracking and curating the content that he produces and discovers, how he thinks about building products, and what he has learned in the process of running his businesses.
Preface
- Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
- When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so check out Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute.
- Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email hosts@podcastinit.com)
- To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media.
- Join the community in the new Zulip chat workspace at podcastinit.com/chat
- Your host as usual is Tobias Macey and today I’m interviewing Dan Bader about finding, filtering, and creating resources for Python developers at Real Python, PyCoders, and his own trainings
Interview
- Introductions
- How did you get introduced to Python?
- Let’s start by discussing your primary job these days and how you got to where you are.
- In the past year you have also taken over management of the Real Python site. How did that come about and what are your responsibilities?
- You just recently took over management of the PyCoders newsletter and website. Can you describe the events that led to that outcome and the responsibilities that came along with it?
- What are the synergies that exist between your various roles and projects?
- What are the areas of conflict? (e.g. time constraints, conflicts of interest, etc.)
- Between PyCoders, Real Python, your training materials, your Python tips newsletter, and your coaching you have a lot of incentive to keep up to date with everything happening in the Python ecosystem. What are your strategies for content discovery?
- With the diversity in use cases, geography, and contributors to the landscape of Python how do you work to counteract any bias or blindspots in your work?
- There is a constant stream of information about any number of topics and subtopics that involve the Python language and community. What is your process for filtering and curating the resources that are ultimately included in the various media properties that you oversee?
- In my experience with the podcast one of the most difficult aspects of maintaining relevance as a content creator is obtaining feedback from your audience. What do you do to foster engagement and facilitate conversations around the work that you do?
- You have also built a few different product offerings. Can you discuss the process involved in identifying the relevant opportunities and the creation and marketing of them?
- Creating, collecting, and curating content takes a significant investment of time and energy. What are your avenues for ensuring the sustainability of your various projects?
- What are your plans for the future growth and development of your media empire?
- As someone who is so deeply involved in the conversations flowing through and around Python, what do you see as being the greatest threats and opportunities for the language and its community?
Keep In Touch
- @dbader_org on Twitter
- Website
- dbader on GitHub
Picks
- Tobias
- Dan
- Black code formatter
- Ćukasz Langa
Links
- Dan Bader
- Nerd Lettering
- Real Python
- PyCoders
- Computer Science
- Vancouver, BC
- Django
- Raymond Hettinger
- Data Science
- Flask
- Pythonista Cafe
- Python Tricks
The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
Hello, and welcome to podcast.init, the podcast about Python and the people who make it great. When you're ready to launch your next app or want to try a project to hear about on the show, you'll need somewhere to deploy it. So check out Linode with 200 gigabit private networking, scalable shared block storage, node balancers, and a 40 gigabit public network, all controlled by a brand new API, you've got everything you need to scale. Go to podcast in it.com/linode today to get a $20 credit and launch a new server in under a minute. And visit the site at podcast in it.com to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. And go to podcastinit.com/chat to join the community and keep the conversation going.
Your host as usual is Tobias Macy. And today, I'm interviewing Dan Bader about finding, filtering, and creating resources for Python developers at Real Python, Pycoders, and his own training services.
[00:01:02] Unknown:
So, Dan, could you start by introducing yourself? Hey. Sure. So my name is, Dan Bader. I'm a programming book writer, and I'm also the editor in chief at, a site called Real Python as well as the Pycoders weekly
[00:01:18] Unknown:
newsletter. And do you remember how you first got introduced to Python?
[00:01:21] Unknown:
Oh, yeah. Yeah. I do. So that was on a, a ski trip. So I, you know, I got a degree in, in computer science. And so as I was in in college, back in Germany, we're going on this, you know, geeky ski trip. And, 1 of my friends who was also my roommate at the time, he brought a Python book to that ski trip. And, I hadn't really heard about Python before that. And it was 1 of these, like, pretty crappy, you know, learn Python in, I don't know, 48 hours or something like that. That never really works out that way. And I was just kind of thumbing through this book, and I thought, man, like, this is actually really, really cool, like, a really, really beautiful language, and this just somehow resonated with me. And, I decided to to start using it for little projects after that, but it, like, literally started on that ski trip. And, you know, the same guy also introduced me to my future wife, so I have a lot a lot of things to thank him for.
[00:02:12] Unknown:
So that happenstance has has ended up leading you to working in the language and being a fairly significant contributor to the ecosystem in terms of resources and content curation. And so I'm wondering if you can start by discussing a bit about your primary job these days and how you got to the particular setup that you are now where you're providing these trainings and producing these various products and resources and working on, creating and curating content for people in the Python ecosystem.
[00:02:47] Unknown:
Sure. Okay. So that's gonna you know, that that's, a pretty tough question, especially because I'm, you know, I don't reflect a lot about this stuff. I just kinda, you know, it's a very like greedy algorithm. I just look at the next thing I I could do and I sort of don't have, like, a big master plan. But, yeah. So I guess, you know, how how did I end up doing what I do today? So so a typical day for me is reviewing, editing content for real python.com, and also, you know, writing content for the newsletter or our various other channels. And then, also curating other people's articles so I can share them on our various, outlets like the Real Python, Twitter account or the Pycoders, weekly newsletter most recently, and then the Real Python newsletter as well. And so, I guess the typical day, you know, involves a lot of reading, a lot of writing, and, also a lot of coordination between the various people in our team. And so my life wasn't always like that. I, you know, I I, was on on on on track or on the path for, like, a typical software engineering career or programming career. And, you know, I I love programming my whole life. I got sort of into programming at a fairly young age. Must have been, I don't know, 7 or 8. And, you know, grew up in Germany. I am German. And, I I basically learned English by reading programming books. And so it's always had this, like, huge influence on my life. And then I always knew that I eventually wanted to work as a software developer because just I I loved it so much, and it was really it was just I don't know. Just a perfect fit for me because I could really obsess over this stuff for hours, you know. And then when, like, I got access to the Internet and I was reading, you know, the the game engine source code for the Quake game engine, the Doom game engine. I was just spending hours reading that stuff. And I always, you know, had, like, a really, really strong passion, for for writing code specifically. And then later on on also for things like system design, architecture, and all of that stuff. You know, how to make code beautiful and and, make it maintainable, all these all of these things. And, so it's just on track, kind of building a career in that field. And, somewhere in the middle there, I moved to Canada. So I moved to Vancouver in British Columbia and, worked for a company there and, you know, had a had a blast. And, after that, I, became a freelancer slash consultant. So I was doing contracting work for that same company, other companies. And, I felt like now that I had more control over my time and sort of how I organized my day, it it was it was time to give back in some way. And I'd always been reading a lot and, you know, like I said, I've sort of grew up on programming books and a dream of mine, like, like personal, like life goal had been to write a programming book. And so I felt like it was the time to finally do that. And, I also realized that this could be a really great way to market my consulting skills because, you know, if you have a book under your name, that's actually a really fantastic, fantastic business card. And I've been, like, blogging and writing programming tutorials online since, since about 2012. And it's it it had done a lot of good things for me in my career as well, you know, as a portfolio piece and just as a conversation starter. And so all of these things sort of came together. And, I I started working on that book. I started blogging more actively about Python. And, you know, it all sort of snowballed to the point I had started a YouTube channel and a newsletter, and I was producing a lot of content.
And, it was resonating with people. And it had gotten to the point where I felt like, man, like actually my, my dream here is not to be a consultant right now, writing code for other people, but I'd much rather, you know, go out and help the world become better programmers and to educate programmers and to share, some of that passion that that I had and still have for programming and for Python specifically. And so, you know, it all it kinda hit critical mass, and I felt like, well, you know, I could could probably make this work financially somehow as well. Let's just see if I can work something out over the next 6 months. And, it's just working nonstop. My book came out and, it did pretty well and did, enabled me to do a lot of the things that I now do in that space. So it's it's really been like a kind of a crazy roller coaster, in terms of, you know, what what I do now and what I've done, you know, just, like, 2 years ago. Most recently, I've been writing a lot of code again for the real Python platform and the Pycoders weekly back end. And, sort of it's it's like a beautiful mixture right now. It's very fluid for me, and I can kinda jump on the things that I really enjoy doing. And, you know, obviously, you gotta pay for for food and and you gotta you gotta somehow keep this whole thing alive. So it's not always, like, fun and joy. But, in general, I I really love what I do right now. And, it's it's very diverse in in terms of the actual task. Now I actually totally forgot what your question was, but I hope that that gives everybody who's listening,
[00:07:35] Unknown:
you know, a vague idea of what would I do today. No. That that's great. That's exactly what I was looking for. As you mentioned, you're very engaged in the real Python platform, and I know that you ended up taking that over. I believe it was sometime in the past year or 2. So I'm wondering if you can discuss a bit about how that came to be and what your current roles and responsibilities are in relation to Real Python.
[00:08:01] Unknown:
Sure. Yeah. So so Real Python, it's, you know, it's a site at realpython.com, specifically about Python, lots of programming tutorials. And, for me personally, I, you know, I I'd always known the site. Whenever I got into Python, you know, eventually I found it. And, for me, it was sort of the shining beacon of light. And, as I started building up my own blog and, you know, I was writing under my own name, I felt like, man, like, this site is really amazing. Like, how did these guys get there? And, because the, you know, the content was really high quality, it was well researched, you could tell somebody was writing about this stuff, who was actually doing that in their day to day work, you know, using these things in their day to day work. So it was, you know, based on professional experience. And I always, like, really appreciated that. And also I I thought the name was fantastic, and it's just like a real a real brand in Python programming, if you will. And so, over time, I'd become, you know, I'd made contact with, Mike Herman and the other guys who ran the site and sort of became friends. And, as, what I was doing under my personal brand, if you will, as as that was sort of, you know, growing and and starting start to hit that that critical mass that allowed me to focus on it full time, I felt like the best way forward now is not to keep doing this under my personal brand because I was already stretched pretty thin. You know, I was creating, I was doing daily videos for my YouTube channel for a while. I was writing, a very, like, story and and sort of writing heavy newsletter update every week.
And, I was also putting out 1, like, full length tutorial, and I was working on another book project. And, then I was, you know, coding coding on the side, obviously, like keeping the whole platform alive. And so I was already stretched pretty thin. I felt like there's only so much you can do if you're 1 person and, it's gonna be hard to bring other people into that universe. I mean, other authors and other people who wanna reach the Python community if it's all under my name. And so as, as I was in contact with the real Python guys, I I kinda got the sense that they were ready to move on and do something else, because they'd all, you know, grown, a lot in their careers or had started different companies or just had lost interest maybe a little bit in, in Python specifically.
And so, 1 day, you know, I woke up in the morning and sent out, like, literally, like, you know, a a 2 line email or so. I was like, hey, have you be interested in in in selling this thing and me taking over the site? You know, I love the site, super passionate about it. And what do you think? And, you know, we started talking about this negotiating and lo and behold, at the the start of, this year, I, took over to site and, started running it. So that's kind of the backstory of how we got,
[00:10:43] Unknown:
got there with real Python. And in terms of the effort that's necessary to keep the site running and the types of content that you're focused on and the way that you bring people on to, produce guest posts. I'm just curious if you can talk a bit about the overall processes and time commitments that are necessary for that. So so we don't do guest posts. The site did that in the past, but,
[00:11:07] Unknown:
I've sort of completely revamped that, rewrote the the back end. So we have a a new CMS that's based on Django and, and Python obviously. And, we we stopped doing guest posts. So I think with a guest post, a lot of times the incentives are all wrong. So and, and the reason I'm saying that is I felt like, you know, I've been really, really focused on writing good content, good tutorials in, in the Python space specifically for, you know, a couple of years now. And, it takes a long time to get to that point where what you put out there resonates with people. You know, not like trying to toot my own horn here, but I felt like I got pretty good over time. And then when I did the book, sort of, you know, like a a big boost for my for my confidence there as well. And so what I realized is that if you wanna have a good site there that people can really, benefit that our readers can really benefit from, you need to have standards in place, you know, a consistent style guide, consistent editing process, and consistent, like feedback and review process. And, I built all of that up based on the best practices that I learned in the years prior. And the problem is if you do guest posts, it's very hard to get to that quality standard because you're working for someone with someone with an author for a very short period of time. And usually the motivation is also there, know, of I don't know. I have a book coming out, so can I just promote promote that by giving you a chapter and we we publish it? And, you know, nothing wrong with that. A lot of sites do that. But, we completely stepped away from that model. And, I fundamentally believe that you wanna build a strong team and work with these, these contributors, these authors over, a longer time frame. And then, you know, really train everybody up and really pull everybody up together so that, we have a consistent, style across the side, you know, consistent quality checks. And, we've gotten pretty, pretty crazy with, with our process there. In a good way, I like to say. Maybe it's just the German genes, you know, Germans love love their process. But I feel like if you if you apply it correctly, then it's it's actually very, very beneficial.
And, and so that's I think that's our secret sauce, you know, where we bring on people, who love writing and they love educating the Python community, and they are also professional programmers. And when you take the intersection of all of these things and then have, you know, a good brand name, out there and have enough, you know, repeating visitors and sort of a broad base of readers, then you can really, I think do something great for both the authors and the Python community and, and, and and grow the site at the same time. So so that's kind of the philosophy there that I follow. And because you're obviously
[00:13:45] Unknown:
still bored and twiddling your thumbs day to day, In the, past few weeks, you ended up taking over the Pycoders newsletter as well because you didn't have enough to do. So I'm wondering if you can give a bit of the back story there and some of the additional time commitments and responsibilities that, came along with taking over that PI Coaters brand and and the weekly newsletter?
[00:14:08] Unknown:
Yeah. Sure. So, like, you know, like you were saying, I got got a little bored. I thought, well, what what other you know, what else could I do with my day? No. I guess what it's funny, like with PIE coders, I guess was was kinda similar. So 1 1 aspect of of my day to day or my job, if you will, that I really enjoyed is is curating other people's content and, you know, kind of finding really good tutorials or really good podcast episodes, videos, and then using the channel, we had built with Real Python and my own site before that to surface that and share that with the community because I personally benefited so much from that. And, you know, just so so many other great educators who are out there, like Raymond Heatinger and, you know, his Twitter account is fantastic. I loved all of his talk, and I really wanted to, you know, pay back the the the favor, if you will, you know, for those people spending their time to help us us grow our skills and and then to to use the audience we had built to circulate all of that, that information within the community. And so I just always really enjoyed that aspect. And I also really love the Picoaters Weekly newsletter because I remember, you know, the first time I got 1 of my articles in there, and this newsletter has been around since 2012.
It felt awesome, you know, to wake up and, you know, I was in Germany, different time zone. So you wake up in the morning. It's like, oh my god. You know, I have a couple of 1, 000 views on my blog there. What happened? And you look check your Google Analytics and figure out, like, wow. Okay. This thing was featured in some some some newsletter. And, it it just felt really, really good. And so I wanted other people to have that experience as well. And so with Pycoder specifically, I guess how I ended up becoming the the editor in chief or, you know, curator in chief for for Pycoders is kind of similar to the way it happened with, Real Python. You know, became friends with, Mahdi and Mike who who build it up from scratch and had curated all of the content. They're both, you know, very, very busy. They've got their own startups.
They've got families. They've got a lot of other things to focus on. And so, it it was just a good time, I guess, to have a change there. And I'm so fired up about the publishing model in the programming space and, you know, specifically publishing online written content that we just started chatting about this. And we worked out, a deal. And I started running the newsletter, about, I think it was it was probably, like, 4 or 5 issues ago. So, yeah, like a little bit more than than a month ago. And, I just had an absolute blast, you know, like, I migrated the whole infrastructure over, And I think, we we've done some really, really cool things there with, also the the archaeological and archival aspects of the site. So now we have a full issue archive going back more than 340 issues.
It will be searchable soon. People can comment on this stuff. And, I for some reason, I just get a real kick out of that, you know, like reading other people's stuff and then, writing little summaries and sharing out with the Python community and, also making you know, doing that in a way where it's not throw away I don't wanna say throw throw away content, but, you know, when you put something out on Twitter, it's it's very ephemeral. Ephemeral is the right word. It goes out, you know, almost nobody sees it, and it just kind of gets buried under 10, 000, 000 other tweets. And I love doing things, or I love investing in things that have more staying power. So, you know, with real Python, we're really focused on evergreen content and things that we can maintain over a long time, and we have a very intensive process of, you know, multiple review stages and, editing and proofreading passes so that the final result is is really, really high quality.
And so with Pycoders, you know, I wanted this thing to be the same way where, I feel like email at 2 degrees is a very ephemeral medium, too, but less so than Twitter and other social media. And, if you can bring it together and you have, sort of a strong web presence as well and has a strong Twitter account as well, you can really do something nice for a Python community and people can go in, you know, they can go back, like, how long is that? Like, 6 years into the past and look through these other issues and can kinda see, you know, what's what was featured, frequently, what are some of the things that people were recommending in the past, what are they recommending now. And, I just get you know, I can't really explain why, but I just get a huge kick out of that, you know, bringing, like, taking that out of Mailchimp's, hands and putting that out on the web on our own platform and our own hosting. And, yeah, so that's sort of the the long and short, I guess, was more the long of, how I started running, the Pycoders weekly news litter. And so now that you're managing Pycoders and real Python as well as offering your own training services,
[00:18:59] Unknown:
and I know you have a few other products that you are promoting and selling. I'm wondering what are some of the synergies that exist between these various projects and roles and some of the areas of conflict that are starting to present themselves?
[00:19:13] Unknown:
Okay. Interesting question. I think some synergies are are pretty clear. I mean, you know, if you if you look at Pycoders and Real Python together, they're both channels, if you will, you know, like Real Python. We just recently broke through, the we're we're getting a 1000000 unique visitors a month, which to me is just an absolutely, like, insane number. It's it's just it's just it's just crazy to think about that. There's just so many people who who wanna, you know, read about Python, online. And, I mean, I I love it, obviously, and our authors love it. And apparently our readers love it too. And, so but it's it's a big channel. Right? Like, we can we can surface things. We can, put things in front of the Python community, and so is, Pycoders Weekly. It's just a different medium, I guess. You know, 1 is, primarily a website. The other 1 is primarily an email newsletter. And, some of the synergies there, I guess, are pretty clear. Like, you know, we can, share our own links in the newsletter, and vice versa. We can use the real Python website to build up the newsletter audience. And so, you know, some some synergies there are very, very closely connected in terms of growing both of these audiences. I guess those are probably the main ones I would think about. Yeah. And I think, you know, today it's like not to sound like I was like beamed in from the nineties or something, but it's it's all about multimedia.
And, there's so much going on in this space right now, you know, like, you know, there's podcasts, there's email newsletters, there's websites, there's, there's YouTube, you know, a lot of like great video content. Maybe soon we'll have some like VR stuff. And I think the way to be successful as a publisher today is to, have your fingers in all of the in all of the pies there, at least a little bit. And, because I really love written content and, you know, very rich and and in-depth written tutorials. The the newsletter avenue was, was a pretty sweet path just because I enjoyed personally, and I I know how to build a great team around it. And so, yeah, I think that those are probably the main synergies. And then in terms of any sorts of conflicts that might exist, whether it's conflicts in terms of time
[00:21:38] Unknown:
terms of perceived conflict of interest or just conflicts in terms of other work that you'd like to be doing. I'm curious if there is anything that has started to crop up on that front.
[00:21:48] Unknown:
Okay. Yeah. I mean, so conflicts in terms of, you know, how how do you make time for all of that stuff? I think really there, I I can just praise my team and everyone that I work with there on the the real Python, tutorial team. It's just been, you know, such a fantastic change also from my personal life to, you know, to be sharing this with other people and, to be able to to grow and learn with each other and and from each other. So, you know, I'm I'm not a huge, expert on what's going on in the data science space, for example. I think I'm pretty pretty solid when it comes to, the web dev stuff and, you know, just pure, like, core Python things and then some of the architectural principles, but, not a huge data science guy, for example. And, it's just been absolutely amazing to grow the team with folks who care deeply about that and have a very deep and intuitive understanding of, you know, what's what's good in that space and what people should learn and kind of, you know, how how to sequence the whole, like, okay, how do I go from a to b? And so that's really helped me get out of that burnout zone, I think, because that's a pretty clear danger, I think, if you're starting, sort of a 1, you know, a 1 person company, 1 person show in that space. If you're on the hook for everything, it's very easy to to get burned out, I think. So that, you know, in in terms of time constraints, that's definitely, like, the the highest up on my on my list there. So, yeah, I think it's, you know, at a certain point, you wanna get to the point where you can distill your knowledge and, and then build a process around that and then empower other people to actually improve on that process. For example, our editor, Joanna, she's doing an amazing job, running our publishing pipeline, and we're working together very closely to iterate on this stuff over time and make it better and better and better. And so we've built up a lot of in house expertise that I don't think anybody else in that space has right now. And, it's it's been very rewarding, and, you know, it definitely helps to kinda share share that work. I mean, conflicts of interest, I think, like, like, 1 of the things that we we did recently, we started accepting sponsorships on, realpython.com, and, the PyCharter's Weekly newsletter always had, sponsorships.
But, yeah, I think there's there's room to to grow that as well. And I think we found a way to make that ethical. I mean, like, you know, every time we do that, that's disclosed, has a little sponsor tag. I know that a lot of people, let's say some people, some very vocal people have issues with that in our space, just because we think that information should be totally free. And it kinda sucks for some people if anything that you do is monetized in some way or it has, has sponsors. And the problem with that is, you know, I I love to, like, you know, sacrifice myself for for a good cause, but really nobody's gonna win that way. I mean, the only way that, let's say, real Python is sustainable, we can put out like 2 really, really solid tutorials every single week, is because we can we can pay the authors. We can pay our editors. We can pay our graphic designers, and, we can pay for hosting, which, you know, it's not we're not a YouTube or we're not a Facebook, but still, you know, you gotta serve all that traffic. You wanna make sure it's up all the time. And so I think there's always a fine balance between, you know, how how do you do advertising, for example. I think we found a pretty good way in that I built, an ethical ads platform for the site. It doesn't track you. You know, it just cancel a a click, and it redirects you to the target page, and it shows you an image based ad banner. 0 0 tracking involved with that with that. And, to me, that is a point that I'm, you know, I'm I'm very comfortable with that situation just as I'm comfortable with, for example, you know, you having sponsors on this podcast, other podcasts having sponsors as well, or people maybe doing, a sponsored tweet if it's disclosed. I don't I don't see a conflict of interest there. I still get emails, you know, multiple times a week where people are just absolutely, you know, losing it or the fact that they've seen an ad on the site. And to me, that's that's crazy. Like, I mean, would you rather, like, all of this stuff disappears and we'll shut it down rather than seeing maybe an ad banner that that we actually custom design and you don't have to even click on it to access the content? And, I've tried other models in the past. For example, a contributor model, sort of a Patreon model. And, I think it's pretty safe to say that it just flat out doesn't work. Like, at least for us, people are willing to read the content, share the content, benefit from it, but very few people are willing to, to give back to the creators. And just, you know, looking at the numbers, it just no way that I felt like we could get to the point where this was enough to cover cost for the site. So so that's sort of how I feel about advertising and, you know, monetizing things in general. And I feel like that's sort of the biggest conflict of interest or so some people might say. Like, in my mind, there is no conflict of interest because it is the only way. I mean, I would love to live in in a future where, you know, we don't we don't have to worry about any of that stuff, but, for now, I'd rather make sure everybody in my team gets paid. And, my my wife doesn't yell at me because I spend all day in front of the computer, and we can't afford to buy food. So that that's sort of the perspective
[00:26:52] Unknown:
that I look at things. Yeah. No. I I can definitely agree with that. And, you know, when I first started this podcast, I, you know, podcast, I, you know, set out to to say, oh, this is just gonna be a community effort. I'm not gonna seek sponsorship. But after seeing how much time and effort is required, I eventually ended up agreeing to speak with some different sponsors, and thankfully, I've been able to keep that sustainable over this time. And as you mentioned, you know, the Patreon model, while it's nice, it's not very reliable because somebody may decide to contribute 1 month and then retract that contribution the next month. So having a sponsorship agreement that you can count on more long term and have some sort of a sales funnel to keep conversations going with potential sponsors, just making sure that the products that you're trying to promote are in line with the audience, and something that's useful as opposed to just accepting, you know, advertisement from any random person who wants to give you money, I think is just the best way to strike that balance and keep things sustainable while being able to, have sort of the freedom and sort of editorial
[00:28:00] Unknown:
latitude to be able to produce value for your listeners and your audience. Exactly. Yeah. Yeah. I think I think really that's the key point. Right? You you wanna have a filter there in terms of who you accept as, as a sponsor. You know, I've I've told people, no. You know, we're not gonna I I don't believe in that product. I mean, I I maybe put it a little bit nicer, but it's you know, I'm I'm not gonna promote something that I can't that that makes me feel yucky, you know, that I can't stand behind. I mean, obviously, you know, if, it's, it can be a challenge if you're if you're trying to be, you know, critical of some things or you're trying to write, you know, an an honest review or or something like that. And then that might be conflicting with a potential sponsor you might wanna have in the future. You have, you have on the site right now. I think for the most part, feel like with our sponsors that we have on the site, they're all they're all awesome. And I've never actually I've never actually been contacted in any way where people said, you know, yeah. Okay. So we'll sponsor this site, but then we also expect, like, you you, like, really play up our our stuff or the service that we're selling. I I don't think that's the expectation that sponsors really, really have. So that hasn't been, like, a huge source of of conflicts of interest for me, but, you know, I think it's it's definitely something that that, as content creators, we need to stay on top of this. We need to stay vigilant about because, I mean, it's, yeah, it's it's a slippery slope. Right? Like, I mean, how how convenient would it be to maybe, you know, accept, like, a sponsored post? Maybe maybe, you know, I don't, I don't mark it as such or, you know, something like that. And so I'm I'm just drawing, like, a very hard line where it's like, okay. Sponsorships are on the banners. We don't do sponsored links. We don't do sponsored posts. And, our, you know, our allegiance is is to our readers because that's that's what everything starts with, and then that's also where it ends at. And so at at least to me, that's a pretty clear clear line, but I mean, I could I can definitely see the challenge in there. So yeah. Actually actually, really interesting question. And, thanks for bringing it up. And so
[00:30:01] Unknown:
between the work that you're doing with Pycoders and Real Python and your training materials and your engagement with the community and participation in conferences, There's a lot of incentive for you to keep up to date with all of the different goings on in the Python language and community and ecosystem. So I'm curious what strategies and resources you use to be able to stay on top of content discovery and ensure that you're trying to maintain visibility of all of the different aspects of the language and the community and the different geographies and cultures that all come together to make this community that we're part of. Man, I'm really curious about your answer there too.
[00:30:44] Unknown:
So what I would say, I think in terms of surfacing, finding stuff that is interesting to the global Python community right now, it's very hard to do if if you're doing it all by yourself, and that's what I what I did, for the longest time. And it's been actually like a huge game changer to now have the real Python tutorial team because it's, you know, it's globally diverse. We have people in all kinds of time zones, you know, from the US, Canada, the Philippines, Zimbabwe, Norway, the UK, Germany, India, and, you know, many other places in Europe. And, we're also pretty diverse in terms of, age levels and across genders. And it really helps to have quick act like, it personally really helps me to have quick access to all of these perspectives. Where I can just throw something in our Slack or, you know, somebody will share something that they found that is cool. And it really opened up my my perception to to all of these other things that were going on because I was kind of living in my, you know, like, Python, Python web dev bubble. And not everybody is, you know, is working every day with, Flask and Django. People are doing, like, pretty, a pretty diverse set of things with Python, and maybe a lot of them don't even see themselves as programmers.
And so, I think what really helps me personally with that is having access to our team. I also have. I started this forum. It's called, Pythonista Cafe, and, it's a private forum, and that's a great arena too to kind of bounce off ideas and where people feel like they can just speak freely about the things that they that they're struggling with, that they care about. And so that's been a huge source of ideas for me as well and, you know, just the ability to bounce off ideas with people there, there too as they're learning Python or as they're, you know, teaching other people Python. And, so, you know, while while I live and breathe this stuff every single day and I love it, eventually you you hit a limit, I think, as far as what you can do as a single person or as 1 person. So you got to you got to reach out and build a network.
And, you know, I'm constantly chatting with other content creators in the space, sort of what they're seeing, what's interesting to them. And, in terms of, you know, an actual, like, algorithm on how to do that, I I don't have 1. I feel like as far as the sourcing goes, it's just like, yeah, I have as many channels that surface stuff, as possible. But, in terms of the curation piece, I feel like I I just have a really good gut feeling now of what I think makes content worth sharing with our audience because I feel like I have a pretty good understanding of what our audience wants to see. And then also I have a good understanding of the other side, you know, writing books, articles myself, of what is something that somebody put a good amount of thought into. And, it's good advice that I feel comfortable sharing because, I mean, everything is out there already. Right? Like, there's so much information on the Internet. And I remember, you know, just a couple years ago, I I felt like it wasn't that way. It was sometimes really hard to find a good programming tutorial, and you'd like really have to, you know, really make you feel, like there was this, like, element of joy. It's like, oh, yeah. You know, I found this thing. I maybe I don't have a buy have to buy a book on this or, you know, I can just read this. I never thought about it that way. I feel like now there's so much stuff coming out every single day that really the curation is the key piece now. And, you know, curation in in a really broad sense, like, okay. So maybe you wanna listen to a podcast because that's, you know, the the person running the podcast is gonna, they're gonna surface interesting stuff that and it goes through their filter. So you can kinda offload that responsibility, to to the show host. And it's the same thing with a newsletter, like Pycoders, or it's the same thing with a website where I think you wanna increasingly trust somebody else's filter or otherwise you're just gonna get overwhelmed as a reader, as a learner, as a professional who wants to stay on top of things. And so, you know, to me, these things have huge value. And a lot of times, it comes down to just, you know, sort of the gut feeling of that particular person. Yeah. I can definitely
[00:34:37] Unknown:
agree with what you said there as far as there is a vast amount of information and it's coming from all directions and having a network of people to be able to gain perspective from and surface other areas of use that you might not be aware of is immensely valuable. That's why after I shut off the recording, for all of my podcasts, 1 of the last things I say to the guest is asking them to suggest any other topics or projects, etcetera, that I should be taking a look at for other episodes because that's just another means of content discovery because everybody's got their own lived experience and what they see as being important or interesting. So, it's just a great way of being able to come up with additional ideas that I would never have come across myself. And then, yeah, the sort of gut feel of curation of which topics are going to resonate most and which one's going to be most valuable, which ones can I, sort of extract useful and entertaining information from, is is generally sort of the process I go through? So I maintain a list of all the different episode ideas. And sometimes when I'm going through, it's interesting to try and say, oh, well, I've, you know, already touched on this topic. I feel like I've covered it fairly well, so it might not make sense to cover this other project that is in the same space and will most likely, you know, retread the same topics. So it's interesting to try and keep that Venn diagram in mind, especially as you add more and more content over time. Yeah. Definitely. Actually, that reminds me of, you know, what you just said, remind me of, this sort of effect. You know? You're you're trying to learn some some skill, and let's say you wanna get some coaching for that or some, you know, some some some training or somebody who could teach you how to play the guitar. In my own struggles there,
[00:36:17] Unknown:
I actually stopped playing, you know, like like a decade ago. So I never there were either, like, 1 at that, but I I guess I got pretty good at programming instead. What I was gonna say is that there's at any given point in time, there's gonna be, you know, thousands of people who can teach you how to play the guitar. But, you wanna you wanna find somebody that you resonate with and that that you trust in that regard. You know? And so you wanna try out a couple of teachers and just see, you know, who who do I wanna learn this from? And, I think it's it's similar with any skill that you may wanna learn in in the sense that you wanna try out a couple of channels and curators in that space, and then kind of mix and match that stuff. I'm not sure if you necessarily wanna do that with news sources, but that's like a whole another conversation. But I think if you if you're trying to learn a skill, the the curation part is just so insanely important. And, being able from people that, that you feel like you can trust
[00:37:08] Unknown:
is is really a key piece. Yeah. And in terms of the resonating effect and the impact and utility of the information that you're surfacing as a content creator and a content curator, I know that in my experience, 1 of the difficult aspects is being able to encourage and elicit feedback from your audience. And so I'm curious what your strategies are for being able to foster engagement and facilitate conversations
[00:37:37] Unknown:
around the work that you were doing? I think for me, it's it's email, email, email. So, it's it's a really big medium for me. And I guess that that's why also why, the PIE Colors Weekly was was sort of a natural fit. And so I always get replies back to the newsletters that I sent out, and I I encourage it. And, you know, I try hard to, like, to answer most of it, but, you know, obviously, that's a certain point that's not really possible. But, I found that that's just a great channel to get, to get to hear everybody's well, not everybody's perspective, but, you know, to have a feedback channel there, because it's it's very much 1 on 1. It's not a public comment, and, people are pretty unfiltered, when they reply back to emails, like, you know, good or bad. And, so that's been actually very rewarding for me most of the time and sometimes also stressful, of course, but, that's been just a good back channel channel for me to understand, you know, what's resonating with people. Then, like I said, there's the the Pythonista Cafe, private forum.
That's, also just a really great way to, to see what, you know, how people feel about the the content we put out recently. And it's it's, much more unfiltered than than a public conversation and more balanced, I would say. And, obviously, I guess, like, people join the forum because they they've been reading real Python or my website or my book. So I guess that there's bias in that as well, but nevertheless, it's been a really helpful channel or back channel also. Similarly, Twitter. I think Twitter is actually really great in the programming space. There's a huge community of Python developers on, on Twitter. You know, you can, in some cases, directly interact or at least, you know, read what what what people are saying who are, actually, you know, contributors to the Python ecosystem, whether that's on CPython itself or the big frameworks.
And and they're all there. So that's another big channel that I personally find really, really helpful. We've also got a comments, a couple public comment system on on each real Python article. And that's super interesting to see, too, you know, what people sometimes people surface, little things that we missed, and we go back and patch up the article. Sometimes people ask for more information. Sometimes they just, you know, share their homework problems on there, which is interesting too. But that's that's also a good back channel. I I've also got a YouTube channel. I've sort of put it on pause. Like, I don't put out a lot of comment, content there, but it's really interesting to see, like, how how people engage with video, so much differently. And it's it's a much more emotional, realm there. So that can be both good and bad, but that's also a back channel. Let's see here. Did I miss anything?
I recently build out this thing. It's sort of a feedback form and, with we have a new book project coming up for Real Python. And so what we're gonna do there is we're gonna do an early access version of that book soon where, at the end of each chapter, there's actually a feedback link in there that, ties that feedback directly back to the git commit of that specific chapter or that specific section in the book. And, we've been sort of beta testing that on, a interactive quiz feature on realpython.com as well. So you can take these, like, interactive coding quizzes, and they're either multiple choice or sometimes you have to write a little bit of code to make it, through 1 of those quizzes and you get a score at the end. So it's a really great way for people to check their learning progress and also to surface the areas that they should focus on. And so there as well, you can comment on each question individually. It kind of feeds it back into into our, GitHub, and we can, you know, look at directly look at what people have feedback on. But that's that's more a mechanical thing, I guess, or like a little little bit of tool support. But in the widest sense, I would say, yeah, a lot of email and,
[00:41:21] Unknown:
and Twitter. And so in addition to your work with creating this content and curating it and filtering it, You've also built a number of different product offerings. So I'm wondering if you can discuss some of the process that you have for identifying relevant opportunities and then creating and marketing these different projects and products.
[00:41:45] Unknown:
Sure. Yeah. So we offer a couple of, paid training books and courses that are specific to to Python, both on realpython.com and, my my personal website. And then also, you know, some of it is on on Amazon as well. You can you can buy it in a bookstore, like the Python Tricks book. And, we actually have a a book project coming up for, that we'll publish via Real Python, that I'm super pumped about. It's called Python Basics, A Practical Introduction to Python 3. And, it's based on the existing real Python course, but we're updating it to, Python 37. We're making a ton of changes in there. It has completely revamped exercises, and I'm super, super excited to hopefully release that within, the next couple of months, let's say. I think we'll do an early access a little bit before then. But, that's gonna be a book for people who wanna get into Python, Python 3 specifically, and, they wanna know everything they need to be dangerous with Python, but maybe not have, you know, a sort of a dry reference. But, we're gonna make it very practical. It's very engaging. And, the early feedback that we've received is really, really encouraging. So I'm I'm really pumped about that. And, I'm in general, you know, with this question, I am the most excited about books. I think, again, maybe because of my personal history, how I got into programming, I would say that books had the biggest influence on me as as a programmer. So I'm really pumped about them as a medium. I guess some people were thinking or maybe still are thinking that they're under on their way out. You can just watch, you know, videos or go to YouTube or something like that. But I think there's something something really great about learning things from a book because it can go at your own pace. You can, you know, read fast or slow. You can reread things. You can scribble on the margins. You can take notes. And, so I'm I'm just really stoked about that as a medium. And I think we also have a broad reach, with an audience that loves reading about programming or loves reading programming tutorials. And so I guess your question was also about how do you figure out what's what's an opportunity there? Or like what's, how how do you figure out when to create a product?
How how do you go about it? I think 1 way you can do it is to just follow your passion. I think that's what I did with the my Python Tricks book where, you know, it's been sort of like a personal dream or goal of mine to write a programming book. And, I didn't really know if this was gonna resonate with anyone. I think at least initially that gets you started. That gets you working. But then really quickly, you wanna get it out to the world in an early version to kinda confirm or, to get some some real world feedback. And I think the best way to do that is by starting to sell an early access version. Because if you give something away for free, I think it has 2 effects that are detrimental to both the the creator and also the consumer of that content. I think for the creator, you know, if you give something away for free, it's very easy for people say, like, oh, yeah. This is great. You know, I loved it. And, like, they maybe they never even took a look at it. And and it has they don't really assign any value to to that thing because they got it for free. Now if you charge a little bit of money, there's an exchange of value and, at least supposedly. Right? And if that's lopsided, you're gonna get that feedback. People are gonna ask for their money back or they're gonna, you know, they're gonna, they're gonna talk to you and tell you that they were happy with it or they were not happy with it. This is how you could potentially improve it. And it also has that effect that I think as a as a consumer off of tutorials or things that that you paid for, it's actually a pretty big motivator. I think there's, like, psychological research that confirms that. It's a really big motivator for people to actually follow through in learning stuff. And I've I've had that same effect in my life, you know, where I got some coaching or I got, I I purchased a course or something. And, just by the fact that I I paid for that content, I felt like, okay. I better make this work. You know, I better I better get at least as much value out of this, out of this information. And so, I think for for me now personally, obviously, I think with real Python, we're in a really good spot in just in terms of seeing, like, what what articles do people like to read. That's probably an opportunity to do, you know, a deeper dive and do some sort of book or course project on that. So some of it is is totally data driven.
Again, lot a lot of it is is gut feeling driven, but we always wanna quickly confirm that hunch and get more data on it by by testing things out. And so I think that's actually a fantastic way to do it in today's world because, you know, you can go out there and and you can test things out and you can quickly get back that data And you do you do not have to go through a big gatekeeper or, you know, write a full book for for a year and then maybe have it fall totally flat. And, that's that's actually pretty awesome, and I don't think we've had that ability as content creators for for too long. You know? Now there's all kinds of stats. You can see what resonates with people, and I certainly take that into into account. I mean, it'd be totally stupid not to. And what are your plans for the future growth and development of your media empire? Do you have any new takeovers in the works that people should be keeping an eye out for? Any,
[00:46:56] Unknown:
new additions to your growing suite of brands and domains that you're responsible for?
[00:47:03] Unknown:
The the media empire. Okay. That's a that's an interesting question. I mean, I think with, when I look at what what I do, like, for me, it's a very, like, I wanna say organic process. Like, I don't I don't have, like, the big master plan. Right? Like, this is where this is all gonna go. I mean, I hope Python is gonna be around for a really long time, obviously. But, I think where where I'm at, like, personally right now, it's I'm just coming out of a big, like, growth spurt phase, if you will, with, Pycoders Weekly. You know, it's just been heads down, writing a lot of tooling to do the curation and, the the ranking of content and the sharing and, also hosting, for that site and things like the archive that I mentioned, all of that stuff. And so, I've just been just been really heads down focused on that, you know, coding, coding every day for that particular project.
And I find that after I go through a phase like that, I always need to, like, refocus, you know, consolidate and and, also polish what's already there. So, as far as that goes, I think I think for me, the focus now is really on, on real Python and the Pycoders weekly newsletter and our upcoming book project and, doing everything I can to give, the Python community or our readers, a really great way to to improve their skills and and to have fun doing that. And so I don't think like, I don't I don't see any, like, big acquisitions on the line. I mean but you know, you you never know what happens. Let let me know if you if you wanna get rid of your podcast. No. Just kidding.
But, you know, I think we can do much more for the Python community, and it doesn't necessarily involve, like, starting a new site. But I think, you know, we've got a lot of the pieces in place there. And I'm stoked about the book project that's coming out. And so I think that could be a potential avenue for us moving forward to really double down on the, on the publishing side there. And it's also something that I'm personally, like, really I'm passionate about and really pumped about. So, it if anything, I think it'll be more stuff that that comes from within rather than, by adding more pieces to the to the puzzle. And
[00:49:17] Unknown:
as someone who is so deeply involved in the conversations and topics that are being discussed in and around Python. I'm wondering what you see as being the biggest opportunities and threats for the language and its community in the coming years. Well, I would say,
[00:49:34] Unknown:
like, in my mind, there there's some like, a few pretty clear, technical weak points in the Python ecosystem. You know, like, I wanna preface preface all of that by saying, like, you know, I I love Python. It's, you know, it's it's how I make a living. And so, like, I'm on your side, right, like, if you're listening to this. But I think there's some there's, like, 2 pretty clear weak weak points, I think, in in the Python ecosystem right now. 1 is, GUI applications, and and I would lump in with that also, you know, the bundling and deployment of applications. I mean, how awesome would it be if I could just, you know, hit the return key here on on my computer, and it would bundle up an application, like a self contained application or installer or something that I could distribute and then install on Linux, Windows, and Mac, and it would just run there.
I think I think that would be amazing, and it would really help a lot of people with, their use cases. And, today, we don't have that. It seems like there's a lot of development in that space right now, so I'm I'm excited about that. But I think that's definitely something where, we we can't compete with a lot of the other things that are going on in that space. And when when you're thinking about mobile apps too, I think that's also not an area where we're doing really well right now. Performance is an issue for some use cases. I mean, at the end of the day, there's multiple programming languages and, you know, you can always fork out, performance intent intensive stuff to, things like a c library or, you know, maybe like a Rust library in the future or something like that. So I'm not too concerned about that. But, obviously, it would be nice to to sort of have Python as, like, a no brainer language that people love to work with, and it it shines in any use case that you could throw at it. I don't think these are necessarily, like, huge threats to Python, but, you know, that's that's how you start losing. Like, you wanna be on top of things, and you wanna make sure that, you you're on top of the, the currents there in in software development. You know, what's where's the world moving to, and how how can we make Python better so that it is, it is the best tool for that particular use case that's coming up.
Then, I guess the other thing, what's a threat to a language's community? So 1 thing I wanna say here is that at the end of the day, all that a programming language is or or has is its community. Like, if we if we didn't have a Python community and if we didn't have people who are at an individual level, you know, if if if we didn't have people like, if you're listening to the show right now, like, you're probably really passionate about Python. And, you know, if we if we didn't have people like you, then, nobody would give a damn about Python. And I think that's something we always have to keep in mind where the language is really the community. And I think Python has an amazing community. I mean, I it's you know, I've been after working with other technologies, I've been to, a ton of conferences, and I just always felt really at home at a Python conference, and I just always had a good time there. And so I think that is, like, the biggest advantage that Python has because it will, it will lead to more growth, and it will it will enable people to do useful things with Python.
And so, I I think that that's just like a key point for me. You know, we're we gotta think about this, like, code is to me, code is communication. And whatever language you use at the end of the day, in, like, 90% of the cases, I I feel like it's it's not well, let's just say it's not all up to the technical merits and the syntax of a language. Sure. That plays a big role. But, you know, after a certain point because there's there's thousands, like, maybe, like, hundreds of thousands of languages out there that you could just install right now in your computer and maybe see if you could get them to work. But really what makes all of this work in the industry and for developers is the community that we have. And so, I don't I can't really think of any specific threats to the Python community, but I think we also have to, you know, stay stay, stay aware of the fact that, it really all comes down to the community.
[00:53:36] Unknown:
And are there any other aspects of the work that you're doing in terms of creating and curating and discussing the content and topics around Python that we didn't cover yet, which you think we should discuss before we close out the show? Oh, man. I feel like we covered a lot of stuff.
[00:53:54] Unknown:
It's it's really, really interesting, though, to to talk about this and solidify some of my own thinking. No. Not not really. You know, I really appreciate it if, if you haven't heard of Real Python yet or the Pycoders weekly newsletter to check them both out. Let me know what you think about them. I'd be really interested in that as well. You can find us at, real python.comand@pypicoters.com. And, I think then then you're all set. You're gonna know what's going on in Python. Alright. Well,
[00:54:24] Unknown:
thank you for that. I'll have you, add your preferred contact information to the show notes for anybody who wants to get in touch with you or follow the work that you're up to. And so with that, I'll move us into the picks. And my pick this week, I'm going to shamelessly promote my other podcast, the data engineering podcast, which covers exactly what it sounds like. So that's topics around the storage, collection, governance, security, etcetera of data, and all of the different sort of big and small data technologies that are out there. So, if that's in any way interesting to you, I'd appreciate it if you check it out and give me any feedback. So with that, I'll pass it to you, Dan. Do you have any picks this week? So I've I've I've become a huge fan of,
[00:55:07] Unknown:
the black, the uncompromising code formatter of, for for Python code. It was I believe the project was started by by Lukas Lange, and, it's just an amazing tool. Like, yesterday, I I spent a bunch of time working on a project that I hadn't sort of upgraded or we hadn't updated the build process to to run black on the whole thing. And, it's actually like a pretty frustrating experience. And I only started using this, maybe, like, 8 weeks ago or so. And, it's just had a profound effect on how I write Python code. So basically what black does, it's a command line tool. You can integrate it with, editors like Sublime Text or Visual Studio Code, and it will automatically reformat your code to follow PEP 8. And, in cases where PEP 8 is ambiguous, it will make a decision for you. And, to ensure that you every time you run this, it's gonna come up with, like, 1 sort of preferred, formatting solution for your for your code. And, it it's just so great to be able to, you know, copy and paste a bunch of stuff in, run this command and it's formatted nicely.
And, it's also great for collaboration because you don't have to ever, like, argue or discuss any, sort of formatting change, and you can integrate it with your, CI pipeline and on your build build server so it will flag things that are not formatted correctly. And so you can make sure that your code base is a 100% formatted consistently, according to the rules of this tool. And, I just love what it does. And, it's it's really made, my coding life a lot easier, I feel like. And I don't really know how I how I wrote Python before I had that tool. No. I'm just kidding. But it's it's a really damn useful tool. Alright. Well, thank you very much for taking the time today to discuss the work that you've been doing in the Python community
[00:56:49] Unknown:
and in helping to shepherd the real Python and Pycoders weekly properties. So,
[00:56:56] Unknown:
it's been an interesting conversation, and I appreciate the time and effort you put into all of that. And I hope you enjoy the rest of your day. Cheers, Tobias. Yeah. Thanks for having me on the show, and, you know, keep up the great work with your podcast. I think you're doing a lot of great work for the Python community and, you know, having stuff like that around where where people can kind of integrate Python with their day and, you know, they go to the gym, maybe listen to a podcast or drive to work on their commute and listen to a show. I think that's just amazing, and it's kinda crazy what what world we live in today where we can do that. So, yeah. Thanks for all the the hard work, and thanks for inviting me.
Introduction and Sponsor Message
Guest Introduction: Dan Bader
Dan's Introduction to Python
Dan's Current Role and Responsibilities
Taking Over Real Python
Managing Pycoders Weekly
Synergies and Conflicts Between Projects
Monetization and Sponsorships
Staying Updated with Python Community
Fostering Engagement and Feedback
Creating and Marketing Products
Future Plans and Growth
Opportunities and Threats for Python
Closing Thoughts and Contact Information