
Vervangt het bedieningspaneel van mijn sta-bureau door een touchscreen dat het bureau bedient en de rest van het scherm vult met mijn kamer: lampen, verwarming, mijn rooster en de vliegtuigen erboven. Gebouwd in C++ op een M5Stack Tab5, met een eigen Bluetooth-printplaat.

Hoe pakketverlies op het IEEE 802.11p-controlekanaal het schedulen van mmWave tussen voertuigen beïnvloedt. In een Python-simulator gaven verloren controleberichten meer vertraging en conflicterende reserveringen, en 3,8 tot 14,1% minder throughput.

Pipeline voor perceptie en regeling in ROS2, waarmee een kleine robot in real time een groene bal volgt. Detectie met OpenCV op Linux stuurt een firm real-time controller op een Xenomai-core aan, die de motoren via een FPGA aandrijft met veiligheidsgrenzen op de PWM.

Command-line tool for restructuring and splitting large LaTeX projects. Intended for collaborative writing, sharing or reorganizing complex LaTeX documents.

Course project reproducing the SIGCOMM 2021 study on hypergiants' off-net infrastructure using our own Internet-wide measurements.

KOReader plugin that adds WireGuard VPN support to e-readers, letting me reach my home Calibre library from anywhere without exposing it to the internet.

Mechanical keyboard modified to house an extracted Apple Touch ID sensor. The original sensor and Lightning charging connector stay accessible, so it works without custom firmware.

Zelfgehoste ICS-proxy die universitaire agendafeeds bruikbaar maakt in een gewone agenda-app, door de details van een event in de velden te zetten die clients daadwerkelijk uitlezen en door hoorcolleges, tentamens en practica op te splitsen in aparte abonnementen. Gebouwd in ASP.NET Core, gecontaineriseerd met Docker en uitgerold met Ansible.

Fleet of personal servers running Dockerized services, deployed and managed from a single Ansible repository with Traefik for routing and Gatus for monitoring.

Full-stack application for looking up and displaying Dutch vehicle information by licence plate.

Eigen programmeertaal met multithreading, synchronisatieprimitieven en shared memory, die wordt gecompileerd naar machine-instructies voor de Sprockell-processor, een eenvoudige educatieve CPU. De compiler verzorgt parsing, typechecking en codegeneratie en voert de gegenereerde code uit in de bijbehorende simulator.

Server-side rendered Angular site with project pages, English and Dutch versions and an on-demand Typst CV generator that shares its data with the site.

Cross-platform mobile app for real-time audio visualization, with a spectrogram, a scrolling waveform and tools for recording and playing back clips.

Python service that periodically downloads webcam images from Comune di Genova.

Reusable GitHub Actions workflows for building and pushing multi-architecture Docker images and triggering a Watchtower update afterwards.

Games running on a Raspberry Pi and played through a web app, with WebSocket updates and switching between games at runtime.

Web-based application for planning train routes and visualizing disruptions on a map, integrating real-time data from the NS API.

Docker Swarm infrastructure for deploying and managing containerized services, with monitoring, logging and authentication.