← back to home

All projects

Everything I've built

★ Featured
Data Engineering

paytrail: Payments Medallion Lakehouse

A governed bronze/silver/gold lakehouse over 6.3M synthetic payments on Databricks and Delta: idempotent out-of-order-safe loads, Unity Catalog governance, 51 CI-gated dbt tests, and a code-first BI dashboard.

6.3Msynthetic payments, penny-reconciled
39% fasterheavy rollup after OPTIMIZE + Z-order
DatabricksDelta LakeUnity CatalogdbtAzureGitHub Actions
★ Featured
Data Engineering

Workplace Safety Analytics Pipeline

Built an end-to-end batch pipeline ingesting 688K+ OSHA workplace-injury records into a PostgreSQL star-schema warehouse (1 fact + 5 dimensions) with dbt, orchestrated by a 7-task Airflow DAG, runnable with a single docker compose up. Added an LLM enrichment layer using a locally-hosted model via Ollama that classified incident narratives at 96.5% coverage at $0 inference cost. Enforced data quality with 81 automated tests wired into a GitHub Actions CI pipeline that fails the build on any data-contract violation.

688K+OSHA records modelled
81automated tests, green in CI
Apache AirflowdbtPostgreSQLDockerGitHub ActionsOllamaPython
★ Featured
Forecasting & Research

Rossmann Store Sales Forecasting

Forecast six weeks of sales for 1,115 stores with a single LightGBM model, placing top 5% of 3,738 Kaggle teams. Used walk-forward cross-validation to prevent lookahead leakage. A GitHub Actions workflow runs automated tests on the feature engineering pipeline on every push, keeping model inputs validated and the project reproducible.

top 5%of 3,738 Kaggle teams
11.5%RMSPE · walk-forward CV, no leakage
LightGBMOptunaPythonstatsforecast
★ Featured
ML & NLP

Two-Tower Movie Recommender

A two-stage movie recommender on MovieLens 25M: Two-Tower retrieval (PyTorch, FAISS) feeding a 306-feature LightGBM ranker that scores Recall@10 of 0.147 and 0.9206 val AUC. The engagement/diversity trade-off is simulated offline as a 12-point Pareto frontier, with candidate policies validated by SNIPS counterfactual evaluation.

25M ratingsMovieLens, 13,176-item catalogue
12-point Paretoengagement/diversity, SNIPS-validated
PyTorchFAISSLightGBMPython
★ Featured
Forecasting & Research

SHAP Stability Across the Rashomon Set

Does a model's explanation survive being replaced by an equally accurate one? My thesis tests this across the Rashomon set on 6 forecasting benchmarks.

6 benchmarksincl. ETT & M4 Monthly
AutoGluon + H2Odeployed on Leiden's ALICE HPC
AutoGluonH2OSHAPPython
★ Featured
ML & NLP

The Edit: H&M Recommender

A two-stage recommender on 31M H&M transactions: BigQuery SQL retrieval feeding a CatBoost ranker (MAP@12 0.029 vs 0.0053 baseline, a 5.5x lift with a 95% bootstrap CI), plus a temporal-leakage gate, diversity guardrails, a typed FastAPI endpoint, and 80+ tests.

5.5×MAP@12 lift over popularity baseline
31MH&M transactions, built in BigQuery free tier
BigQueryCatBoostFastAPIPythonSQL
Data Engineering

Multi-System Data Cleaning & Entity Reconciliation

Consolidated fragmented payment, CRM and ERP data from Stripe, Salesforce and NetSuite into a single customer view across ~2M rows, resolving 98% of foreign-key mismatches.

98%FK mismatches resolved
~2Mrows reconciled
Entity ResolutionSQLER DiagramsRule-based Matching
Data Engineering

Lead Conversion Data Product

Designed a relational schema for lead-to-member conversion, containerised the Postgres database with Docker, and built a dashboard prototype letting business managers explore 4 revenue KPIs directly.

Postgrescontainerised w/ Docker
KPIdashboard prototype
PostgreSQLDockerPythonSQL
ML & NLP

NER in the CSIRO Adverse Drug Event Corpus

Fine-tuned BioBERT to extract adverse drug reactions from noisy biomedical text, using Focal Loss to handle severe class imbalance. Rare-entity classes improved by over 20% F1, with 88.92% overall accuracy.

88.92%accuracy (F1 88.04%)
+20%rare-entity F1 lift
BioBERTPyTorchHugging FaceFocal Loss
Data Engineering

Fashion Analyzer

Built PySpark pipelines across 2 years of fashion sales data covering 9 categories, 10 styles and 5 regions. The pipeline found that mid-range pricing ($50 to $150) drives the highest volume and that style preferences split sharply by market, framed as category-level assortment signals.

PySparkdistributed pipelines
CSV / JSONcurated insight exports
PySparkPythonData Viz
Forecasting & Research

Energy Time-Series Forecasting for Hydropower

Forecast hydro generation across Eastern India from 16 months of National Power Portal data, with model selection driven by AIC and BIC.

153.55RMSE
78.03MAE
SARIMAARIMAProphetPython
Forecasting & Research

Reinforcement Learning Benchmarks

Implemented REINFORCE, Actor-Critic, and A2C policy gradient algorithms on CartPole-v1 in TensorFlow, then ran 5 independent 1M-step experiments with logging, smoothing, and comparison plots. Extended the environment with transaction-cost penalties to simulate real-world P&L drift and evaluated final reward stability across methods.

1M-step experiments on CartPole-v1
TensorFlowPythonOpenAI Gym
Forecasting & Research

Graph Anonymization: Topology Preservation vs Privacy

Evaluated 4 anonymization methods across 5 real-world graphs, measuring structural preservation (modularity shift under 3%) and re-identification risk (under 1%). Findings show that aggressive anonymization degrades community structure faster than degree distribution, with implications for privacy-utility trade-offs in graph-based ML pipelines.

4anonymization methods benchmarked
5real-world graphs, modularity shift <3%
PythonNetworkX