Django on the Med is a three-day Django development sprint by the Mediterranean Sea, with an emphasis on community building. Its first two editions were organized by Paolo Melchiorre and Carlton Gibson and took place in Palafrugell, Spain and Pescara (Abruzzo), Italy. When I heard of Django on the Med, it sounded like a lot of fun and a great opportunity to work together with other contributors, learn a lot and get more involved in the Django community. That's how I came to join the second edition in September 2026 in Pescara.
I've been contributing to Django since I was a mentee at the Djangonaut Space mentorship program in the fall of 2025. Since then, I have worked on several Django tickets. Some of them were related to the database layer (ORM), and I wanted to learn more about it and be able to work on more advanced ORM topics. But were my knowledge and experience sufficient to join a Django development sprint? Or was this an event targeted only at hardcore longtime contributors? Well, sure enough, the Django on the Med website it said "experienced contributors, and new ones just starting out". To be sure, I reached out to Paolo on Mastodon, and he assured me that I was welcome. Still, I felt a bit anxious. Would I be able to work together with more advanced contributors? I couldn't properly imagine how my skill level fitted into the picture, also because my developer job does not involve much team work.
Luckily, folks were discussing possible sprint goals on Slack beforehand. That gave me the opportunity to express my interest in teaming up to work on some ORM topic, and others the opportunity to approach me and make suggestions on what I could work on or what team I could join. Jacob Walls kindly suggested that we could work together on the handling of nullable expressions in the ORM and pointed me to a proof of concept created by Simon Charette to provide some context. That gave me the possibility to look at the topic beforehand and to get a basic understanding: We were going to work on the issue that in some special cases, the ORM produces an INNER JOIN where an OUTER JOIN would be required, for queries with special null handling like Q(field__in=[1, None]). I already knew Jacob from code reviews, and it reassured me that I would be able to work with him.
We kicked off the first sprint day with a great icebreaker session moderated by Carlton. He invited us to brainstorm about the strengths and weaknesses of Django, and asked what everyone was going to work on. By documenting the session output on a flipchart, some of the implicit knowledge in the room was made explicit. Carlton also explicitly asked experienced contributors to mentor newcomers.
When we started working in groups, Jacob and I teamed up and tried to dive deeper into the nullable expressions topic. I really appreciate the way Jacob onboarded me, providing helpful explanations of the context and inviting me to contribute to summarizing our current understanding and suggesting next steps. Sure, I was being mentored, but at the same time, I felt like a peer.
At some point, Jacob felt we needed the help of Simon, the author of the mentioned proof of concept. That somehow led to me being mentored by Simon for practically the rest of the sprint. It was incredibly helpful to have an ORM expert explain the bigger picture to me and walk me through ORM methods, and I really appreciate Simon's encouragement to (sometime) form my own opinion on the handling of nullable expressions. It makes me feel like my contribution matters, even though I need a lot of help initially.
Then, something interesting happened: While Simon was explaining the null handling in __in lookups to me, he found an ORM bug introduced in Django 6.1! Due to an interference between two tickets, .filter() and .exclude() with __in lookups containing None were not producing complementary querysets anymore. After discovering that, Simon suggested to fix that bug first, and to use it as an entrypoint to understand the broader topic of nullable expressions. So my new sprint goal became creating a ticket and a PR draft for the __in lookup bug, and I was able to accomplish it! That feels incredibly satisfying.
Through Djangonaut Space and my subsequent contribution, I had interacted with the Django community online, but Django on the Med was my first face-to-face encounter with other Djangonauts. I knew the Django community is a friendly place, but my expectations were exceeded. Everyone was really interested, friendly and supportive. During the lovely afternoon excursions, we were able to connect, learn more about each other's background and find many common interests beyond Django.
Django on the Med 2026 was an extremely valuable event for me. I feel truly inspired and empowered, with lots of gratitude towards the organizers and sponsors. I hope that other contributors can have a similar experience in future editions!
Top comments (0)