PORTFOLIO

ALL PROJECTS

Financial modeling, machine learning, and data-driven research

Built & Live

15 projects
quant

Advanced Option Pricing Suite

Derivatives pricing engine I built for CQF Module 3 (Exam 2, April 2026). Implements Black-Scholes-Merton, Heston stochastic volatility (priced via the Carr-Madan Fourier inversion), and Monte Carlo with antithetic variates. Reproduces the BSM closed-form to four decimals; measures a 2.9× variance reduction on the European call and 5.6× on the binary.

BSM closed form reproduces 10.4506 / 0.5323 (call / binary) to 4 decimals
Heston-Carr-Madan with Albrecher "little trap" — branch-cut-safe at long T
Monte Carlo VRF 2.9× European / 5.6× binary via strike-near-median antithetic effect
DerivativesHestonFourier
quant

Exotic Options Lab

Where the Black-Scholes closed form runs out. This page prices Asian, barrier, lookback, and American-exercise options under GBM using Monte Carlo path-dependence and the Longstaff-Schwartz regression. Includes live path-explorer animations and a copy-pasteable Python pricer.

Arithmetic & geometric Asian options with control-variate variance reduction
Barrier and lookback Monte Carlo with continuity correction
American-exercise pricing via Longstaff-Schwartz least-squares regression
ExoticsMonte CarloLongstaff-Schwartz
quant

Finite Difference Solver

Solving the Black-Scholes PDE directly on a grid. Explicit, implicit, and Crank-Nicolson schemes side by side, with a live stability visualisation showing exactly when the explicit method blows up past the CFL bound, and projected SOR for American early exercise.

BSM PDE reduced to the heat equation and solved on a grid
Explicit, implicit, and Crank-Nicolson convergence side by side
CFL stability visualisation: watch explicit FDM blow up live
PDEFinite DifferenceCrank-Nicolson
quant

Pricing Where GBM Breaks

A catalogue of markets where lognormal equity assumptions fail and the models that replace them: Garman-Kohlhagen for FX with two interest rates, Vasicek and Hull-White for rates, the Merton structural model for credit, and the Schwartz mean-reverting model for commodities.

Garman-Kohlhagen FX option pricing with the two-rate skew
Vasicek and Hull-White short-rate yield-curve simulator
Merton structural model: equity as a call on firm value
FXRatesCredit
quant

Commodity Risk Lab

Applied CQF Module 2.3 risk-machinery (Kupiec POF + Christoffersen independence + combined conditional coverage) to live commodity returns. Built on the daily Supabase pipeline I maintain for Muda Coffee — six tickers, fresh data nightly via GitHub Actions. Each asset gets its own thesis-driven VaR method recommendation; the Cornish-Fisher backtest on KC clears all three tests at the 95% level (p = 0.664 / 0.697 / 0.843).

Per-asset Kupiec POF + Christoffersen independence VaR backtest
Stylized-facts diagnostic (CQF Module 2.4) on the live returns series
Gaussian vs Cornish-Fisher vs FHS comparison with recommended method per asset
VaRRiskBacktesting
data-scienceFeatured

Spotify Popularity Time-Series Forecasting

Apply the same ARIMA / GARCH stack quants use for asset returns to a non-financial domain: track popularity on Spotify. Built on 586,672 tracks across 72 years (1950-2021). Includes a procedural Web Audio synthesiser that lets you hear what 'high energy, low valence' actually sounds like.

586,672 Spotify tracks, 1950-2021, real Kaggle dataset
auto.arima + EGARCH(1,1) on daily aggregated popularity
Per-genre ARIMA with stationarity testing and risk/reward analysis
RARIMAGARCH
appliedFeatured

Coffee Futures Snowflake Warehouse

A production-style Snowflake data warehouse for coffee futures research. Galaxy schema (fact constellation) with 8 fact tables (~1.2M rows total) and 19 dimension tables stitched together from FMP, FRED, Open-Meteo, and the CFTC COT report. Designed to make a coffee thesis queryable in one join.

Galaxy schema: 8 fact tables, 19 dimension tables, ~1.2M rows
ETL pipeline pulling FMP, FRED, Open-Meteo, and CFTC COT scraping
Date dimension with country-specific harvest seasons baked in
SnowflakeGalaxy SchemaETL
quant

Financial Transmission Rights Pricing

Most option pricing models assume the underlying is a stock or a commodity. This paper takes the Black-Scholes framework and adapts it for Financial Transmission Rights, where the underlying is congestion risk on a power grid. Includes jump-diffusion models, seasonality adjustments, and interactive LMP charts.

Black-Scholes adaptation for non-standard underlying assets
Congestion risk modeling in deregulated electricity markets
Jump-diffusion and seasonality adjustments
DerivativesBlack-ScholesEnergy Markets
valuationFeatured

Eli Lilly DCF Valuation

DCF valuation of Eli Lilly (NYSE: LLY) with pharmaceutical pipeline analysis — revenue projections probability-weighted by drug-approval stage, layered with WACC estimation (5.79% via CAPM on 5-year monthly betas), 9-peer relative valuation, and Monte Carlo sensitivity on terminal value and discount rate. Target $627 vs Mar 2024 reference $579, rated BUY.

Pipeline-stage probability-weighted revenue projections ($33B → $95B, 2023–2027)
WACC 5.79% via CAPM (5-year monthly βs), validated against 9-peer comp set
Monte Carlo sensitivity on terminal value & discount rate, not just bull/base/bear
DCFPharmaValuation
data-scienceFeatured

MNIST: MLP vs CNN

Technical comparison of a Multilayer Perceptron and a Convolutional Neural Network on MNIST digit classification. CNN reached 99.29% test accuracy vs the MLP's 97.92%, with a tighter generalisation gap (0.56% vs 1.70%). Includes 3Blue1Brown-style architecture visualisations and step-by-step convolution animations explaining why spatial awareness matters.

99.29% CNN accuracy vs 97.92% MLP accuracy
Interactive neural network architecture visualizations
Step-by-step convolution operation animation
Deep LearningPythonTensorFlow
data-science

Customer Segmentation Clustering

K-Means and hierarchical clustering on mall customer data. Identifies 5 spending behavior segments with ARI = 0.942 agreement between methods. The unsupervised methodology generalises directly to regime detection and factor-cluster portfolio construction on the quant side.

K-Means and hierarchical clustering comparison (ARI = 0.942)
Interactive elbow method and silhouette analysis
5 customer segment profiles with marketing strategies
Machine LearningK-MeansClustering
data-scienceFeatured

Brand Perception NLP — Nike vs Adidas vs Under Armour

Scraped and cleaned ~16K consumer reviews from the App Store, Reddit, and Trustpilot. Ran sentiment (NRC, AFINN, Bing lexicons), LDA topic modelling, TF-IDF, bigram and co-occurrence network analysis, and aspect-based sentiment on price, quality, and sustainability — surfaced the specific language driving each brand's perception per aspect.

Multi-platform data collection (App Store, Reddit, Trustpilot)
Comparative brand sentiment analysis
Topic modeling for brand perception drivers
NLPSentiment AnalysisR
data-science

Urban Heat Island ML Explorer

Interactive satellite ML classification explorer covering Rio de Janeiro, Santiago, and Freetown. Classifies urban heat island zones using the features extracted by UHI-Pipe.

Satellite imagery processing pipeline
Multi-city heat island classification
Interactive visualization dashboard
Satellite MLGeospatialPython
data-scienceFeatured

UHI-Pipe — Satellite ML Feature Library

A Python package I published on PyPI that pulls Sentinel-2, Landsat-8, and Copernicus DEM data from Microsoft Planetary Computer and computes 19 spectral indices (NDVI, NDBI, land-surface temperature, others) into ML-ready DataFrames with parquet caching. The feature substrate behind the UHI Explorer (0.96 F1 on Rio).

Published PyPI package — `pip install uhi-pipe`
19 spectral indices from Sentinel-2, Landsat-8, and DEM in one call
Microsoft Planetary Computer integration with parquet caching
Python PackagePyPISentinel-2
applied

Neon Survivor

Arena survival game in a single HTML file. All visuals drawn with Canvas, all audio synthesized with Web Audio API. 6 weapons, 6 passives, 6 evolutions, 7 enemy types, boss fights. Zero dependencies, instant load.

6 weapons, 6 passive upgrades, 6 weapon evolutions
All visuals and audio procedurally generated
Single ~50KB HTML file, no dependencies
HTML5 CanvasWeb Audio APIJavaScript

In Progress · Coming Soon

4 projects
quantComing Soon

Advanced ML Trading System

Implementation of methods from Lopez de Prado's Advances in Financial Machine Learning. CUSUM filters for event detection, triple barrier labeling, meta-labeling for signal confidence, purged K-fold cross-validation, and Kelly criterion for position sizing. Built in Python with XGBoost.

Triple barrier labeling and meta-labeling
Sequential bootstrap and purged K-fold CV
Kelly criterion dynamic bet sizing
Quantitative FinanceMLPython
valuationComing Soon

Amazon Comprehensive Financial Analysis

Full financial analysis of Amazon: income statement forecasting, balance sheet projection, DuPont decomposition, WACC estimation, and DCF modeling with Monte Carlo simulation on terminal value.

5-year revenue and margin forecasting
DuPont decomposition of ROE drivers
WACC estimation and sensitivity analysis
DCFValuationFinancial Modeling
appliedComing Soon

ResolvAI

AI-powered IT ticket resolution system built for BNP Paribas ServiceNow. Template-based with 10 pre-configured incident types and automated resolution note generation.

10 pre-configured incident resolution templates
Automated resolution note generation
Enterprise ServiceNow integration
AIServiceNowPython
appliedComing Soon

RH-BI-Pipeline

Automated data pipeline: SharePoint ingestion, Python cleaning and geocoding, GitHub Actions CI/CD, Supabase PostgreSQL storage, Power BI dashboards. Runs unattended.

End-to-end automated ETL pipeline
GitHub Actions CI/CD orchestration
Power BI dashboard output
Data EngineeringPythonSupabase