I’ve been giving some talks for a few years now, mostly to share my experience on scaling python.
The rise of Python in the Data communities
A retrospective and prospective of Python’s adoption in the data-driven industries and how it has and should influence its ecosystem and communities.
Thanks to its versatility, Python’s usage and adoption has changed a lot over the last decade to go beyond the very act of software programming.
From Developers to SysOps, closely followed by Scientists and Data analysts, Python has spread to become a common tongue for a wide range of people.
We will start by looking at how this increased adoption impacted Python ecosystem and is still shaping it today. While this talk is not walk through all the Python technologies around data, some of them will be outlined so you will hear words like Numpy, Pandas or Jupyter.
Then we will try to project ourselves in the future and by highlighting the pitfalls Python has to overcome to keep up with its pace and mature in its ability to scale!
Scaling python book (interview)
I’ve had the pleasure to be interviewed by Julien Danjou for his latest book called “scaling python”.
I answered the following questions:
- Could you introduce yourself and explain how you came to Python?
- What do you think make Python great (or not) when building distributed systems? What are the things you consider being advantages or drawbacks?
- What would be your the top N mistakes to avoid or advice/best practice
to follow when building scalable, distributed systems using Python?
Leveraging consistent hashing in your python applications
While consistent hashing is largely known and adopted in the NoSQL database clusters to solve data distribution and data access reliability, it is less known and used by the typical developers.
This talk will introduce you to consistent hashing and the problems it solves while going through a practical use case in a python application.
Using Service Discovery to build dynamic python applications
This talk will showcase and compare three Service Discovery
technologies and their usage to build a dynamic and distributed
After a short introduction to service discovery, we will iterate and
compare how we can address the concrete and somewhat complex design
of our python application using each technology.
We’ll then be able to discuss their strengths, weaknesses and python
bindings and finally showcase the application in a demo.
All the source code will of course be made available for the audience
to benefit and start from for their own use !
Planning for the worst (interactive talk, with Guillaume Gelin)
This talk is about sharing our experience about how we handled
production problems on all levels of our applications.
We’ll begin with common problems, errors and failures and dig on to
more obscure ones while sharing concrete tips, good practices and code
to address them !
This talk will make you feel the warmth of not being alone facing a problem 🙂
Designing a scalable and distributed application
One of the key aspect to keep in mind when developing a scalable
application is its faculty to grow easily. But while we’re used to
take advantage of scalable backend technologies such as mongodb or
couchbase, scaling automatically our own application core is
usually another story.
In this talk I will explain and showcase a distributed web
application design based on consul and uWSGI and its consul
plugin. This design will cover the key components of a distributed and
- Automatic service registration and discovery will allow your application to grow itself automatically.
- Health checking and service unregistration will allow your application to be fault tolerant, highly available and to shrink itself automatically.
- A distributed Key/Value storage will allow you to (re)configure your distributed application nodes at once.
- Multi-Datacenter awareness will allow your application to scale around the world easily.
A talk about fault tolerance in application design (in french).
I gave an informal but still recorded talk about uWSGI + gevent to build a fault tolerant application.