Skip to content
View haiiibin's full-sized avatar

Highlights

  • Pro

Block or report haiiibin

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
haiiibin/README.md

Hi, I'm Allen 👋

Typing intro

Data & AI Analyst | UBC MBAN | Forecasting · Optimization · ML

I build AI agent workflows and data products: two MCP servers published on PyPI (a tabular-data profiler and a Canadian capital-gains engine), a multi-agent investing framework where Buffett, Munger, and Burry personas debate my portfolio, and the forecasting, optimization, and machine learning work below. Claude Code and MCP are built into how I work every day.

🔭 Now

  • Shipped data-profiler-mcp and acb-tax-mcp: on PyPI and the official MCP Registry, listed in awesome-mcp-servers, Glama score A for both
  • Building claude-multi-agent-investing: teaching 12 agents to argue about my portfolio so I don't have to
  • Contributing fixes upstream to the tools I depend on: darts, PuLP, sec-edgar-mcp, yahoo-finance-mcp (see Open Source below)

📌 Featured Projects

🤖 Open Source & AI Agents

12 agents (Buffett, Munger, and Burry personas, 6 fact-gathering analysts, 1 portfolio-manager synthesizer) debate every holding through 13 slash commands: tax-aware for Canadian accounts, advisory only, zero API cost beyond a Claude Code subscription.

Multi-agent investing architecture

MCP server that lets an LLM understand any tabular data file (CSV, Parquet, Excel, JSON): schema, per-column statistics, severity-ranked data-quality flags, and memory-saving dtype suggestions. pip install data-profiler-mcp, CI-tested on Python 3.10 to 3.13.

data-profiler-mcp demo

Canadian adjusted cost base and capital gains for LLM agents: CRA average-cost method, per-disposition realized gains, superficial-loss detection, unrealized gains against market prices, and a normalizer that turns raw broker CSV exports into clean transactions. Decimal-precise to the cent, zero heavy dependencies, a calculation aid (not tax advice).

acb-tax-mcp demo

📈 Analytics & ML

Forecasting 14 years of monthly energy consumption for Vancouver International Airport with Box-Cox transformation and seasonal ARIMA: 1.7% MAPE on holdout data, with 3-year projections supporting procurement planning.

YVR forecast

Two-stage ML pipeline (logistic regression screening, then random forest diagnosis) that cuts unnecessary lab tests by 30% while keeping 95% detection sensitivity (F1 = 0.87).

Diabetes model results

Mixed-integer linear programming model reassigning 2,000 students after a school closure: base solution $1.73M/year with 29 buses, plus a weather-constrained scenario quantifying the safety vs. cost trade-off.

School bus optimization results

More projects: US stock price prediction (VAR / LASSO / LSTM) · 10-K NLP industry analysis · TikTok reviews sentiment analysis (Python + R) · Nutrition planning optimization (LP)

🔧 Open Source Contributions

Besides maintaining data-profiler-mcp and acb-tax-mcp (both on PyPI), I contribute fixes upstream to the tools I depend on:

  • unit8co/darts #3167 optional min_train_length on local forecasting models, so short time series can train models that previously hard-required 10 points (merged)
  • coin-or/pulp #936 expose CBC's randomSeed on COIN_CMD for reproducible MILP solves (under review)
  • sec-edgar-mcp #142 fix 9 tools whose descriptions were silently empty (f-string docstrings never reach __doc__), with a regression test (under review)
  • yahoo-finance-mcp #16 start/end date-range support for historical prices (closes an open issue)
  • yahoo-finance-mcp #17 US class-share ticker normalization, so BRK.B stops silently returning empty data

🛠 Tech Stack

Tech stack icons

  • Languages & Data: Python, R, SQL (PostgreSQL, BigQuery), Pandas, scikit-learn, PyTorch
  • Modeling: time series forecasting, optimization (MILP / LP), statistical inference, ML pipelines
  • BI & Visualization: Power BI, Tableau, Looker Studio, advanced Excel
  • AI & Developer Tools: Claude Code (MCP, CLI, API), GitHub Copilot, prompt engineering, AI workflow automation

📊 GitHub Stats

GitHub streak

⚡ Recent Activity

🎓 Education & Certifications

  • Master of Business Analytics (MBAN), UBC Sauder School of Business (Nov 2025)
  • BA in Economics, Minor in Commerce, UBC (May 2024), graduated with distinction
  • CFA Level II Candidate

📫 Contact

Happy to talk AI-agent tooling or analytics work. Reach me here:

LinkedIn Email Portfolio

Pinned Loading

  1. claude-multi-agent-investing claude-multi-agent-investing Public

    Claude Code framework: 12 AI agents (Buffett/Munger/Burry personas + analysts) debate your portfolio through 13 commands. Tax-aware for Canadian accounts. Advisory only.

    Python 2

  2. data-profiler-mcp data-profiler-mcp Public

    MCP server that profiles tabular data files (CSV, Parquet, Excel, JSON) for LLM agents like Claude.

    Python 2

  3. acb-tax-mcp acb-tax-mcp Public

    MCP server for Canadian adjusted cost base (ACB) and capital gains: average-cost, superficial-loss detection, for LLM agents.

    Python

  4. Vancouver-International-Airport-Energy-Consumption-Forecasting Vancouver-International-Airport-Energy-Consumption-Forecasting Public

    Time series forecasting of YVR monthly energy consumption. Box-Cox + seasonal ARIMA, 1.7% MAPE on holdout, 3-year projections.

    HTML

  5. Machine-Learning-for-Diabetes-Risk-Screening Machine-Learning-for-Diabetes-Risk-Screening Public

    Two-stage ML pipeline for early diabetes detection. Logistic regression screening + random forest diagnosis: F1 0.87, 30% fewer lab tests at 95% sensitivity.

    Jupyter Notebook

  6. school-bus-route-optimization school-bus-route-optimization Public

    MILP model reassigning 2,000 students after a school closure: $1.73M/yr base solution with 29 buses, weather-constrained scenario analysis.

    Jupyter Notebook