The Mercury Game: What and Why?
A brief introduction to the Mercury Game, why I built it, and the experience it creates for the player.
Software Engineer | Full-Stack & AI Applications
I came to software engineering through a love of literature and geography. I wanted a tool that would let readers place locations from books onto maps of the real world, so I tried to build it.
The first time I wrote code that displayed a carousel of images next to a pin on a map, my focus shifted. I took over a floundering computer science program at the high school where I had been teaching literature and rebuilt it into a successful program. And, when I wanted more, I moved to the University of Arizona to pursue a BS in Computer Science while working full time.
Returning to undergraduate studies after 20+ years leading classrooms has been a gift I had not expected at this stage in my life. It has given me an opportunity to sink into deep technical ideas — operating systems, networking, algorithms, and distributed programming — while experimenting with the AI tools that are rapidly changing how software is created. I am interested in how we can build systems around these tools that take advantage of what they do well while constraining what they don't. After decades spent trying to make difficult ideas understandable without reducing their complexity, I'm equally interested in how we explain those systems clearly. And I love the challenge.
React | TypeScript | FastAPI | Supabase | OpenAI API | Render | Netlify
Negotiation simulation where one human and eight AIs act as country and NGO representatives to debate mercury pollution policies.
Built as a full-stack application combining deterministic game logic with LLM-generated player outputs.
The Mercury Game: What and Why?
A brief introduction to the Mercury Game, why I built it, and the experience it creates for the player.
How re-imagining a real-world game from a software architecture perspective improved the gameplay experience.
React | TypeScript | Vite | Vercel AI SDK | OpenAI API | Strava API
Data application that allows a user to explore activity data visually and through natural language with an AI collaborator.
Designed with a shared analysis state for the visualization tools and LLM, ensuring the conversations are grounded in current selections.
Interactive AI Data Explorer: What and Why?
A brief overview of the AI Data Explorer, why I built it, and how it integrates data visualization and AI.
Interactive AI Data Explorer: Grounding an LLM with Shared State and Tool Calling
An overview of how a shared analysis state and tool calling implemented with Vercel's AI SDK create confidence with an in-app chat bot.
Learning Design | Generative AI | Adaptive Practice
A sample instructional module exploring practical and responsible uses of generative AI in learning and assessment.