Machine Learning Engineer (Working Student)
M.Sc. Statistics & Data Science, LMU Munich · Munich, Germany
Available from October 2026 — up to 20 h/week as a working student, or full-time for a 3–6 month internship. German and English at C1.
I build models and the machinery that keeps them running — fine-tuning, evaluation harnesses, deployment, monitoring. My working rule is that a result only counts if it is measured against a published baseline, reported with a confidence interval, and survives a rerun.
Right now that means multimodal vision-language models for surgical video, in a research collaboration between LMU Munich and ZEISS, plus self-supervised segmentation of archaeological LiDAR data. Outside the lab I work on agentic systems: tool calling, MCP, structured outputs, and how they break.
gnhf runs a coding agent in an unattended loop against an objective. Its --max-tokens
safety cap was undercounting spend by 183x: the provider adapters report four token buckets,
the orchestrator stored only two, and the budget check silently dropped cache reads and cache
writes. One reported run believed it was at 22% of a 1,000,000-token budget while it had
already billed 41.1M tokens and $48.64. The cap never fired.
I widened orchestrator state to carry all four buckets and normalized the adapter boundary so
they stay mutually exclusive — Claude was folding cache reads into inputTokens,
and Codex nests cached tokens inside OpenAI's input_tokens — then threaded the
corrected total through the renderer, exit summary and CLI help so the displayed numbers agree
with the enforced cap. Merged through the maintainer's no-mistakes review gate
after three AI review rounds, with 760 tests and 6 CI checks green.
An enterprise service desk where a front router receives a request, retrieves policy evidence with citations, and delegates to a bounded ERP, CRM, HR or scheduling specialist. The model classifies and drafts; trusted Python code validates its output, picks the only permitted tools, and holds every protected write behind an IT approval step.
The model never sees raw records, never chooses an arbitrary tool and never executes a mutation. Unavailable, malformed, unsafe or low-confidence output falls through to human review by design, not by accident.
The whole path a model takes to reach an IoT device: synthetic building telemetry, a trainer with a fixed seed, a checksummed JSON artifact, C firmware constants generated from it, and dependency-free inference running on the device. The cloud is a fleet-management and observability layer — it never needs the raw samples to know a device found a problem.
The same inference contract implemented twice, in Python and in C, with the artifact checksum verified before use. Telemetry ingestion is idempotent and deployments are audited.
Describe a circuit in plain English and an agent designs it, checks its own electrical and design rules against live component stock, repairs what it gets wrong, and exports Gerbers a factory can build. Every view — schematic, PCB, 3D, BOM, fab files — derives from one Circuit JSON, so they cannot disagree with each other.
Built in one 20-hour window. I owned the distributor-availability layer: the Mouser integration for lifecycle, stock depth and minimum order quantity, plus a web-scraping sub-agent layer so the design loop never depended on a single stock source.
Python harnesses and prompt suites that drive tool-using agents (GPT-OSS, Gemma) through adversarial multi-step scenarios. The deliverable is not a clever one-off jailbreak: it is a reproducible failure — one that survives a rerun, has an isolated cause in the tool-calling or context-handling path, and can be turned into a regression test.
Currently ranked 498 of 4,127 teams — top 12% — with a score of 89. The competition closes 1 September 2026.
Fine-tuned SigLIP2 into a surgical-domain vision encoder powering a multimodal VLM specialised in endoscopy, and built the standing evaluation harnesses around it — classification, VQA and video tasks, scored with confidence intervals and per-class error analysis against published baselines.
Beats MedSigLIP, Qwen3-VL-8B and LLaVA-OneVision-7B by more than 10 points balanced accuracy on 16-class frame classification (Hyper-Kvasir). Scaled to videos of up to 120 minutes.
Repository private — research collaboration. Happy to walk through the work.
An autoencoder pipeline that segments aerial LiDAR point clouds spanning more than ten hectares and automatically flags anomalies for targeted expert review, replacing full-site manual inspection and sharply cutting survey time.
Second author on a paper submitted to ISPRS GeoSpatial Week 2027 (under revision).
Code private while the paper is under peer review.
A PaliGemma2-3B model fine-tuned with LoRA/PEFT on ScienceQA, wrapped in a full production stack: DVC data versioning, Hydra configs, cloud training, a FastAPI service with hot-swappable adapters, drift monitoring and CI/CD.
72.2% exact-match. A prompt-ordering fix found by systematic ablation was worth +16 points on its own; int4 quantization cut GPU memory by 51%.
Coursework repository — not mine to publish.
Demand-forecasting models for daily sales across all stores, built around feature engineering on 1.5 years of historical sales and store attributes, and delivered and explained to the retail partner.
24% WAPE on 14-day-ahead forecasts.
Repository private pending a data-sharing check.
A SQL-backed database of carbon offset projects, built by scraping a public project registry so that supply of carbon credits can be queried by region, methodology and vintage.
Designed a new decision-theoretic acquisition policy for Bayesian optimization and benchmarked it against standard test functions.
neetcode-gpt — a GPT built from scratch · NN-from-scratch · NVIDIA Nemotron reasoning challenge · BirdCLEF+ acoustic species identification · InstaSHAP benchmarks
Self-Supervised Learning for Semantic Segmentation of Archaeological LiDAR Point Cloud
Data
Second author · submitted to ISPRS GeoSpatial Week 2027 · under revision
M.Sc. Statistics & Data Science — LMU Munich · 2025 – present
B.Sc. Statistics & Data Science (Computer Science minor) — LMU Munich · 2021 – 2025 · final grade 1.8