This CV is available in three alternate, incompatible, realities — choose wisely.
Curriculum Vitæ August 2026
Thibaud Chupin
Embedded Software Engineer
Thibaud Chupin
Profile

Bridge between scientists, engineers, and managers.

Embedded software engineer with a decade of experience spanning space, robotics, and defence. He works across the full stack — from firmware and hardware integration to CI and systems engineering — bridging the gap between research teams, engineers, and project managers.

An embedded software engineer who has shipped working code across space stations, lunar rovers, surgical robots, and flight-qualified ESA missions, often as the person holding it all together. He can navigate between scientists, engineers, and program managers without losing the thread, or too much of his sanity.

A decade of being handed the full stack and told to sort it out. He's written firmware, reverse-engineered specs, maintained servers he didn't provision, debugged hardware he didn't build, and written the documentation that should have existed before he arrived. The code still works (somehow), though.

↓ Download CV
Lint & Test
Gitlab CIPre-commitBlackFlake8RuffMyPyPyTestClang-FormatClang-TidyCTest
Libraries
EigenNumPyQt & PySideAtmel Software Framework (ASF 3)PyBind11
Build Systems
MakeCMakeMeson
Robotics Tools
ROS (1 & 2)DDS (RTI Connext DDS)OpenCVMatlabSimulink
Rapid Prototyping
FreeCADOnshapeKicad3D PrintingBasic CNC Machining
Protocols
CANCANopen (with DS301, DS402)EIA/TIA-422EIA/TIA-485SPII2C
Documentation
LaTeXSphinxDoxygen
Embedded Linux
SystemdDockerDocker ComposeBuildrootMISRA
Spoken Languages
French Native
English Fluent - C2
Italian Fluent - C2
Programming Languages
C Scared of
C++ In anger
CMake Better than makefiles
Python In love with
Lua Nostalgic of
Elm Delightful
Rust Rusty
Zig Curious about
elisp Wondering why
Go Would rather not
Bash / Sh Forced to
Javascript Hell no!
Work Experience
Apr 2026 – Present Belgium
Software Engineer

He's full of ideas, but will it be enough?

Attempting to write flight-qualified software for European Space Agency missions at Redwire Space.

"The project is too late to refactor!" — they said, after spending a year inventing a square wheel.

CC++CIGitlab CIJenkinsmakemesonMISRA

Software engineer working on European Space Agency satellite missions, with ECSS qualified software (equivalent of DO-178B for aerospace) in C and C++.

Details
  • Implemented CI (with Gitlab CI and Jenkins) generating MISRA coverage reports (using Parasoft C/C++ Test).
  • Advocated for adoption of non-antiquated tools (MISRA C++ 2023 instead of 2008, C++17 instead of C++03, meson instead of make, ...), and modern development practices (merge requests, code reviews, ...).
Jan 2026 – Mar 2026 Belgium
Software Engineer (Freelance)

At FN Herstal, one freelancer brought modern regression testing to Belgium's most iconic arms maker.

A three-month contract to modernise safety testing at FN Herstal.

Three months, one weapons maker, zero long-term commitment.

Ansys SCADEPyBind11Python

Developed a regression testing solution, replaying recorded inputs and outputs, and minimising the test suite to only the relevant set of commands to observe a given output (Ansys SCADE, Python, PyBind11).

Feb 2024 – Sep 2025 Netherlands
Embedded Software Engineer

The engineer who refused to let a satellite startup stay stuck in the past.

Embedded software, devops, and hardware integration at a small satellite startup.

A startup's technical debt — dumped on one engineer's desk.

ArtifactoryCC++CICMakedoxygenGitlabGitlab CII2CInventreeKicadLaTeXlibclangMakefileOnshapeOpenVPNPythonRS-485SphinxSPIUART

Embedded software engineer, devops, reluctant IT person, IKEA furniture assembler, electronics tester ... all in a single average day.

Details

Embedded Software

  • Developed embedded software in C and C++ for space hardware and test equipment.
  • Drove a migration away from Microchip Studio Makefile projects to CMake (allowing us to build and test the code in CI).
  • Re-wrote the core communication library (in C), used over UART (RS-485), I2C and SPI, to command our hardware.
  • Wrote a code generation tool for serialization and deserialization of message types using libclang, targeting C, Python and LaTeX backends.
  • Spent too much time with a logic anaylyzer debugging broken hardware.

Assembly, Integration, & Testing

  • Set up a CI with linting, tests, changelog generation, and automated software releases.
  • Designed breakout PCBs (in Kicad) for hardware interfaces, and 3D printed jigs (Onshape).
  • Wrote a DSL (in Python) and REPL to automate testing scripts used by the production process.
  • Added documentation generation pipelines(doxygen, Sphinx) to surface tribal knowledge about projects.

System Administration / DevOps

  • Procured, set-up, and maintained the company servers (Gitlab & Gitlab CI runners, OpenVPN, Inventree, Artifactory, ...).
  • Responsible for server backups and disaster recovery procedures.
Jul 2022 – Jan 2024 Netherlands
Robotics Engineer

Behind ESA's robot experiments, one engineer keeping the lights on.

Staff engineer at ESA's human-robot interaction lab, supporting ISS astronaut experiments.

ESA's lab was falling apart — they called it a job opening.

BuildrootC++DDSDockerDocker ComposeGitlabGoMatlabOpenVPNPythonSimulink

Staff engineer for the lab. Responsible for software maintenance and development for the robotic systems (300+ kg wheeled platform with two Kuka LWR arms, Boston Dynamics Spot) used for experiments with International Space Station astronauts. I mentored a rotating roster of interns and trainees with wildly varying skill levels.

Details

Robotics & Software

  • Primary developer on the software stack (C++, Python, Go, Matlab, Simulink) using DDS.
  • Maintainer of the lab's Buildroot image through qualification as a payload for the ISS.

System & Network Administration

  • Maintainer the lab's infrastructure (Gitlab build servers, OpenVPN, ...) using Docker and Docker Compose.
Jun 2018 – Jun 2022 Belgium
Robotics Engineer / Systems Engineer

Four years, four missions, one engineer helping Europe reach the Moon.

Four years as a robotics and systems engineer across Europe's early lunar missions.

Four years of lunar rovers that never left Belgium.

ArUcoC++CANCANopenEigenLinuxNumPyOpenCVPythonROS 1

Software and systems engineer on early stage space missions covering satellite rendez-vous systems, rovers, and space stations.

Details

Robotics & Rovers

  • Wrote embedded software and user interfaces for prototype space hardware (HOTDOCK, LUVMI-X - video, ) targeting embedded linux and micro controller targets (C++, CAN, Python).
  • Wrote the control software for simulation, tele-operation, joint-level control, navigation, and power management for the LUVMI rover on both the on-board Linux computer and micro-controllers (ROS 1, C++, Python, CAN Bus, CANopen).

Systems Engineering

  • Systems Engineer for deep-space hardware (e.g. life-critical ethernet switch for Lunar Gateway Station) and the conceptual Flight-Model the LUVMI-X rover.

Image Processing / Machine Vision

  • Developed a robust multi-marker visual tracking system using a custom fork of an ArUco marker tracking library for on-orbit servicing applications (C++, OpenCV, Eigen). Data post-processing scripts written in Python with NumPy.
Oct 2016 – Jun 2018 Italy
Research Fellow @ Nearlab

Milan's robot surgeons got a little smarter — thanks to one researcher.

Two years building augmented reality tools for surgical robots at Politecnico di Milano.

Two years maintaining someone else's robot for papers nobody will read.

C++OpenCVPCLPythonROS 1

At Nearlab I was the resident daVinci Surgical System expert, working within a team developing augmented reality tools for surgeons (C++, Python, OpenCV, PCL, ROS 1) and camera/robot calibration.

Education
Italy
Automation & Control Engineering MSc.

Undergraduate and graduate degrees focused on control theory and mechanics. For my Master's thesis I developed a data-driven attitude controller for a quad-copter that significantly improved response time and stability margin compared to the previous state-of-the-art controller.

Open Source
Command-line tool for i3 window manager

A Python tool to make the i3 window manager more enjoyable to use through enhanced workspace and window management capabilities.

Linux configuration files

Configuration files for my Linux development environment (Fish shell, Helix editor, Sway window manager). Always a work in progress.

Remote-control for a spacecraft computer

An interface for monitoring a notional spacecraft computer. It supports viewing logs, power draw, and register values. It can extract information from the logs to expose boot-time constants, and test reports.

Template engine for MATLAB

A Jinja-inspired template engine for MATLAB. Initially written as part of my thesis (to procrastinate from actually completing my thesis). This has been mostly re-written by an external contributor.

Automating the preparation of files for laser cutting

Laser cutters consume vector graphics files where the color of each line is associated with an operation (cutting or engraving at different speeds and powers). The extensions help to automatically group shapes and color lines.