Pybites Podcast

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

March 15, 2024 Julian Sequeira & Bob Belderbos
Pybites Podcast
#155 - Django, Open Source & Pycon Conferences, Paolo Melchiorre's Developer Odyssey
Show Notes Transcript Chapter Markers

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 found in the documentation, you can, you can found in the test and in Django, for example, there are a lot of tests of every area. And it 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 same languages.

It's. Hello and welcome to the PyBytes podcast, where we talk about Python, career, and mindset. We're your hosts. I'm Julian Sequeira. And I am Bob Valdobos. 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 Paolo to the PyBytes 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, uh, yeah, you do a lot of good 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 interaction 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 began developer since then. I'm also Jungle contributor. Um, I'm a member of the PSF, the Jungle Software Foundation, Python, Natalia, and I help organizing Python.

Yeah, Python, Natalia.  Since some years, I founded the local community Python Pescara in my hometown. I also, I've been a coach for Django Goers and I organized also one of the workshop and I like speaking in conferences and be connected with community also on social media, recently more on Mastodon. And the win of the week is related with conference because I sent to the proposal for DjangoCon Europe.

2024 and EuroPython 2024, just the day before they closed the call for proposal. So it's, it's a win. I did it. Nice. Is that a one in Vigo, Spain? Yeah. Yeah. And the DjangoCon Europe is, will be in Vigo in June and EuroPython 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, uh, open source, um, software since university, something related to Linux and similar stuff. I graduated in software engineer and my thesis was about the Free Software Relay Sciencing.  And, uh, Cobb left this mechanism. After graduating, I started working with ZooPeplum.

They are a framework based on Python. And I started with Python 2. 4, a long time ago. And, uh, then I started joining the community about ZooPeplum  in Europe and attended some conferences, but I met for the first time Django in At EuroPython 2011, I had scored for the first time Django 1. 3. And since then I started studying and using network and trying to contribute more and being more involved.

And until now, I still in the community and try to being part, contribute back and being connected with other people. Passionate like me in the Python. Yeah. That goes back a long time to that four.  Didn't even have a context managers. I think till two at five.  Yeah. So you saw Django to 11 and 2011 and it sounds like.

Uh, love on first sight. Yeah. So what do you especially like about Django? Yeah. I like the fact that the is very well organized. You have butter include, um, you can do everything you need to start from scratch and building something you need in very short time because a lot of internal module. are ready to be used for support professional products.

And 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 really. It's like, you know, RAM.  So as you know, today, I, every time I choose Django, because it's what  led me to start delivering something in production quickly and trusting the code that I, I deliver, because I know the internals, I know how good, um, 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.  The 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, you know, the trouble of complexity with that. But anyway, so you, you made a bunch of contributions and or related tools since. So do you want to highlight a few, um, contributions in the Django ecosystem you have done? Yeah, I started with small contribution because at the beginning when you are And newcomers, 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 project. The big, uh, 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 beat Fisher in Jungle 2.0 water for what I remember.

And another error where I contributed was the jungle website itself. I discovered the full text search functionality and they was used an external engine to run the search on the documentation in the Django website. 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 database side.

Um, that one was very, very interesting, very challenging because it was bigger. It was, uh, 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, uh, compression support for the dump data commands.

When you can create a fixture from your data and I had it in Django 3. 2 to create directly some compressed file with your fixture, especially with big  amount of data, um, creating the dump file and then compressing was, uh, complex. Uh, so in this way, that way was very useful. I understood also that part better.

It's every time it's a way to learn a lot of things that the Django Internet are contributing. And in the last months 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, for these functionalities. And it was very also interesting to learn more about that before the official release.

I've tried also to contribute with other packages in the net I use every day for my work, especially in the JetBands ecosystem like Django configurations and Django debug toolbar and similar or connected smaller packages. 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, it's good also to contribute back and help other developers using it and improving the package. And this is the video. The hair we're trying 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, to dive into, you know, 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 we, PyBytes 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, you know, Python development and open source, they might find that overwhelming, like, you know, especially as.

Those contributions seem pretty big and advanced, but you said like the breakthrough, what you say was to really work on them during the sprints. How was that? I started studying some area of contribution and I used the, I developed some functionalities during my day by day job. And then I decided to start.

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 Django code. So it 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, for app with other Django core developers.

And it was very, very useful for me. That's awesome. And talking about mentoring guidance, uh, you also coach at Django girls workshops. Uh, is that also on open source or in a different capacity? Yeah, I met for the first time Django girls initiative in, uh, Uh, jungle K Europe, uh, was impressed because it was a very good idea and a good way to be a coach, to mentor new people in the, the, the community.

I tried to organize, uh, a workshop in day, but then started the, the Covid  and I've been, um, a coach in Europe, Python, and in Rome in other workshop, I don't remember right now, and was very, uh, good experience. Because I was forced to coach some girls and explain to them in a simple way some concept I thought I already know.

And then I realized that to explaining, uh, things in a simple way forced you to re elaborate and try to understand better that concept. And so I organized in 2022 in Pescara during a  conference here to also to share this opportunity with girls here in some more, not so big city. To  let them, uh, be, be connected with this, uh, with this initiative.

Uh, and I think it's a very good way for both participants and coach to be connected and be inclusive and, um, sharing something, uh,  more than technical things. And in,  uh, occasion for Jungle Girls, uh, workshop in Pescara, we decided to start the meetup, the Python Pescara Meetup. Because we started connecting with coaches, uh, all of them are, were Python developer and then they decide, okay, from this point, we start a meetup and then we organize some, some events. 

Still going on. So it was an opportunity also to, to network with others. Nice. And again, it was something that came from a PyCon in the first place. Right.  Yeah. Yeah. Nice. Oh, one thing leads to the other. And I agree with the teaching, um, we do coaching and spy bites and explaining things, it'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 a 20 tap. 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 stock.

Since the beginning and day by day, I, I do a lot of different things.  Uh, we, we are connected with customer and to analyze their needs. We try to have, um, a flow to collect, uh, needs of the customer and to realize some products they will certainly use. Uh, we try to use an approach of developing it. More than automatic.

We wanted to try to understand what something is really easy for four. And after that, we, we share, uh, with a team, uh, different, uh, uh, feature to develop where we use a scrum  approach and agile developments. And in another part of the day, usually I try to also experiment to do internal experiment to the company, to try internal products with, and also experiment with new technology.

For example, we, we tried the HTMX  or we, we try new Django feature like generated field. As I said before, we are 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, every time, uh, different languages or framework, and I, we try to analyze better this, this new trend. So it's what we, what we do day by day.  Sounds like a nice combination of still doing some coding and being technical, but also being a strategic leader, managing people, looking at, you know, after the strategy of the company.

I mean, how many, how many people do you have? How many developers? We grew in the last year. Now we are more than 30 people. And we, uh,  we have a team with seven. Or six people in every, every team, some team do developing and delivery and other teams do more research or marketing stuff. But we, we try to build products from this, the ideas part to the delivery part.

So the wall never stuck. Yeah, cool. I want to pivot a bit into, uh, complexity because, you know, a challenge with software development is complexity. So, um, have there been some challenging moments you faced when, you know, solving complex bugs or, you know, an open source building features at work? How do you handle complexity?

What really helps you solve complex issues? Yeah. As I said before, Uh, we use them for most of the part, uh, Django and Python, because we already have some solution, stable solution for typical problem like authentication and session and similar depleting. And, uh, more challenging part are when you, you have to solve different types of problem, like, uh, I don't know, 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, sadly to say, but also CSV  import and managing handling nowadays is still something that can be tricky. But, uh, for every of this topic and challenges. Um, something I found very useful was having a totally open source stack because you are able to have a lot of documentation to read and to search for something to learn.

And, uh, also it's very, very useful to reading the code of this, uh, this software. Usually we use also,  Postgres and reading the code inside or the documentation helped us to try to use specific feature of the database and same for Django. And another part I found very useful was studying the tests of this software, because something you can find in the documentation, you can find You can find in the test and in Django, for example, there are a lot of tests of every area and it 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 same languages.

And the last. Things I used to do, also reading articles, it's the simplest thing to do, is searching for a question 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 ideas. Uh, for problems. And then I try to solve by myself and that way I collect more and more solution with my minds that  I usually use in future project and working project because reading the answer is sometimes very tricky.

Three key, maybe the answer is from 10 years ago. And instead I find more useful reading the question. So this is something that I try to do. Oh, 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 that topics when I want to learn more and to be inspired to things from different approach now with the AI tools and chat JBT, do you use that more than StackOverflow or are you still using StackOverflow as before?

I still using the StackOverflow, uh, because I'm more interested in the problem to solve than the answer from. Try GPT on similar, I'm trying using also these tools because it's also interesting to understand how they works. And sometimes it's very convenient for short text by I'm kind of trust so much the code you can copy from the,  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 with Stack Overflow and articles in the web and all that. Yeah. And true. These tools are nice, but, uh,  still need to do some iteration and validation and stuff. 

Yeah. Talking about AI tools, uh, and trends, uh, what are some emerging trends and technologies you see that will influence. Python, Django, web development, or maybe even software development overall, uh, over the coming years. Yeah. I try and not so new, but in the Django  ecosystem is a, um, a synchronous, a lot of module internally are now a synchronous and, um, I tried to add those two for the pull request for PsyGo PG3 to have a synchronous support for Postgres and, uh, I'm seeing more and more module and part of.

Django internal that are have now, um, a synchronous alternative, and I think it can be very useful. I don't think everything you have to do had to be, had to be a synchronous, but when you need, when you need something like that, you can have now in Django directly. And another area I'm finding interesting are all the AI ecosystem. 

Particularly, uh, I'm trying to use embeddings with Postgres, and there is a new module, pgVectors.  It's a way to store your vector, uh, your embeddings directly in Postgres, and you can interact from Django directly. So it's, it's good for experimenting to understand how this concept works and to have an approach as a web developer, as a backend developer to also to this, this area of developing, because it can be very, very difficult for approach.

These are the trends I'm trying to follow more closely. Yeah. Awesome. And, um, what about front end and JavaScript? You mentioned HTMX, which we absolutely love.  Yeah. Yeah. We, as I said before, uh, part of our job is also to experiment in project. And we use it for sure. I'm a small group. project, but we was able to using HTMX to, uh, develop a tool very quickly.

And with, uh, so, um, user experience, a very good user experience because they had, uh, we had those, um, very good UI with. Some dynamic part and doing that with the HTMX was very easy and, uh, uh, required not so much, um, understanding of JavaScript, uh, or, or this bigger framework like reactor or similar. And I think it's also a very good.

A trend now, I started listening about  THMX in conference four years ago now, or more. So it's not something new, but maybe it is for people. And I think it's, it can be very useful in uncertain, uh, way for some sort of project. It can be very useful.  Lastly, on the trends, what do you think about all these Rust based tools?

I like. Rust, I, I promised myself to start, uh, studying it. So I, uh, Me too. Yeah. Yes. I think the shocking part for me was it's that was the first new language that was used in the Linux kernel, uh, after C, after a lot of years. So something that, uh, is a sign of quality. I think it's. And, um, I like some parts of the, um, of the language, but I'm not so in the language now to say something more specific.

I like that they are using it also in the Python ecosystem. I used rough, uh, formatting and linting. Uh, I'm not a strong opinion on it right now. I think having alternatives. And the system can be very useful also to improve, uh, the usual Python based, uh, tools. So, um, it's, it's a good things that we can try and use also this different. 

Different tools. Cool. So, uh, 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 my own set, then happy to do, but basically the non tech skills, more the soft skills, the communication, dealing with imposter syndrome, all that stuff.

How, 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, uh, Something I use since when I starting computer science, uh, um, the orientation of problems, solving, uh, I try to approach the challenging, uh, focusing in the solution and then iterating on it.

Um, I try to have a methodological approach also to the way I think about the problem and what I have 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 do also at work, we did also a workshop in some communities to share ideas together and then try to. Connect together to have a, uh, at the end, um, better approach to the solution. And I think it's very important to collaborate in sharing ideas with other to improve also with like team and also to have more original solution.

And the last things I, I'm, I associate with this concept is the.  Critical thinking about  stuff. Every time I want to criticize the solution, a solution, uh, established or something trending to find if there is something, uh, uh, to be improved. And this is the, the, the approach I try to, the mindset that I try to approach to apply in personal project or work project or contributing community.

I open, I answer it.  Your question. Oh yeah. Those are great tips. Yeah. Yeah. Yeah, no, definitely. Yeah. So thanks for sharing it. But last question is about, we always ask about the books, right? We, we love books and we love reading and we help developers do too. So do you have any, uh, cool title you're reading?

You want to recommend? Yeah, I will. I want to recommend, I'm, I'm, I'm still reading an Italian. How to is a novelist and the name is Camilleri. Yes. He wrote the Montalbano, uh, story, but.  Joking apart, I'm reading also two books in the Python world. I'm reading the Django 4 by example, by Antonio Mille. And 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 Romalo. And I think it's a very great book to deep down Python language, something very, very interesting. And I can, I will, I want to recommend both the books to the listeners. Yeah, you can do weightlifting.

If you stack those two,  they're both pretty big.  And I think that, uh, Antonia is also trying to stay under a thousand pages and Fluent Python might also be very close to a thousand page.  War and Peace kind of, uh, terms, but yeah, they're, they're both great. They're, they go in great depth and, um, Fluent Python as well.

Like many Python books, they, they go from A to Z, but with Fluent Python, you go straight into the data model. Right? So it's, it's almost like you learn it inside out, which is kind of fascinating. So, uh, it's, 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. Are there, is there anything, uh, you wanted to share that we haven't touched upon? I talked a lot of things I want to say, Alex. Right. It seems that you covered those as well through the questions, but let me know. Yeah, no. The only thing is we, I am helping with the Python, uh, Italia Association.

We are working for Python, uh, Italia Conference this year will be in the late of May, and for this year in Florence. Beautiful city. We'll, we'll, yeah. Beautiful city and uh, uh, 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 uh, visiting a beautiful city together. And we are working very hard to have a 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  Twenty five of me right after the pike on 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 to, 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. Uh, in the last year, uh, We stayed in Florence for historical reasons, maybe obvious reasons. Really nice place. Yeah. Cool. Okay. Yeah.

People should check that out. We will link, um, below in the show notes and people want to reach out to you. Uh, I've invited PyBite Circle community. Uh, you said you're more on Mastodon these days, right? Yeah. Yeah. Okay. I like that as well. Yeah. I joined the PyBite Circle. Community this morning. Excellent.

So welcome.  People can, uh, yeah, we'll post this there and people can then reach out to you as well.  Oh, nice. Thank, thanks for sharing. It was, uh, it was great meeting you talking and, 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 bites and  the good work you do also with the podcast. Thank you. Every time I had to choose one episode because there are so many of them. And so it's good that,  uh, every piece of Xfort  is, is good for attracting new people. It's good. And, uh, I'll share for sure in the next meeting in Python Pescara  and PyCon Italia and the meeting we have for organized.

So thanks for inviting me also. Yeah. Awesome. Grazie and, uh, it was, uh, it was good having you on. You have a great day. Thanks. Thanks. Thank you too. Bye. 

We hope you enjoyed this episode. To hear more from us, go to PyBite slash friends. That is PyBit.  es slash 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 pybites slash community. That's pybit. es forward slash community.

We hope to see you there and catch you in the next episode. 

Introduction
How did you get into python and open source
What do you like about Django
Django and Pelican contributions
Getting into open source through Pycon sprints
Coaching Django girls and teaching
Your role / work at 20tab
Handling complex issues and problem solving
AI tools vs Stack Overflow (and articles)
Python / Django / web trends
Front-end and HTMX
Rust based tools
The importance of mindset for developers
Book recommendations
Pycon Italia shoutout and how to reach out
Wrap up