Applied AI engineer building local-first agents, on-device routing, and product-grade ML systems.
📍 Graduate student at University of Ottawa
🎯 Focus: Turning ambiguous human intent into constrained, inspectable actions with privacy-aware engineering
📧 Email • GitHub • Projects
I focus on small, useful AI systems where the hard part isn't just model output, but the contract around it:
- 🏠 Local-first personalization — assistants that learn from correction, memory, task receipts, and private on-disk state
- 📱 On-device decision layers — small models that route natural language into schema-valid tool calls without network round trips
- 🔐 Permission-first agent UX — action ledgers, one-time authorization, visible memory, and clear real-vs-mock boundaries
- 📊 Evaluation discipline — user-level splits, small-eval caveats, baseline comparisons, and thresholds stated in public docs
| Project | Description | Tech Stack |
|---|---|---|
| Personalized Learning Assistant | Local-first learning assistant with correction chat, BM25 retrieval, and persistent task memory | Python, FastAPI, SQLite |
| kAir-models | On-device tool routing: Qwen3.5-0.8B + LoRA on Apple Silicon, schema-constrained decoding | Python, MLX, Core ML |
| QQ Claw Showcase | Multi-agent social coordinator converting group-chat constraints into editable actions | Python, LLM APIs |
| Hierarchical Insider Threat Detection | Two-stage CERT r4.2 pipeline: XGBoost + LLM screening 330k user-days | Python, XGBoost, scikit-learn |
| Project | Description | Tech Stack |
|---|---|---|
| Revo | Trade-in e-commerce storefront with cart, checkout, and order tracking | FastAPI, JavaScript, PostgreSQL |
| Career CoPilot | AI-powered career coaching platform moving from MVP to production | Python, LLM APIs, React |
| Real-Time Object Detection | Webcam/video/RTSP detection with auto CUDA/MPS/CPU selection (YOLO11) | Python, OpenCV, Ultralytics |
Contract before code → Privacy boundary first → Evidence over polish → AI-assisted engineering
- Contract-first specs — markdown, YAML, JSON schema, and acceptance criteria before implementation
- Privacy by design — public repos exclude private data, API keys, conversations, and competition assets
- Honest metrics — include caveats, dataset boundaries, baselines, and what numbers shouldn't claim
- Explicit gates — keep integration contracts and verification gates clear even with multi-agent workflows
AI/ML: Python, PyTorch, MLX, LoRA/QLoRA, Qwen, XGBoost, scikit-learn, OpenCV, YOLO
Apple/On-device: Swift, SwiftUI, Core ML, iOS architecture
Web/Backend: FastAPI, JavaScript, Node.js, HTML/CSS, PostgreSQL, REST APIs
Practice: Contract-first specs, README-driven packaging, smoke tests, prompt validation
I'm currently exploring:
- How to make local-first agents that actually remember meaningful context
- Schema-constrained decoding for reliable tool invocation on small models
- UX patterns where users see and approve every agent action before execution
- Evaluation frameworks that catch real failure modes, not just benchmark gaming
| Looking for... | Start here |
|---|---|
| My best work | Personalized Learning Assistant |
| On-device AI | kAir-models |
| Full project list | All repositories |
| Get in touch | bwang105@uottawa.ca |
中文介绍
我是渥太华大学研究生,专注于 Applied AI、端侧智能、Local-first Agent 和产品级 ML 系统。
我最关注的不是"模型能不能回答",而是模型输出如何变成可验证、可回滚、可授权的真实动作:
- 🏠 本地优先的个性化 — 支持纠错、本地记忆、任务回执
- 📱 端侧决策层 — 小模型直接把自然语言转成结构化工具调用
- 🔐 权限优先的 Agent UX — 动作日志、一次性授权、可见内存
- 📊 评估严谨性 — 用户级分组、小样本评估、基线对比、公开文档
- Personalized Learning Assistant — 本地优先的个性化学习助手
- kAir-models — iOS 端侧工具路由模型
- QQ Claw Showcase — QQ 群协作 Agent
- Hierarchical Insider Threat Detection — 威胁检测系统
Last updated: 2026


