Projects
Selected work and experiments, spanning quantitative finance and AI. Where a project is public, its code and write-up are linked below; the remaining repositories are being prepared and will appear here as they go live.
Quantitative Finance
A two-part C++ project. Part I is a port of my CQF cointegration / pairs-trading study across six global equity indices, running the full pipeline — Augmented Dickey–Fuller stationarity tests, a vector autoregression with Granger causality, and the Johansen procedure with a vector error-correction model — and reproducing the original MATLAB results, locked in place by GoogleTest baselines. Part II repurposes the same econometrics core for high-frequency intraday trading, applying low-latency C++ techniques — a lock-free ring buffer, SIMD and an O(1) incremental z-score — each benchmarked against a mutex baseline. The full methodology, figures and measured results are written up in the accompanying PDF report.
- C++17
- Eigen
- GoogleTest
- Google Benchmark
- Low-latency programming
- Time series analysis
A C++17 port of a MATLAB Heath–Jarrow–Morton (HJM) interest-rate model, originally written for a CQF Module 6 assignment. It calibrates a multi-factor forward-rate model from Bank of England curve data via PCA, propagates the curve by Monte Carlo under the Musiela parameterisation, and prices a suite of interest-rate derivatives — caps and floors, a European swaption, a CMS spread option, and a Bermudan swaption by Longstaff–Schwartz least-squares Monte Carlo (validated out-of-sample). Running the program regenerates its entire report section — every figure, table and price — as LaTeX.
- C++17
- Eigen
- Monte Carlo
- Interest-rate derivatives
AI & AI safety
An agentic pipeline (OpenAI Agents SDK with Claude) that reads a structured-derivative term sheet, classifies the product and the pricing model it requires, retrieves that model's assumptions and known pitfalls from a RAG knowledge base (Chroma), and flags risks-not-in-model — each finding citing its source, with a critic agent reviewing for unsupported claims. Runs in a Gradio UI with PDF export. It points LLM agents straight at the model-validation questions I worked on in quantitative finance — squarely at the quant-meets-AI intersection. The live demo is password-protected — please get in touch (see Contact) for the password.
Repository ↗ Live demo (Hugging Face) ↗
- Python
- OpenAI Agents SDK
- Claude
- RAG
- Gradio
AI-safety debate experiments
Coming soonTooling and experiments around recursive debate and obfuscated arguments — probing scalable oversight of large language models.
- Python
- LLM APIs
A runnable, inspectable implementation of the Prover-Estimator Debate protocol (Brown-Cohen, Irving & Piliouras, 2025) on the UK AI Safety Institute's Inspect framework. It targets the obfuscated-arguments problem in recursive debate by making the debaters asymmetric — a Prover that decomposes a claim, proposes an answer and calls the direction of the Estimator's error, against an Estimator that only assigns probabilities to subclaims, with a ground-truth oracle settling the final round. It ships as both a single-debate demo and an Inspect eval over GSM8K, reporting top-level accuracy and the Prover's accumulated reward.
- Python
- Inspect AI framework
- LLM APIs
Mechanistic interpretability explorations
Coming soonProbing the internal representations and circuits of language models.
- Python
- PyTorch
LLM application prototypes
Coming soonPractical applications built on large language models — pipelines, tooling and experiments.
- Python
- LLM APIs
Want to see more? Reach out via the contact page.