Skip to content

Blog

Thoughts & Writing

Lessons from shipping code, building products, and thinking about data.

4 min read
statisticsdata-sciencedecision-makinggovernment

A Trend Line Is Not a Trend

Drawing a line through some points always produces a trend. Whether that movement is real, or just noise dressed up as a finding, is a separate question, and the one that should decide whether anyone acts on it.

5 min read
ai-governancegovernmentdata-sciencedecision-making

Put AI Governance on the Request Path, Not in a Document

Most AI governance is a document written once and filed away. The more useful version makes every AI-assisted answer carry its own audit trail and compliance evidence, produced as the work happens.

4 min read
data-sciencestatisticsdecision-makingforecasting

A Forecast Is a Statement About Uncertainty, Not the Future

People want a forecast to tell them what will happen. The useful thing a forecast actually does is tell you how sure you are allowed to be, which is what lets someone make a careful decision.

4 min read
strategic-intelligencedata-sciencedecision-makinggovernment

Analytics Tells You What Happened. Intelligence Tells You What To Do.

Most data work stops at describing the past. The harder and more valuable step is turning that description into a recommendation someone can act on, framed by the risk they carry and the call they have to make.

3 min read
mentoringcommunicationdata-sciencecontinuous-improvement

Mentoring Made Me a Better Analyst

I started mentoring data science students to give something back. It turned out to sharpen the exact skill my day job depends on: making something complicated clear enough for someone else to act on.

4 min read
careerdata-sciencegovernmentcontinuous-improvement

Building Something Workable When There Is No Playbook

The hardest projects are not the technically hard ones. They are the ones with no infrastructure, no brief, and no precedent. What I learned about getting moving when clarity is low.

4 min read
data-engineeringgovernmentdata-sciencereproducibility

When the Categories Change Underneath You

The flashy part of data work is the model. The part that actually decides whether you can trust the answer is the quiet taxonomy work nobody puts on a slide. A story about a category that changed.

3 min read
data-sciencecommunicationdecision-makingcontinuous-improvement

The Dashboard Is Not the Deliverable

Early on I thought the chart was the work. It took a few years of building analysis for people who had to act on it to learn that the real output is a decision, not a dashboard.

4 min read
careerdata-sciencephilosophycontinuous-improvement

The Case for the Deliberate Generalist

Why I built my career across seven technical domains on purpose, and why breadth held to a consistent method is a strategic choice rather than a lack of focus.

3 min read
engineeringdata-sciencereproducibilitycontinuous-improvement

Reproducibility Is a Feature, Not a Chore

Automating manual data workflows taught me that being able to run something again, the same way, on demand, is not housekeeping. It is the feature that makes everything else trustworthy.

3 min read
careerdata-sciencedata-analysisjob-hunt

208 Applications. One Yes. What the Data Says About Job Hunting.

A data-driven retrospective on 208 job applications, a 9.91% interview rate, 20+ resume versions, and what the numbers actually tell you about landing a role in Australia as an international graduate.

3 min read
careercontinuous-improvementreflectionphilosophy

Academia, Internships, Industry: Three Worlds, Three Lessons

One month into industry after years in academia and internships. What I thought would transfer, what actually did, and the one skill that carried me through all three worlds.

4 min read
metaaiengineeringphilosophy

I Let Claude Build My Blog. Here's What Happened.

94 pages, 6 months of iteration, and one weekend where an AI agent built the blog, RSS feed, newsletter backend, and dark mode. A reflection on building with AI.

3 min read
aiai-agentsengineeringclaudemcpproductivity

My Inbox Had 3,000 Unread Emails. So I Built an AI Agent to Triage It.

How Claude Cowork + Gmail MCP became a side project: an agent skill that labels email by provider, builds sender rules, and archives the noise — without ever deleting a message.

3 min read
aiengineeringphilosophycursorvibe-coding

I Let AI Build a Business App. It Worked. But Was I Thinking?

Building a CRM for my mum's food business with pure vibe coding. 10 hours of planning, zero manual input, and one uncomfortable question I still can't answer.

1 min read
metadata-sciencephilosophy

Hello World — Knowledge Compounds

Starting a blog. A reflection on why knowledge compounds, how first-principles thinking keeps it growing, and what you can expect to find here.

4 min read
nlpaiengineeringdata-scienceclimate

I Built an AI Fact-Checker for Climate Claims. Here's What I Learned.

Building a Transformer-based fact-checking system for climate change claims from scratch — no pretrained models, no BERT, no shortcuts. A COMP90042 NLP project retrospective.

3 min read
reflectionpersonalcareergoals

2024, New Year, New Milestone

A heartfelt reflection on starting a master's degree, interning at HEX, rebuilding a portfolio, and the goals I carry into 2024 — the year I turn 25.