Data Engineering

Payment Risk / Pulse
A Java and Apache Flink reference application that turns synthetic Kafka payments into explainable risk decisions. Combines event-time processing, deduplication, stateful rules, and transactional output with ClickHouse analytics. Pulse, its React dashboard, makes decisions and pipeline health explorable. The hosted demo uses synthetic data.
Java, TypeScript Flink, Kafka, ClickHouse, React

Physics

Deflating Bubble Animation (Three.js)
A Three.js interactable simulation and implementation of physics paper about Unblowing bubbles.
JavaScript Three.js Paper Reference: [1]
Deflating Bubble Animation (Manim)
A Manim animation of a physics paper about Unblowing bubbles.
Python Manim, Scipy Paper Reference: [1]

References

[1] Unblowing bubbles: understanding the physics of bubble deflation through a straw

pubs.aip.org/.../Unblowing-bubbles

Heron's Fountain Simulation
A model of gravity, air compression, and viscous flow, based on the accompanying research paper.
JavaScript Three.js
Danny and Tony's physics lab (WIP)
A full-featured lab with interactable experiments and other funny stuff.
JavaScript Three.js
Boyle’s self-flowing flask
An initial push, a recirculating stream, and the inevitable loss of momentum. Explore the unsteady viscous model.
JavaScriptThree.js

Android

OpenCV - OpenGL object manipulation
Project involving object manipulation using OpenCV and OpenGL.
Java/Kotlin/C++ OpenCV, OpenGL

Games

Quantum Dungeon Crawler (WIP)
A dungeon crawler where real quantum algorithms (Grover, Shor, VQE, QAOA) become core gameplay mechanics. Features an in-game circuit composer, temperature-driven decoherence, and progressive level design teaching quantum computing.
Game Design Quantum Computing
Kamisado
A full-featured real-time multiplayer Kamisado board game with sumo push mechanics, chess-style timers, reconnection support, and spectator mode.
TypeScript Node.js, Express, Socket.IO
Greta's adventures
A platformer with an environmental theme. Developed in less than 48h and University Game Jam winner. NB: Full featured game WIP!
C# Unity
Find My Dog
A "Find Waldo" style videogame developed for a friend of mine.
C Raylib

Data Science / ML

MALLORN Astronomical Classification Challenge
Classified astronomical transients to detect Tidal Disruption Events (stars torn apart by black holes). Ranked 58th out of 894 participants.
Python Machine Learning, Astrophysics

Web

School website
A school website built with Laravel and JS Vanilla.
JS, PHP, MySQL Laravel

Microcontrollers

STM32 Microphone Recorder
Button-controlled audio capture on the B-L475E-IOT01A Discovery board. C firmware records its onboard MEMS microphone through DFSDM and DMA, then transfers audio over ST-LINK USB to a Python receiver that saves 16 kHz WAV files. Includes buffered capture, packet checksums, lost-data detection, and host tests.
C, Python STM32, DFSDM, DMA, CMake
Bulb enlightment on motion + temperature
A system for light bulb enlightenment triggered by motion, with added temperature monitoring.
C++ Arduino

Bachelor's Thesis

HAR model on STM32 microcontroller
Human Activity Recognition (HAR) model implemented on an STM32 microcontroller using TFLite and a no-code solution, EdgeImpulse (2022).
Python, C, C++ STM32, TFLite, STM32Cube, EdgeImpulse