This week we welcome Paolo Melchiorre (@pauloxnet)as our PyDev of the Week! Paolo is a core developer of the Django web framework. He has spoken at several different Python-related conferences in Europe and also writes over on his blog. Let’s take a few minutes to get to know him better!
Can you tell us a little about yourself (hobbies, education, etc)?
I graduated with a degree in Computer Science from the University of Bologna. My thesis was about Free Software and since then I’ve been a Free Software advocate.
I’ve been a GNU/Linux user for 20 years and now I’m a happy user of Ubuntu.
In 2007 I attended my first conference, the Plone Conference, and since then Iâ€™ve attended many other pythonic conferences in Europe.
In 2017 I presented a talk at PyCon Italy and at EuroPython and since then I have been a conference speaker for local and international events, both in Italian and in English.
Iâ€™ve lived and worked in Rome and London, and since 2015 Iâ€™ve been a remote worker located in my hometown of Pescara in Italy, which is close to the beach and the mountains.
I love nature and spending my time swimming, snowboarding or hiking, but also traveling with my wife around the world.
I like improving my English skills by reading fiction books or listening to audiobooks, watching TV series and movies, listening to podcasts and attending local English speaking meetups.
Why did you start using Python?
I started using Python in my first job because we developed websites with Plone and Zope.
I realized how much better Python was for me than other languages Iâ€™ve studied and used before because itâ€™s easier to learn, itâ€™s focused on code simplicity and readability, itâ€™s extensible and fast to write and has a fantastic community.
When I stopped using Plone I continued using Python as main programming language.
What other programming languages do you know and which is your favorite?
I started programming with Pascal during high school and then I learned HTML and CSS on my own to develop my first website as high school final essay.
Which Python libraries are your favorite (core or 3rd party)?
I work every day a lot with Django and PostgreSQL so apart from the Django framework itself I think my favourite python library is the Python-PostgreSQL database adapter psycopg2 because itâ€™s pretty solid and allows me to work with the database without the Django ORM when I need to do very low level operations and use all the great features of PostgreSQL.
How did you get started contributing to Django?
I started contributing to the core of Django during the sprint day at DjangoCon Europe 2017 with a pull request that integrated the PostgreSQL crypto extension in itâ€™s contrib package and it was merged in Django 2.0.
I presented a talk about the Django Full-text search feature at the Pycon Italy 2017 conference and then wrote the article “Full-text search with Django and PostgreSQL” based on this, but I realized that the Django Full-text search function was not used on the djangoproject.com site.
At EuroPython 2017 I organized a sprint about the search module of the djangoproject.com.
I completed a pull request that replaced Elasticsearch with the PostgreSQL Full-text search function on the official Django website and I continued updating this function with improvements in speed and multilingual support.
I presented a talk about this experience as an example of contribution to the Django project.
Why did you choose Django over Python web frameworks?
I started working with Plone and the Zope application framework which stores all information in Zope’s built-in transactional object database (ZODB).
I started using Django when I needed to store data in a relational database like PostgreSQL, and after some research, I realized it was the best choice.
I appreciate itâ€™s architecture, the ORM, the admin module, the PostgreSQL support, all its ready-to-use modules like GeoDjango, all the 3rd party packages, and particularly the community behind it.
What projects are you working on now?
I contribute to the Django project, its website and some related packages.
Iâ€™m attending some Django Girls workshops as a coach and Iâ€™ve contributed to its tutorial.
In addition, Iâ€™m updating a django queries project with code Iâ€™ve used in my talks which lets people try it on their own.
Iâ€™m working on a Django project template we use at work to speed up the bootstrap of a project deployed on uWSGI.
Iâ€™m updating my Pelican-based technical blog where I post some articles, information about me, my projects and my talks.
Iâ€™m updating my YouTube channel with all my recorded talks and my Speaker Deck account with all my talk slides.
Iâ€™m also answering as many python-related questions as I can on Stack Overflow, particularly related to Django, Full-text search and PostgreSQL and I wrote an article based on one of them.
What are the top three things you have learned as an open source developer?
I think Free Software is the one of the best inventions in the last century, and being part of it is very rewarding.
In particular being a Free Software developer has taught me:
- Sharing knowledge (in form of ideas, code, documentation, skills) is the best way to better yourself as a person and a developer
- The best part about Free Software is its community of human beings
- Some things not code-related are very important for improving Free Software and its community, such as choosing a good license, adding contributing guidelines and not forgetting about documentation
Is there anything else youâ€™d like to say?
Being a conference speaker at Free Software related conferences has given me the opportunity to meet a lot of people and become a better person.
I encourage everyone to join meetups, get out in the community and attend conferences and, of course, if we meet at some conference, please say hello.
I also want to say to all native English-speaking developers that there a lot of excellent developers who hesitate to contribute to Free Software because of their lack of English knowledge.
Personally, I waited a long time before contributing to projects and actively participating in the community and then I forced myself to improve my English skills with a lot of costs in term of time, effort and money.
So I would just like to remind people to be patient and inclusive when it comes to non-native English speakers as we need a bit more time and effort to open an issue, send a pull request, ask questions online and at conferences or simply speak and write about ourselves and our ideas in an interview like this.
Thanks for doing the interview, Paolo!