Time is currency.

Attention is where you spend it.

CHRIS ZHANG

Strategic builder and effective communicator — 8+ years in Big 4 audit, finance, and digital transformation (Deloitte · KPMG), now an MS CS student at Northeastern Vancouver. I bring structure to ambiguity and bridge technical systems with human needs, building small, sharp tools at the intersection of AI, finance, and product — each one removing a specific friction so attention lands where it matters.

MS CS @ Northeastern Vancouver 8 yrs · Deloitte / KPMG Builder · systems × product × execution
Time
Your only non-renewable resource
Attention
How you choose to spend it
Friction
The attention cost of process — every switch, wait, and re-entry
Tools
What I build to remove it

Every project below targets one specific friction — the attention cost of staying inside a broken workflow (re-checking, re-opening, re-explaining). I write that tax in plain language first, then decide what shape the tool takes. Read the card front and you already know which invoice it tears up.

Core work above is what I would put on a resume first. Personal builds and ongoing writing live in Interests below.

Core Work — 5 Plates
skip archive ↓
Friction AI cost opacity
DevValue

A live dollar counter for AI-era engineering. Watches Claude Code, Cursor, and Copilot sessions and binds every cost to the git branch you're working on.

↗ install
DevValue
Cost = (your focus time × your hourly rate) + (AI agent token cost). DevValue surfaces both inside VS Code, broken down per branch, so the bill is visible before it shows up.
PTA flow
Idle-timeout that recognizes thinking time, not just typing
Token sniff
Parses Claude Code logs for real compute cost
Branch bind
Every cost tagged to a git branch
Status bar
Live time · branch · cost in your editor frame
Stack
TypeScript · VS Code API · local SQLite
Press F again to flip back
01 / 05 · DevValue
Friction Manual airport charging schedules
Smart Airport

Watch the system run first. Then flip to see the architecture, training flow, and live simulation controls.

walkthrough video
Vancouver Airport Authority · MS Capstone
eGSE charging optimization
Raw flight / fleet / charger / spatial data → preprocess + feature engineering → Transformer demand forecasts → Gymnasium environment + PPO policies (Stable-Baselines3) for AC and non-AC fleets. DVC for artifacts, MLflow for experiments, FastAPI + Uvicorn for inference — same stack as the Space below.
Live demo (interactive)
Open Hugging Face Space ↗
90%
Gate coverage
9.2%
vs. baseline
02 / 05 · Smart Airport
Friction Canadian payroll complexity
Cleanroll

A payroll engine that turns CPP / EI / QPP, federal + provincial tax, and a signed pay stub into one short run. Built for the one-bookkeeper company that wants payroll to be a non-event.

Cleanroll · Beta · Render
Payroll, as one run
The one-bookkeeper company spends a full morning bouncing between six windows just to pay people. Cleanroll collapses that into one guided flow — setup, run, signed stub, CRA-ready.
  • CPP / EI / QPP · federal & provincial tax
  • Signed pay stubs · CRA-ready exports
  • Designed for one-bookkeeper Canadian SMBs
  • Stack: FastAPI · Postgres · Render · React
Try the app ↗
Onboarding first Canadian small businesses
03 / 05 · Cleanroll
Friction Foreign-menu decision anxiety
Nod

An iOS personal sommelier. Point the camera at a menu in any language, get back three dishes that match your budget and your allergies — with a critic agent that double-checks every pick.

Nod · TestFlight · iOS mockup
Ambrosia · manager-worker agents
Decide in 30 seconds.
Point the camera at a menu in any language. The Eye digitises it, the Brain translates culturally — not literally — and a Gatekeeper critic blocks anything that touches your allergies, even when the Brain suggested it.
  • Eye + Brain + Gatekeeper · OCR capture, ranking, and allergy veto in one loop.
  • Agent Chat mode · you steer the conversation while agents propose and self-check.
  • Platform target · iOS 26.1 · SwiftUI · Liquid Glass (TestFlight may trail roadmap).
Demo mode · interactive prototype
Grand Feast → Table mode: merges constraints across guests and returns 3 dishes with overlap-safe substitutions.
On-card taps are a guided mockup, not the production app binary.
04 / 05 · Nod
Question Thinking alongside machines
CyberTao

Essay + interface experiments on thinking with machines: where speed helps, where judgment still has to stay human.

↗ open site
05 / 05 · CyberTao
01 / 05
Personal Tool
FlashSlot

ICBC road-test watcher that scans openings and sends alerts as soon as a slot appears in my target window.

Python · Playwright · Pushover
F flip for details
FlashSlot · Details
  • Polls calendar windows and dedupes stale alerts.
  • Personal agent to remove repetitive booking refresh loops.
  • Runs privately on my own infra.
Personal System
FFP

Single-tenant loyalty tracker across Aeroplan, Marriott, Hilton, IHG, and Amex MR with expiry/devaluation reminders.

FastAPI · Postgres · cron
F flip for details
FFP · Details
  • Tracks loyalty balances in one quiet dashboard.
  • Alerts on expiry, transfer-bonus windows, and devaluation risk.
  • Single-tenant by design.
Long-form Writing
Pedalling

In-progress narrative: auditor to builder, four cities, and how each transition shaped what I build now.

Draft · repo only (no public site yet)
F flip for details
Pedalling · Details
  • Four chapters: Chongqing, Toronto, Boston, Vancouver.
  • Focus: decisions, trade-offs, and identity shift in work.
  • Publishing path: writing first, then dedicated microsite.
Currently
MS Computer Science
Northeastern University Vancouver
Previously
Tech Risk & Data Governance
Deloitte · KPMG · 8 years
Interests
Human-AI decision workflows
Product strategy + delivery systems
Also
Career Peer Advisor @ CDEL
MS Student Advisory Board