Monitor performance issues & errors in your code

#448: Full-Time Open Source Devs Panel Transcript

Recorded on Monday, Jan 8, 2024.

00:21 Well on this episode I put together an amazing panel of guests who all have done exactly this

00:27 Turn their project into full-time work and even companies in some cases. We have Samuel Colvin Gina Huska Sebastian Ramirez

00:35 Charlie Marsh, Will McGugan and Eric Holscher on to share their stories. This is talk Python to me episode

00:42 448 recorded December 7th 2023, You Welcome to talk Python to me a weekly podcast on Python

01:03 This is your host Michael Kennedy Follow me on Mastodon where I'm @mkennedy and follow the podcast using @talkpython both on

01:12 fosstodon.org keep up with the show and listen to over seven years of past episodes at talkpython.FM

01:18 We've started streaming most of our episodes live on YouTube Subscribe to our YouTube channel over at talkpython.FM/youTube to get notified about upcoming shows and be part of that episode

01:29 This episode is sponsored by Basedash Basedash uses AI to build a dashboard for your database

01:37 Get a custom admin view in your Postgres Microsoft SQL Server, MySQL, Maria DB or Redshift database

01:45 Get started for free at talkpython.fm/base dash and it's brought to you by Sentry

01:51 Don't let those errors go unnoticed use century get started at talkpython.fm/sentry. Hello everyone

01:58 Charlie, Will, Eric, Sebastian, Gina and Samuel what a big group of people we have here today an awesome awesome group

02:05 Thanks for being here everyone. It's gonna be super fun to have you on the show

02:09 You know I know there's so many people out there that are dreaming of an open-source project or even working on open source and contributing to it

02:17 But it's something they squeeze in the last hour of their day and at some point all of you have made this

02:24 Amazing transition to where there's enough support There's enough interest in what you all built that becomes your full-time thing

02:31 Right, which is I know for many out there live in the dream. So you all are living the dream. I'm

02:36 Hopefully you feel that way But it's gonna be really great to kind of just explore your projects

02:42 How do you make that transition and you know what you're up to?

02:45 So we have Samuel Colvin on from Pydantic and he has the tightest schedule

02:52 He's squeezing us in on a far-flung trip work trip. So let's go to you first Samuel

02:58 Just you know, tell people a bit about who you are and what your project is to get started. Yeah, I'm Samuel

03:04 I maintain Pydantic which is a data validation library for Python that uses pipelinks

03:08 So those weird things you've seen after the colon in Python that mostly do nothing unless you run mypy or pywrite

03:15 Pydantic basically enforces them. Almost exactly a year ago I was I was sort of working on Pydantic full-time by then

03:22 but really spending my own money to do so and a big American VC got in touch and

03:27 Fast forward I raised some money and started a company Yeah, beginning of this year. I hired now 10 people and I'm actually as you mentioned

03:35 I'm in Istanbul at the moment with the whole team It turns out if you have a team with Americans, Iranians and Russians

03:41 That Istanbul is one of the few places that you can actually meet officially

03:45 So yeah, we're having a really fun week in Istanbul mostly working together and then going out for dinner

03:49 Which is where we are at the moment. I hope that's a good fix. Absolutely

03:53 And what a cool experience that you get to hang out with all these people talking about your project in Istanbul

04:00 I just had by the way, I just had I mean just think the other thing I would add is one of the best bits of it has been being able to hire

04:06 friends of mine from open source people who had I think all but two of the people here have

04:11 contributed to Pydantic before we started the company which is how I Yeah

04:14 hired the first I think six people and then a few more so one of the best bits has been hiring other people to come

04:20 and work on open source with me while still being able to like, yeah, pay them properly. It's been really fun

04:25 Yeah, awesome. I see a lot of people shaking their head out there as well

04:28 I just coincidentally I recently had Sydney Runkle on Who works with you and she's such an inspiration that show is not out yet

04:37 But has already been done yet through the weird time shifting of podcasting

04:41 So it'll be out before this but it's not out yet. So anyway, very very cool team you got there

04:46 I guess we'll go around the order of the the video Pretty bunch pictures here. So Charlie, you're up next

04:53 Hey, so I'm Charlie I am the author of Ruff which is a Python linter code formatter and code transformation tool written in rust

05:04 I started started working on Ruff about a year ago. Like maybe like October last year similar time frame to Samuel

05:11 Yeah, yeah, and I worked on it full-time for a while Similar to Samuel although probably not for quite quite as long

05:17 I was working on it full-time without any funding and then Similarly, I started a company around around Ruff and really around the vision of trying to build high-performance Python tools

05:27 So take some of the things that make Ruff nice to use and popular and well liked and try to apply those

05:33 Principles to other parts of the the Python toolchain. Yeah, we're a team of six and

05:38 We're fully remote. So no two of us live in the same in the same place I guess a couple of us live in the same country, but

05:46 Those those live in different countries. Yeah, and we span basically us central time - I don't know

05:52 What we have one we have one person in in India and one person in Minneapolis

05:57 And that kind of stretches like the full-time says the team that's a good stretch. It's good stretch there

06:02 Well, yeah, absolutely. Congratulations on Ruff. It is really really taken off and I know the guy right below you and

06:10 Where's Sebastian was I saw him saying nice things about it with FastAPI and so on. Yeah. Yeah, I know. Thanks a lot

06:17 It's just funny because I think I was saying before I started recording I think when I came on talk Python last time

06:23 I think that might have been my first time ever on a podcast So and it was to talk about ruff and so I was like, oh wow people care about what I'm doing

06:28 That's super cool and pydantic and FastAPI were some of the earliest Adopters that people had heard of so they were like very early on in the in the life cycle and helped a lot with

06:40 You know getting people to see ruff and sort of care about ruff and and know that smart people are using it

06:46 That's awesome. Well when you visit talk Python or the courses website or others, it's it's all ruff fide

06:54 I don't know what the the adjective of ruff is but it's been ruff It's been ruffed up and it works great it's really amazing that makes the code sound really bad

07:05 It's like saying it's sick like oh that was a sick trick they did it mean

07:11 Yeah, that code is a rough man. All right. Well, it's your code rough. Who are you? It's got some rough edges certainly

07:18 Welcome. Yeah, I'm well I'm probably best known for a library called rich and rich is a library for writing

07:25 Formatted content in terminal and you can write put tables and progress bars and syntax how I did code all sorts of things

07:32 And then that became quite popular in the Python the world I think there was a there was a need for it and two years ago. I founded text allies

07:40 Which the company which builds on rich to produce a library called textualize which allows you to build user interfaces

07:48 Inside terminal and these are kind of more like web interfaces and less like courses application

07:54 Yeah, I was just think almost like flexbox you can dock stuff to the side and that's part of a UI

07:59 But it's it's pretty amazing what you've built. Yeah, I think it's pushed the terminal far beyond what many people thought the terminal should be doing

08:06 It's been very cool. It's been a process of discovery. It's kind of strange

08:09 You've got technology that's been around for for decades and still discovering things like they can do which and people haven't tried before

08:17 So yeah, it's been a lot of fun and it's been great to work with a small team of developers

08:22 We've got a small core here in Edinburgh Scotland and we got one developer in Portugal

08:26 So yeah, it's it's it's been great and I love the reception and love what people are building with it. Yeah, it's so many people are

08:34 Interested in using rich and there's a ton of plugins, right?

08:38 There's like rich click and there's py test rich and all these things like well, whatever we're doing

08:43 It should also have what you built, you know, yeah, I love to see that I love to see the ecosystem building our our adjective is richified which is not richified. Okay

08:51 Yeah, just you know, that's rich. My code is rich. Okay, richified. Got it. I love it

08:57 We all have adjectives. We got to put on things. Yeah, I'm a big fan of your your you and your team's work

09:02 By the way, I mean, I'm sure you hear all the time that you built awesome stuff. Cheers. Appreciate it

09:07 Yeah, indeed. We all are Eric. Welcome. You and I are Coming in somewhat local here out of Portland not Istanbul. I'm actually out in Bend at the moment

09:15 So yeah, I absolutely love Ben's lots of mountains and whatnot But yeah, so my background mariculture folks probably know me from kind of the read the docs ecosystem

09:24 I feel like I've been doing this for a while compared to everyone else here

09:27 The project actually started in 2010, which is kind of amazing and then we actually built the started the company around it in 2014

09:34 So coming up next year, that'll be 10 years. And so yeah, and we're all bootstrapped. So we haven't done any venture capital

09:40 It's all been kind of just build it built up the open source and then kind of turned it into a company on top

09:44 Of that we kind of have a business model of doing paid for private hosting

09:48 You know companies as well as advertising on open source And we spun out a kind of a separate business called ethical ads that we built kind of to basically make you know

09:56 Better advertising on the internet not doing any of the creepy tracking stuff

10:00 So read the docs is so critical to the open source space not just Python, but especially Python. Yeah

10:06 Yeah, I mean so awesome work on that and then just you know, good job on the ad stuff as well

10:10 It's the tendency of the whole ad space is to be super creepy and just like how much can we resell and how much can?

10:18 We buy to mix in to like create these shadow profiles and it's not a good social trend

10:23 It's it's not good for people and it's not really necessary Right, like if I want to you know

10:27 I've sponsored ads on read the docs or had run ads on read the docs before and we had a flask course and let's just

10:33 you know run that ad on Flask instead of like let's see we can track somebody through Instagram over to Facebook who knew

10:40 We call it a newspaper advertising and it's been really cool with the advances of ML like the content targeting has gotten pretty good

10:48 Right, so it it's definitely a lot easier technically these days to to kind of do that content matching

10:53 But yeah, I think in terms of the kind of open source Maybe the way that I'm a little different than other folks here is we're actually running something more akin to a service

10:59 So read the docs all the code is open source, but a lot of the usage is open source projects using our hosted service

11:04 We do obviously ship a lot of code Probably our Sphinx theme is is probably the most kind of well-known

11:09 Actual software that people are running a little bit similar to the folks here the kind of sidebar on the left and and yeah

11:15 So I think that's kind of the background is yeah, we have a little bit of everything

11:18 But yeah, it's a little more akin to something like a sass app I would say but the code is all open source

11:22 We do get a contribution in that way as well. Yeah, awesome And you know sounds a little similar to what textualize is working towards as well hosting

11:30 I mean, it's more hosting people's apps then Hosting people's docs but not terribly different paying for services is a classic open source monetization strategy, right?

11:38 Like you have some way to kind of build the monetization on top So yeah, it's like what you build is great, but it's kind of hard for me to run

11:44 Could you just do that? Like yeah, sure we can do that Sebastian always good to see you. Welcome back

11:48 Thank you very much for having me. Hello everyone. So I was in Ramirez or the envelope. I created this

11:54 Little tool for building web API that is called FastAPI and it has been growing quite a bit people have lighted

12:01 Fortunately and like yeah, that's that's it. I'm probably the only one that hasn't built a company here. I guess

12:08 Okay There are two of us nice I wanna hear that. Okay So this year I have been able to work full-time on open source because Sequoia capital the VC firm started this open source

12:21 Fellowship and I am the first fellow so I am kind of the test trial of like the program

12:27 So I get you know, like just to work full-time on open source and that's how I've been able to just yeah

12:32 It is have one job stuff in FastAPI and the ecosystem like the other libraries FastAPI

12:36 SQL model type and a couple of other things. But yeah, that's pretty much it. Yeah, awesome

12:42 Well FastAPI is definitely the poster child for modern Python on the web, you know and Samuel's work obviously is central to that as well

12:52 Right with Pydantic being such a core element there. So very awesome Yeah, like I mean FastAPI is built on top of like great open source tools and their needs

13:01 So Pydantic does all the data validation service in documentation and on the other side startlet does all the web parts

13:08 So yeah, it's like unlike, you know, like it's a very close. How do you call it like?

13:12 Close friendship between all the projects Pydantic starlit Unicon You become FastAPI like, you know

13:18 Like we actually know each by this point actually know each other in person like the current

13:23 container of started on you because works for the Pydantic company Yeah, I mean he's like the top FastAPI experts right now like, you know, like it's it's a it's very nice because helps the

13:34 Dynamo the dynamism of like yes, absolutely building stuff. It's great Yeah, I imagine a lot of people don't realize the interconnections between these different projects that are at play here

13:46 Yeah, it's definitely super fun. Absolutely And then it's worth saying we in Pydantic use FastAPI as well as contributing to the libraries that don't it

13:53 We also use FastAPI for the services that we're building So we're like consumers both directly and indirectly of the things that we maintain in open source

14:00 Awesome chat quite often special. So it's all it's turtles all the way down basically exactly

14:05 This portion of talk Python me is brought to you by Basedash

14:09 Basedash is the custom admin panel for your database that you don't have to build

14:15 We've all dealt with endless ad hoc requests for data access your support team wants user records your non-technical

14:23 Co-founder needs to see charts or your engineering team needs an easy way to share your SQL queries

14:28 These all sound like relatively simple tasks but between building an internal tool

14:33 Setting up an analytics product and then switching back and forth between that and your SQL client

14:38 You've lost so much time base - gives you that time back with base - you can instantly generate a

14:45 Visual UI for your database. All you have to do is connect your data source

14:50 It uses AI under the hood to generate the perfect admin panel for your data

14:54 Voila now anyone in your company has access to the data they need They're rolling out a ton of new features like the ability to create charts using only natural language

15:04 You're gonna get hours back in your day, and I promise you won't want to build an internal tool ever again

15:11 Check them out by visiting talkpython.fm/basedash that's talkpython.fm

15:17 basedash the link is in your podcast player show notes basedash is free for small teams

15:23 So give it a try. You've got nothing to lose. Thank you to basedash for supporting the podcast

15:28 Gina also awesome to have you back. They'll come in very happy to be back. That's really really great to be here now

15:35 I think for the second time so and assert if we call fight invites So yeah, my name is Gina Haubge and I'm probably yeah

15:42 I don't know if I'm if I'm that well known throughout the Python community

15:46 But I'm quite well known in the 3d printing community for having created octoprint

15:50 which is the snappy web interface for you 3d printer and The server part of that is all written in Python and I started a project back in 2012 when I got my first 3d printer

16:00 As your regular pet project on the side after hours vacation blah blah blah in

16:05 2014 I got hired by a 3d printing company to work on it full-time and in

16:11 2016 that company ran out of money and I suddenly found myself with a full-fledged full-grown open source project and no funding

16:19 Whatsoever, so I tried this whole crowdfunding stuff with patreon and that is pretty much how I've been working ever since so I'm

16:27 Self-employed under German law. I'm a freelancer and Yeah, all my income comes from people who just sent me money for working on octoprint

16:38 And did you say since 2016 since 2016? Yeah. Okay, cool So full-time since 2014 and self-employed and crowdfunded since 2016, so it's been a while. That's awesome

16:49 I also went full-time on all my stuff here at 2016, although it's technically not open source

16:55 It talks a whole lot about open source stuff. So totally awesome. It that's it's been a while. Congratulations. Thank you

17:00 I'm still surprised it works to be honest. I'm waiting every day that it stops working and yeah

17:05 Actually this year it came a bit close and then I put out like a blog post basically along the lines of you know

17:10 Like the income is going this but the usage numbers are going that so something is a mishear and we need to talk and then

17:16 The community rallied and stuff fixed itself again. So that is pretty amazing. That's really awesome. Congratulations

17:23 It's easy for people just go. Oh, it's free And there's some people supporting it and just kind of assume that things are taken care of it. Yeah. Yeah, really good. Really good

17:32 Yeah, you have a ton of supporters on GitHub sponsors as well, right actually after the fight over the years and in the beginning it was only patreon and paypal and then I

17:41 started adding new payment platforms and options because people prefer to be able to use the stuff that they know and some people don't like patreon some people don't like on what don't know

17:50 It's up sponsors and stuff And so you just give them the options to choose whatever they feel comfortable with and this increases the likelihood that they actually

17:58 Will go through with throwing something in your head. So to speak. Yeah, at least that's my feeling. I don't know

18:03 I think the github sponsors has been really positive for open source tickets

18:08 It's made it pretty easy to just check a box They already have your credit card potentially and you just want to give a little support instead of you know

18:14 One time PayPal donation here that you forget about after once and and all that before we move on here

18:20 There's a funny comment nice comment out and Kanishka says The this group look at all of you you guys are the Avengers of Python open source, right?

18:29 Which is kind of like the superheroes. I love it. It's somewhat actually true. It seems okay

18:34 So the next thing I want to ask is a little bit of an origin story Just what projects did you try and they didn't really get traction and then you know

18:42 How do you think that your project got traction here? And I know Samuel you might vanish any minute. So you're next

18:47 You're up first on this one. That's a really thing. I feel a number of things about this also

18:51 I started something last last week I ever saw some Friday that has got more stars over the last three days or I guess week now as

18:59 The first project I started Arq has over I think coming up on six years So I mean that's front-end and front-end gets a lot more attractions and then like queuing and RPC does but yeah

19:12 I don't know how like obviously there were some things I played with back then and then it took off

19:16 But yeah, it was this like I think I was the right time right place for Python

19:20 They don't have been around thePython for a long time But back in 2017 when I started I'd answer it

19:24 Their usage was going really fast and I think there were lots of people I read you found it kind of frustrating that they were

19:29 There anything so yeah, I think being the right time right place was super valuable for me and obviously

19:35 Like great projects like FastAPI adopting adopting financing. It made a big difference, but I don't know

19:41 What's weird if you look at the download chart?

19:43 It's like this is actually quite at the beginning of 20 21 So then we had like five million downloads a month and since then has been kind of almost exactly linear growth to now

19:53 125 million down this month something weird happened in 2021 Longer after the project started. I don't know. Yeah, I think it was right place right time

20:01 And that's frustration was the starting point on that. No, I'm gonna have to rush guys

20:06 But it's great to see everyone and I'm sure I mean you all in the conference in bye-bye. Thanks for dropping in

20:10 Good to see ya. All right, Charlie keep going around the circle here. Just it so I don't know

20:15 Yeah, you know, it's interesting because I like this ruff is really my first time

20:21 Being a maintainer like publishing open really like I've been a consumer of open source, right for my whole career

20:28 But I was never really a I guess in the creator or a publisher or a maintainer of open source, you know around the time

20:35 That I started working on rough I was working on like a couple different projects and they all I was kind of trying to figure out what I wanted to do

20:41 Next I'd left my job recently and and rough was kind of motivated by a lot of the experiences

20:46 I had at my job where I was like maintaining a large Python code base Did you leave your job with the intent of going to work on ruff?

20:51 Are we just like I'm gonna leave and then I'm gonna figure something out and kind of like well

20:56 What is the process that I left my job with the intent of starting a company?

20:59 But I did not think it would be ruff and ruff was like this Distracting side project that I was working on while I was like I was working with a friend and we were like

21:07 Trying to figure out like the Venn diagram of interests of like what should we what are we willing to work on full-time together?

21:14 What makes sense given like our interests and and then you know my free time

21:17 I was like, I just want to work on developer tools and like I worked on I built I built ruff

21:22 I started building ruff. I worked on like, you know, we're done a lot of different

21:26 Oh, not a lot. But like I did we're gonna couple different projects I did like a sort of CI CD thing where you like write docker files and like

21:34 CI files in TypeScript and they like transpiled down and I was I was like

21:38 I think that has a lot of cool ideas. I worked on like it was pretty early in a lot of the LLM stuff

21:44 I worked on like a code base wide Refactoring tool where you like give it examples of like before and after and that tries to find example

21:51 It was like a copilot for your entire code base kind of it didn't work that well like that scale

21:55 But it was like a cool idea. So I was like working on the stuff. There's all open source

21:58 That maybe could have been a timing thing like maybe today that would be all the all the

22:02 It's also like and yeah, it's also an effort thing I guess like I I put a lot more into rough and it was interesting because I kept viewing ruff is like, you know

22:12 It was probably open source by at that point I don't think I had launched like launched it and I kept viewing it as like like I said like a little bit of a

22:19 distraction and my friend was like, you know I think you should really like push to like

22:23 Release this because like if you think it's like interesting then like other people will probably think it's interesting and he was the person

22:29 that really like Motivated me to actually like see it through to doing the release and then I did the release and like a lot of people were

22:36 It were actually interested in it so that kind of gave me like the energy to

22:39 like really start working on full-time and just kind of see where see where it went and it was really like projects like

22:44 Pydantic and like Sebastian started like commenting on issues and stuff and I was like wow like real

22:50 Serious projects are looking at this like crazy tool and let me just see I'm just gonna do whatever it takes to make it like

22:56 A feasible choice and just started like cranking through like all the issues and all the things that we were missing

23:00 It escalated pretty quickly. I think did it surprise you? Oh, yes. Yes, absolutely

23:05 I was convinced that I had Faced like this problem around tooling as like our code base got large at my last company and that there was an opportunity to like build

23:15 Like better more performant tooling. I genuinely wasn't sure like how widely that message would resonate with people

23:21 And so I know it's like a little bit of luck, right?

23:24 Like sometimes you work on great projects and then like they go nowhere and like just no one happens to see it

23:29 And then sometimes you work on a good thing and like it does go somewhere

23:31 And so there are certain things that are within your control certain things that aren't I feel like I feel like we did I did

23:36 A good job of like communicating the project and like why it was interesting and why it was exciting

23:41 But I also feel like I got a little bit lucky that it just like gravitated towards the right people and got attention the right

23:46 Ways sure also maybe that black had existed which is a little ironic because black kind of solves a real similar problem

23:52 But like people were okay, we embrace the idea of the thing that rough does really well

23:57 You know, you just convince them to use ruff in that sense Yeah, I mean we have a little bit I mean it gets back to this like we have a little bit of like a

24:03 Like a second mover advantage, right?

24:06 Really exactly a lot of existing tools that people use already and like a lot of those practices

24:11 like the idea of using a format or the idea of running code mods like the idea of using a linter and like the knowledge of

24:17 Like what kinds of rules are valuable and like what kinds of analysis we can do like all this have existed

24:23 And that was part of part of the story really was I was like these tools are great and I get a lot of value

24:28 Out of them, but I want them to be like easier and faster. And so yeah, there's definitely a strong timing thing

24:34 I think like I think rust - this is maybe like a little bit more specific to what we're doing

24:38 but like, you know I think like the intersection between Python and rust has or the I guess the

24:43 Dinner operability between them and sort of the ecosystem around it has just grown a lot

24:48 I mean still I would say like pretty early but it's like matured and grow a lot over the past few years

24:52 And so even just the fact that like at my last company we started to introduce rust and we started to like move some of our core systems into rust and and

25:00 Expose them over PyO3 like the fact that was existed and the fact that I was like exposed to that like that's all just

25:06 Like pure chance. Otherwise, I never would have thought to do this. Very cool. Well, congrats well deserved

25:11 Well, we're all doing that all using rough as we said is excellent. Well, which is awesome

25:16 How why do you think it took off? Did you try stuff before? What's the story?

25:20 I tried a lot of stuff before before github, you know coding has always been my hobby

25:25 You know I do it for work and come home and work on a hobby project and it just seemed natural to want to share it

25:31 free in git hub. I would just put stuff on my blog and get some feedback from it there

25:35 I quite enjoyed that and yeah, I have a number of open source projects pre rich had a BB code

25:41 Parsing library. I had a chess library. I had a web toolkit So yeah, when rich came along it was another happy project something to keep me entertained

25:51 Why why is this terminal so boring? Come on, see what we can do about that

25:54 You know, I'd always used the terminal and I always struggled when you've got a page of white text on black background

26:00 and you're trying to pick out an IP address from somewhere and You know, I'd always wished I wish I could just it would just format it and colorize it for me

26:08 I know this is possible, but it doesn't happen So then yeah, I just I started it and it came together quite well when I released it

26:15 It was like boom and the stars just started accumulating got lots of feedback

26:20 It was very exciting and I kept building on it. It was kind of like an issue driven development

26:26 So people would just ask for something. Oh, that's a good idea I go ahead and that and implement it and it grew from there and it became really large

26:34 I did actually prior to rich I had a library called Py file system And this is kind of like a wrapper to file systems

26:41 so you can have the same interface for your FTP server as a hard drive for a zip file s3 bucket and

26:47 That got some use in the community. It wasn't enormous But I thought taught me a lot about building open source, you know managing feedback

26:57 issues, etc so that was a great experience when I started working on on rich and

27:02 I I was very surprised actually how successful it became I remember the first time I realized that this is bigger than just a hobby project as when someone told me off for violating

27:12 Server I released a clear a clear breaking change because I thought and nobody's using that yet, but they were

27:19 So the next day I got told off quite appropriately and then I thought okay

27:24 I'll probably take this more seriously if people are using this in the day job

27:28 They can't just have someone who's just like throwing new bits of code and changing functionality

27:33 They had to I had to treat it like it was an actual my day job. Yeah well

27:38 Everyone on the call here probably has a little bit of nervousness about like if I break this

27:43 There are a lot of people that depend on this thing Yeah, and it's so different like it just changes so much like the early like when you're talking about the issue driven development thing

27:51 too I was like I just remember that phase of like rough where it was like anyone who cared all about the project

27:57 All I wanted to do is like make them happy Right. And I was like, oh wow

28:01 That seems like a cool idea like let's definitely do it and I'm just like, you know

28:05 It was the point in time where I could like fix the bug cut a release the same day

28:08 And then like their thing is fixed and then it's like, okay great now we have a relationship like thanks for using my thing

28:14 Like blah blah I just think like but that has changed so much right because then I went through those same experiences of like I

28:20 I ship a release with a breaking change. I didn't really document a lot of people get upset and then you realize okay

28:25 I actually have some more responsibility now. Yeah these days it's more like trying to find the balance between saying no to stuff that you then have to end up maintaining and not

28:36 like disappointing people too much because you say no or things like that and then trying to to keep this whole

28:43 Interaction with people nice even though you don't want to do stuff They they want you to do because you know, it's better for the project

28:50 This portion of Talk Python To Me has brought you by sentry, you know sentry for the air monitoring service

28:58 The one that we use right here at talk python, but this time I want to tell you about a new and free workshop

29:04 He mean the kraken managing a python mono repo with sentry joined salma alam

29:10 Nayor senior developer advocate at sentry and David Winterbottom head of engineering at kraken technologies

29:16 For an inside look into how he and his team develop deploy and maintain a rapidly evolving python mono repo with over four

29:24 million lines of code that powers the kraken utility platform In this workshop david will share how his department of 500 developers who deploy around 200 times a day

29:35 Use sentry to reduce noise prioritize issues and maintain code quality without relying on a dedicated q a team

29:42 You'll learn how to find and fix root causes of crashes ways to prioritize the most urgent crashes and errors

29:48 And tips to streamline your workflow join them for free on tuesday, february 27th

29:54 2024 at 2 a.m. Pacific time just visit talkpython.fm/Sentry-monorepo that link is in your podcast player show notes

30:03 2 a.m. Might be a little early here in the u.s But go ahead and sign up anyway, if you're a U.S listener because i'm sure they'll email you about a follow-up recording as well

30:12 Thank you to sentry for supporting this episode PR's are like cake or puppies as if it's a simple bug fix that's like cake. You'd like. Thank you

30:23 I enjoyed that cake then move on but some prs are like a puppy It's like perfect you like puppies, but you've got to feed them and clean up after them

30:32 Why am I staying in the rain with this puppy on like a friday night? How do I get here collecting the puppies poop?

30:37 Yes, exactly. Sometimes you say thank you, but I just can't I just can't look after another puppy right now

30:43 That's a difficult thing to come to terms with when the project gets a bit more mature because previously you're accepting all the puppies

30:48 but then you have to start saying no no to puppies and Which definitely got there because it accumulated do you hate puppies? Come on. That's a pretty hard stance

30:56 I'm, kind of a cat person to be honest with you But yeah, I mean you have to say no

31:01 Eventually. Yeah, I think this is where this is where plugins always kind of like to take the center stage, right?

31:07 You're like just oh that sounds like a great idea for you to maintain external to my library

31:11 That was exactly my approach to the whole situation. Yep. Here's a plugin api. Have fun

31:17 But also the probability of some little change breaking someone's code and like being considered a breaking change

31:24 Grows as the project grows in usage and like, you know Like at some point it's like almost any change will end up breaking someone in very unexpected ways

31:35 Because they are doing something really really weird, but you know, like someone is doing it

31:39 So like it it becomes more and more difficult to know like is this a breaking change or not?

31:44 Like no one should be using this variable here or this parameter but like, you know, there's someone out there doing that

31:51 So I feel defining what is actually a breaking change and what is what?

31:55 What is this trick? It's more difficult as things grow. Yeah, I don't know one of the things

32:01 I like that the django project did was kind of basically only things that are documented are supported

32:06 Basically, that was kind of the line they drew and I thought that was a pretty good pretty good way to to draw it

32:10 But yeah, you're always you know, that never actually works. That doesn't make people happy

32:13 It just gives you plausible deniability Don't yell at me. It's not my fault

32:18 I think adding a formal like versioning policy is one of the best things that we did because for a long time

32:24 Ruff was just we only used patch releases. So we got to like 0 0 like 285 or something

32:30 and we had basically no guarantees about what would or wouldn't change like across releases and

32:35 As the project got more and more popular like that started to cause more and more problems

32:40 and so zany someone on our team like when they joined one of the first few things they did was like create an actual

32:44 Formal versioning policy and we added like preview behavior So like you can opt similar that what block has kind of opt in to like breaking or more experimental changes

32:54 And so now we have like clear expectations around what it means to like bump a minor release, etc

32:58 Etc. And like that has made our lives a lot easier like actually having clear expectations around that that are communicated and respected

33:05 But it's the kind of thing that you just don't think about at all until at least I didn't

33:09 Ratchet configure Yeah, some people's code runs things like fast api or octa print or whatever

33:16 Your stuff rewrites people's code Yeah, but at least it doesn't run at runtime. I don't know. I actually think it's easier

33:23 Yeah Indeed. All right I finally talk about the plugins thing because like i've actually very intentionally taken the opposite approach which is we have like almost no public

33:32 api Because like the only public api is the cli and like we don't expose our api in any other way

33:39 And that's because like we know we're going to change like everything Internally like pretty dramatically and so we wanted to have like full control over that without having to worry about breaking people's stuff yet

33:48 But it's like it's starting to become more of a problem because more and more people want to use it as a library in like

33:53 Different ways, but it's it's sort of a counterintuitive way to like make our lives easier as maintainers was like not expose any public api

34:00 Apart from the cli. Yeah, very interesting. It's funny funny Sort of anecdote i'm a rewriting a lot of the documentation for sql model

34:08 Because I want to have examples right right now I have examples that are compatible with python 3.7 and above but actually 3.6 and above but I want to have

34:16 also the syntax for 3.9 and 3.10 in 3.10 You can have like the unions using the vertical bar and these things and I want to have examples for each one of those

34:25 So the approach I did was to write a script that will automatically Update each one of the files by calling rough as a soup process. So that's the api

34:34 And then like, you know, like I mean the process is like doing all that stuff but like yeah, it's like another

34:38 family of problems Right, that's an api before it's available. Yeah with

34:45 Right an api will be created exactly. I've heard this before as like hyrum's law, which is like with a sufficiently large number of users like any implementation detail

34:56 Become someone will eventually rely on an implementation detail like any arbitrary implementation

35:01 Someone is probably relying on that behavior, which is basically the behavior of the program is the api in the end, unfortunately

35:07 We'll find the underscore functions. You've tried to dissuade them from using and all the things, you know, eric

35:12 What's the the origin story for read the docs and what'd you try and how do you think it caught on?

35:17 Yeah, so I mean this was kind of way back in the day But yeah, I kind of got started writing django plugins, you know apropos to the conversation

35:25 You know I was working at the lawrence journal world that where django came from and it was kind of early in my career

35:31 And I was just kind of getting excited about open source and blogging And just basically built a few of these kind of testing related open source projects

35:38 And then that was kind of where I got started with open source And then basically it was the classic scratch scratch your own itch thing, right?

35:44 Like it's like I have a bunch of open source projects. I want to write documentation

35:47 How do I solve that problem and back in the day? That was a much harder problem to solve, right?

35:52 It was basically just like build a zip file and upload it to uh packages.python.org if folks remember that one

35:59 Or was it packages or whatever the docs there was a docs hosting on pypi basically

36:03 And yeah Basically just wanted to kind of build a better version of that that integrated with github

36:07 I feel like webhooks were like the cool new thing back in 2010, you know

36:11 and so that was really kind of the insight right?

36:14 It's like let's build this kind of like ci/cd workflow on top of webhooks

36:18 And actually did build a kind of a version of that the previous year around kind of like code quality stuff

36:23 So it actually ran kind of like a linter and built a website on commit and had a similar kind of workflow

36:28 Right where it like gave you a grade and did all this kind of stuff, which is like 2009

36:32 And yeah that that didn't really catch on at all but then I think read the docs just we built it and

36:37 Then I was using it for my own projects and I actually Had the need to kind of maintain it and keep it updated and then I think people just kind of

36:43 Kind of grew naturally, you know gave some conference talks that kind of stuff

36:46 But I think it just solved a problem that people had and that's always going to be the you know

36:50 The best way to to grow a thing. So yeah, absolutely. Awesome. What's read the docs written in? Is it django?

36:56 Yeah, it's all django and python, uh funny coincidence. I went to College in lawrence at the university of kansas. So oh nice

37:03 I was right there right at the the heart of django But I moved off to grad school like a couple years before all that happened. So I missed missed the excitement

37:13 I grew up in virginia and everyone's like you're going to kansas. You graduated school

37:16 Like what how are you going there? Like what everybody thought is the weirdest decision?

37:20 But yeah, like I really do think you know ending up in that python and django ecosystem has been pretty transformative to my to my life

37:26 So, you know worked out lawrence a pretty cool little town actually of all the places. Yeah

37:30 sebastian How do you come about this crazy idea to put types into our web apps, you know python that's dynamic

37:38 It doesn't have types. What are you doing? Yeah, I don't know so crazy it's so fun to see it said michael larson in the chat like they maintain our url d3 and the

37:47 security developer in resilience just like chatting along with us like he probably has had to deal so much stuff as us

37:56 just So like some of the first things that I did in open source were actually docker images for deploying flask

38:04 Because I was working with us and deploying flask was difficult And I needed to be able to combine nginx with uwisgi and like a bunch of things and like they all had their own

38:14 Custom configuration files and it was you know, like so difficult I didn't like doing that and then I just had to study how to do that stuff

38:22 And then after going through all that I wanted to save everyone else's time doing that. They were like well

38:28 Let's just put a docker image with this and a lot of documentation of how this docker image works and how it

38:33 How you can use it with some sensible defaults?

38:35 So, you know, it was just like a weird contraption that was it But it actually grew and like got like a few stars like a bunch of stars for me

38:43 It was a lot, you know, like a hundred stars. Oh my gosh, i'm an open source

38:47 And then like at some point I had like a thousand stars or something like that

38:51 I was so happy about that and at some point it was kind of the de facto standard for doing flask

38:56 Docker flask in doc that was the first thing that I did. I ended up with fast api

39:01 I was I was avoiding building fast api for a long while and I was trying all the all the frameworks modular tools

39:07 I I was convinced that there was something that would do the things that I wanted

39:11 I just had to find it and as I was trying different frameworks also in different languages. I was

39:16 Extending the list of things that I wanted to have and also a list of things that I wanted not to have for example

39:22 I didn't know that takes you farther and farther away from any exactly Having one that will take all the voices

39:28 So it was like ah But then I realized like I really like this thing of having types as in types because you get out of completion and inline errors

39:36 And this is so cool. It's so cool to be able to have this I want to have this in python and then python other type annotations and it's like this is great

39:43 How do I use them? There's no way to use them with the current frameworks

39:46 So at some point I actually found the right framework It was called api star by the same author of django rest framework. It was just missing some authentication stuff

39:55 I said like, okay i'm going to contribute to the stuff when I was about to jump into the code

40:00 He said I have to deprecate this I will go focus full on startlet and then he went to build something

40:06 This is don christie, which is super prolific. I'm an amazing open source person in general

40:11 And then at that point is when I said like, ah, I just have to try it. Let's just do it

40:15 So i'm just gonna try to build something that will be kind of like spiritual successor to

40:21 Api start built on top of startlet. So I was you know, like I was actually narrating all the learnings from flask

40:27 Django, django rest framework and all the ecosystem and just like bringing all those ideas together

40:32 At least that was my intention and then I wanted to have a bit of better type annotations

40:36 So I I saw that Pydantic was using standard type annotation So people don't have to learn this like, you know from fast api for special string or something like that

40:44 Just instead of that just use pure string So I wanted to have something based on standards

40:49 Like open api json schema and all the stuff and based on standard python and to have like the simplest syntax possible and to

40:56 You know, like give the best developer experience possible while you know

41:00 Like not adding like any any additional steps for developers to build something that by default will have all the best practices built in

41:07 That was the the intention and I was just like trying to solve it for the things that I was working on

41:12 I was supposed to be doing ai and machine learning and stuff But like I have to stop for a bit to solve apis. I got stuck in apis

41:20 Oh, I think you made a pretty decent choice it seems like fast api is doing all right. Yeah

41:26 Yeah, I just saw you much better than what I ever had expected. Yeah, I know congratulations

41:32 Well, it's also deserved but I also just saw an x I don't know a post on

41:38 X twitter, whatever you however you address these things where you said you showed a a graph where the number of

41:45 github stars for fast api just passed flask and you know I have a lot of respect for flask and the Flask team and david lord and all those folks

41:53 But you know awesome that your stuff has taken off so much. That's really cool. It's super cool

41:57 It's amazing and you know like flask was one of the big inspirations for fast api and i've been able to

42:02 To be at this point. It's crazy like yeah, I still can't Get over it. Yeah, super cool. Super cool to be able to build all this and to keep building more stuff

42:11 So yeah, super nice. Yeah one final Comment before we move on to octoprint

42:16 but one of the things I kind of see you doing in the world is you're like the combiner you're like, oh,

42:22 we've got this cool stuff with pydantic and Starlet and how could we combine it in this way to make this, you know and and swagger like similarly with sql model

42:31 You're like well pydantic is cool and but sql alchemy is kind of cool, but it could be more better

42:36 You know, like it'd be better. Right? So anyway, good job Like typer that is the library for building command line applications

42:42 You just click with the type annotations the same ideas from pydantic and now with you know

42:46 Like integrated building support for rich so like also picking will's work trying just just to put a bunch of things together

42:54 I'm, just you know, like i'm just making cocktails everywhere Yes, exactly

42:59 It's more than that, but there is a lot of value in combining things in a smart way and accessible. Yeah. Awesome

43:05 All right, gina you told us a little bit about the origin story But like what do you try before and then I have a follow-up question. I think it's unique to your project

43:12 I wouldn't necessarily say that I tried anything before because the whole thing was completely unintentional

43:17 I basically bought myself a 3d printer in late 2012 I wanted to be able to put it in my spare bathroom and monitor it from afar

43:25 Because back then this thing was tying up my pc You had to constantly have keep it connected so it could operate and that for hours and hours and it made noises and it produced

43:34 Fumes and I just wanted it out of my office and to be able to play games on my pc again instead of having it

43:40 Yeah, basically communicate constantly with a 3d printer and so I bought myself a raspberry pi and I was looking online for something to be able to just put on this pi and

43:50 Attach to the printer and throw a wi-fi dongle in because back then the pi didn't have wi-fi built in

43:54 And throw that in the spare bathroom, but there wasn't anything so over the course of my christmas break in 2012

44:01 I sat down and changed that and this is basically the origin story of octoprint

44:05 I just wanted to scratch my own itch. I wanted to put my printer in my spare bathroom

44:09 This is all and apparently a lot of people had the same problem because I just you know

44:14 Like how how we like to do these things we build something that we think might be interesting

44:19 We throw it up on github and go just like here go nuts Enjoy have fun with that and I suddenly started getting emails from all around the world like hey, I have this in this printer

44:28 Can you also make it work with that? And so this escalated and I went like oh someone is using it

44:34 Of course i'm going to add this support And of course i'm going to add this feature and it just grew and grew and grew and grew and apparently I just hit a nerve

44:42 So this was utterly unplanned this was never my intention at all and I just wanted to solve my own problem and

44:49 Have continued to solve my own problems and the problems of other people ever since

44:54 Before octoprint I actually was also quite active in a little project called doku wiki where I was

44:59 developing some plugins for that and I even did open source before I knew what open source was with some php scripts when I was 18 or so

45:08 That I threw up on my website. But yeah octoprint was Like it took over my life. It just was an accident a happy little accident. Maybe how do you decide?

45:18 Okay, this is a job for me rather than just a thing you worked on The thing is by 20

45:25 Mid 2013. I went to 80 on my regular day job I used to be a software architect slash consultant with big corporation java world all the enterprise stuff and

45:36 To to be able to dedicate one day per week fully to octoprint plus of course the weekends and the after hours and the vacations

45:42 And all of that and that still didn't suffice anymore by 2014 And I noticed that it was impacting my health. It was impacting my relationships and that was actually

45:53 Quite perfect timing really when this this company that hired me initially approached me and said hey

45:58 Do you want to maybe fly out to us and we'll chat?

46:00 And if you like all of that what we have to propose then we can just do that

46:04 And this is how it then continued to go from 2014 until 2016 And yeah, it was never my intention to become self-employed. I'm a quite risk averse person actually

46:15 So when this point came where I was like, okay either I Find a way to keep funding this or I have to really drop it because it was way too big by then to be kept

46:26 As a pet project without being utterly utterly unhealthy. Yeah, I decided to jump into the cold water and have been trying to keep up

46:33 At the surface ever since basically, so yeah, all of that really completely unplanned cool. What an adventure, huh? Indeed

46:41 Yeah, and the good thing is even if people don't understand what open sources or what code is I always have quite a topic

46:46 At parties so that is fun because yeah, like people give you money for something they can get for free. What?

46:53 Exactly. Yeah, if you're not familiar with open source, then it definitely is a weird

46:57 It was tricky to find a text consultant who understands the concept. So yeah, I can imagine. Oh, yeah, that's interesting

47:03 I'm sure. All right. I was very recently. I was like, what do you do? What is your day job?

47:09 I'm like, oh i'm a software developer. So you work for a company not really

47:14 Well, I build software that is free for others to use and who's paying you a company that pays money to companies to build companies

47:22 So you're building a company. No, it's actually, you know, like it was a long conversation. They got bored and later

47:27 This doesn't make any sense Yeah I've just taken to say i'm a software developer and I work

47:33 With 3d printers and then people usually stop asking questions because 3d printers are this mysterious thing that no one understands

47:40 Anyhow, usually at least and then yeah, unless they say oh 3d printers and then I say, yeah

47:45 Do you know 3d printers and they go? Yeah. Yeah, I have one and then I can say oh, do you know octoprint?

47:50 Yes. Oh, yeah, I made that and then oh, yeah, it's tricky to explain to people

47:54 I'm, sometimes not even sure my parents understand what I do. So i'm sure that my parents don't understand what I do

47:59 That's okay, i'm sure they're still proud of you anyway, it's fine. Yeah, mine might definitely are proud of me

48:06 I would like to just maybe getting a little short on time. You're coming up to the end of our avengers meeting

48:11 Let's close it out with this Go around one more time let y'all or maybe just as a group kind of chime in on this

48:16 Speaking to the people out there listening who want to start an open source project or want to contribute to open source or somehow

48:21 Kind of get involved in similar ways. What would you do different if you started now?

48:27 Many of you have worked on this for a long time You've had a lot of experience like if somebody said well the world is, you know

48:33 Somehow the memory has been erased from the fact that rough or rich or octet or whatever existed, you know

48:40 Just start over. What would you do different or or the same? I would use fast api

48:44 Yay good use of a time machine there Everybody like i've had multiple conversations over the years where people are like, why don't you use this library? I'm like, oh it didn't exist

48:53 Exactly. Yeah, this is the problem, right? Exactly when you actually have a plug-in system then swapping out stuff like that can become

49:01 Very tricky. Absolutely when I get asked what to work on what to study what to focus how to get into open source or like

49:08 Almost any of those questions. I always say that the the main advice I give is just to focus on a problem

49:14 That is important to you more than you know, like innovation market disruption or whatever

49:20 Just like focus on a problem that is actually important to you Hopefully that is important to others as well. And if it's not a problem that affects you directly

49:28 Hopefully it affects someone that is very close to you so you can get like a very tight feed

49:31 Feedback loop of what you are building and then try to solve it and then use that as the guide of what to do

49:38 What to learn what to focus on what to do in many cases is just learning a framework that all it's already there

49:44 You know, like why will I go and build a system to control 3d printers instead of just like learning how to use auto print

49:51 In many cases solving the problem is just like using the tool that is already there

49:55 But then in some cases you end up figuring out that there's no tool and you just have to build it. There's actually no

50:01 Linter and formatter that can be super fast so you can run it every time you just hit save

50:06 So then you just have to build it in Rust and like create rough or like, you know

50:10 Like there's always like this thing that you are trying to solve that is just not so there yet

50:16 And that is what gives you the best value and the best outcome in many cases

50:21 it can be just like, you know contributing to another open source project or

50:25 Building something new but the the thing is like for me is just like focusing on a problem that is important. That is what what?

50:31 What has worked for me at least good advice?

50:34 I would add to that that you really shouldn't try to You need to be really passionate about the thing as well, right?

50:39 It needs to be something that is really something you're into something that will

50:43 That you what will want to spend a lot of time on that is actually not your working hours and such because otherwise

50:50 The the whole jock until this becomes anything viable anything big enough to support you in any kind of way

50:57 Even if it's just being able to I don't know drink an additional coffee per week or something

51:01 That will be a quiet long slog and a lot of work and a lot of blood and sweat and tears

51:07 And so you really need to be into this so that you want to do that If you are just in that for the end goal of I don't know

51:13 Becoming rich through open source, which by the way would probably not work only when I go rich

51:19 then Then this will not work out You need to focus on the path to the goal and not the goal a lot of people try to

51:27 Reach for the end goal before they actually are willing to actually walk the path. I also get this along

51:33 I happen to be uh in the github star program and i've had a lot of people ask me

51:37 How do you become a github star and that is just the wrong question to ask?

51:40 That's just the same as it is. How do you become an open source maintainer of a popular project?

51:45 Like you you just have to do whatever you are interested in You have to do work and you have to be passionate about your work

51:52 And then maybe if you hit the right nerve, then that will happen and maybe it won't I think it's very interesting that

51:58 None of us had like a career path to where we are now. We didn't set out to be where we are now

52:04 It just feels like we were kind of followed our own intuition and it worked out

52:09 Which means it's very difficult when someone asks me. Well, how do you become an open source developer? How do you start a company?

52:14 It's like i'm not quite sure I can tell you my path to there Very hard for me to articulate to someone else how to get there

52:21 I think there's a lot of luck involved as well, right?

52:24 It's like you have to do all this stuff and then roll this dice if it gets a six then you can be successful

52:28 Yeah, there's an element of luck, but it's kind of like a luck you make for yourself

52:33 Yeah, and it might take you to somewhere else or it might not but as long as you're passionate about it and you enjoy it

52:38 Then great things will happen. I think well also will and charlie you both took some specific time

52:44 on your own money to really Level up what you're working on which is that's pretty brave, right?

52:48 Like not a lot of people would say i'm just gonna spend my savings to work on this project and see if I can make it

52:54 Go, so you've earned some of that through taking that chance and putting in that time and effort

52:59 I think for me that didn't last very long because for three months I was living on github sponsorship

53:03 VCs came along and then there was like cash and everything changed Your world changed and you had to learn a whole new set of skills. I'm sure

53:11 A job and responsibilities. I do feel really lucky that like I said This is my first time being a maintainer and like it was very clear to me quickly that like

53:19 For rough to have the pace of development and like the scope that it has it like had to be a full-time thing

53:25 and like that that was pretty obvious to me quickly and I just I have a lot of respect for people who've been maintainers for longer periods of time and in a way where it's not their

53:33 Full-time job or they have to do it on the side I think I haven't really been in that position

53:38 But it's already clear to me that that takes like a lot of dedication and commitment

53:42 So i'm just I feel very lucky that I get to work on open source full-time

53:46 I know it's not all entirely luck, right?

53:47 Like we were saying like you increase your luck surface area and then opportunities come your way

53:52 But like but I do think it's just a very fortunate position that like these kind of opportunities do exist

53:56 Yeah, because maintaining popular stuff is a lot. It's a lot. There are privileges that come with it 100%

54:01 But I mean, yeah, it's a ton. It's a it's a lot of work and a lot of stress

54:05 Yeah, a lot of responsibility. Well, and you don't necessarily have to start your own right away. I didn't have gray hair before this

54:11 You don't necessarily have to start your own either you could contribute to a really popular one and kind of get into the scene and you know, like eric that sounds a little bit like

54:17 Your story like you were in the django scene and then spun off from that what you guys are doing, right?

54:22 Yeah, definitely and you know part of an open source community and definitely kind of going to pycon and and just kind of being

54:28 Surrounded by those people because that was always the it's very lonely work just to have a an inbox of github issues and then no

54:34 inbox, thank yous you know and like going to conferences and that kind of stuff was really where you you feel the appreciation and you really kind of

54:41 Actually feel the the value that you're providing as well as just the the stress of the uh of the things you're breaking

54:47 So totally agree with that. Absolutely The conferences are great to really feel the appreciation rather than just the the requests

54:55 They'll say thank you and then they'll give you a bug report, but at least the thank you

55:01 I'm talking to you. There was this could I just show you this one thing we're doing that's not working, right?

55:05 Oh gosh, here we go an interesting observation for me has been that like a year ago

55:10 I didn't really know anyone in python open source Like at all and like I was a user of python in my day job every day

55:17 But like I was not interacting with and in a year. Yeah now like sebastian we've interacted a bunch

55:22 Like there's just a lot of people that i've come to know and think of as like friends

55:26 So I think they're really, you know, especially if you're interested in getting involved in like putting in work

55:30 I really don't think there are significant barriers and like you get out of it what you put in

55:36 So I think i've been very impressed with just how welcoming and friendly the community has been especially other maintainers

55:41 Yeah, absolutely Talked to a lot of people who show up at pycon and they're like I was really nervous to come here or I feel

55:46 Like it didn't fit in and they're you know, they just had such a great experience and I said well

55:50 Did you feel like out of that was my first pycon this year?

55:53 I'd never been to a fight. I'd never been to a python conference. And so I was like we did up at such an amazing party

55:58 Yeah, that's true I love the benihana, yeah That was interesting. All right guys. Well, I think we are

56:06 Pretty much out of time anyone want to have some final thoughts for listeners before we wrap it up go on build some cool stuff

56:12 Who's brave enough?

56:14 How come attainer today I think give cake not puppies. Let's leave it with that, huh?

56:19 All right, give cake no puppies and be really careful before you start a popular source project. It might take over your life

56:25 If you want this great, but if not, then yeah careful what you wish for you might get it exactly

56:30 Gina, sebastian, eric, will, Charlie. Thank you all for being on the show. This has been a ton of fun

56:36 Thank you very much for having us. I think it's an honor to be with these amazing people

56:41 Thank you for the invitation. I agree Honestly, I had a blast just like hearing everyone's stories because I hadn't heard any of this before so thanks

56:47 Thanks to everyone else. And thanks michael. Yeah, you bet bye all right. Bye

56:50 This has been another episode of talk python to me Thank you to our sponsors. Be sure to check out what they're offering. It really helps support the show

56:58 This episode is sponsored by basedash, basedash uses ai to build a dashboard for your database

57:06 Get a custom admin view in your postgres microsoft sql server mysql maria db or redshift database

57:14 Get started for free at talk python.fm/basedash. Take some stress out of your life get notified immediately about errors and performance issues in your web or mobile applications with sentry

57:26 Just visit talkpython.fm/sentry and get started for free and be sure to use the promo code talkpython all one word

57:35 Want to level up your python?

57:37 We have one of the largest catalogs of python video courses over at talk python

57:41 Our content ranges from true beginners to deeply advanced topics like memory and async and best of all

57:47 There's not a subscription in sight. Check it out for yourself at training.talkpython.fm

57:50 Be sure to subscribe to the show open your favorite podcast app and search for python

57:56 We should be right at the top You can also find the itunes feed at /itunes the google play feed at /play

58:03 And the direct rss feed at /rss on talkpython.fm We're live streaming most of our recordings these days if you want to be part of the show and have your comments featured on the

58:13 Air, be sure to subscribe to our youtube channel at talkpython.fm/youtube

58:18 This is your host michael kennedy. Thanks so much for listening. I really appreciate it now get out there and write some python code

58:25 So You [MUSIC PLAYING]

Back to show page
Talk Python's Mastodon Michael Kennedy's Mastodon