Profile Picture

Thibaud Chupin

Embedded Software Engineer

Depending on the context, I'm either an avid software developer, or a crazy cyclist.

At work, I write embedded software in C and C++ for robots and space-craft. I live by continuous integration pipelines and linters. Colleagues know me as the person who wrote most of the documentation.

At home, you will find me hacking at my (Linux) system, writing small Python tools to make it more enjoyable to use (e.g. i3ctl).

On the road, you might come across me on my bicycle, headed out for a multi-week trip, with my tent and enough cooking gear to make a proper meal each night.

Want to get in touch?

Find out more about me here.

Work Experience

AAC Hyperion (Netherlands)

Embedded Software Engineer
February 2024 - September 2025

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

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 analyzer 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.

ESA - Human Robot Interaction Lab (Netherlands)

Robotics Engineer
July 2022 - January 2024

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.

Robotics & Software

  • Primary developer on the software stack (C++, Python, Golang, 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.

Space Applications Services (Belgium)

Robotics Engineer / Systems Engineer
June 2018 - June 2022

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.

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 S.Bus 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.

Education

Politecnico di Milano (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 Projects

i3ctl

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.

dotfiles

Linux configuration files

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

Lobster Templates

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.

Inkscape Laser Cutting Extensions

Automating the preparation fo files for laser cutting

Laser cutters consume vector graphics files where the color of ach line is associated with an operation (cutting or engraving at different speeds and powers). The extensions help to automatically group shapes and color lines. They can even tile patterns on cut sheet.