At Riot Games, I owned the Unreal State Trees AI enemy system behind 30 enemy types and built the tools designers used to author them. I also built an editor preview for ability sequences whose phases reorder during gameplay, making sequences previewable when they previously could not be.
At Wildlight Entertainment, I replaced Unreal Engine's built-in networking with a custom low-latency C++ layer using client prediction and reconciliation. I defined architecture across networking, UI, and animation, and led two engineers.
On my raid-planning app and Discord bot, I built an LLM workflow that turns absence messages into structured data for a constraint solver, with guardrails for ambiguous input. The solver assigns players under composition, availability, and fairness constraints, and a 30-player World of Warcraft guild has used it since 04/26.

