About
I'm an MSc Informatics student at UZH (AI major, Data Science minor).
Blockchain is where most of my work sits, but the interesting part is
rarely the contract. Recursive leverage reads as a DeFi paper and is
really a clustering and prediction problem: which wallets behave alike,
and which positions are about to break. I ship Solidity to mainnet and
spend about as much time in pandas as in Hardhat.
The rest of what I do is about whether a model's output can be trusted
at all: whether an answer can be traced back to a source, and whether a
system fails evenly across the people it gets used on. Before Zurich I
did a BSc in Computer Science at Royal Holloway.
Projects
AI vs human essay authorship detection
Sep 2025 to Dec 2025
Python, DeBERTa-v3, RoBERTa, stylometry
A detector for machine-generated academic essays, built with three
others. The number everyone quotes is macro-F1. The one that mattered
to us was whether the false positives landed on non-native English
writers, because a detector that looks accurate overall can still be
unusable for anyone writing in a second language. I did the
preprocessing and tokenisation, across an 800k-sample training corpus
and a separate hold-out set of essays by non-native speakers.
GitHub
Visual odometry pipeline
Nov 2025 to Jan 2026
Python, OpenCV
A moving camera has to reconstruct its own path from the video.
With one camera that path has no scale in metres, and a fast rotation
is enough to lose the track. We filmed a Swiss cablecar on a Samsung S20,
used the phone's gyroscope to keep tracking when vision failed, and used
its IMU to put the path into metres.
GitHub
Report
DeFi staking pool on Base
Feb 2026 to Mar 2026
Solidity, Morpho, Chainlink Automation
Most staking apps pay you by printing a new token. This one does not.
You deposit WETH, USDC or EURC on Base, the contract puts it into a Morpho vault,
and a daily harvest sends you the yield in the same token you put in.
Live app
Knowledge-graph QA chatbot
Sep 2025 to Dec 2025
Python, SPARQL, Ollama
A chatbot that answers questions from a Wikidata-derived knowledge graph.
It tries SPARQL first, falls back to embeddings when the graph has no hit,
and only then asks a local LLM running on Ollama.
Report