EuroPython is a full week dedicated to all things Python. This year the conference ran from 14–20 July in historic Prague.
My first EuroPython
This was my very first EuroPython. Right after picking up the badge, you’re welcomed by a table full of stickers to customize it — interests, working groups, and even a “first EuroPython” tag. It was fun to see such a mix of long-time regulars and newcomers like myself.
Talks
When I first opened the schedule, I was a little overwhelmed. With more than 180 speakers and around 100 talks, it wasn’t easy to choose where to start. One thing was clear: boredom wasn’t a part of the programme.
The conference offered variety on every level — speakers, topics, and presentation styles. From catching Ukrainian snacks while discussing football analytics (thanks, Ruslan), to learning about Polish strawberry pasta recipe during a deep dive into concurrency controls. Each speaker, whether a first-timer or a veteran, brought a piece of themselves to the stage, making every talk all the more engaging.
Beyond the sheer number of talks, the range of topics was amazing. One moment you’re diving into the internals of FastAPI and Django, and the next you’re building your own ASGI-compliant protocol. The programme spanned everything from DevOps, Kubernetes and geospatial engineering to GPU-accelerated computing, microcontrollers, and of course, AI. Whatever your area of expertise, if you work with Python, chances are you’ll find someone tackling similar challenges at EuroPython.
Below is a selection of talks I’d like to highlight.
Myths and fairy tales around Python performance - Antonio Cuni
Antonio Cuni, principal software engineer at Anaconda and author of SPylang. SPy is subset of Python designed to be statically compiled. The project aims to balance the ease-of-use and productivity of a dynamically typed language, while stripping the language of some features to make it faster.
In his talk, Antonio covers some of the most common misconceptions around Python performance. He began with a comparison of the different layers of memory, from the very fast L1 cache to the much slower main RAM, to illustrate why optimizing for CPU efficiency usually matters more than chasing small micro-optimizations. He then showed how Python features translate into CPU instructions, explaining why compile-time inlining is not possible given the language’s semantics and why a simple attribute call like foo.x()
is more expensive than it might seem.
Intuition vs. Reality: Surprising Truths in Python Performance - Adrien Cacciaguerra & Arthur Pastel
Adrien and Arthurs are both co-founders of CodSpeed, a Continuous Performance Analysis solution. Their talk focusses on performance analysis and shows us that our intuitions about code performance can actually make our programs perform slower.
For example, in Python both lists and generators let you iterate over sequences, but they work very differently. A list is eager: when you run [x for x in range(10_000_000)]
, all ten million elements are created and stored in memory immediately. In contrast, a generator is lazy: it produces values one at a time, yielding them on demand while only keeping a small amount of state in memory. This makes generators far more memory-efficient than lists.
However, memory efficiency doesn’t always translate to raw speed. Each time a generator yields, the interpreter must resume its frame and execute Python bytecode, which adds per-item overhead compared with iterating over a list stored contiguously in memory. That said, generators avoid allocating and populating a full intermediate list, so in single-pass operations (for example sum(x for x in range(...))
), they can actually be faster overall.
In addition to the insights, they showcased their LLM-based performance analysis platform P99 Chat. In P99 you can upload a snippet of code and have the AI write a summary of how well it’s performing or where it can be tweaked.
Breaking HTTP Boundaries: ASGI to build a fleet management system in Python - Kirill Druzhinin
The ASGI (Asynchronous Server Gateway Interface) protocol is the successor of WSGI. ASGI provides a standard interface between async-capable Python network protocol servers, frameworks and applications. It’s most commonly known for it’s use with web applications, but you can do way more with the protocol.
Kirill’s demo went beyond the usual HTTP boundaries, showing how ASGI can be used for custom protocols and real-time communication. Unlike HTTP, which is typically request-response and half-duplex, ASGI supports full-duplex communication—meaning data can flow in both directions simultaneously. This opens up possibilities for multiplexed protocols, streaming, and more advanced use cases (websockets or custom IoT protocols).
He explained how his protocol server processes incoming frames, checking if they arrive sequentially and handling them according to the protocol’s rules. The server acts as a bridge between the network layer and the Python application, ensuring that each frame is correctly routed and that the client and app stay in sync. Features like more_body=True
in ASGI allow for streaming data, making it possible to handle large payloads or continuous updates efficiently.
The community
What stood out most was the community (how clichë). Python’s culture is just as approachable as the language itself: people are eager to help at every level, whether you’re learning Django for the first time or digging into the CPython JIT.
This was refreshing compared to other programming communities where beginners can get dismissed as or feel like they’re “not good enough”. I started teaching myself programming when I was about 12, there were plenty of moments when I felt like giving up for a plethora of reasons. It means the world to me to see how patient and supportive people at EuroPython are.
It felt like an environment where learning and socializing come naturally — where your intelligence or worth isn’t measured by your seniority in a particular field.
I say all of this to give Python and it’s community the flowers it deserves for fostering an amazing community of positive and like-minded people.
The origin story
At the closing ceremony, we were treated to a twenty–minute preview of the newly released Python documentary: An origin story. The film traces Python back to its beginnings, with Guido van Rossum himself narrating how the language emerged during his time at CWI — the Dutch national research institute for mathematics and computer science.
During the doc, notable figures like Brett Cannon and Benjamin Peterson share their perspectives on contributing to the ecosystem and how much they gained from the commuity. What struck me was how the documentary highlights not just the technical milestones, but also the people who shaped Python’s growth.
It’s a fascinating look at how a personal project evolved into one of the most ubiquitous programming languages in the world, growing in both maturity and popularity while fostering it’s community-driven spirit.
Closing words
Overall, EuroPython 2025 was a fantastic experience. The event was well organized, the catering was excellent, and the staff were very friendly. Behind the scenes, the conference depends on a dedicated team of volunteers who make everything run seamlessly. A heartfelt thank-you to all of them for giving up their own time to ensure talks and operations went off without a hitch.