Projects
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
Universe visualizer / ÆTHER
An interactive astronomical atlas with planets, stars, 3D
constellations, and Earth sky views. Uses NASA and Gaia catalogues
and supports desktop, VR, and mixed reality.
JavaScript
Three.js, WebXR
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
Heron's Fountain Simulation
A model of gravity, air compression, and viscous flow, based on the
accompanying research paper.
JavaScript
Three.js
Boyle’s self-flowing flask
Simulation of recirculating water flow with gravity and viscous
losses.
JavaScriptThree.js
Danny and Tony's physics lab (WIP)
An interactive physics lab with multiple experiments.
JavaScript
Three.js
Android
OpenCV - OpenGL object manipulation
Object manipulation through hand tracking 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
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
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