Front end
- TypeScript
- JavaScript
- Vue.js
- React
- Svelte
- Next.js
Full stack engineer · UI/UX
I love solving UI/UX problems. Talking to users and finding their pain points is rewarding and reminds me that what I do makes life easier for others. I'm fascinated by human nature and how we make choices.
Toolkit
Experience
Feb 2025 – Present
Sole engineer on Avanti, a video learning platform for educators, and Global PD Teams, a professional learning platform. I’m also building a new tool that helps schools implement Behavior Solutions, using surveys and demographic and discipline data to make sure discipline is equitable.
Feb 2021 – Feb 2025
Led a team of engineers building a suite of travel management apps, owning technical direction, key features and my team’s growth.
Apr 2015 – Oct 2020
Started in customer support for Cornerstone’s travel management software. Learning the product and its users from the support desk led to a promotion into engineering as a junior developer.
Case studies
Solution Tree
Replaced a developer-dependent process for launching mini courses with an admin tool content editors run themselves, and redesigned the learner experience along the way.
Read case study
Solution Tree
Designed and built the portal school administrators use to manage teacher seats and see usage on Avanti, while keeping the product centered on teachers.
Read case study
Solution Tree
Took over a decade-old PHP platform in a language I had never used, secured it, and moved it to new AWS infrastructure with zero downtime.
Read case study
Cornerstone Information Systems
Led the rebuild of a revenue-generating spend analysis tool before Adobe Flash reached end of life, keeping it fully backwards compatible so customers could switch on their own schedule.
Read case study
Projects

A terminal kanban board for running several Claude Code threads at once, each in its own git worktree, branch and tmux window. Most of the work went into interaction design: reviewing diffs, commenting and approving changes without leaving the keyboard. Published on npm.

A marketing site for an ESOP consulting firm, built with Next.js and TypeScript and brought to life with GSAP animations.
A retirement calculator built in Svelte as part of a larger web app. The projection math was a fun challenge, and Chart.js turns it into something readable.
Won the 2018 Bloomington Civic Code Challenge with two other developers: a React widget for reporting maintenance issues to the city, using Google Maps and Places, plus a GraphQL wrapper for the city's Open311 API.
About me
I live in Indianapolis with my best friend and partner Chloe and our dogs, Bibi and Merc. My best ideas come when I'm outside, so I spend as much time as I can exploring on foot or by bike. I'm often lost in a sci-fi or fantasy book.
