Data & AI Analyst · Vancouver, Canada
I turn messy operational data into decisions: data analysis, forecasting, optimization, and AI-agent tooling. Below is my career, a map of everything I've built, and the skills behind it; click anything that interests you.
Work and education, newest first; detailed case studies live in my resume, available on request.
People analytics: workforce reporting and internal AI tooling
Marketing analytics and AI-assisted process automation
Master of Business Analytics
Research data support for two university-press book projects
Business analytics and financial modeling for a consulting firm
Minor in Commerce · Graduated with Distinction
Claude Code tools I build and ship, plus fixes I contribute upstream.
# 12 agents, 13 slash commands, advisory only $ claude > /research NVDA running a 5-persona debate + 6 fact analysts, in parallel ● buffett moat · intrinsic value · margin of safety ● munger invert the question · red-flag checklist ● burry deep-value contrarian · hard catalysts ● bull strongest case for ● bear strongest case against ● analysts fundamentals · technical · macro · news · sec · risk portfolio-manager reads all 12 and issues one call → rating Buy › Overweight › Hold › Underweight › Sell routing tax-aware · taxable / TFSA / RRSP gate money-moving actions pause for confirmation advisory only · runs on a Claude Code subscription, zero extra API cost
# point Claude at any tabular file · 6 tools · published on PyPI $ pip install data-profiler-mcp $ claude > profile sales.csv and tell me what's wrong with it reads the file itself, no pasting df.head() into chat ● profile_dataset shape · memory · missing values · per-column summary ● preview_data head / tail / random rows, as real records ● column_stats percentiles · outliers · histograms · top values ● detect_quality_issues duplicates · numbers stored as text · mixed types, by severity ● suggest_dtypes memory-saving load plan, with estimated savings ● compare_datasets schema + distribution drift between two files formats CSV · TSV · Parquet · Excel · JSON/JSONL guard large files sampled to a row cap, never loaded whole works with Claude Desktop · Claude Code · Cursor · any MCP client
A live-style trace of one tool I built: twelve agents debate a single ticker, then the portfolio-manager synthesizes them into one tax-aware rating. This shows the mechanism, not an investment call.
A second tool, live on PyPI: six MCP tools that let Claude audit an unfamiliar dataset (schema, quality flags, dtype plan) before any analysis touches it. One pip install away for any MCP client.
12 agents (Buffett, Munger and Burry personas, six fact-gathering analysts, one portfolio-manager synthesizer) debate a stock portfolio across 13 slash commands. Tax-aware for Canadian accounts, advisory only, zero API cost beyond a Claude Code subscription.
Claude Code · MCP · multi-agent · Python
View on GitHub ↗An MCP server that lets an LLM understand any tabular file: schema, distributions, severity-ranked quality flags and memory-saving dtype suggestions from CSV, Parquet, Excel or JSON. Large files are sampled, never loaded whole.
Python · pandas · MCP · on PyPI
View on GitHub ↗Canadian capital-gains math as an MCP server: CRA average-cost ACB, Schedule-3-style yearly reports and superficial-loss detection, plus unrealized gains against market prices and a normalizer that turns raw broker CSV exports into clean transactions. Decimal-precise, zero heavy dependencies.
Python · MCP · Decimal · on PyPI
View on GitHub ↗Upstream: contributing date-range support and class-share ticker normalization to the yahoo-finance-mcp server.
Course, client and hackathon work since 2023, grouped by year, newest first. Filter by domain, then click any project for details and links.
Deep-dives on six analytics projects worth reading, every one a public GitHub repository; the Map above holds the full breadth.
14 years of Vancouver International Airport monthly energy data, Box-Cox transformation and seasonal ARIMA, producing 3-year projections for procurement and demand planning.
View on GitHub ↗ Live analysis ↗Two-stage diabetes screening: logistic regression on non-invasive features (F1 0.777), then random forest with blood panels (F1 0.870).
View on GitHub ↗Mixed-integer linear program balancing school capacity, grade distribution and distance limits; a weather-constrained variant quantified the cost of safety at $2.11M.
View on GitHub ↗TextBlob sentiment classification over TikTok's Google Play reviews with OLS and fixed-effects regression, controlling for app versions.
View on GitHub ↗TF-IDF and Word2Vec over 27 years of healthcare filings; cosine similarity surfaced strategic competitors at 99.6% similarity and sized telehealth growth at 24.7% CAGR.
View on GitHub ↗Three model families on 2017 to 2019 SPY data with 30+ engineered features (moving averages, RSI, MACD, gold/USD): LASSO won at MSE 5.87 with 12 selected features.
View on GitHub ↗My competency profile in blue (self-assessed). Tap a role to see how the shape lines up; the full toolset is listed alongside.
A self-assessment across seven competency areas; role shapes show where each archetype typically concentrates.