Senior Software Engineer - LivestreamJW Player (January 2020 - Now)
Technical owner of the Live Channels product that allows customers to broadcast live events to their audience.
Build highly scalable, performance-oriented systems around livestream workflows; over hundred million of minutes per month. Design processes and build APIs, infrastructure, pipelines, testing, monitoring, etc.
Achievements:
- Reduced external storage costs by an estimated $500k by automating the import of assets produced at a third-party vendor
- Designed and developed an auditable event ingest system that scales horizontally by combining Kafka, RabbitMQ and Python services
- Reduced build time and docker image size by implementing a multi-stage build, leading to 50% faster CI pipeline and 10% faster image pull
- Introduced mypy in the company ;
- Design the CI/CD pipelines using buildkite dynamic pipelines ;
Python 3
Docker
Fast API
mypy
Kafka
PostgreSQL
RabbitMQ
Falcon
Kubernetes
AWS
datadog
sentry
pagerduty
Software EngineerMapscape (September 2015 - January 2020)
Python Developer / AWSOctober 2018 - January 2020
Build a serverless platform to deliver the most efficient updates over-the-air to vehicles.
Achievements:
- Reduced computation time by 90% by developing an improved optimal update path finding algorithm leading to computation taking seconds instead of minutes
- Developed the map update ingest workflow using AWS s3, lambdas and step functions and Python
- Representative in a technical workgroup of the NDS consortium in charge of designing the new generation standard for map data in automotive eco-system
- Awarded by the executive committee as one of 4.500 employees globally for my work on the build systems and continuous integration pipeline
Python 3
AWS
SAM
Boto3
Cloud Formation
Docker
Docker Compose
Kubernetes
ELK
Swagger
ZSerio
C++/Python Developer / Data processing & visualization (via MCA)September 2015 - September 2018
Part of the Test Tools team building geographical data processing and visualization tools, automation frameworks and infrastructure used by the Validation department in order to visualize, inspect, test and validate production maps.
Core Tasks
- Developping and maintaining test and visualisation tooling;
- Performance benchmark;
- Monitoring regression tests;
- Performing peer code reviews;
- Performing development test;
- Creating and updating documentation;
- Mentoring new team members.
Achievements:
- Reduced regression testing time from 2 days to 4 hours by creating a distributed testing framework on a cluster of machines
- Re-designed the CMake build scripts, to comply to modern standards and leverage modularity, reducing build time by 20%
- Increased application FPS by three-fold with multithreading by re-designing map rendering algorithm to parallelize code
- Update application scripting from in-house domain specific language to Python, using pybind11, leading to more expressive and correct scripts
C++14
STD
Boost
pybind11
OpenGL
SQLite
wxWidgets
CMake
GTest
SpatiaLite
SQL
Bash
Perl
Cross-Compiling
GIS
NDS
Jenkins
Celery
Docker
Software Engineer Apprentice - R&DLumiplan (September 2012 - September 2015)
During three years I worked autonomously on different research projects aiming to improve gathering of information, management, supervision and installation of all embedded equipment developed by Lumiplan Duhamel. I developed real-time embedded softwares, in which performance, robustness and reliability are crucial.
Final year - Period of 7 months
Study, design and develop a solution that provides a partial, and later full, auto-configuration of Lumiplan-Duhamel products when installed onboard. The solution scope goes from a first installation to addition of equipment, and includes maintenance. Thus will help Lumiplan operators to be more efficient and faster to realize such operations.
Direct benefits are installation time decreased, less operator actions on equipment (which can be source of failure) and generalized solution; auto-configuration is designed to work whatever customer, installation type and location, independent of vehicles. Hence the solution lead to less cost for installation, addition of equipment and maintenance.
Self-governing management of a full software development life cycle following ISO 9001 standards: planning, specifications, validation plan, development, deployment and integration.
Two first years - Periods of 6 weeks
C/C++ program development intended to improve monitoring and maintenance of systems and equipment embedded.
Tasks:
- Program to obtain information on embedded equipments in a vehicle(GPS, speed, journey, etc);
- Development of a software to test a LED displayer in C#;
- Development of an SNMP agent in C++ for an embedded monitoring equipment;
- Development of a SNMP manager in C# to queries SNMP agents and allow technicians to obtains information and configure embedded equipments;
- Development of SNMP agent on another embedded equipment in C with Keil OS.
Gradual increasing level of responsibilities for the software development life cycle (e.g. validation plan, planning, etc.).
C++
STD
C
C#
Cross-Compiling
TCP
UDP
SNMP
Thread
Poco
Keil MDK
WinPcap
Final Year Internship in Software DevelopmentBusiness & Decision (April - June 2012)
Software development in Java using the API Apache POI, creation of KSH scripts.
Java
API: Apache POI
Teaching for First Year StudentsAix-Marseille University (Academic year 2011-2012)
Selected as one of the 5, out of a few hundred students, to teach first year students about algorithm, database, software development (C/C++ and Java), operating system and network.
Algorithm
C++
Java
SQL
Merise
Bash
Shell
Network