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.

View GitHub profile

Quantitative Finance

HFT_pairs — C++ cointegration & pairs trading

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

hjm-cpp — Heath–Jarrow–Morton interest-rate model in C++

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

termsheet-risk-agent — LLM agent for derivative term-sheet risk

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.

  • Python
  • OpenAI Agents SDK
  • Claude
  • RAG
  • Gradio

AI-safety debate experiments

Coming soon

Tooling and experiments around recursive debate and obfuscated arguments — probing scalable oversight of large language models.

  • Python
  • LLM APIs

prover_estimator — Prover-Estimator Debate on Inspect

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 soon

Probing the internal representations and circuits of language models.

  • Python
  • PyTorch

LLM application prototypes

Coming soon

Practical applications built on large language models — pipelines, tooling and experiments.

  • Python
  • LLM APIs

Want to see more? Reach out via the contact page.