Vibe Recap of DjangoCon Europe 2025
DjangoCon Europe 2025 was in Dublin, Ireland, this year, and I was fortunate enough to attend, thanks to my employer, JetBrains. This is my second time attending a European DjangoCon, the first being in 2023 in Edinburgh, Scotland. Compared to U.S. DjangoCons, the European version feels a bit more intimate. Rather than two separate tracks of talks (as in the U.S.), there was one room for the main talks and a smaller side room for workshops and other events, which meant that most people attended the same events. I recorded a Django Chat podcast on the conference if you prefer your info in audio format, but then you'll miss out on some of the pictures below. Ireland Pre-Conference The week before coincided with my children's school vacation week, so we took our first overseas trip together, exploring the country's southwest corner, namely Killarney and Ennistymon. Unsurprisingly, Ireland is beautiful, wet, and very rural. I'd love to return and spend more time soaking it all in. Here are a few highlights: The Cliffs of Moher The Burren Inishmore Typical Irish Breakfast Typical Irish Dinner Day 0 (Tuesday) The night before the conference I met Carlton Gibson at the airport and traveled down to the conference venue, the Talbot Hotel Stillorgan. There is a very convenient Aircoach bus option, but given it was quite late and pouring rain, we opted to share a taxi instead. There were too many talks and workshops to give them all justice, so what follows is a series of highlights based on what I could attend in person. Eventually, all talks will be on YouTube. I will add a link to that playlist when it is live, but you can subscribe now to the DjangoCon Europe YouTube account to be notified when they are live. Day 1 (Wednesday) The day started with a keynote from Django Fellow Sarah Boyce titled "Django needs you! (to do code review). " She discussed the current review process and why it takes so long, which is a source of frustration for everyone. I enjoyed her overview of the bottlenecks in the current system, as well as a lively question-and-answer session afterward about all things Django. Sarah Boyce giving the opening keynote. Next up, Jacob Rief gave a great talk on "End-to-end testing Django applications using Pytest with Playwright," probably the most popular testing pattern I see these days, and he had a lot of examples and insight into why it's such a powerful combination. You don't have to use Pytest--in fact, I don't use it on LearnDjango.com--but on an intermediate and advanced code base, it can be much faster than Django's testing framework and comes with a ton of extra goodies around testing. Tim Bell was the following speaker and talked about his current work at Kraken, converting integer fields to bigint using Django migrations at a massive scale. Before lunch, Adam Johnson presented on writing indexes to improve your queries, another perennial topic for at-scale Django apps. During the afternoon, the workshop room had a Q&A with the Django Software Foundation Board. Four board members were present--Thibaud, Sarah, Tom, and Paolo--and there was a presentation on the current state of things, work in progress on various new initiatives, and then lively questions from the audience. The Django Board meets monthly and online, so conferences like this are one of the few opportunities for them to meet in person and with the broader Django community. In the evening, Django Social held an event in downtown Dublin, but I was fairly tired, so I took what Kojo Idrissa has termed a self-care sprint. I spent a quiet night having dinner by myself and walked down to the water. In his words, "Self-care sprints make EVERY OTHER Sprint sustainable." Commuter train running alongside a park and the sea with Dublin in the distance. Day 2 (Thursday) I felt much refreshed this morning, and several people even commented that I seemed more like myself than I was on the first day. So, self-care sprint for the win! The opening keynote was by Mia Bajić on "The Most Bizarre Software Bugs in History." It was a super engaging talk and one I highly recommend watching when the video comes out. It's not Django-specific but relates more generally to software bugs and how things can/do go wrong. Mia Bajić presenting. Next up was "How to get Foreign Keys horribly wrong in Django" by Haki Benita, and if I had to vote on the single most impressive technical talk I saw, it was this. He really knows his stuff on databases and Django and the talk was more like a university lecture, mixing examples with audience interaction. Unsurprisingly, he also teaches online live training with O'Reilly, and I need to take some of his classes. After Haki's talk, my podcast co-host Carlton Gibson spoke on "How we make decisions in Django" because there is a lot of concern that Django's current decision-making process is no longer working. To quote his abstract of the talk, "New f

DjangoCon Europe 2025 was in Dublin, Ireland, this year, and I was fortunate enough to attend, thanks to my employer, JetBrains. This is my second time attending a European DjangoCon, the first being in 2023 in Edinburgh, Scotland.
Compared to U.S. DjangoCons, the European version feels a bit more intimate. Rather than two separate tracks of talks (as in the U.S.), there was one room for the main talks and a smaller side room for workshops and other events, which meant that most people attended the same events.
I recorded a Django Chat podcast on the conference if you prefer your info in audio format, but then you'll miss out on some of the pictures below.
Ireland Pre-Conference
The week before coincided with my children's school vacation week, so we took our first overseas trip together, exploring the country's southwest corner, namely Killarney and Ennistymon. Unsurprisingly, Ireland is beautiful, wet, and very rural. I'd love to return and spend more time soaking it all in. Here are a few highlights:
Day 0 (Tuesday)
The night before the conference I met Carlton Gibson at the airport and traveled down to the conference venue, the Talbot Hotel Stillorgan. There is a very convenient Aircoach bus option, but given it was quite late and pouring rain, we opted to share a taxi instead.
There were too many talks and workshops to give them all justice, so what follows is a series of highlights based on what I could attend in person.
Eventually, all talks will be on YouTube. I will add a link to that playlist when it is live, but you can subscribe now to the DjangoCon Europe YouTube account to be notified when they are live.
Day 1 (Wednesday)
The day started with a keynote from Django Fellow Sarah Boyce titled "Django needs you! (to do code review). " She discussed the current review process and why it takes so long, which is a source of frustration for everyone. I enjoyed her overview of the bottlenecks in the current system, as well as a lively question-and-answer session afterward about all things Django.
Sarah Boyce giving the opening keynote.
Next up, Jacob Rief gave a great talk on "End-to-end testing Django applications using Pytest with Playwright," probably the most popular testing pattern I see these days, and he had a lot of examples and insight into why it's such a powerful combination. You don't have to use Pytest--in fact, I don't use it on LearnDjango.com--but on an intermediate and advanced code base, it can be much faster than Django's testing framework and comes with a ton of extra goodies around testing.
Tim Bell was the following speaker and talked about his current work at Kraken, converting integer fields to bigint using Django migrations at a massive scale.
Before lunch, Adam Johnson presented on writing indexes to improve your queries, another perennial topic for at-scale Django apps.
During the afternoon, the workshop room had a Q&A with the Django Software Foundation Board. Four board members were present--Thibaud, Sarah, Tom, and Paolo--and there was a presentation on the current state of things, work in progress on various new initiatives, and then lively questions from the audience. The Django Board meets monthly and online, so conferences like this are one of the few opportunities for them to meet in person and with the broader Django community.
In the evening, Django Social held an event in downtown Dublin, but I was fairly tired, so I took what Kojo Idrissa has termed a self-care sprint. I spent a quiet night having dinner by myself and walked down to the water. In his words, "Self-care sprints make EVERY OTHER Sprint sustainable."
Commuter train running alongside a park and the sea with Dublin in the distance.
Day 2 (Thursday)
I felt much refreshed this morning, and several people even commented that I seemed more like myself than I was on the first day. So, self-care sprint for the win!
The opening keynote was by Mia Bajić on "The Most Bizarre Software Bugs in History." It was a super engaging talk and one I highly recommend watching when the video comes out. It's not Django-specific but relates more generally to software bugs and how things can/do go wrong.
Next up was "How to get Foreign Keys horribly wrong in Django" by Haki Benita, and if I had to vote on the single most impressive technical talk I saw, it was this. He really knows his stuff on databases and Django and the talk was more like a university lecture, mixing examples with audience interaction. Unsurprisingly, he also teaches online live training with O'Reilly, and I need to take some of his classes.
After Haki's talk, my podcast co-host Carlton Gibson spoke on "How we make decisions in Django" because there is a lot of concern that Django's current decision-making process is no longer working. To quote his abstract of the talk, "New feature requests often hit a wall, as an endless discussion thread arises for even the smallest proposal. New contributors are frustrated. Established contributors are exhausted. It's not serving anyone." He provided an overview of how we got here and suggested several ways to improve things. The talk also dovetails with the work he and others are doing on the new Django Steering Council.
After his talk, I had to find a quiet room and work on the slides for my own presentation. One downside of presenting is that you can't fully relax until your talk is over.
After lunch, Carlton and I celebrated his talk and had a few drinks at the bar. While there, we met Wouter Steenstra and colleagues from Monit a Dutch platform for tracking and measuring parking data. He had just given his own talk, "100 Million Parking Transactions Per Year with Django," and so we had a hallway track meetup of sorts over beers.
In the evening, there was a Speakers' Dinner at Eddie Rocket's, an American diner-themed restaurant nearby. I always enjoy these evenings because it's a chance to meet other speakers and have a somewhat quieter discussion about things. After dinner, many people headed to a nearby bar to continue socializing but I had to retire early as I was presenting the following morning.
Speakers's Dinner après (photo courtesy of Paolo Melchiorre).
Day 3 (Friday)
I led off the morning by giving a keynote talk on Django for Data Science that showed how to train a machine learning model from scratch in a Jupyter notebook and then deploy it using Django. Along the way, there are lots of points about data science generally and how it can/should integrate more closely with web development.
You can try out the live version of the demo at DjangoForDataScience.com. Here is the Jupyter notebook repo and the Django repo.
I think Django is perfectly placed to be the default way data scientists post their information and interact with users. After all, it's already in Python, comes with built-in batteries for most of what's needed--CRUD, auth, security--yet most data scientists find the web and Django in particular quite confusing.
If I'm able to do an updated version of this talk, I'd like to dive more into two areas. First, more focus on the actual training of the model part using scikit-learn
. There are a ton of built-in algorithms for supervised (labeled data) and unsupervised (unlabeled data) learning. Just as Django abstracts away much of the low-level coding required to build a web framework, so too does scikit-learn
abstract away a lot of difficulty coding required if you were to craft this algorithms from scratch yourself.
The second area I'd dive deeper on is completing the feedback loop. Currently, we trained an ML model, presented it to users, and recorded the results. But in the real world, a data scientist would want to take those records and use them to retrain the model iteratively. Think of a recommendation engine for books as one example. In fact, my colleague Jodie Burchell has an excellent free course on this topic if you're interested, LLM Course – Build a Semantic Book Recommender (Python, OpenAI, LangChain, Gradio).
After my talk, it was time for Paolo Melchiorre to present on Djangonaut Space, an amazing program that has paired experienced Django contributors with newcomers.
At the coffee break, many people came up to discuss data science with me. Several people in attendance were using Django and data science professionally, so I wanted to learn as much as I could from them about how these two domains are being combined in the real world.
I want to mention that the food at the conference was excellent. The coffee breaks had coffee, decaf, tea, scones, and other small pastries. For lunch each day, there were sandwiches and other goodies. More importantly, the food was laid out near the main conference room, so everyone could seamlessly gather in between talks.
Following the break, there was a talk on "Evolving Django: What We Learned by Integrating MongoDB" by Anaiya Raisinghani. MongoDB recently introduced official Django support, and we did a whole podcast episode of Django Chat with Jib Adegunloye, the lead engineer on the effort.
Anaiya Raisinghani presenting.
At the same time, in the workshop room next door, there was a live recording of the Real Python Podcast with audience participation. Hopefully, that episode will come out soon.
The last morning's talk was on Feature Flags by Graham Knapp. Feature flags activate features for some users while hiding them for others. Graham had many good tips on how to use or misuse the flags.
After this talk, I spent a while doing the "hallway track" and chatting with various people about what we'd seen so far, how each of us was using Django at work, and so on. Quite a few people used PyCharm and had feedback on it and the recent AI releases.
In the afternoon, Karen Jex gave a very in-depth yet accessible talk on database operations, focusing on what happens behind-the-scenes when you send a database query, how is data stored, retrieved, and modified. And more importantly, why should you care! You can see her slides and notes here.
With a basic understanding of the way select, insert and update operations work, you can make sure your code and database play nicely together!
It's a tough balancing act to see all the talks while taking time to chat with people in the hallway. I try to aim for 2/3 talks and 1/3 chatting during talks, but ultimately, we're at a conference to meet other people, so I will usually prioritize continuing a great conversation with someone over cutting it short to go see a talk.
At the end of the talks, there was a moment of thanks to all the conference organizers. These are all volunteers who do an incredible amount of work to plan the event, run it day-to-day, select the talks, and so on. It's an incredible gift to our community that year after year people are willing to do this work.
Conference organizers (photo courtesy of Adam Johnson).
In the evening, there was a party at The Camden in downtown Dublin, so many of us hopped onto buses and headed there.
Bus to dinner (photo courtesy of Paolo Melchiorre).
We stopped off at an excellent sushi restaurant along the way.
Sushi dinner (photo courtesy of Paolo Melchiorre).
Before making it to the party itself, Adam Johnson discovered an ancient Viking Archaeology Site underneath a Lidl supermarket. So, of course, we had to check that out.
Archaeology site in a supermarket.
The party was at The Camden, and many people from the conference were able to attend. I enjoyed chatting with the folks from Hacksoft, among other conversations.
DjangoTV
At both DjangoCon Europe and DjangoCon US, talks are recorded and later released on YouTube. This is so helpful even if you can attend because it's not possible to see two talks at once, and it's better to be present and listen rather than furiously write down notes. But even so, it can be difficult to find all the amazing content put out by the community.
To that end, Jeff Triplett, a current Django Board member and my partner on the Django News newsletter, has a website called Django TV that compiles conference talks from all the DjangoCons, Django events, and Wagtail conferences globally. I strongly recommend taking a look to uncover some gems you might have missed.
Final Thoughts
I always come away from DjangoCon events feeling energized about the community and our beloved framework. It is an investment of time and money to attend (or speak at) these events, but they are so vital to the continued health of the ecosystem. And if anything, the second or third times you attend are even better because everything is so new the first time, and you are doing lots of "nice to meet yous" with people you follow online. But in the following years, you can jump right into conversations about things. And it puts a human face on our otherwise digital community interactions.
Carlton Gibson and I both came away with a long list of people we'd like to chat with in the fall for Django Chat. I received lots of generally positive feedback on PyCharm and our new AI features, which I was happy to share with my colleagues on my return.
When you work on a digital product like PyCharm, it's easy internally to focus on the feedback you see on the socials/Reddit/videos, and generally, people only take the time to write or say something if it is very negative. There's almost always something actionable within a complaint, but hearing that many developers are using PyCharm, enjoying it, and have small critiques is a more realistic representation of our user base, but you can only find that out through in-person interactions.