Aug 17, 2018

Takeaways from EuroPython 2018 in Edinburgh

We couldn’t miss this year’s EuroPython in Edinburgh, and we’d like to share some highlights with you. Read on to discover some of our key learnings and how we enjoyed the entire conference. Below you can:

  1. Check a presentation on Reliability in Distributed Systems by our Tech Lead Jiri Benes.
  2. Have a look at some of the notes our Automation Developer Standa took during the conference.
  3. See conference notes from our Django Girl Kátia who also announced the first PyCon Balkan Conference.
  4. Check out highlights related to improving the performance of Python code by our Platform Engineer Alex.
  5. Learn a bit about’s Python Party and our trip to Pentland Hills.

1. Taking over the EuroPython stage

For most of us, the conference started with picking the talks we want to attend and making sure our booth perfectly set up. However, for Jiří Benešone of our Technical Team Leads, it was mostly about polishing his presentation on Reliability in Distributed Systems.

Is your system stable? Do you know what happens if a system dependency starts failing? What precisely does each part of your system do or what did it do at any time in the past? If your system goes down at 2am, how quickly will you be able to identify why? Answers to these questions and more in Jiri’s talk below.

Jiri Benes talked about Reliability in Distributed Systems.

2. Python news, Visual Studio Code and other highlights

by Stanislav Geidl, our Python developer

Edinburgh is a fantastic place with a magic aura that inspired JK Rowling’s Harry Potter series. After visiting it, I can see why. However, it’s also a modern city in an old shell with unusual nature and a cold sea.

When I was there I started planning my next vacation here,” he says. However, he was there for Python so here are some of his notes and highlights:

What’s new in Python 3.7, by Stephan Wirtel

Introduction of new features, focused on Data Classes and Context Variables for a asynchronous programming with asyncio.

Code Review Skills for Pythonistas, by Nina Zakharenko

Downright inspiring! In our team, we regularly do code reviews, but this lecture gave me such a clear view on this topic and helped me realise the value of this activity. The talk had three parts — after some general information and tools, Nina advised how to become a great submitter and a great reviewer, make sure your check her slides for more details.

Creating Solid APIs, by Rivo Laks

Only three notes here — version your API, document your API, and use some API standard, such as this one.

Get Productive with Python in Visual Studio Code, by Dan Taylor

Dan and his presentation convinced me to switch to Visual Studio Code.

A tale of refactoring, by Emmanuelle Delescolle

A practical example of refactoring code, thanks to Emmanuelle I discovered Gilded Rose that everyone could try.

Domain-Driven Design Patterns in Python, by Robert Smallshire

A fascinating concept, I need to read more from the book Domain-Driven Design Distilled from Vaughn Vernon.

3. Introducing PyCon Balkan and taking notes on Django

by Kátia Nakamura, our Django Girl

Kátia inviting EuroPython attendees to the first PyCon Balkan in Belgrade.

Kátia, our Django girl, went to EuroPython as one of the organisers of PyCon Balkan which will take place this November. Her mission this time was to gather as much information as she could about the conference organisation, meet people who could help them, and announce PyCon Balkan during the lightning talks.

Besides that, she had the opportunity to attend a few of the talks. Below you can find her notes about some of them.

PyPI: Past, Present and Future, by Nicole Harris

In her presentation, Nicole shared her involvement with Warehouse, the next generation of the most important repository for Python programming language.

Reno: A new way to manage release notes, by Doug Hellmann

Check reno for managing release notes without additional development process.

Django related talks

Django queries optimization, by Ivaylo Donchev

When prefetch_related and select_related can’t optimise our complex logic, leave the complex work to the database and move all the logic to the query sets.

Django structure for scale and longevity, by Radoslav Georgiev

Introducing a new Django layer: service/selector. Gather all the business logic in one place. Great talk! ✨

Proper Django testing, by Martin Angelov

Always essential to talk about tests — as I’ve done in the past here ????. Never gets old, and you always learn something new.

4. Improving the performance of Python code

by Alex Viscreanu, Platform Team Developer

All the talks Alex highlights are related to improving the performance of Python code. Here at we love using python, we deal with vast amounts of data, and that requires optimising every bit of code we have in order to offer a great user experience. Although he’s not working directly on the backend for the web page, he thinks that knowledge of concurrent programming and code optimisation is always useful. Check out his insights.

Die threads, by David Beazley

Interaction between async and threads can be better, and David developed a new library to show how it can be improved. It exposes a higher level API but it still uses threading.Thread with objects.

It’s an academic talk, not suitable for production, but still, a very nice solution.

Asyncio in Python 3.7 and 3.8, by Yury Selivanov

Showing and explaining some of the new asyncio features introduced in Python 3.7. contextvars are really cool. Task groups, loop supervisors, timeout and cancel scopes and more cool stuff planned for future release.

Cython to speed up your Python code, by Stefan Behnel

Cython generates actual C code. Optimising python code can be achieved by simply declaring C types for the Python variables (and letting Cython figure out the rest). It’s possible to use native C/C++ libraries directly in the python code.
The fundamental idea is that “Cython allows code to be as low level as you need but as pythonic, as you want”. Quote from Stefan itself.

Addressing multithreading and multiprocessing in transparent and Pythonic ways, by David Liu

Using multithreading and multiprocessing can be contraindicated. Exponentially spawning threads (nesting parallelism) and spawning more threads than are physically available (oversubscription) can occur without notice.

David showed two python libraries (tbb4py and smp) that address these issues in a pythonic-ish way.

Not Intel specific! ????

Check out all the talks

If you would like to learn more, you can view the live streams here.

4. When the talks were over

Gaining new information is great, but having some time to rest and process that new knowledge is also important.

There was no official EuroPython afterparty event planned this year, but knowing how the Python Party in Rimini still resonates with people, we couldn’t help but organise another party. It was simple but classy. We’d like to thank everyone who came.

The weather in Edinburgh was positively incredible during the conference. However, when we finally had some time to relax and explore the surroundings, heavy rain started. After we managed to convince some members of our party that the rain wasn’t a big deal, we left our AirBnB apartment and, yeah, in about five minutes we were soaked to the bone.

Still, after finding the right bus and the correct bus stop, the weather improved. When we arrived at the visitors’ centre of Pentland Hills, the sun was shining, and we had a lovely walk. If you need proof, check out the pics below.

Want to be in next year’s EuroPython pictures with us? Check our open Python positions and join our team. We’d be happy to welcome you on board.

Featured articles
Generating SwiftUI snapshot tests with Swift macros
Don’t Fix Bad Data, Do This Instead