An article about me and my involvement in the Python community (mainly Django) as a Free Software developer, GNU/Linux user and tech conference speaker.
- About me
- My journey through programming languages
- How I started using Python
- My favorite Python libraries
- The choice of Django as web framework
- How I got started contributing to Django
- The projects I’m working on
- Lessons learned as a Free Software developer
- Being a tech conference speaker
- A thought for all native English-speaking developers
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 since 2000 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.
I’ve lived and worked in Rome and London, and since 2015 I’ve been a remote worker located in my hometown of Pescara, Italy.
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 audiobooks, watching TV series and movies, listening podcasts and attending local English speaking meetups.
My journey through programming languages¶
I started programming with Pascal during high school and then I learned HTML and CSS on my own to develop my first website as my final project for high school.
How I started 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 focuses 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 my main programming language.
My favorite Python libraries¶
I work every day with Django and PostgreSQL, so apart from the Django framework itself I think my favorite 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 or when I want to use all the great features of PostgreSQL.
The choice of Django as web framework¶
Originally I started working with Plone and the Zope application framework which stores all information in Zope’s built-in transactional object database (ZODB).
Then 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 love its 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.
How I got 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 its contrib package and then 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. Later 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 my contribution to the Django project.
The projects I’m working on¶
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 my 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 the article “Updating a Django queryset with annotation and subquery” based on one of them.
Lessons learned as a Free Software 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
Being a tech conference speaker¶
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.
A thought for all native English-speaking developers¶
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.
This article is based on the answers I sent to Mike Driscoll for an email interview for his blog, The Mouse Vs. The Python, ️published on 11th February 2019, in the article “PyDev of the Week: Paolo Melchiorre”.