Machine learning, end to end.
I work across NLP, computer vision and applied ML, taking problems from dataset construction through model benchmarking to a documented, reproducible result. First author of a peer-reviewed computer vision paper (Sādhanā, Springer 2025). Python is my daily driver, with the OpenAI and Anthropic APIs for LLM tooling and agentic workflows.
Saarbrücken · working student at ORBIS Value+ · open to thesis topics Latest: reproduced MolCA (EMNLP 2023) and tested which input it believesReal-time yoga pose estimation with a hybrid MoveNet architecture
Built during a computer vision research internship at NIT Puducherry. The architecture splits deliberately: MoveNet Thunder generates high-fidelity keypoints for training, while MoveNet Lightning handles inference at 30+ FPS on consumer hardware: accuracy where the model learns, speed where the user waits. I owned the dataset end to end, consolidating and curating 3,435 images across 11 asanas from Kaggle and Yoga-82 sources, then trained the keypoint-embedding classifier, ran the misclassification analysis and carried the paper through two rounds of peer review.
MolCA reproduction: which input does a molecule LLM believe?
Graduate seminar with Prof. Dietrich Klakow, Saarland University. MolCA (Liu et al., EMNLP 2023) reads a molecule both as SMILES text and as a graph, wiring a graph encoder into Galactica through a Q-Former projector. I reproduced its released checkpoint on two very different machines: 62.32 and 62.77 BLEU-2 against the paper's 62.0, with 93.8% of captions character-identical across them. All 32 published retrieval metrics came back within 0.5 points, the 16 on the full test set within 0.12. Getting there took 14 patches to the released code, several fixing bugs nobody had reported upstream.
Then the experiment the paper never ran: give the model one molecule's text and a different molecule's graph. It describes the graph's molecule in about 90% of the cases where it clearly picks one. Breaking the graph costs 2.5 times what breaking the text costs. A wrong graph does more damage than no graph at all. The effect holds on a second dataset once I controlled for the 49% of its test set that leaks from the training data.
Lingomatch, AI document triage for a Gov/Justice-Tech platform
Student consultant (AI/Data Science) via the UdS Innovation Center's Triathlon startup programme: I built the ML backend of an AI-driven document-triage feasibility study for Lingomatch, turning photos of foreign-language documents into usable German gist translations for public authorities. I built and benchmarked the Arabic-to-German pipeline: Surya OCR evaluated on KITAB-Bench with CER/WER and confidence calibration; evaluated PaddleOCR as an independent second engine for disagreement-based flagging and documented its failure mode on Arabic due to engine-asymmetry; and benchmarked Opus-MT against NLLB‑1.3B, matching translation quality (BLEU 43.8 vs 42.4) at a ninth of the memory, after catching the licence issue that ruled NLLB out for production.
Delivered the live demo in the final case-study presentation to the company's CEO.
DODI: deception scoring for Terms-of-Service documents
DODI (Digital Ownership Deception Index) quantifies the gap between "Buy now" marketing and "you're only licensing this" fine print in consumer ToS documents. A deterministic, fully reproducible scorer (Flesch–Kincaid readability, licence-vs-ownership term ratio, red-flag clause detection, weighted 25/50/25) compared against ToS;DR human expert grades (Spearman ρ = 0.45, n = 10, not significant) and applied as a temporal study: 10 platforms, four Wayback Machine snapshots each (2015–2024). The index passes its face-validity test: GOG, the DRM-free "you own your games" store, scores lowest of all ten platforms in every year.
Then I checked my own index with three LLM judges from two vendors. They barely agree with it (ρ = 0.05 to 0.26). The disagreement exposed a real flaw: DODI can't tell an honest subscription from a deceptive "Buy" button. Version 1.1 (September 2026) counts whole words and validates against reviewed ToS;DR grades only. Version 2 reads the archived store page first: an ownership promise only counts if the store made one.
Shipped end to end, not just analysed: the scorer runs as a public web service, a Dockerized FastAPI app with tests and CI. It's also an MCP server over Streamable HTTP, deployed on Render, so an AI agent can call the scorer as a tool. I've tested it inside a Microsoft Copilot Studio agent.
Mining a real purchase-to-pay log
A process mining pass over the public BPI Challenge 2019 log: one year of purchasing at a large coatings company, 251,734 purchase-order items and 1.6 million events. I streamed the 728 MB XES file into Parquet and measured what process teams ask first. Orders take a median of 77 days from item to cleared invoice. 22% need a payment block lifted, 1.7% were ordered only after the invoice existed and 96% of invoice steps are still done by hand. 11,938 distinct paths, of which 45 cover 80% of items.
Shadow Correction: piracy as a market signal
Quantitative study (team of 3) testing whether piracy behaves as a market-correction signal, structured as three testable barriers. The primary parameter: streaming-market fragmentation, measured with the Herfindahl–Hirschman Index on Parrot Analytics demand-share data. The supporting parameters were designed as falsification tests: piracy-intent indices built from Google Trends (pytrends) aligned with income per hour worked (World Bank GDP per capita over annual working hours) across 122 countries. That correlation is statistically zero (Spearman ρ = −0.001, p = 0.99), which rules out affordability as the explanation. Fragmentation tracks the rise in piracy visits, though on six years of data the trend isn't significant. The third test is an event study of piracy spikes after content delistings.
Build with
LLM work, daily
How I work
I benchmark before I recommend: models get tested on realistic inputs and failure modes go in the report next to the wins; a translation model that degrades on long legal text is a finding, not a footnote. I take deployment constraints seriously from day one: model licences, GDPR, EU AI Act obligations and what actually fits in 8 GB of VRAM. Everything ships version-controlled and documented so it survives handover. Where I'm still building depth I say so and pick it up fast: Docker, CI/CD and cloud deployment were on that list until I shipped DODI's live scorer as a Dockerized FastAPI service with CI on every push.