Open to roles
Portfolio / 2026
LocationMelbourne, AU
EducationRMIT B.DS '27
StatusAvailable

 
 

Data scientist building production ML systems — models, pipelines, and the APIs that ship them.

Hover the lettersTap the lettersClick the portraitTap the portraitThrow the ball

Now buildingStock-Price MLOps · v2
Now learningRay · LangGraph
Latest shipRealtime Fraud API
ReadingDesigning ML Systems
Scroll
0
Repos
0+
ML Models
0+
Languages
0
Public PJ
  • Python
  • SQL
  • XGBoost
  • LightGBM
  • scikit-learn
  • MLflow
  • FastAPI
  • Docker
  • SHAP
  • GeoPandas
  • Spark
  • Power BI
  • PyTorch
  • Tableau
  • Streamlit
  • Optuna
  • Gotta Train 'Em All
About

Background

● RMIT '27

Final-year Data Science student at RMIT (graduating 2027). I build machine-learning models and the pipelines & APIs that carry them into production — three projects run as live, documented services with MLflow tracking and CI/CD.

Just as comfortable in SQL and Power BI / Tableau, turning large, messy datasets into decisions people can act on.

EducationB. Data Science — RMIT (2027)
LocationMelbourne, Australia
StatusOpen to roles
Skills & tech

Data stack

0tools across 6 groups

Languages

3
  • Python
  • SQL
  • R

Machine Learning

7
  • XGBoost
  • LightGBM
  • LSTM
  • Time-Series
  • SMOTE
  • PCA
  • A/B Testing

ML Tooling & MLOps

8
  • scikit-learn
  • Optuna
  • SHAP
  • MLflow
  • FastAPI
  • Docker
  • GitHub Actions
  • WebSockets

Data & Big Data

8
  • pandas
  • NumPy
  • Spark
  • Hadoop
  • PostgreSQL
  • Supabase
  • GeoPandas
  • ETL/ELT

Visualisation

6
  • Power BI
  • Tableau
  • Streamlit
  • Plotly
  • Matplotlib
  • Seaborn

Workflow

5
  • Git
  • Jupyter
  • Linux
  • pytest
  • n8n
Featured work

Key works

Keep scrolling: the cards stack

01
Lead project
PYTHON · XGBOOST · LSTM · MLFLOW · FASTAPI

Stock-Price Forecasting — MLOps

Beat ARIMA & a coin-flip on next-day ASX direction (51.8% vs 48.8%) with engineered RSI/MACD/Bollinger features and leakage-free walk-forward CV across 10 equities (18,460 samples). Served via a FastAPI /predict endpoint + Streamlit, MLflow registry, pytest & GitHub Actions CI — running live.

51.8% DIR. ACCURACY
02
Featured
PYTHON · XGBOOST · SMOTE · SHAP · FASTAPI WS

Real-Time Credit-Card Fraud Detection

Caught 85.9% of fraud at 84.7% precision (PR-AUC 0.88, ROC-AUC 0.99) on 284,807 transactions (0.17% fraud) with a cost-sensitive XGBoost + Isolation Forest ensemble and train-only SMOTE. SHAP reason codes streamed live over a FastAPI WebSocket.

PR-AUC 0.88 · ROC-AUC 0.99
03
Featured
PYTHON · GEOPANDAS · PCA · FOLIUM · STREAMLIT

Melbourne Suburb Liveability Index

Ranked 260 Greater-Melbourne suburbs on an 8-dimension liveability score — real suburb-boundary geometry (GeoPandas, Vicgrid) with PCA setting the weights (PC1 = 42% of variance). An interactive Folium choropleth re-scores as you move the sliders.

260 SUBURBS · PCA
04
Featured
NEXT.JS 14 · TYPESCRIPT · APIFY · CLAUDE API

Vaultr — AI Cashback Engine

An /api/cashback service that pulls live offers from five vetted Australian networks via Apify, runs a Claude pass to drop untrusted sources, and ranks what's left by the user's own spending — with three fallback tiers so the feed always loads.

AI CASHBACK ENGINE
Interactive lab

Data lab

Four games and eight tools. Beat a fraud model, break a regression, train a neural net, and try to out-guess the market. Collect every card in the Data Dex.

Pick a tab · collect all 12 Dex cardsSwipe the tabs · collect all 12 Dex cards

APPROVEFRAUD
$41.25
  • Time 12:24
  • Distance from home 15 km
  • Purchases in the last hour 6
  • Merchant first time
  • Card domestic

Swipe the card, or use the buttons. This deck is rigged: 1 in 3 is fraud.

BEAT THE FRAUD MODEL

My real project catches 85.9% of fraud at 84.7% precision. Here you play the analyst: decide, then see the model's risk score and the reasons it gave.

// READY
YOU0MODEL0
Tap to add training points
OVERFITTING LAB

Red dots train the yellow curve. Faint dots are hidden test data. Raise the degree and watch training error fall while test error blows up.

3
0.28
■ train error■ test error
UNDERFIT — too simple to follow the curve
Red vs blue: the network is drawing the boundary
TRAIN A NEURAL NET

A real network, learning in your browser. Pick a puzzle, add neurons, and watch the boundary bend around the dots. Reach 95% to catch this one.

6
0.025
// EPOCH 0 · LOSS 0.700 · ACC 50%
// CALL 1/20
BEAT THE COIN FLIP

Predict whether the next day closes up or down. My real ASX model managed 51.8% against a 48.8% baseline. Markets are noisy, so see how you do.

YOU0MODEL0STREAK0
0/12
DATA DEX

Play each tool to catch its card. Gotta train 'em all.

Click to add points
K-MEANS CLUSTERING

Group points into K clusters — the same technique behind my RFM customer-segmentation project.

3
// READY
Click to add points
LINEAR REGRESSION

Drop points and watch a least-squares line fit in real time.

EQUATIONy = —
R²—
POINTS0
GUESS THE CORRELATION

How strong is the relationship? Slide to guess r, then reveal the truth.

0.00
// GUESS r THEN SUBMIT
SCORE0ROUND1
Hover the map
GEOGRAPHIC HEAT MAP

Inverse-distance-weighted (IDW) interpolation turns scattered stations into a smooth heat field.

// HOVER FOR VALUE
Drag the nodes
FORCE-DIRECTED NETWORK

A spring + repulsion physics sim lets the graph lay itself out.

// NODES 0 · EDGES 0
Hover a point
BEESWARM PLOT

Shows a 1-D distribution without hiding points — collision-avoidance packing.

// 3 GROUPS
Distribution shapes
VIOLIN PLOT

Kernel-density estimation draws each group's distribution shape.

// 4 DISTRIBUTIONS
Hover a cell
CONVEX TREEMAP

A Voronoi tessellation builds convex cells whose area encodes value, animated with Lloyd relaxation.

// HOVER A CELL
Contact

Let's build something with data.

Open for data science collaboration, analytics projects, or data-related opportunities.

Currently available
Open to opportunities
Data Science / ML / Analytics
21
Repos
10+
Models
18
Projects
Tech stack
PythonSQLXGBoostLightGBMscikit-learnMLflowFastAPIDockerSHAPGeoPandasSparkPower BI
RMIT University // Melbourne // Class of 2027