Filed 3 patent applications and owned dataset/model licensing compliance — including identifying a licensing issue tainting training data and derived models, and driving a full re-annotation remediation.
•
Designed a multi-camera 3D pose auto-annotation pipeline: cross-camera association, uncertainty-weighted triangulation in JAX, and optimisation-based temporal filtering. Over 95% of frames met or exceeded human annotation quality on many sequences.
•
Patched YOLO26 and RTMO to expose per-keypoint uncertainty at inference; calibrated raw outputs to pixel-scale errors for downstream 3D reconstruction.
•
Built an internal MLOps platform over PostgreSQL — deterministic, cached, distributed component execution powering annotation, evaluation, and training-data pipelines.
•
Owned pose-model training end-to-end: custom dataset loaders, augmentations, and fine-tuning for production conditions.
•
Built full-stack internal tools (Python + Svelte): a multi-camera ArUco calibration tool (sub-cm accuracy at 5–10 m, patent filed) and a microservice orchestration manager UI.
•
Co-maintained core infrastructure as one of two go-to engineers: PostgreSQL, Docker, GitHub Actions, Grafana, and MLflow.
•
Tracked CV/ML literature and presented internal deep-dives on pose estimation, tracking, and monocular 3D methods.
The Science BreakerSenior Scientific Editor (volunteer)
June 2021—Current
•
Edit layperson summaries of peer-reviewed research for clarity and style.
University of GenevaDoctoral Candidate
March 2018—December 2022
•
Pivoted from pure to applied mathematics ~2 years in. Thesis on low-rank tensor methods, randomized linear algebra, and applications to machine learning.
•
Published 5 papers; 3 accompanied by open-source Python libraries (computational algebra, numerical linear algebra, and machine learning).
•
Taught 3 courses per year as an assistant, receiving consistent positive feedback from students.
Education
2018/03—2022/12
PhD in Applied Mathematics|University of Geneva
2015—2018
Msc. Mathematical Sciences|Utrecht University (cum laude)
2012—2015
Bsc. Mathematics and Physics & Astronomy (double degree)|Utrecht University (cum laude)
This is my PhD thesis, which is mostly an extended version of my two papers together with Bart Vandereycken, together with a comprehensive preliminaries section. You can also find slides for my oral defense by clicking here.
Inspired by the generalized Nyström approximation for low-rank matrices, we created a randomized streaming algorithm for computing tensor trains. This algorithm can quickly compute accurate approximations of a wide variety of tensors (multi-dimensional arrays). It does this by 'sketching' the tensor by multiplying with random tensors to quickly find a small subspace in which it is easy to approximate the tensor. This is a streaming algorithm, which means that we only need to do a single pass over the data of the tensor we want to approximate. It also means it works really well in a distributed setting, and scales very well to big data.
We describe how to use tensor trains to parametrize discretized functions, and how to get a useful supervised machine learning estimator out of it. Learning and initializing these tensor trains is a bit tricky, but definitely doable. I also wrote a blog post about this paper, explaining the main ideas in a more accessible way.
We apply the algorithm for the BGG resolution developed in the previous paper to compute Hochschild cohomology of blocks of the small quantum group. This allows us to study the center of the small quantum group, and our computations give stronger evidence for several conjectures concerning the small quantum group. My contribution was writing all the code needed for this project.
In this work we describe an algorithm to compute the BGG resolution for modules over a simple Lie algebra. This is then used to compute various thing like the Hochschild cohomology of some flag varieties. My contribution was coding the implementation of the algorithm, and solving several algorithmic problems.
This work is a continuation of my masters thesis. The idea is to study a toy model of principal 2-bundles and 2-transport by restricting to a stricter notion, where the fibers are all strict 2-groups. This allows to get some nice generalizations of the classical theory, which would be harder to proof in the more general setting.
A randomized streaming algorithm for computing tensor trains. This library implements several fast algorithms for approximating tensors by tensor trains. It is written in an abstract object-oriented fashion, and it is very easy to extent. It supports quite a few different types of tensors.
A novel machine learning estimator based on Tensor Trains. I wrote this library by myself, and includes many features for optimizing tensor trains in addition to the machine learning capabilities.
This is a package meant to help writing backend agnostic code, i.e. code that can manipulate objects from different numerical libraries like numpy, tensorflow or pytorch (among others). I added a few extra translations from the numpy API to other libraries, I improved the functionality to infer the backend of the arguments of some functions, and I made data type handling for array creation operations more consistent.
Fixed a bug preventing scipy.linalg.lu_factor only accepting square matrices. Additionally discovered performance issues with the implementation of the matrix logarithm scipy.linalg.logm.
Online courses
2021/02
Neuroscience and Neuroimaging Specialization|John Hopkins University (Coursera certificate)
2020/09
Genomic Datascience Specialization|John Hopkins University (Coursera certificate)
2019/08
Advanced Machine Learning Specialization|Higher School of Economics (Coursera certificate)