New Interactions

New Interactions is a series of browser experiments using the new'ish OpenType variable font specification. All animations are rendered entirely with text. This project has caught the attention of the Mozilla developer community.

Lame Fonts

Lame Fonts utilizes the Google Fonts API to dynamically generate a list of the least popular and least trendy Latin typefaces. Check back frequently as the list is constantly updating.

Splash Page

Three JavaScript animations were created using HTML Canvas and Blotter.js.

Hot Laps

Hot Laps is a responsive infographic-esque page intended to present 14 weeks of mile training in a unique fashion. A nontraditional running log, all of my miles and intervals are turned into various statistics—some more interesting than others.

This Site 2.0

The site you're on right now! An ongoing redesign of my website from the ground up. Click on learn more to see wireframes, mockups, styling guidelines, and a sitemap.

Flow Challenge

As part of the interviewing process, I was tasked with integrating a "request a brochure" feature into a web page. This document contains a mockup of the new feature built around the company's existing design language.


Wheel of Misfortune is an ongoing experiment in intentionally terrible user interaction. An alternative to keyboard text entry, Wheel of Misfortune requires users to try their luck at a spinning wheel.


My 404/under construction page uses HTML Canvas alongside Andrew Wang-Hoyer's Javascript port of Daniel Tempkin's Entropy. CSS animations gracefully position a forklift, which, before departing, leaves a poignant message.

Running Shirts

Frustrated after recieving one too many ugly shirts—a "gift-with-purchase" type of deal when you sign up for a race—I designed my own shirts. With the help of Ivana Saginova, I have screen printed some of these.

This Site 1.0

The original, an ugly nightmare.

My first attempt at a responsive site. features CSS animations, home cooked gifs, and a short-lived social media presence.