

// about
Senior software engineer with 5+ years at Workday building AI-powered planning tools and full-stack applications. Currently focused on the Planning Agent, which gives financial planners tools for data exploration, variance analysis, and scenario planning.
Before that, I spent three years modernizing legacy systems, migrating Tapestry/JS pages to React + REST APIs, building report schedulers, and implementing time hierarchy features across the full stack. I studied Computer Science and Business Administration at USC. Outside of work, I'm into backpacking, Broadway, vinyl collecting, baking, and strategy games like Civ and Catan.
// lately
Reading
The 7½ Deaths of Evelyn Hardcastle
Playing
Factorio: Space Age
Listening
Trying Times — James Blake
// experience
Senior Software Development Engineer
2021 — presentWorkday · Adaptive Planning
AI Platform Engineering — Planning Agent
Building the Planning Agent for Adaptive Planning, which gives financial planners tools for data exploration, variance analysis, scenario planning, and contextual help. Designed the MCP client-server architecture and built the elicitation framework that renders planning widgets inline within chat.
Full-Stack Engineering
Built a portable report viewer that ships as a widget across multiple applications. Also built the report scheduling system and migrated legacy Tapestry/JS pages to React with REST API backends.
Software Engineering Intern
2020Xactly
Product Marketing Intern
2019Teradata
Data Engineering Intern
2018Warner Bros. Digital Networks
// projects
Vacation Price Tracker
Tracks flight and hotel prices across date ranges for multiple users, with automated daily checks and historical trend data. Custom MCP server exposes flight and hotel search tools backed by third-party APIs, with a React frontend for price visualization.
MCP Review
AI-powered code review CLI for solo devs who push to main without PRs. Spawns 4 MCP tool servers over stdio (git diff, file context, convention scanner, related files) and lets the LLM drive its own context gathering. Reviews reference actual project patterns and lint configs, not generic advice.