This CV is available in three alternate, incompatible, realities — choose wisely.
Curriculum Vitæ July 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
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
SystemdDockerBuildroot
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

His Code Will Fly in Space — And It Has to Work First Time

Writing Flight-Qualified Software for ESA Missions at Redwire Space

When Your Employer's Selling Point Is That the Paperwork Is Aerospace-Grade

ECSS

Software engineer working on ESA flight missions, with ECSS (equivalent of DO-178 for aerospace) qualified software.

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.