Data Analyst (in all but name) + Lifelong Transit Nerd = Business Intelligence Analyst (the best you'll ever hire)

I've been riding, advocating, analysing, and automating my way through cities since before I knew what a dataset was.

Every stop
shaped the route.

2004

Love at First Infrastructure

The garbage truck that came by every week was my favourite public service (the only one I saw, so my dream job was to be a garbage collector). The obsession with cities starts early.

2005

Started Commuting!

Walked ten minutes to and from kindergarten daily.

2012

New Mode Unlocked: School Bus

Started taking the school bus to middle school. Learned that transit is social infrastructure where you chat with friends.

2016

An Iconic Grade 10 Class Presentation

We could present on anything we wanted. I chose to focus on reducing traffic congestion in Toronto.

  • Argued for better transit as the primary solution to urban congestion — still holds
  • Some prescient ideas (better tech, active transportation)
  • Some ideas that didn't age so well (e.g. Metrolinx as a unified agency)
Download presentation (PPTX)
2017

MiWay Student Ambassador Program

Student Transit Ambassador at high school, promoting awareness of MiWay (public transit agency) and the Mississauga Moves transportation master plan. First real advocacy work.

2018

Parkette Proposal

Submitted plans to a city councillor to beautify an unused slip of electric utility land into a public parkette, connecting the neighbourhood to the bus stop on the arterial road. Got nowhere. Lesson: change is slow. But you still have to try.

Sketch of the proposed parkette connecting the neighbourhood to the arterial bus stop
2019

New Mode Unlocked: London Transit

Started university. Switched from car-dependent suburban Mississauga to car-dependent London, Ontario. But now I don't have my parents' car.

See more
  • Started using Transit App because the arrival predictions were better.
  • Bus service was half-decent around the university.
  • Began mentally comparing transit systems across every city I visited
2020

First Taste of Serious Math

Received an Undergraduate Student Research Award. Learned about convexity and how math research can be applied to real-world problems.

Read the paper (PDF)
2021

Machine Learning x London Transit Data

Built a full data pipeline to collect and clean real-time GTFS data from London Transit, then compared ML models for arrival time prediction. First hands-on experience with transit data formats and a useful lesson in what makes a model evaluation actually useful.

See more
  • Ingested GTFS-realtime protobuf feeds on a cron schedule, handled timezone normalization and feed outages, and built a clean training dataset from scratch
  • Compared regression, decision trees, and neural networks using R², which in hindsight doesn't capture what matters for scheduling (tail lateness, not average error)
  • What I'd do differently now: Use MAE and percentile error metrics, treat severe delays as a separate classification problem, and define a clearer hypothesis
2021

Linear Hashing Talk — Math Club at Western

Gave a public talk to Western's Math Club breaking down a CS concept for a mathematical audience.

Watch the talk (Facebook)
2022

Western Active Transportation Society

Advocated for walking, cycling, and sustainable mobility on campus and in the city.

2023

Published in Ivey Business Review

A strategy proposal to address Western University's housing woes.

Read the article
2023

Project: Tech Layoffs Statistical Analysis

Applied beta regression to 2,400+ tech layoff records to model what drives the severity of workforce cuts — from exploratory data analysis through model selection to evaluation.

See more
  • The analysis involved exploratory visualization, Cook's distance outlier removal, likelihood ratio tests for nested models, link function comparison (logit, probit, cauchit, etc.), and interaction term selection, evaluated with a train-validation-test split.
  • What I'd do differently now: The project dropped ~33% of observations with missing response values without any sensitivity analysis, which probably introduces non-response bias. I'd now use multiple imputation or at minimum compare the dropped vs. retained populations. I'd also use zero-one inflated beta regression instead of naïvely capping boundary values, add temporal features rather than discarding the date column entirely, and avoid comparing AIC across models fit on different data subsets.
Read the paper (PDF)
2023

CEOx1Day

Matched with Ashley Kirwan of Orix Geoscience! Spent a day in the C-suite learning how data informs real executive decisions.

Read about me in the news!
2024

Singapore Rewired My Brain

Exchange semester in Singapore. Spent time biking, ridesharing, MRTing, and busing around the city state, returning to Toronto with a vision for what's possible.

2024

New Mode Unlocked: Bikeshare Toronto

Moved to downtown Toronto. Ditched the car entirely: became an avid bikeshare user, walker everywhere, and devoted follower of every transit project reshaping the city.

See more
  • Bikeshare Toronto cumulative stats: 2000km and 500+ trips!
  • Living through Line 5 (Eglinton Crosstown) and Line 6 (Finch West) openings!
  • Staying curious about the King Street Transit Priority Corridor, Yonge Tomorrow, and Ookwemin Minising
2025

Full time job: Markets, Risk, Data, Automation

Completed various rotations on the trading floor and landed a permanent role in market risk. Data is at the heart of it all.

Highlight projects
  • Automated repurchase agreement collateral allocator
  • FX futures roll analysis and forecasting
  • Swap pricing automation and daily interest rate news summary for senior salespeople
  • Broker confirm email capture
  • Annual limit review automation
2026
Now

Transit App: Business Intelligence Analyst

The next stop? Somewhere I can merge my passion for transit with my skills in all things data.

Things I've
actually built.

Some are serious. Some are delightfully hacky. All taught me something about turning a messy question into a working answer.

2018 Side Project

Mississauga Chess Club Website

Helped establish an online presence for the local chess club — website, Google Maps listing, contact flow. First time I built something for a real organization with real people depending on it.

HTML/CSS Google Maps Web
2026 Side Project

MandarinLearn — Spaced Repetition App

A spaced repetition Mandarin learning app built for heritage speakers — people who grew up hearing the language but never formally learned to read or write it. Built with AI-assisted development throughout.

Web App Spaced Repetition AI-assisted dev Product
Details & link
  • Targeted a specific underserved gap: heritage Mandarin speakers who need a different learning curve than total beginners
  • Used AI tools throughout — content generation, curriculum logic, UI copy, iteration — while staying the one making product and architectural decisions
  • Live and in use
Visit MandarinLearn →
2025 Side Project

Standard Notes Blog Frontend

Custom frontend for publishing notes from Standard Notes as a blog. Bridged a personal notes workflow with a public-facing reading experience.

JavaScript HTML/CSS API Integration
2019 Hacky Tool

Economics Exam Bank Tester

PDF OCR pipeline that ingests exam PDFs, semantically categorizes questions by type, randomizes them into practice sets, and serves them via a command-line interface.

Python PDF OCR NLP CLI
Details
  • OCR extraction from scanned exam PDFs; semantic categorization by question type, not just keyword matching
  • Randomization engine for practice set generation
  • Terminal UI — clean prompts, score tracking, hint mode
2020 Hacky Tool

UWO Empty Room Finder

Scraped Western's class schedule system, stored availability in a database, and surfaced empty classrooms in real time via a CLI. Solved an annoying problem efficiently.

Python Web Scraping SQL Database Design CLI
Details
  • Scraped timetable data and room assignment schedules on a refresh cycle
  • Designed a normalized SQLite schema to track room → time → availability
  • CLI interface: query "empty rooms right now, building X, seats > 20"
2023 Hacky Tool

Mustang Capital — Sports Betting Arbitrage Tracker

End-to-end accounting system for a group sports betting operation — tracked every bet, money flow, and bonus arbitrage across platforms, with P&L calculations and a running ledger.

Python Accounting Logic P&L Tracking Data Modeling
Details
  • Logged every bet placed across platforms with odds, stake, and outcome
  • Tracked capital contributions per person and running balances
  • Calculated real-time P&L and net settlement amounts between participants
  • Identified available arbitrage and promotional +EV opportunities as they appeared
  • Essentially a mini double-entry ledger — built intuition for financial data modeling
2024 Work

Market Participant Survey — Internal Report Prototype

Built an early internal report prototype for the Bank of Canada's Market Participant Survey — clean layout, summary tables, and visual hierarchy designed for senior stakeholders.

Excel Reporting Data Presentation
2024 Work

Power Futures Pricer

Power Trading Desk — pricing tool for power futures; inputs from the desk, pricing model applied, clean outputs ready for client conversations or trade decisions.

Python Derivatives Pricing Capital Markets
2024 Work

Automated STRIPs Offer Sheet Generator

Rates Trading Desk — daily automation that generates the STRIPs offer sheet each morning; pulls market data, applies the formatting template, and delivers a ready-to-distribute document without manual input.

Python Excel Automation Fixed Income
2024 Work

Automated Rate Checks, PnL Forecasts & OSFI Review

Mortgage Investment Group — automated daily rate checks, PnL forecast generation, and OSFI review prep; removed manual steps from the team's critical morning workflow.

Python Automation PnL Forecasting Mortgage
2024 Work

Commitment Data Visualizations & Business Explainers

Mortgage Investment Group — suite of visualizations covering market risk reporting, prepayments by maturity, and business explainer charts for internal stakeholders.

Python Data Visualization Market Risk Mortgage
2024 Work

Bond Collateral Allocator

Repo Trading Desk — data pipeline that automates collateral allocation decisions based on configurable eligibility rules. Replaced a spreadsheet process that was, charitably, a liability.

Python Data Processing Workflow Automation Fixed Income
Details
  • Ingests daily position data, applies eligibility rules, outputs optimized allocation
  • Configurable rule engine — business logic separated from code
  • Generates historical allocation records for trend analysis
  • Eliminated ~1 hour of daily manual reconciliation
2024 Work

FX Futures Roll Data Analysis & Backtesting

Quantitative Investment Strategies (QIS) Team — analysis and backtesting framework for FX futures roll strategies; pulled multi-source market data, modeled roll dynamics, and evaluated historical strategy performance.

Python Backtesting FX REST APIs Capital Markets
2025 Work

Basis Swap Workflow Automation

Interest Rate Derivative Sales Desk — end-to-end automation covering RFQ, pricing, summary generation, and trade confirmation for basis swap trades; turned a multi-step manual process into a single-run workflow.

Python Workflow Automation Derivatives Trade Ops
2025 Work

Broker Crossing Email Report

Options Trading Desk — pipeline that reads incoming broker crossing emails (each in a different format), parses trade details, stores everything in a database, and sends a daily digest. Turned an inbox into a data source.

Python Email Parsing SQL Automation Reporting
Details
  • Handled multiple broker email formats with different layouts — robust parsing, not brittle regex
  • Backfilled historical emails on first run to build a complete trade record
  • Daily report summarising all crosses confirmed that day, sent automatically each morning
  • Replaced a manual process of reading and logging each confirmation by hand
2025 Work

Implied vs Historical Volatility Analysis

Options Trading Desk— analysis tool comparing implied and historical vol across positions; surfaces pricing dislocations and gives the desk a systematic lens on vol surface dynamics.

Python Options Volatility Market Data
2025 Work

Client Trades Dashboard & Daily Email Report

Options Trading Desk — dashboard tracking client activity with a daily email summary; gave the desk an instant view of what clients were doing and what to follow up on.

Python Dashboard Email Reporting Options
2025 Work

Daily Market Risk Report — Generation & Data Upload

Market Risk — automated the full generation and upload pipeline for the daily risk report; end-to-end from data pull to formatted output and system upload, replacing a fragile manual process.

Python Automation Market Risk Reporting
2026 Work

Webex Captions Capture

Market Risk — automation script that captures live Webex meeting captions and saves them as a structured transcript, while recording audio and using a second model to transcribe it for improved accuracy.

Python Automation Scripting
Details
  • Hooks into Webex's accessibility caption feed and streams text to file
  • Timestamps, speaker labels, and clean plain-text output
  • Replaces a manual note-taking process for recurring meetings

Five lines of expertise.
One network.

Like any good transit system, the value is in how the lines connect.

Let's talk about transit data.

Or urban planning for better cities. Or how we can improve bikeshare.