Pybites Podcast

#155 - Django, Open Source & Pycon Conferences, Paolo Melchiorre's Developer Odyssey

Julian Sequeira & Bob Belderbos

Join us as we journey through Django, open source, and PyCon conferences with special guest Paolo Melchiorre. 

We explore Django's evolution, the impact of open source, and the vibrant atmosphere of PyCons. 

Paolo shares his developer odyssey, offering personal insights and experiences from the tech world. Don't miss this insightful episode on the heart of Python development and community collaboration.

Chapters:
00:00 Podcast intro
00:47 Intro Paolo, how did you get into python and open source
03:47 What do you like about Django
05:34 Django and Pelican contributions
09:17 Getting into open source through Pycon sprints
10:31 Coaching Django girls and teaching
12:44 Your role / work at 20tab
15:33 Handling complex issues and problem solving
18:47 AI tools vs Stack Overflow (and articles)
19:47 Python / Django / web trends
21:27 Front-end and HTMX
22:37 Rust based tools
23:52 The importance of mindset for developers
26:02 Book recommendations
27:47 Pycon Italia shoutout and how to reach out
30:04 Wrap up

Links:
- Follow Paolo on Mastodon
- Check out his blog
- Connect with him in our community
- Pycon Italia

Books:
- Fluent Python
- Django by Example

Another part I found very useful was studying the tests of this software, because something you can find in the documentation, you can find in the test and in Django, for example, there are a lot of tests of every area and was very interesting learning from the part and trying also copying some tests and putting your project was very useful because you are using the same code and languages. Hello and welcome to the Pibytes podcast, where we talk about Python career and mindset. We're your hosts. I'm Julian Sequeira. And I am Bob Eldebos. If you're looking to improve your python, your career, and learn the mindset for success, this is the podcast for you. Let's get started. Welcome Paulo, to the Pywytes podcast. How are you doing? I'm fine, thanks for having me. Yeah, excited to have you on the podcast finally. We have been interfacing, talking for a while on social media and yeah, you do a lot of good stuff, stuff in the open source space and with Django. So today I wanted to pick your brain and learn about your experiences and see what you're doing and what's coming in the Python ecosystem and all that. And yeah, as always, if you can kick it off with a short introduction of who you are for the audience. And yeah, share our win of the week. I'm a software engineer. I graduated in the University of Bologna in Italy and Python became developer. Since then I'm also a Django contributor. I'm a member of the PSF, the Django Software Foundation, Python Italia, and I help organizing Python Python Italia since some years. I founded the local community Python Pescara in my hometown. I also have been a coach for Jungle girls and I organized also one of the workshop and I like speaking in conferences and being connected with community also on social media. Recently more mastodon. And the winner of the week is related with conference because I sent to the proposal for Django Con Europe 2024 and Europeython 2024 just the day before they closed the call for proposal. So it's a win. I added it. Nice. Is that one in Vigo, Spain? Yeah, yeah. Django con Europe will be in Vigo in June and Europliden will be in Prague in July. Nice. That's a lot you have going. So yeah, that's awesome. How did you get into Python and open source? Then? I started using some open source software since university, something related, Linux and similar stuff. I graduated in software engineer and my thesis was about the free software licensing and Cobb left this mechanism. After graduating I started working with Zooplume they are a framework based on Python. And I started with Python two 0.4 a long time ago. And then I started joining the community about Zoo Pamplon in Europe and attended some conferences. But I met for the first time Django at Europython 2011. I discovered it for the first time, Django 1.3. And since then I started studying and using at work and trying to contribute more and being more involved. And until now I still in the community and try to be part contribute back and being connected with other passionates like me in the python. Yeah, it goes back a long time. 2.4 didn't even have context managers I think till 2.5. Yeah. So you saw Django 2.11 in 2011, and it sounds like love on first sight. So what do you especially like about Django? Yeah, I like the fact that it is very well organized, you have butter include, you can do everything you need to start from scratch and building something you need in a very short time, because a lot of internal modules are ready to be used. Also for professional products. I tried different type of framework, smaller too. But at the end for a lot of my project, the final point I needed something for the session, something for the login, something for interact with database, something like new Orm. So at the end of the day, every time I choose Django because it's what led me to start delivering something in production quickly and trusting the code I deliver because I know the internals, I know how good developers joined Django and contributed to Django. So I trust the stability and all the ecosystems. It's what led me to choose Django every time. Yeah, I agree. It's a workhorse, a framework for developers with deadlines, can get a lot done and generally makes good choices. Right. And it has good design patterns embedded and with flask. Yeah, you end up having to pull in a lot of plugins and that gluing together. Actually, you lose time with that and there's the trouble of complexity with that. But anyway, so you made a bunch of contributions and or related tools since. So do you want to highlight a few contributions in the Django ecosystem you have done? Yeah, I started with small contribution, because at the beginning, when you are a newcomer, usually you don't trust yourself to contribute. So I started with some translation or documentation contribution, but then I been involved in Djangocon Europe 2017 and I joined the sprints and I was helped to be more active in the contribution and I, and they joined my first big pull request. I added the crypto extension in the postgres module to use the random Uid generator and for the first time they joined this bits featuring Django 2.0 for what I remember and another area where I contributed was the Django website itself. I discovered the full text search functionality and they used an external engine to run the search on the documentation, the Django site. I organized a sprint at Europython 2017 and together with other developers we tried to remove the external engine and we used Django only to run the full text search with postgres on the side. That one was very very interesting, very challenging because it was bigger, it was refactoring and helped me to understand more how the Django website is built and how to use Django itself to create a big functionality. And another one that I remember was the compression support for the dump data commands. When you can create a fixture from your data. And I added it in Django 3.2 to create directly some compressed file with your fixture, especially with big amount of data. Creating the dump file and then compressing was complex, so that way was very useful. I understood also that part better is every time. It's a way to learn a lot of things that Django Internet contributing and last month I tried to test a lot the generated fields, the new feature in Django 5.0 and I find some bugs and pushed some fixes for these functionalities and was very also interesting to learn more about that before the official release. I've tried also to contribute with other packages that I use every day for my work, especially in the jets band ecosystem like Django configurations and Django debug toolbar and similar or connected smaller packages. And I like also to contribute to Pelican. It's a static site generator because I use it for my blog. So every time it's good also to contribute back and help other developers using it and improving the package. And this is the hair we try to contribute. That's awesome. That's a lot. You're all over the place. And I agree there's no better way to learn to dive into the code base deeply and try to make changes and implement new behavior. So it seems that mostly you pick those features or projects based on your own use. And what's interesting, for example pelican py bytes. We started with a pelican blog. We later moved to WordPress for a couple of reasons. But yeah, that's a great product as well, or tool rather. So yeah, the interesting thing here is also the sprints because yeah, when you start out and maybe people in the audience here that are newer to python development and open source, they might find that overwhelming, like, especially as those contributions seem pretty big and advanced. But you said, like, the breakthrough would you say was to really work on them during the sprints. How was that pivot? I started studying some area of contribution, and I used. I developed some functionalities during my day by day job, and then I decided to start a pull request. But during the sprints, I received a lot of help in understanding the good way to contribute, good way to receive feedback and correct my pull request to be aligned with the standards of the Django code, the internal Django code. So was a very, very good improvement for my understanding of internals in very short time, because I was able to stand up and go on the table next to mine to ask for help with other Django core developers. And it was very, very useful for me. That's awesome. And talking about mentoring, guidance, you also coach at Django Girls workshops. Is that also on open source or in a different capacity? Yeah. I met for the first time Django girls initiative in Django Con Europe, and I was impressed because it was a very good idea and a good way to be a coach, to mentor new people in the community. I tried to organize a workshop in day, but then started the COVID And I've been a coach in Europe Python, and in Rome in other workshops. I don't remember right now. It was very good experience because I was forced to coach some girls and explain to them in a simple way, some concept I don't already know. And then I realized that to explaining things in simple way force you to reelaborate and try to understand better that concept. And so I organized in 2022 in Pescara, during a conference here, to also share this opportunity with girls here in some more not so big city, to let them be connected with this initiative. And I think it's a very good way for both participants and coaches to be connected and be inclusive and sharing something more than technical things. And in that occasion, for Django Girls workshop in Pescara, we decided to start the meetup, the python meet up, because we started connecting with coaches, all of them were python developers, and then decided, okay, from this point, we start a meetup and then we organize some, some events and we still going home. So was our opportunity also to network with others. Nice. And again, it was something that came from a pycon in the first place, right? Yeah, yeah. Nice how one thing leads to the other. And I agree with the teaching video coaching as py bytes and. And explaining things. There's no better way to really solidify your understanding of something. If you have to explain it to somebody else, you'll discover your gaps. Yeah. To pivot a little bit in your daily job you are CTO of 20 tab. What does your typical day look like? What are you working on? Yeah, we are a consultancy company. Mostly we use the Python and Django in our stack since the beginning and day by day I do a lot of different things. We are connected with customers and to analyze their needs. We try to have a flow to collect needs of the customer and to realize some products they will certainly use. We try to use an approach of developing more than automatic. We wanted to try to understand what something is really useful for. And after that we share with the team different features to develop, where we use the scrum approach and agile development. And in other part of the day, usually I try to also experiment to do an internal experiment to the company to try internal products and also experiment with new technology. For example, we tried HTMX or we tried new Django feature like generated field, as I said before, experimenting also with AI and embeddings, search based on vectors. And at the same time we try to also develop products with stable technology like Python, Django, and analyzing new trends. But not every time to jumping from one to another, because sometimes it's a waste of time to change every time different languages or framework, and we try to analyze better this new trend. So it's what we do day by day and that's it. That sounds like a nice combination of still doing some coding and being technical, but also being a strategic leader, managing people, looking after the strategy of the company. I mean, how many people do you have? How many developers? We grew in the last year. Now we are more than 30 people, and we have team with seven or six people in every team. Some team do developing and delivery, and other teams do more research or marketing stuff, but we try to build products from the ideas part to the delivery part. So the wall that we're stuck. Yeah. Cool. I want to pivot a bit into complexity, because the challenge with software development is complexity. So have there been some challenging moments you faced when solving complex bugs or an open source building features at work? How do you handle complexity? What really helps you solve complex issues? Yeah, as I said before, we use for most of the part Django and Python, because we already have some solution, stable solution for typical problem like authentication and session and similar templating. And the more challenging part are when you have to solve different types of problem like building trees of your data or working with maps and geographic system. Also the full text search was a very challenging topic to be involved with, it's sadly to say. But also CSV import and managing handling nowadays is still something that can be tricky. But for every of these topic and challenges, something I found very useful was having a totally open source stack because you are able to have a lot of documentation to read, to search for something to learn. And also it's very very useful to read in the code of this software. Usually we use also postgres and reading the code inside or documentation helped us to try to use specific feature of that database and same for Django. And another part I found very useful was studying the tests of this software because something you can found in the documentation you can find in the test and in Django for example, there are a lot of tests of every area and what's very interesting, learning from the part and trying also copying some tests and putting your project was very useful because you are using the same code and some languages. And the last things I used to do also reading articles. Simplest thing to do is searching for questions on stack overflow for example, but not for reading the answer because sometimes I have to figure out in what way I can do things. So I'm searching for idea for problems and then I try to solve by myself and that way I collect more and more solutions with my mind that I usually use in future project and working project because reading the answer sometimes is very tricky. Maybe the answer is from ten years ago. Instead I find more useful reading the question. So this is something I try to do. Okay, interesting. So you use it more to read the questions rather than the answers on stack overflow. Exactly. To have more problem to solve in the topics when I want to learn more and to be inspired to things from different approaches. Now with the AI tools and chat JPT, do you use that more than stack overflow or are you still using stack overflow as before? I still using stack overflow because I'm more interested in the problem to solve than the answer from chat GPT on similar I'm trying using also these tools because it's also interesting to understand how they work and sometimes it's very convenient for short text by I don't trust so much the code you can copy from this. I prefer writing myself and testing directly. Yeah, that makes sense actually because these tools are really answer based where your approach is looking for the questions. So then you're better off at stack overflow and articles in the web and all that. Yeah, and true, these tools are nice but still need to do some iteration and validation and stuff. Yeah. Talking about AI tools and trends, what are some emerging trends and technologies you see that will influence python, Django web development or maybe even software development overall over the coming years? Yeah, a trend not so new, but in the Django ecosystem is asynchronous. A lot of modules internally are now asynchronous and I tried to help also for the pull request for psychoPG three to have asynchronous support for postgres. And I'm seeing more and more module and part of Django eternal that have now asynchronous alternatives and I think it can be very useful. I don't think everything you have to do had to be asynchronous, but when you need, when you need something like that, you can have now in China directly. And another area I finding interesting are all the AI ecosystem particularly I'm trying to use embeddings with postgres and there is a new module, pgvectors. It's a way to store your vector, your mending is directly in postgres and you can interact from Django directly. So it's good for experimenting to understand how this concept works and to have an approach as a web developer, as a backend developer also to this, this area of developing because it can be very very difficult approach. These are the trends I'm trying to follow more closely. Yeah, awesome. And what about front end and JavaScript? You mentioned HTMX, which we absolutely love. Yeah, yeah. As I said before, part of our job is also to experiment in project and we used it for sure, small project, but we was able using HD Max to develop a tool very quickly and with also user experience, a very good user experience because we had also very good UI with some dynamic part and doing that with HTMX was very easy and required not so much understanding of JavaScript or all this bigger framework like react or similar. And I think it's also a very good, a trend now. I started listening about TMX in conference four years ago now or more. So it's not something new, but maybe it is for people. And I think it can be very useful in a certain way. For some sort project it can be very useful. Cool. Lastly on the trends, what do you think about all these rust based tools? I like rust. I promised myself to start studying it. Yes. I think the shocking part for me was that was the first new language that was used in the Linux kernel after c after a lot of years. So something that is sign of quality, I think it's, and I like some part of the language, but I'm not so in the language now to say something more specific. I like that they are using heat. Also in the python ecosystem I used rough and formatting and linting. I'm not a strong opinion on it right now. I think having alternatives in the ecosystem can be very useful also to improve the usual python based tools. So it's a good thing that we can try and use also these different, different tools. Cool, cool. So we're coming up on time. So I have two more questions for you. Developer mindset, how important has that been for you? And if you need me to clarify mindset, then happy to do. But basically the non tech skills, more the soft skills, the communication, dealing with imposter syndrome, all that stuff, how important has that been? And maybe you have some examples where that was really critical in coming as far as you have become. Yeah. For me, the developer mindset is something I used since when I studied computer science, the orientation of problem solving. I try to approach the challenging, focusing the solution and then iterating on it. I try to have a methodological approach also to the way I think about problem and what I have to to solve. And I try also to. I think it's important also to have a different approach to the problem, trying to thinking outside the schemes sometimes, especially when things are very complex and you need solution. And we also at work, we did also a workshop in some communities to share ideas together and then try to connect together to have at the end a better approach to the solution. I think it's very important to collaborate in sharing ideas with others, to improve also with team and also to have more original solution. And the last things I associate with this concept is the critical thinking about stuff. Every time I want to criticize this solution established or something trending, to find if there is something to be improved. And this is the approach I try to the mindset that I try to apply in personal project or work project or contributing community. I hope I answered your question. Oh yeah, those are great tips. Yeah, definitely. Yeah. So thanks for sharing it. My last question is about what we always ask about the books, right? We love books and we love reading and we hope the fellows do too. So do you have any cool title you're reading? You want to recommend? Yeah, I want to recommend. I'm still reading an italian hauteur, he's a novelist and the name is Camilleri. Wrote the Montalbano story. But joking apart, I am reading also two books in the Python world. I'm reading the jungle four by example by Antonio Miller. Great book. I know he's working on the next version of the book. Yeah, he is. And I started reading for the first time, I have to admit, the fluent Python by Luciano Romalu. And I think it's a very great book to dip down Python language, something very interesting. And I came. I want to recommend both the books to the listeners. Yeah, you can do weightlifting if you stack those two together. They're both pretty thick. Yeah, it's true. And I think that Antonio is also trying to stay under 1000 pages and fluent page Python. Might also be very close to 1000 page war and peace kind of tomes. But, yeah, they're both great. They're going great depth and fluentizing as well. Like many Python books, they go from a to z, but with fluent Python, you go straight into the data model. Right. So it's almost like you learn it inside out, which is kind of fascinating. So it's a book to keep reading. One never finishes it. I mean, you finish it and then you probably want to read it again. Cool. So you sent me a list of other things. Is there anything you wanted to share that we haven't touched upon? I talked a lot of things. I want to. It seems that you covered those as well through the questions, but let me know. Yeah, no, the only thing is we are helping with the Python Italia association. We are working for Python Italia conference this year. It will be in the late of May, and for this year in Florence. Beautiful city. Yeah, beautiful city. And we have a lot of tools in English. Most of them are in English. We have people from everywhere in Europe and also the rest of the world, and it's a very good way to have a good conference, good food, and visiting a beautiful city together. And we are working very hard to have every year better conference, so I want to invite everyone to join. That's a great shout out. Yeah. So when is that? It's from 22 to 25 of me. Right after the pycon us, unfortunately. Yes. They're always close together. Yeah, yeah, yeah, yeah. Cool. Yeah. Thanks for clarifying about the talks, because I was wondering, like, are there many talks in English and not only Italian, that that's the case then. Right? Keynote and a lot of talks are in also workshop are in English. We have some talks in Italian also for people that don't talk English, but we have a lot of them. If you want, as an italian speaker, you can listen more than one talk at the same time in English. And it's rotating through the country. Right? It's not always in Florence. In the last year we stayed in Florence for historical reason, maybe obvious reasons. Yeah. Yes. Yes. It's a really nice place. Yeah, cool. Okay. Yeah, people should check that out. We will link it below in the show notes. And people want to reach out to you. I invite you, of course, to our pivot circle community. You said you're more on Mastodon these days, right? Yeah, yeah. Okay. I'll link that as well. I joined the Pipebytes community this morning. Excellent. Welcome. So people can. Yeah, we'll post this there and people can reach out to you as well. Oh, nice. Thanks for sharing. It was great meeting you, talking and get this out there and yeah, kudos on the great work and all you do. It's pretty impressive. Thank you. Thank you very much. Also, I'm very good impressed by five bytes and the good work you do also with the podcast. Thank you. Every time I to choose one episode because there are so many, it's good that every niece of X fourth is good for attracting new people. It's good. And I'll share for sure in the next meeting in Python Pescara and Python Italia in the meeting we have for organized. So thanks for inviting me also. Yeah, awesome, Grazia, and it was good having you on. You have a great day. Thanks. Thanks. Thank you too. Bye bye. We hope you enjoyed this episode. To hear more from us, go to Pibyte friends, that is Pibit es friends and receive a free gift just for being a friend of the show and to join our thriving community of python programmers, go to Pibytes community, that's pibit es forward slash community. We hope to see you there and catch you in the next episode.