cv-online/pages/experiences.md

4.6 KiB

Ifremer

Between 2018 and 2019 I worked in Ifremer Brest, on a distributed data processing platform for scientific data.

Project

The original code-base had a lot of un-necessary complexity caused by a long history of feature added without doing any proper code architecture change (the project started around 2004). The platform was strongly tied to the enterprise environment, with dependencies on specific software versions, environment variables and NFS shares.

My main missions were:

  • Decoupling the platform from the production environment, for easier testing during development. The applications were very dependent on NFS shares and specific environment files.
  • Removing unused features and reworking others while keeping the compatibility when possible. The platform shares a lot of similarities with continuous integration platforms, and Gitlab CI was a good inspiration for improving / replacing existing features.
  • Migrating from Python 2.4 to Python 3, and upgrading libraries.
  • Setting up better deployment tools, mainly with Anaconda environments and Docker containers.
  • Making the software interoperable with current services: sending logs to Elasticsearch and RabbitMQ, replacing SQLite with PostgreSQL, sending processing jobs to PBS Pro, ...

Skills

  • Python 2 to 3 migration
  • Unearthing, understanding and upgrading legacy code :)
  • Code refactoring, quality improvements, bug fixes, ... and adding new features

Ifremer

Between 2016 and 2017 I worked in Ifremer Brest, on marine observatory stations. During this period I improved the developer environment, installing a lot of automation tools for building, checking and deploying/flashing the software on a testing environment.

I also worked on understanding / reverse engineering an acoustic MODEM protocol.

Skills

  • Bare metal C development
    • ARM EFM32 board
  • Gitlab / CI / Chat server setup
    • Gitlab instance
    • Mattermost instance, linked to Gitlab
    • GitlabCI (gitlab-ci-runner) to run automated tests
    • Automated updates of both the server OS (CoreOS) and services (mostly Docker containers)
    • Automated CoreOS setup changes through GitlabCI
# Thales Airborne Systems

Between 2014 and 2015, I worked in sandwich courses at Thales Airbourne Systems.

My mission was to evaluate Yocto for building embedded Linux distributions, tuned to match as much as possible the system capabilities.

Yocto is a recent project based on OpenEmbedded Bitbake, similar to Buildroot. It automates the task of building, installing and configuring softwares to assemble a complete Linux distribution.

Yocto comes also with a lot of tools, that allows the user to execute unit tests on an emulated system, serve packages and provide updates, check that licenses are respected, ...

Skills

  • Yocto toolchain
  • Linux ecosystem
  • Linux Kernel
  • Build automation

More

# Thales Underwater Systems

Between 2012 and 2013, I worked in sandwich courses at Thales Underwater Systems, on the portage of the graphic part of the Android SDK on RHEL5, and on the creation of a custom window manager based on XLib.

Skills

  • Java, C/C++ dev.
  • Building Android SDK
  • Desktop Environment & Window Manager
  • X11 Server

More

# Genesys internship

In 2012, I did a 7 week internship in Genesys, an affiliate of Alcatel Lucent.

I worked on debugging the VBS Scripts for automated regression tests, started by another student the preceding year.

# Electronics Club

Since 2011, I am an active member of the Electronics Club of ISEN Brest, a student-driven club specialized in electronics, computer sciences and robotics, hosted by my engineer school.

Skills

  • Team managing
  • Meetings organization
  • Event poster designs
  • Repair/configuration of PC running Windows/Linux, and electronic hardware
  • Electronic and programming projects