Also shipped
230+ commit full-stack trade journal and market-research app – Next.js dashboard, authenticated trade logging, analytics pages, a Python/FastAPI back end, tests, schemas, and Vercel deployment.
Also shipped
Python engine with a strategy registry, slippage/commission model, and walk-forward split. Benchmarks SMA Crossover and RSI Mean Reversion against the FYP strategy; GitHub Actions auto-updates results.
Also shipped
Entity resolution across three real Irish open-data registers – deterministic ID join where one exists, Splink matching where it doesn’t. Evaluated against 330 blind pairs, Cohen’s kappa 1.000 after a stricter self-imposed bar flagged the first pass as not good enough.
Also shipped
Mix-adjusted stratified price index on 797,774 real Property Price Register sales (dbt + DuckDB), validated against the CSO. Finds the raw median overstates national growth and understates Dublin’s, opposite signs from the same method.
Also shipped
AI receptionist that catches, qualifies, and books inbound leads in under 60 seconds – free-text chat, an owner dashboard with an ROI readout, and a one-line rebrand config. Public scripted demo; the production design pairs Claude with Supabase and calendar booking.
Also shipped
Monte Carlo stress-test of a real 72-trade NQ futures record – bootstrap resampling, order reshuffling, and drawdown-risk distributions, with an honest writeup of what survives.
Also shipped
Pre-registered backtest over 2,418 resolved Polymarket markets: favourites win 90.6% of the time and still lose ~1% after fees. Verdict: NOT PROVEN.
Also shipped
Pre-registered Monte Carlo projection of young footballers’ careers on 24,057 FBref player-seasons, cross-checked on unseen 2025–26 data at six horizons. Verdict: NOT PROVEN, skilled but under-confident.
Also shipped
Durable job queue built from scratch in Go, standard library only: at-least-once delivery, actor-per-topic concurrency, a CRC-checked group-committed write-ahead log. A crash harness kills the process cold mid-write across 5 rounds: zero jobs lost, zero acknowledged jobs resurrected.
Also shipped
A 24/7 pipeline that polls Dublin's live GTFS-Realtime feed and classifies every scheduled Dublin Bus / Go-Ahead trip into one of six honest outcomes, grading its own uptime in public alongside the routes it measures. A self-designed feed-health gate caught a real NTA data outage on its first live day and withdrew that day's verdicts rather than publish false accusations.
Also shipped
A month of one graduate’s real job search and AI-assistant operations, parsed from messy markdown trackers into a queryable DuckDB database and published as an anonymised static dashboard. A privacy gate enforced in CI was adversarially attacked and closed on 7 real leak paths before anything went public, behind a 164-test suite. Nine SQL analyses over 50 tracked applications and 65 logged assistant operations, deliberately framed as descriptive rather than inferential at that sample size – every rate published beside its raw numerator and denominator, including the headline: 0 interviews from 50 applications.