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 one open-source project, 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

A working fund-accounting system: four generations of command-line tool evolved into a web terminal sharing one ledger, with NAV unitisation, decimal-exact money handling and a benchmark overlay.
4
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

Open source

default-fail

Evidence-bound gates for unattended AI-agent work in git — with the proofs, and the times the gates were found broken.

The written contract I run agents under, 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 a pre-commit hook refuses the commit rather than trusting an agent to behave. The source is public, so what this site says about how I work can be checked against the code that does it.

The argument is in the findings file rather than the feature list. Every mechanism ships with a proof, and the proofs were broken on purpose to confirm they fail when they should; the instruments that returned a clean pass on input built to trip them are written up rather than quietly fixed — 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 →