I build production-grade multi-agent LLM and voice AI applications backed by 15 years of transportation and data modeling experience. I ship end-to-end AI systems—from Gemini-orchestrated multi-agent platforms with tool calling and RAG to ElevenLabs voice agents—using Python, TypeScript, FastAPI, and modern AI frameworks.

Currently: Project Manager & Senior Transportation Data Modeler at TransLink (Metro Vancouver transit authority) and building AI agent applications.

Hands-on applied AI: multi-agent systems with tool calling, RAG pipelines, ElevenLabs voice agents and MCP servers, built daily with Claude Code, Codex and Cursor.

About & Experience • Projects • Resume (PDF) • LinkedIn • GitHub • Email

Selected Work

Document Intelligence (CICA)

Structured extraction from bid forms, specs and proposals using OpenAI/Gemini with Pydantic/JSON-schema outputs, LlamaIndex RAG, Azure Document Intelligence and Reducto parsing. Flags financial, schedule, scope and legal discrepancies, with an LLM-judged eval harness.

Multi-Agent CRM Automation (ouroAI)

A Gemini orchestrator routes work to four tool-calling sub-agents across SMS, email, WhatsApp and voice, with escalation to humans. A DSPy pipeline optimized on 89 labelled conversations reached 88.9% on a held-out validation set, backed by an LLM eval suite.

Voice AI Agents

Inbound and outbound voice agents on ElevenLabs Conversational AI over Twilio, with signature-verified FastAPI webhooks for scheduling and CRM booking.

Transportation Data and Modeling

Co-developed TransLink's regional trip- and activity-based travel demand model in Python. Built data pipelines in Python and Databricks for a large household travel survey program. Also built an MCP server that lets LLM clients query travel model outputs.

How I Build AI Systems

Recent Posts

Series: Looking back — A retrospective on applied AI projects from 2024-2026