Projects

What I have built, and what it returned

Each entry opens in plain language, states what was hard, and reports what it found — including when the answer was that there was nothing there. The technical version is one click below it. Source repositories are private and are not linked, apart from the three that are open source, which you can read in full.

Case studies

Four builds.
Each has its own page.

Built end to end, then measured

01

Prediction-market research and trading system

A 24/7 platform that watches prediction markets continuously, and the machine-learning and evaluation stack built on top of it.
718
~1.05 TB
02

Wallet-intelligence and manipulation-detection engine

A three-tier scoring engine that traces on-chain funding up to three hops and flags coordinated clusters of accounts across daily scans of the 200 busiest markets.
3
3 hops
03

Fund-accounting terminal

An open-source terminal for running a small fund on NAV unit accounting — which refuses to write a fund value when a price is missing rather than record one it cannot stand behind.
MIT
Jul 2025
04

Market-data portal

Productised a seven-stream, ~1.05 TB archive into a documented, DOI-versioned dataset with a costed delivery architecture — and engineered provenance enforcement into the build.
7
~1.05 TB
05

Measuring an agent orchestration pattern

A pattern for running AI agents on research work, measured over four weeks against synthetic datasets built with a known true answer and a trap planted in each — including the prediction written in advance that turned out wrong.
7
94.6%

Open source

agent-research-protocol

The pattern I run agents under, published together with the measurement of which parts of it caught anything.

The written contract, packaged so that someone else can run it. Every criterion starts at fail and only moves on a citation that resolves; the grader is a read-only subagent that never saw the work being produced and cannot fix what it finds; and a pre-commit hook refuses the commit rather than trusting an agent to behave.

What makes it worth reading is not the machinery. It is what happened when I measured that machinery across seven projects: the installed checks refused one thing, work grading itself caught nothing, and the largest single share of the catches that changed a result came from a reader with no stake in it. The repository opens with that rather than with a feature list, and says first, and at length, that seven runs by one operator on one machine cannot settle it. agent-research-protocol on GitHub.

It supersedes default-fail, which stays public because the instrument write-ups are in it and nowhere else: a claim-checker whose number mask deleted every decimal it existed to check, a quality gate that passed four fabricated summaries and failed the clean one. How I work has that story; the default-fail repository has the detail.

Shipped, then wound down

Two products, shipped

Two products I designed, built and shipped to real users, and the specific external constraints that ended each one.

ResolveIt was a five-person university course project; I built the web application on my own. It let someone in debt gather what they owed in one place and receive an automatically generated repayment plan. The plan generation worked end to end. It had zero users and zero revenue and never left prototype stage. What stopped it was not the software: making it real required every creditor to agree to release a person's debt data, plus data-protection clearance on top. That is a permissions problem, and no amount of engineering solves it.

Alphatrack was a solo side project, deployed on its own domain and working end to end for equities. Signups were limited to friends and family; there was no revenue and I never got as far as charging. It stopped because good market data is expensive, and the paid feeds it needed to cover more than equities cost more than a student budget allows.

The technical version

ResolveIt — stalled on the data problem, not the build

A five-person TU Delft course final project; I solo-developed the web application. Plan generation worked end to end; the negotiation tool was scoped but never built. Zero users, zero revenue — it never left MVP. What stopped it was a permissioned two-sided data problem: every creditor had to agree to release debtor data, on top of data-privacy clearance.

Stack — React, Express, OpenAI.

Alphatrack — stopped on data cost

A solo side product, deployed on its own domain and working end to end for equities. Signups were limited to friends and family; there was no revenue and monetisation was never reached. It stopped because quality market data is paywalled and the paid APIs it needed exceeded a student budget.

Stack — Next.js, React, Supabase, Tailwind.

Contribution

AI4MDE Studio

Contributed to an open-source platform that generates working Django applications from UML (unified modelling language) diagrams, inside a seven-contributor codebase with automated quality gates.

The project turns diagrams describing a system's structure into working application code. My share is about three per cent of its history, so this is not my project and is not presented as one. What it demonstrates is fitting into an existing codebase with automated quality checks already in place and a review process to satisfy — which is what most professional work actually looks like.

Also

Research write-ups

The two theses are written up in full on the research pages: a point-process model of when prediction markets move, and a six-architecture benchmark of self-supervised models for activity recognition.

Research →