Work Experience

Senior C/C++ Software Engineer

July 2018 – Present

Development of a real time X-ray imaging application for an interventional radiology system using the VxWorks operating system.

Achievements

  • Write software requirements and technical documentation.
  • Design and develop C/C++ software application in a real time VxWorks environment.
  • Write and execute automatic unit tests and functional tests.
  • Participate in technical and code reviews.
  • Test and monitor software robustness and enhance code reliability.
  • Participate in Scrum meetings and plan activities and delivries according to the Agile framework.

Technologies

  • C
  • C++17
  • VxWorks
  • CORBA
  • GCC
  • Clang
  • CMake
  • Java
  • Maven
  • TCP/IP
  • Socket
  • CANOpen
  • SNMP
  • Driver
  • Git
  • GitLab CI
  • CppUnit
  • GoogleTest
  • Cucumber
  • SonarQube
  • Ansible
  • Agile
  • Scrum

C/C++ Software Consultant

April 2016 – June 2018

Migration of a legacy X-ray images acquisiton application to a new hardware and software platform based on VxWorks real time operating system.

Achievements

  • Develop a low level driver and software abstraction layer to interact with the system physical devices.
  • Redesign and migrate the high level C/C++ application code to the new platform.
  • Add automatic unit tests using the CppUnit framework.
  • Automate the build, test and delivery using a continous integration infrastructure.
  • Monitor and enhance code quality and reliability.

Technologies

  • C
  • C++11
  • VxWorks
  • CORBA
  • GCC
  • TCP/IP
  • Socket
  • Driver
  • CAN
  • ARCNET
  • Fiber Channel
  • Maven
  • Git
  • GitLab CI
  • CppUnit
  • Cppcheck
  • Coverity
  • Eclipse IDE
  • Agile
  • Scrum

Reseach and Development Engineer

April 2015 – October 2015

Internship at ETIS laboratory to develop a software and hardware artificial vision architecture for a robot.

Achievements

  • Contribute to the design of the RobotSoC artificial vision architecture.
  • Integrate the image processing VHDL modules on a Zynq-7000 SoC board.
  • Configure and build a custom embedded Linux distribution using Buildroot.
  • Develop a C server application to control the image processing chain in an embedded Linux environment.
  • Develop a Qt client applicaton to visualize the processed images in real time.

Technologies

  • C
  • C++
  • VHDL
  • Python
  • FPGA
  • SoC
  • ARM
  • Embedded Linux
  • Buildroot
  • U-boot
  • Yocto
  • Zynq
  • Xilinx Vivado
  • TCP/IP
  • Socket
  • Qt
  • RS232
  • JTAG

Real Time Embedded Software Engineer

April 2014 – August 2014

Internship at the Regional Center of Drone Resources to develop a real time autonomous fligh control system for a quadrotor civil drone using FreeRTOS.

Achievements

  • Study the software and hardware architecture of the Armazila board.
  • Develop a low level driver to control the brushless motors.
  • Design and build a printed circuit board embedding a GPS chip and a telemetry interface.
  • Integrate an ultrasonic distance sensor for smooth autonomous landing.
  • Develop autonomous flight mechanisms using geolocated waypoints.
  • Conduct flight tests in real conditions at the Regional Center of Drone Resources.

Technologies

  • C
  • C++
  • FreeRTOS
  • STM32
  • ARM
  • I2C
  • GPS
  • RS232
  • Eclipse SDK
  • Eagle

Projects

Red Pitaya

November 2014 – February 2015

Development of a user interface to control the Serial Peripheral Interface on the Red Pitaya multifunction measurement board.

Achievements

  • Configure and build a custom Linux kernel dedicated to the Xilinx Zynq-7010 SoC.
  • Develop a C embedded Linux application providing a low level control over the SPI interface using the SPIDEV driver.
  • Configure and deploy the application backend using an embedded NGINX server.
  • Allow transferring data between the NGINX server and the Linux application.
  • Build a web client interface providing a high level control over SPI.

Technologies

  • C
  • C++
  • VHDL
  • Embedded Linux
  • Linux kernel
  • Driver
  • Xilinx Vivado
  • Zynq
  • FPGA
  • SoC
  • ARM
  • SPI
  • HTTP
  • NGINX
  • HTML
  • JavaScript

Artificial Neural Network on FPGA

September 2014 – February 2015

Simulate different information flow strategies within an artificial neural network on FPGA.

Technologies

  • Linux
  • VHDL
  • FPGA
  • Altera Stratix V
  • ModelSim
  • JTAG
  • AER

Homelab

December 2022 – Present

Provision, configure and deploy containers, virtual machines and services in a Proxmox Virtual Environment using Infrastructure-as-Code.

Technologies

  • Ansible
  • Packer
  • Terraform
  • Proxmox VE
  • Debian
  • CentOS
  • QEMU
  • LXC
  • PXE

Workstation

December 2022 – Present

Automate the installation and configuration of a Linux workstation using Ansible.

Technologies

  • Ansible
  • Linux
  • ArchLinux
  • YAML
  • Jinja
  • OpenSSH
  • Systemd
  • Xorg

Skills

Programming

  • C
  • C++17
  • Python
  • VHDL
  • Java
  • TCL
  • Qt

Real-time systems

  • VxWorks
  • FreeRTOS

Linux

  • Debian
  • Ubuntu
  • CentOS

Embedded Linux

  • Buildroot
  • U-boot
  • Busybox

Build tools

  • Git
  • GCC
  • Clang
  • Make
  • CMake
  • Maven
  • Vagrant

Architectures

  • x86
  • FPGA
  • ARM
  • RISC
  • SoC
  • STM32

DevOps

  • Ansible
  • Docker
  • Packer
  • Terraform

Education

Languages

  • English (Proficient)
  • French (Native)