Criteo at EuroPython 2017

By: CriteoLabs / 06 Sep 2017

For the 3rd year, Criteo sent a delegation to EuroPython conference and for the 2nd time, Criteo was a proud sponsor of the event.

Europython is the biggest Python conference in Europe. This year, the conference was hosted in Rimini, Italy on the Adriatic Riviera from the 9th to the 16th of July. The conference lasted more than one week and was composed of workshops, presentations (200+ this year in 7 different tracks), poster sessions, sprints and lightning talks.

Why was Criteo present?

We use Python in our day to day work. For instance, the system in charge of managing our infrastructure inventory is developed in Python and uses the Django framework. Our data engineers and machine learning researchers are using Python for crunching numbers and inventing new approaches to support our business.

As part of the R&D Culture @ Criteo, we also consider it important that our engineers can attend big conferences to keep themselves up-to-date on the technologies they use.

Finally, we are constantly looking for new talents who’d like to tackle exciting problems at Criteo’s scale and such a conference is the occasion of meeting talented developers. So, if you’re interested in working with Python (or any of the other languages used at Criteo) in an international, technology-driven company, or just curious, drop us an email at r& or have a look at our current opportunities. 🙂

Delegation’s selected talks

Like last year, with so many talks to listen to, it could be hard to decide where to start. To help you, each Criteo engineer who attended the conference picked one talk and explained in a few words why they liked it.

A Python for Future Generations – A. Ronacher (videoslides)

Armin, the creator of Flask, the famous web framework, gave a keynote about why we should be aware of the mistakes that have been made by the Python community in the past, what we could do to fix them and how our day-to-day work should pave the way to a better future of Python. His talk covers hot topics from packaging (a world of monkey-patches) to extension modules (please, start using cffi!), without forgetting unicode (utf-8 everywhere!). He notably denounces the fact that the Python language itself has no documented standard, so people tend to take the CPython implementation as a de facto standard, whose quirks are replicated e.g. by pypy for the sake of compatibility, blocking substantial improvements. (Hugues Lerebours)

There should be one obvious way to bring python into production – S. Neubauer (videoslides)

The Zen of Python (PEP20) states that there should be one obvious way of doing things. Sebastian starts his talk by exposing the many different ways of doing packaging and deploying today: virtualenv, pip, conda, OS package, nix, docker and probably many others that we are not even aware of. All of them have pros and cons and depending on your case or your company, one approach is privileged to another. So, we are far from the Zen of Python recommendation. But why are we there? Because of historical reasons. Why isn’t it one obvious way? Maybe because it still waits to be built! Sebastian talk continues with a call to change: we can do something about this and make python easy to go in production! (Let’s just pay attention so that it won’t be the new standard to unify all the existing ones as imagined in and Sebastian to give some interesting directions: containers are probably a good solution, automation, a must and DevOps, the new working mode. When this problem is solved, serverless could be something for python. (Rémi Guillard)

Developing elegant workflows in Python code with Apache Airflow – M. Karzynski (videoslides)

Michal gives a good overview of a tool to create elegant workflows. Every time a new batch of data comes in, you start a set of tasks. Some tasks can run in parallel, some must run in a sequence, perhaps on a number of different machines. That’s a workflow. Apache Airflow is an open-source Python tool for orchestrating data processing pipelines. In each workflow tasks are arranged into a directed acyclic graph (DAG). Shape of this graph decides the overall logic of the workflow. Through an example, Michal presents the key concepts of the tool. (Basha Mougamadou)

Inside Airbnb: Visualizing data that includes geographic locations – G. Ballester (videoslides)

In his presentation, Guillem presented multiple ways to build and test valuable geographical data visualizations. On top of the multiple tools to manipulate and prepare data sets, Python language also provides great libraries to create great data visualizations: Holoview / Geoview, Bokeh and Shapefiles to name a few. The general approach is that Python helps developers to prepare a data visualization and then the visualization can be ported to a more “web friendly” framework such as any Javascript framework. (Bastien Vallet)

How Facebook uses Python to build (and operate) datacenters at scale – N. Đipanov (video)

Nikola explained that when dealing with a huge number of servers and network equipment, you have to automate as much as possible to avoid human errors. For example, Facebook cabling management can no more be handled manually since they deal with between 10 and 20 million ports. If you want to discover how Python code can be used to help datacenters be more efficient, you have to watch this one. (Djothi Carpentier)

If Ethics is not None – K. Jarmul (videoslides)

With her walk through the computing history with a focus on ethical questions, Katharine succeeded in captivating the audience (and this, without a single line of code! :)). She looks at how the ethical questions kept popping and how they were discussed at the time. She raises also the fundamental question of the personal responsibility of the developer… a question that each of us should keep in mind when taking decisions. (Renaud Bauvin)

Not really a Delegation-selected talk but this year, 2 Criteos had the chance of presenting an introductory talk on introspection.

Inspect (or gadget?) – Hugues Lerebours / Renaud Bauvin (videoslides/notebook)

Introspection is often seen as a bad coding practice and as such a gadget. Nevertheless, the Python Standard Library provides different tools (among them the ‘inspect’ library) to easily identify a generator, recover the source code of a function or get a function signature. We propose to spend 1/2 hour to dig into what introspection has to offer to developers, to see what tools are available, what you can get out of them and some useful use cases that we met in our practice at Criteo.

The Criteo delegation is taking this opportunity to thank the organizers (EuroPython is a purely volunteers-based event), all the speakers and in general all the attendees to have made of this 2017 edition a success and a great moment to feel the Python community energy.

See you soon!

Post written by:

Basha Mougamadou, Renaud Bauvin, Bastien Vallet, Hugues Lerebours, Rémi Guillard, Djothi Carpentier.

  • CriteoLabs

    Our lovely Community Manager / Event Manager is updating you about what's happening at Criteo Labs.