M.Sc. student in Computer Science at TUM · B.Sc. Computer Science & Statistics, LMU Munich
I work on reinforcement learning and the software around it: preference learning, training pipelines, simulation, and the tooling that makes experiments reproducible.
Preference-Guided Curriculum Discovery for Robust RL
Bachelor's thesis · LMU Munich, Chair of Mobile and Distributed Systems · 2026
Reinforcement learning agents generalize better when they train on well-chosen environments. I used an LLM (Gemini) to compare about 88,000 pairs of rendered levels by difficulty, validated the labels against human judgment, and trained a neural network ensemble that ranks new levels.
I then extended a state-of-the-art curriculum algorithm (Sampling for Learnability) with this difficulty model, new selection rules and an adaptive difficulty target, and evaluated it in about 200 GPU-accelerated training runs with paired statistical tests.
Levels ranked by the learned difficulty model: easiest (top) and hardest (bottom), with start and goal marked.
jax-keyguard: Catching PRNG Key Reuse in JAX
Open-source Python package · Personal project · 2026
In JAX, reusing a random key silently repeats the same "random" numbers. I built a tool that finds this mistake in two ways: a static checker that follows keys through branches, loops and aliases without running the code, and a runtime check that raises an error the moment a key is reused.
It covers the older PRNGKey keys that JAX's own check skips. Run on the JAX repository, it found an example program that draws every layer's weights and biases from the same key.
A complete pipeline that teaches robotic agents in MuJoCo from human preferences instead of a hand-written reward. I led the algorithm work: implementations of PEBBLE and SURF on top of Soft Actor-Critic, a learned reward model with semi-supervised learning and data augmentation, and ensemble-based query selection.
The project includes a web interface where people compare two agent videos, a thread-safe backend that feeds their answers into training, and training jobs on the university Slurm cluster.
The feedback interface: a person picks the better of two agent behaviours.
Inferno Swarm: Autonomous Multi-Agent Simulation
Personal project · 2025
A C++17 simulation of autonomous agents with emergent swarm behaviour. I implemented the steering behaviours (separation, alignment, cohesion) and force accumulation from scratch, and a cellular-automaton environment in which fire spreads and agents switch between flocking and extinguishing.
C++17
SFML
CMake / vcpkg
A fire spreads across the grid while the agents switch between flocking and extinguishing.
Supermasks in Superposition: Continual Learning
Scientific seminar paper · LMU Munich · Grade 1.0
A term paper analysing how a single fixed network can learn many tasks in sequence without forgetting, by selecting task-specific subnetworks instead of changing weights.
Working Student, Software Development (DevOps) · SupplyOn AG, Munich2023–2025Implemented and tested technical user stories in a DevOps team, working in Agile Scrum with continuous delivery.
Working Student, IT Support · DJI e.V., Munich2023
Export Sales & IT Automation · Arm Aluminyum, Istanbul2020–2022Wrote Python automation for marketing and internal workflows; grew the export share from 10% to 25%.
Education
M.Sc. Computer Science · Technical University of Munichsince 2026