Python Developer in Montreal, QC, Canada
Python Developer2018 - 2018Obkio
Technologies: Python3, Asyncio, Websocket, Redis, PostgreSQL, Docker, Bitbucket
- Reworked an existing codebase for a WebSocket server architecture in order to make it infinitely scalable.
- Added scalable pub/sub support using Redis.
- Added a PostgreSQL exporter in order to archive data living in Redis.
- Added Python typing to the project and added type checking to the CD infrastructure.
- Added functional tests using Bitbucket pipelines and docker.
- Implemented async unit tests for the project.
Infrastructure Engineer/Back-end Developer2017 - 2018Caravan
Technologies: Docker, Swarm, Kubernetes, CircleCI, Python, Django, Flask, Angular, Node.js, AWS, Terraform, Zookeeper, Kafka
- Developed CI/CD automation using Docker, Swarm, Kubernetes, and CircleCI.
- Developed a Python module that allows a Django project to use different backends to store configuration data (https://github.com/caravancoop/configstore).
- Migrated a 'snowflake' deployment of Kafka to a full infrastructure as a service deployment using Terraform and Docker.
Production Engineer2015 - 2017
Technologies: Python, Asyncio, Chef, Centos, MacOS, iOS, Android
- Worked on the automation of the setup and maintenance of thousands of phones to run tests on the Facebook family of apps. (see https://techcrunch.com/2016/07/13/facebook-lifts-the-veil-on-its-mobile-device-lab/).
- Re-wrote the Python software stack that allowed us to monitor the state of the phones in the datacenter.
- Added automation to turn up mobile device racks (Python).
- Created a tool that allowed to script the configuration of iPhones using WebDriver and Python.
- Helped automate the management of a fleet of more than 2000 Mac minis (using chef).
Python Developer2014 - 2015Caravan
Technologies: Python, Django, Flask, Django Rest Framework, Google Cloud Platrform, CloudSQL, Memcache
- Developed an API to federate three other APIs into one using Django, Django rest framework, Memcache, and Google Cloud.
Linux Systems Administrator2013 - 2013Fribrenoire
Technologies: Freeswitch, Opensips, Cisco gateways, Lua, Python
- Helped create their highly available VOIP platform.
- Implemented puppet configuration management.
- Created a tool to automate provisioning of the customer premise equipments using Python.
- Implement monitoring using Zabbix.
Unix/Linux Administrator2012 - 2013Ubisoft
Technologies: MySQL, Pacemaker, Percona, Zabbix
- Implemented a high availability Mysql platform using MySQL and Pacemaker serving more than 300,000 concurrent users.
- Helped implement the company-wide Zabbix deployment.
Technology Director2008 - 2012Ubity
Technologies: Asterisk, VOIP, Tomato (router software), SIP, GlusterFS, MySQL, Python
- Helped create and operate a hosted VOIP service.
- Created a tool to provision new phones using Python and MySQL.
- Supported customers.
- Installed new customers.
- Made the VOIP setup high availability by using GlusterFS and Mysql.
- Made the networking redundant by setting up BGP.
Free Software Consultant2007 - 2007Savoir faire Linux
Technologies: Tomcat, Jboss, Apache, Samba, Postfix, Exim
- Supported customers on the phone for various problems related to the operation of their servers.
- Helped customers scale their web infrastructure to support their load.
System Administrator2007 - 2007Linagora
Technologies: FAI (Fully Automatic Installation), Debian, Kerberos, Samba, OpenLDAP
- Created an automated installer to bring up the developer workstations for SAGEM.
Engineer2004 - 2007Capensis
Technologies: Debian Linux, Perl, Python, Postfix, Apache, Dovecat, Samba, OpenLDAP
- Automated server installation and configuration by writing a Perl application.
- Created custom solutions for customers (mail servers, filtering proxies, web servers, etc).
- Configstore (Development)https://github.com/caravancoop/configstore
Configstore is a Python module meant to be used with Django that allows it to store configuration items in different back-end environments (environment variables, Docker secrets, dotenv file, etc.).
- Contributed to the Linux Kernel (Other amazing things)https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v4.19-rc2&id=e3cb78c772de593afa720687ce3abbed8d93b0c3
Contibuted a bug fix to the Linux Kernel. This fixed a bug where using 802.1Q VLANs on certain hardware would completely corrupt the packets it was sending.
- Added Support for IT8688 to OpenHardwareMonitor (Other amazing things)https://github.com/openhardwaremonitor/openhardwaremonitor/pull/1157
I added support for the IT8688 chip to OpenHardwareMonitor by reverse engineering the official Gigabyte utility for hardware monitoring. This project involved reverse engineering a C# application and debugging it with symbols exported from JetBrains dotpeek to Visual Studio 2017.
- The Mobile Device Lab at the Prineville Datacenter (Other amazing things)https://code.fb.com/android/the-mobile-device-lab-at-the-prineville-data-center/
Wrote an article about what I did at Facebook. This has then been used as a basis for several articles online (TechCrunch, the Verge, etc.).
- Contributed to libimobiledevice (Development)https://github.com/libimobiledevice/libimobiledevice
Contributed some patches to libimobiledevice, a library that allows interaction with iPhones, iPads, etc.
- A Better Approach to Google Cloud Continuous Deployment (Publication)Continuous deployment is the practice of automatically deploying new code to production. Most continuous deployment systems validate that the code to be deployed with tests, and then build and deploy if everything looks good. However, there’s a better way. In this article, Toptal Freelance DevOps Engineer Antoine Reversat builds an event-driven continuous deployment pipeline that builds first and then runs tests on our final deployment artifact before deploying. This makes test results more reliable, and the CD pipeline easily extendable.
FrameworksDjango, Django REST Framework, Flask, Unreal Engine 4, Angular, OpenSIPs
Libraries/APIsPython Asyncio, REST APIs
ToolsNginx, Apache, Git, AWS ECS, Terraform, Google Stackdriver, Docker Swarm, CircleCI, Android Studio, Puppet, Chef, SaltStack, Ansible, Asterisk, FreeSWITCH, Apache ZooKeeper
PlatformsKubernetes, Docker, Android, Linux, Google Cloud Platform, iOS, MacOS, Amazon Web Services (AWS), Spinnaker, Apache Kafka
StorageMySQL, Google Cloud SQL, Google Cloud, PostgreSQL, Memcached, Redis, MongoDB
OtherVi, Session Initiation Protocol (SIP), HTTP, Autoscaling, WebSockets
ParadigmsTest-driven Development (TDD), Continuous Delivery (CD), Continuous Integration (CI)
- Engineering degree in Telecommunications and Networks2004 - 2007Telecom Lille 1 - Lille, France
- 2 year degree in Telecommunications and Networks2002 - 2004IUT de Bethune - Bethune, France