UFC Gym
Barista
Latte Art
BRIAN PHU

DATA_ANALYST :: COFFEE_MAKER :: UFC_FIGHTER

I work end-to-end — from scraping raw data to shipping something people can actually use. My framework: OODA.

3
Projects
11
Countries
150+
Factories
117
Fighters
74.3%
Win Rate

Framework // OODA Loop

Three things shaped how I analyse:

Espresso — intuition is not a substitute for measurement.

Muay Thai — patterns matter, but so does the one time the pattern breaks.

Supply Chain — risk is always more concentrated than it looks on a map.

O
Observe
Scrape it. Pull it. Get the raw signal before interpretation clouds it.
O
Orient
Clean, model, contextualise. Find the shape hiding in the noise.
D
Decide
Statistical rigour over gut feel. T-Tests. Cohen's d. Levene. Shapiro-Wilk.
A
Act
Ship a dashboard, a Streamlit app, a stored procedure — something people use.

"If I cannot measure it,
I do not trust my opinion on it."

// Brian Phu · Data Analyst · Sydney AU

Selected Work // 03 Projects

01
UFC Dashboard

A sparring accident at UFC Gym Townhall started it. I stepped on my partner's foot — different stances, different angles. My jab was my knockout weapon. For a Southpaw, that's supposed to be impossible.

117 fighters scraped. Right-handed Southpaws: 74.3% win rate, Cohen's d 0.43. The data confirmed what my body already knew.

Python BeautifulSoup SciPy Streamlit PostgreSQL KNN
MMA · Sports Analytics · ML · Streamlit

UFC Stance & Handedness Intelligence

117 fighters scraped → Right-handed Southpaws: 74.3% win rate, Cohen's d 0.43. The rarest 19.6% — statistically, the deadliest.
PythonBeautifulSoupSciPyStreamlitPostgreSQLTableauKNN
02
Coffee Dashboard

Years behind the espresso machine wired a different kind of thinking. 200 shots a day — grind, dose, yield, temp, time. Every variable measurable. I wanted to turn feel into data.

13 brewing methods scraped. Built a Streamlit consultant app with antioxidant vs caffeine scoring. Stored in Supabase SQL.

Python Scraping Streamlit Supabase SQL Jupyter
Coffee · Scraping · Streamlit · Supabase

Head Barista Coffee Intelligence

13 brewing methods → Antioxidant vs Caffeine model. Cold Drip & Lungo rank 5/5 for immunity boost.
PythonScrapingStreamlitSupabaseSQLJupyterExcel
03
Nike Adidas Dashboard

I flipped my Nike Air Max — Made in Vietnam. My Adidas Ultraboost — Made in Indonesia. I couldn't find a clear side-by-side answer anywhere. So I built one.

42 factories across 11 countries. Two interactive maps. Both brands love Vietnam — but Europe tells a completely different risk story.

PostgreSQL SQL Tableau Mapbox Supply Chain Data
Supply Chain · SQL · PostgreSQL · Tableau

Nike vs Adidas Supply Chain Intelligence

42 factories → 11 countries mapped. Vietnam leads with 5 factories each. Risk more concentrated than it looks on the map.
PostgreSQLSQLTableauCSVData Cleaning

Technical Stack // Tools

Tool Context Projects Level
PostgreSQLCleaning · ETL · Stored proceduresNike/Adidas · UFC
PythonPandas · NumPy · SciPy · BS4UFC · Coffee
TableauInteractive dashboards · Geo vizNike/Adidas · UFC
StreamlitApp deploy · Fighter recommenderUFC · Coffee
Web ScrapingBeautifulSoup · RequestsUFC · Coffee
Stats AnalysisT-Test · Cohen's d · Shapiro-WilkUFC
Machine LearningKNN · Scikit-learnUFC
Supabase / SQLCloud DB · Real-time queriesCoffee

Identity // The Person

// Head Barista

Coffee Lab

Years as Head Barista wired a different analytical brain into me. 200 shots a day — grind, dose, yield, temp, time. The gap between good and great is always measurable. Intuition is just pattern recognition you haven't put numbers to yet.

// UFC Gym Townhall

Southpaw Fighter

Kickboxing & Muay Thai at UFC Gym Townhall, Sydney. Not to compete — addicted to the mats. One sparring accident made me ask: does the data back up what I feel? The UFC project was born from that step. I'm a right-handed Southpaw — the rarest 19.6%.

// Sneaker Nerd

Supply Chain

Too many sneakers. Not sorry. Flipping one Air Max — "Made in Vietnam" — sent me into a rabbit hole across 11 countries. Risk is always more concentrated than it looks on a map. Nike vs Adidas proves it.