The complete index. Orange numbers are the featured work, and each row says where it sends you.
4 analyses / 10 builds / 9 featured
Data
Each of these is written up as a case study: the finding first, the working underneath.
Live ABS data ingested in Python, modelled into a tested dbt star schema on SQL Server, and reported in Power BI and Excel generated as code. Used to answer why the gender full-time gap is closing.
ABS API, dbt, SQL Server, Power BI
Forensics on 40,000 trending videos across 10 regions: what predicts a spot on the board, how long it survives, and which signals are noise.
YouTube API, pandas, scikit-learn, Plotly
Competitor benchmarking on public data: two retailers’ prices matched into identical product pairs and tracked in a dbt warehouse, over a year of history checked against my own collection at 99.97%. Parity rate, gap, promotion behaviour, and store brand against name brand.
Python, dbt, DuckDB, rapidfuzz
MRR, churn, NRR and CLV from 12.5K invoices through a tested dbt pipeline of 8 models and 44 data tests, with cohort retention as the centrepiece.
dbt, SQL, DuckDB, BigQuery
Software
Shipped things. Four have a full card on the software page; the rest go straight to the source.
Fund manager research dashboard for an investment research house, built to run embedded in another product’s iframe. The document library the team already maintains is the record itself, read live through Microsoft Graph.
Next.js, TypeScript, Microsoft Graph, SharePoint
Review platform for NSW student housing, with university-email verification, multi-dimensional ratings, request hardening and rate limiting.
Next.js 14, TypeScript, Zod, React Hook Form
Consent-first Android app for couples where the sharing rules are enforced by the schema: symmetric grants, and one current location in place of a history.
Kotlin, Jetpack Compose, Ktor, PostgreSQL
Snowflake warehouse computing the four DORA delivery metrics, enriched in-warehouse with Cortex and fronted by an agent that answers plain-English questions over a curated semantic layer.
Python, Snowflake, dbt, DuckDB
Q&A platform for Atlassian townhalls, published on the Atlassian Marketplace and still in use there: an eight-table Forge SQL schema, and voice questions transcribed by Whisper into structured rows.
TypeScript, Atlassian Forge, Forge SQL, MySQL
The official PPIA UNSW platform, carrying member profiles, event tooling and a directory for the Indonesian student community.
TypeScript, React, Supabase, PostgreSQL
Live multiplayer debate game where players argue random prompts and an audience swings the vote in real time.
React, TypeScript, WebSocket, Node.js
Gamified peer-to-peer coding platform with real-time collaboration, skill-based matchmaking and sandboxed execution.
React, TypeScript, WebSocket, Monaco
Two-player toilet-themed arcade game covering rhythm, RPS, snake and pong, all built inside 48 hours.
React, JavaScript, Vite
Next.js portfolio with an MDX blog, an AI chatbox, a hidden mini-RPG and a first-party analytics pipeline feeding /stats.
Next.js, TypeScript, Neon Postgres, Three.js