Uploaded August 2026 | Updated September 2026, 2 weeks ago
[EuroPython 2026 - S3A on 2026-07-17]
🎤 *Breaking changes – not great, not terrible by Jan Musílek*
🔗 https://ep2026.europython.eu/session/breaking-changes-not-great-not-terrible
📝 Abstract:
Do you maintain a Python library, REST API or any other user-facing interface? Breaking changes are frowned upon, but from a a certain project size, they become unavoidable.
How do you make the breaking changes manageable? How should you version your package / API? Should you put an upper bound on your dependencies?
We'll discuss deprecation, forward and backward compatibility, upgrade strategies and more, illustrated on real-world examples. Our main focus will be on API changes of Python libraries, but the principles are widely applicable.
---
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: creativecommons.org/licenses/by-nc-sa/4.0
[EuroPython 2026 - S3A on 2026-07-17]
🎤 *Breaking changes – not great, not terrible by Jan Musílek*
🔗 https://ep2026.europython.eu/session/breaking-changes-not-great-not-terrible
📝 Abstract:
Do you maintain a Python library, REST API or any other user-facing interface? Breaking changes are frowned upon, but from a a certain project size, they become unavoidable.
How do you make the breaking changes manageable? How should you version your package / API? Should you put an upper bound on your dependencies?
We'll discuss deprecation, forward and backward compatibility, upgrade strategies and more, illustrated on real-world examples. Our main focus will be on API changes of Python libraries, but the principles are widely applicable.
---
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: creativecommons.org/licenses/by-nc-sa/4.0
![Data wrangling in a modern terminal - Jan Pipek
[EuroPython 2026 - S3B on 2026-07-16]
🎤 *Data wrangling in a modern terminal by Jan Pipek*
🔗 https://ep2026.europython.eu/session/data-wrangling-in-a-modern-terminal
📝 Abstract:
Once we constrain ourselves to a rectangle of fixed-width characters (preferably white on a black background), we start to see the world a bit differently. If we want to thoroughly investigate it (a.k.a. perform data analysis), we have to be equipped with appropriate tools - be it techniques, libraries or standalone console-based applications. Let’s see what the terminal has to offer when reading, manipulating, presenting and even plotting numerical data. We might even finish with a live dashboard your audience will love (or perhaps will not).
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/ Data wrangling in a modern terminal - Jan Pipek](https://i.ytimg.com/vi/tx161-RrH8c/mqdefault.jpg)

![The hardest test suite I ever built - a pytest case study - Grzegorz Kocjan
[EuroPython 2026 - S2 on 2026-07-15]
🎤 *The hardest test suite I ever built - a pytest case study by Grzegorz Kocjan*
🔗 https://ep2026.europython.eu/session/the-hardest-test-suite-i-ever-built-a-pytest-case-study
📝 Abstract:
For years, this real-time video system had no tests. Every change produced unpredictable side effects. Accuracy drifted. Production incidents and escalations followed. The only “verification” was manual inspection and hope.
When I joined the project, this was the reality - and building a proper integration test suite became my first priority.
In this talk, I’ll share how I designed and evolved the hardest integration test suite of my career using pytest - and kept it readable.
The system processed live streams in production. It was non-deterministic. Individual detections were only 80–90% accurate. For testing, we replayed recorded scenarios to make system behavior observable and comparable across runs. But binary assertions were not enough. A single failed event did not mean the whole system was broken - but we needed a way to measure when it actually was.
Instead of writing one massive test, I built a layered architecture:
- dual parametrization - recording scope and event scope
- orchestration in fixtures - assertions in tiny, single-purpose tests
- statistics collection during execution
- end-of-run aggregation that summarizes system accuracy
The result was a suite that could detect regressions in model changes and produce reproducible evidence - HTML reports, structured dumps, and a summary statistics file.
This talk explores how far pytest can be stretched beyond unit tests - into a framework for architecting complex integration systems.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/ The hardest test suite I ever built - a pytest case study - Grzegorz Kocjan](https://i.ytimg.com/vi/uH9hsF-n8ko/mqdefault.jpg)
![Flying in Formation - with Python Threading and ROS2 Parallelism - DEBORAH E DANJUMA
[EuroPython 2026 - S3B on 2026-07-16]
🎤 *Flying in Formation - with Python Threading and ROS2 Parallelism by DEBORAH E DANJUMA*
🔗 https://ep2026.europython.eu/session/flying-in-formation-with-python-threading-and-ros2-parallelism
📝 Abstract:
Coordinating a swarm of drones to autonomously allocate tasks, bid on them in real time, and execute multi-robot formations sounds like science fiction — but it is entirely possible with Python, a handful of threading primitives, and ROS2s MultiThreadedExecutor.
This talk walks through the concrete implementation challenges of building a decentralised auction-based task allocation system for a swarm of four Crazyflie UAVs. The focus is on a problem that trips up almost every robotics engineer who graduates from tutorials to real deployments: what happens when your system has to wait for external, asynchronous events — bids from four robots, assignment confirmations, formation completion signals — without blocking the entire node and without introducing race conditions or deadlocks?
We will explore how Pythons threading.Event and Lock primitives were used alongside ROS2s MultiThreadedExecutor and ReentrantCallbackGroup to implement a synchronized bid-collation protocol, a global assignment barrier, and a concurrent multi-goal formation controller — all running in parallel on a single laptop while communicating with physical drones over radio.
You will leave with a clear, transferable mental model for combining Python threading with ROS2 callback groups, practical patterns for synchronizing distributed asynchronous events in real-time systems, and an honest account of what breaks in the real world (and why).
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/ Flying in Formation - with Python Threading and ROS2 Parallelism - DEBORAH E DANJUMA](https://i.ytimg.com/vi/uVecKdJ4V7g/mqdefault.jpg)

![What Ive Learned Maintaining the MCP Python SDK - Marcelo Trylesinski
[EuroPython 2026 - S4 on 2026-07-17]
🎤 *What Ive Learned Maintaining the MCP Python SDK by Marcelo Trylesinski*
🔗 https://ep2026.europython.eu/session/what-i-ve-learned-maintaining-the-mcp-python-sdk
📝 Abstract:
After months of maintaining the MCP Python SDK and reviewing many community contributions, Ive seen some architectural hiccups in repeat. Developers struggle with questions that seem simple but have nuanced answers: When should one tool become three? When does a server need to split into two? How do you test an MCP server without spinning up a full client? When should you use resources or prompts instead?
In this talk, we will explore my learnings and understand how to design tool boundaries that scale with your servers complexity, structure your codebase for long-term maintainability, and build a testing strategy for your MCP server that works. Ill share real examples from the wild, both the antipatterns to run away from and the implementations worth adopting.
In 2026, the MCP Python SDK v2 will bring improved typing, a refined API, and better testing primitives. The architectural decisions you make today will determine whether that migration takes a day or a month.
Whether youre maintaining an internal tool or publishing to the community, youll leave with a clear framework for evaluating your own servers design and concrete next steps to improve it.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/ What Ive Learned Maintaining the MCP Python SDK - Marcelo Trylesinski](https://i.ytimg.com/vi/vELVhor6xp0/mqdefault.jpg)

![Why doing difficult things is good for you and good for your team - Katie Bickford
[EuroPython 2026 - S2 on 2026-07-15]
🎤 *Why doing difficult things is good for you and good for your team by Katie Bickford*
🔗 https://ep2026.europython.eu/session/why-doing-difficult-things-is-good-for-you-and-good-for-your-team
📝 Abstract:
This talk shares my experience in my first ever role as a junior engineer after switching careers. I picked up a ticket involving tools and concepts I’d never used before (OpenTelemetry and Honeycomb), hoping to spend a day learning a bit about how we implement observability and monitoring of our Django app. Spoiler alert: it took three weeks of learning, debugging and asking for help to complete this work.
I learned some valuable lessons along the way, not just technical stuff, but about how to problem-solve, collaborate effectively, and keep going in the face of *seemingly unending* challenges.
Through this talk, I want junior engineers in the audience to know:
- You can do difficult things, even if you think you lack the experience or knowledge required. If you’re willing to learn, and have a supportive team around you, you have everything you need.
- Doing difficult things is daunting, but also incredibly rewarding. You often learn 10x more than you expected, and when you finally merge your work into main, it feels like winning the lottery.
- Taking on hard things benefits the whole team—others might learn something new, or strengthen their own understanding by helping you out.
- There’s a lot you can do to support yourself: reach out early, reach out often, and learn how to communicate problems clearly.
- The value of your work cannot be measured by lines of code, it’s so much greater than that.
This talk also offers a reminder to seniors, and leaders or managers, about how tough it can be to be new. Juniors don’t just lack experience, we dont know what we dont know and its *really* easy (for others and ourselves!) to underestimate this. When things break or go wrong, we might not understand where or why, and even if we find a bug or an error, knowing how to fix it is another challenge altogether. I’ll share how my team’s support made all the difference, and offer some practical ideas for how others can support their junior colleagues, too.
This isn’t a super technical talk. It’s more about the human experience of being a beginner, the value of persistence, why asking for help is a great thing to do, and the power of supportive teams; theres hopefully something useful and/or interesting in this for everyone.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/ Why doing difficult things is good for you and good for your team - Katie Bickford](https://i.ytimg.com/vi/vhUGZM3n3mQ/mqdefault.jpg)
![EuroPython 2026 - Conference Closing 🐍
[EuroPython 2026 - S1 on 2026-07-17]
🎤 *Conference Closing 🐍*
🔗 https://ep2026.europython.eu/session/conference-closing
📝 Abstract:
What an amazing week!
We had two tutorials days and three talks days filled with amazing topics, but more important, amazing people!
Our community is thankful, and want to close the main conference days.
Join us to get a nice summary of what was EuroPython 2026.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/ EuroPython 2026 - Conference Closing 🐍](https://i.ytimg.com/vi/wECZd0XIqWs/mqdefault.jpg)
![Keynote: Securing Python for the next decade - William Woodruff
[EuroPython 2026 - Keynote - S1 on 2026-07-17]
🎤 *Securing Python for the next decade by William Woodruff*
🔗 https://ep2026.europython.eu/session/securing-python-for-the-next-decade
📝 Abstract:
The world of open source is undergoing numerous seismic changes, and Python is no exception. This keynote will focus on security: well extrapolate (and speculate) on the task of securing Python for the next decade of usage by open source maintainers, corporations, tinkerers, vibe coders, and everyone in between. Well also cover how we expect attacker behaviors to shift, and how those shifts will require us to discard traditional assumptions as defenders.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/ Keynote: Securing Python for the next decade - William Woodruff](https://i.ytimg.com/vi/wMPe_KepOjc/mqdefault.jpg)
![How we write unit test in my team in Openchip - Jan Koprowski
[EuroPython 2026 - S4 on 2026-07-16]
🎤 *How we write unit test in my team in Openchip by Jan Koprowski*
🔗 https://ep2026.europython.eu/session/how-we-write-unit-test-in-my-team-in-openchip
📝 Abstract:
Have you ever wondered how to write good unit tests? Do you know the best practices for unit testing? Or maybe you’re already using unit tests in your project and want to see how others approach them?
If the answer to any of these questions is yes, this talk is for you. During the session, you’ll learn how to write proper unit tests, discover good testing practices, learn to distinguish mocks from stubs, see examples of using dependency injection to improve testability, and find out what pure functions are and why they’re easier to test.
Slides: https://github.com/jankoprowski/ep2026
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/ How we write unit test in my team in Openchip - Jan Koprowski](https://i.ytimg.com/vi/wUZtz15nCYg/mqdefault.jpg)