Antoine Reversat, Software Developer in Montreal, QC, Canada
Antoine Reversat

Software Developer in Montreal, QC, Canada

Member since September 10, 2018
Antoine has been a Linux systems administrator and a Python developer for the past 18 years. He has a wide-ranging set of skills from VOIP to testing automation, and has worked for several big companies (Ubisoft, Facebook) and several smaller ones. He loves to dive deep into the intricacies of a system in order to troubleshoot performance issues or complicated bugs.
Antoine is now available for hire

Portfolio

Experience

Location

Montreal, QC, Canada

Availability

Part-time

Preferred Environment

Google Cloud, CircleCI, GitHub, Linux, Vi, Visual Studio Code

The most amazing...

...project I've worked on was automating the configuration of the iPhone through the use of a web driver and Python.

Employment

  • Production engineer

    2021 - 2023
    Meta
    • Helped develop a tool that ensures that one of the tools that flags privacy commitment violations is working correctly.
    • Wrote a replacement for a tool in order to remove a java->jni->c->python chain that was very hard to debug.
    • Helped improve the process of landing AI capacity in the datacenters.
    Technologies: Python 3, Rust
  • Devops engineer

    2021 - 2021
    Trust & Safety Laboratory Inc. (via Toptal)
    • Automated the CI/CD pipeline in order to continuously deploy the staging environment and mark a release to be deployed in production. (using Github actions).
    • Created a tool to extract text from rotated images and submit them for analysis.
    • Developed Bazel rules to simplify the process of making Docker images from code in the main repository.
    Technologies: DevOps, Amazon Web Services (AWS), Docker, Python, Amazon Simple Queue Service (SQS), AWS Simple Notification Service (AWS SNS), Amazon EKS, Kubernetes, Data Pipelines, Amazon S3 (AWS S3), GitHub, Bazel, CI/CD Pipelines
  • DevOps Engineer

    2020 - 2021
    Crabel Capital Management (via Toptal)
    • Refactored a Python application used for backups to be more object-oriented and added type hints.
    • Added an endpoint to a web service in TypeScript to add the ability to mark a version as released in Jira when the CI/CD pipeline releases it.
    • Helped migrate from on-prem Artifactory to cloud Artifactory. This required patching of different tools written in Python and Bash and coordination with the teams in order not to have any downtime.
    • Added Ansible tasks to expand the product deployment infrastructure.
    • Fixed different issues with Jenkins, ranging from shell script bugs to job misconfiguration.
    Technologies: Jenkins, Jenkins Pipeline, Artifactory, GitHub, GitHub API, Jira REST API, Python 3, TypeScript, Bash Script, Ansible
  • DevOps Engineer

    2019 - 2020
    Veea, inc (via Toptal)
    • Contributed to migration from chef 12 to chef 14. Migrated recipes from the deprecated apis to the new ones.
    • Helped transition from manually created clusters in AWS to using autoscaling groups to deploy new clusters (using spot instances for non-essential ones).
    • Added the ability to spin up new environments using terraform.
    • Helped move from Elastic stack to Datadog. Moved metrics collection to Datadog.
    • Migrated the existing terraform workflow to an easier to maintain terragrunt/terraform workflow.
    Technologies: Continuous Integration (CI), Continuous Delivery (CD), SQL, Docker, Git, Python, Apache, Linux, Amazon Web Services (AWS), NGINX, SmartStack, Elasticsearch, Redis, Apache ZooKeeper, Apache Kafka, Terragrunt, Terraform, Chef, Amazon Elastic Container Service (Amazon ECS), Amazon EC2, AWS NLB, AWS IAM, AWS ALB
  • Python Developer

    2018 - 2018
    Obkio
    • Reworked an existing codebase for a WebSocket server architecture in order to make it infinitely scalable.
    • Added scalable publish/subscribe 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 asynchronous unit tests for the project.
    Technologies: Continuous Integration (CI), PostgreSQL, Continuous Delivery (CD), SQL, Python Asyncio, Google Cloud Platform (GCP), Git, Python, Linux, Bitbucket, Docker, Redis, WebSockets, Asyncio, Python 3
  • Infrastructure Engineer/Back-end Developer

    2017 - 2018
    Caravan
    • 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.
    Technologies: Continuous Integration (CI), Google Cloud, Continuous Delivery (CD), SQL, Python 3, Google Cloud Platform (GCP), Git, Apache, Linux, Amazon Web Services (AWS), Apache Kafka, Apache ZooKeeper, Terraform, Node.js, Angular, Flask, Django, Python, CircleCI, Kubernetes, Docker Swarm, Docker, HTTP
  • Production Engineer

    2015 - 2017
    Facebook
    • 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).
    • Acted as the team lead for the mobile lab: led a team of three other engineers working on the mobile lab, providing guidance, code review, and setting priorities.
    Technologies: Test-driven Development (TDD), SQL, Python 3, Linux, Android, iOS, MacOS, CentOS, Chef, Asyncio, Python
  • Python Developer

    2014 - 2015
    Caravan Web Worker Coopérative
    • Developed an API to federate three other APIs into one using Django, Django REST framework, Memcache, and Google Cloud.
    • Managed two other developers working on the same federated API project.
    • Developed data ingestion scripts in Python that allowed importing old data into the customers CRM.
    Technologies: Test-driven Development (TDD), Google Cloud, SQL, Git, Apache, Linux, Memcached, Google Cloud SQL, Google Cloud Platform (GCP), Django REST Framework, Flask, Django, Python
  • Linux Systems Administrator

    2013 - 2013
    Fibrenoire
    • Helped create their highly available VOIP platform.
    • Implemented puppet configuration management. Used puppet to manage the configuration of around 10 servers.
    • Created a tool to automate provisioning of the customer premise equipments using Python.
    • Implement monitoring using Zabbix. Used Zabbix to monitor around 10 servers.
    Technologies: SQL, Google Cloud Platform (GCP), Git, Apache, Linux, Python, Lua, Cisco, OpenSIPs, FreeSWITCH
  • Unix/Linux Administrator

    2012 - 2013
    Ubisoft
    • Implemented a high availability Mysql platform using MySQL and Pacemaker serving more than 300,000 concurrent users.
    • Helped implement the company-wide Zabbix deployment.
    • Was oncall for the whole Mysql deployment serving online games.
    Technologies: SQL, Linux, Zabbix, Percona, Pacemaker, MySQL
  • Technology Director

    2008 - 2012
    Ubity
    • Helped create and operate a hosted VoIP service. This involved designing, implementing, and scaling the Asterisk infrastructure supporting the service.
    • Created a tool to provision new phones using Python and MySQL. This tool would use customer data to generate the provisioning files for any type of phone and serve it over HTTP.
    • Helped in the customer support rotation. This involved answering customer requests and troubleshooting problems over the phone or through our ticketing system.
    • Set up new customers' equipment. This would involve going to a customer's location and installing network equipment and the phones.
    • Made the VoIP setup high available by sharing the data needed by each server among all of them using GlusterFS and MySQL.
    • Used BGP and route engineering to make the internet connectivity at the datacenter fully redundant.
    • Led a team of five people responsible for operations, infrastructure, and support. Helped define the infrastructure and made sure it was implemented correctly. Helped support on the higher-level cases.
    Technologies: SQL, Git, Apache, Linux, Python, MySQL, GlusterFS, SIP, Tomato, VoIP, Asterisk
  • Free Software Consultant

    2007 - 2007
    Savoir faire Linux
    • 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.
    • Created a small distribution for workstation thin clients.
    Technologies: SQL, Git, MySQL, Linux, Exim4, Postfix, Samba, Apache, JBoss, Apache Tomcat
  • System Administrator

    2007 - 2007
    Linagora
    • Created an automated installer to bring up the developer workstations for SAGEM.
    • Figured out how to automate joining the active directory domain for the workstations.
    • Automated developer environment setup for the workstations on first login.
    Technologies: SQL, Linux, OpenLDAP, Samba, Kerberos, Debian, Installation
  • Engineer

    2004 - 2007
    Capensis
    • Automated server installation and configuration by writing a Perl application.
    • Created custom solutions for customers (mail servers, filtering proxies, web servers, etc).
    • Supported customers on the phone to help solve problems with their servers.
    Technologies: SQL, MySQL, Linux, OpenLDAP, Samba, Dovecot, Apache, Postfix, Python, Perl, Debian Linux

Experience

  • Configstore
    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, AWS SSM, etc.).

  • Contributed to the Linux Kernel
    https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v4.19-rc2&id=e3cb78c772de593afa720687ce3abbed8d93b0c3

    Contributed 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. I had to dig deep into the kernel code to figure out what was happening.

  • Added Support for IT8688 to OpenHardwareMonitor
    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
    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.). It details how we tested different mobile applications on actual phones at the scale of Facebook.

  • Contributed to libimobiledevice
    https://github.com/libimobiledevice/libimobiledevice

    Contributed some patches to libimobiledevice, a library that allows interaction with iPhones, iPads, etc. I fixed a few bugs and added some missing functionnality. Most of these were discovered while working on the mobile lab for Facebook.

  • Unreal engine plugin
    https://www.unrealengine.com/marketplace/en-US/product/38b887ee46ef471ebdb93d8cfb2ad96a

    Developed an unreal engine plugin that allows using a live screen capture as a source for a MediaTexture. This allows people to use a live capture of their desktop as an in-game texture. It is mostly useful in VR applications to have a live view of the screen in the VR environment.

  • 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.

Skills

  • Languages

    Python, Python 3, Java, JavaScript, SQL, Lua, Rust, Perl, TypeScript, Bash Script, Ruby, Swift, C, C++, C#
  • Frameworks

    Django, Django REST Framework, Flask, Unreal Engine 4, Angular, OpenSIPs, Unreal Engine, SmartStack
  • Libraries/APIs

    Python Asyncio, Jenkins Pipeline, REST APIs, Terragrunt, Asyncio, Node.js, OpenLDAP, GitHub API, Jira REST API, Windows API
  • Tools

    Terraform, NGINX, Apache, Git, Jenkins, Artifactory, Amazon Elastic Container Service (Amazon ECS), Google Stackdriver, Docker Swarm, CircleCI, Android Studio, Puppet, Chef, SaltStack, Ansible, Asterisk, FreeSWITCH, Apache ZooKeeper, GitHub, Pacemaker, Zabbix, Apache Tomcat, Postfix, Exim4, Tomato, Bitbucket, AWS IAM, Amazon Simple Queue Service (SQS), AWS Simple Notification Service (AWS SNS), Amazon EKS, Bazel, Visual Studio, JetBrains
  • Paradigms

    DevOps, Mobile Development, Test-driven Development (TDD), Continuous Delivery (CD), Continuous Integration (CI), Samba
  • Platforms

    Kubernetes, Docker, Android, Linux, Google Cloud Platform (GCP), iOS, MacOS, Amazon Web Services (AWS), Spinnaker, Percona, CentOS, JBoss, Debian Linux, Debian, AWS ALB, AWS NLB, Amazon EC2, Apache Kafka, Visual Studio Code
  • Storage

    MySQL, Google Cloud SQL, Google Cloud, PostgreSQL, Memcached, Redis, GlusterFS, Elasticsearch, MongoDB, Data Pipelines, Amazon S3 (AWS S3)
  • Other

    Vi, Session Initiation Protocol (SIP), Mobile App Development, CI/CD Pipelines, HTTP, Autoscaling, WebSockets, Cisco, Dovecot, Installation, Kerberos, VoIP, SIP, Networking, Business, System Administration, Reverse Engineering, Unreal Engine 5

Education

  • Engineering Degree in Telecommunications and Networks
    2004 - 2007
    TELECOM Lille - Lille, France
  • 2 Year Degree in Telecommunications and Networks
    2002 - 2004
    Institut Universitaire de Technologie de Béthune - Bethune, France

To view more profiles

Join Toptal
Share it with others