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

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

CC++MakefileCMakeCIUARTRS-485I2CSPIlibclangPythonLaTeXKicadOnshapedoxygenSphinxGitlabGitlab CIOpenVPNInventreeArtifactory

As is typical in smaller companies, I wore many hats (embedded software, assembly and integration scripts, devops, ...).

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 following SemVer.
  • Designed breakout PCBs (in Kicad) for hardware interfaces, and 3D printed jigs (Onshape) to mount them.
  • Wrote a DSL (in Python) and REPL to make it easier to develop testing scripts as part of the production process.
  • Added documentation generation pipelines(doxygen, Sphinx) where possible 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

C++PythonGoMatlabSimulinkDDSBuildrootSystemdCIGitlabMinioOpenVPNGrafanaTelegrafRTK GNSSDocker

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 for communication.
  • Maintainer of the lab's Buildroot image (from Systemd to GUI) through qualification as a payload on the ISS. Also maintainer of the associated CI infrastructure.

System & Network Administration

  • Maintainer the lab's infrastructure (Gitlab build servers, Minio S3 cache, OpenVPN, Grafana, Telegraf, RTK GNSS) using Docker and Docker Compose.
  • Diagnosed complex IP routing and MTU issues on IP connections between ground and the International Space Station.
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

C++CANPythonLinuxROS 1CANopenROS 2RS-422SBusArUcoOpenCVEigenNumPy

Worked as a software and systems engineer on early stage space missions covering satellite rendez-vous systems, rovers, space stations, and in-situ resource utilisation schemes for the Moon.

Details

Robotics & Rovers

  • Wrote embedded software and user interfaces for early demonstrations of the HOTDOCK device (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).
  • Updated the LUVMI software for the follow-on LUVMI-X rover (video) (ROS 2, RS-422).
  • Implemented a decoder for the SBus serial protocol to use an RC controller to control the rover.
  • Defined software and functional safety architectures for astronaut training devices developed in the team in collaboration with space medicine specialists from DLR (German aerospace agency) and EAC (European Astronaut Centre) for ESA (European Space Agency).

Systems Engineering

  • Systems Engineer for early iterations of an Ethernet switch for deep-space applications working on the definition of electrical and mechanical interfaces.
  • Lead systems engineer for avionics and mobility systems on the Flight Model design of the LUVMI-X rover and the demonstration model.

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.
  • Validated performance of the system on a large robotic simulator.
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++PythonOpenCVPCLROS 1

At Nearlab I was the resident daVinci Surgical System expert, working with the research team developing augmented reality tools for surgeons (C++, Python, OpenCV, PCL, ROS 1) and working on 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.