Screenshot of

November 2016—December 2019

Quick and easy access to your congressional representatives.

Look up your US Congress representatives and senators, using your street address and zip code. Call or tweet at your representatives with two clicks. Check voting records and ensure your legislators are representing your interests. Permalink to your district for easy access.

Built on data freely provided by the US Census Geocoding Services and ProPublica.

Consists of an Ember.js client side app and a tiny Express backend server. See the source code and contribute.

Screenshot of Resume Builder

Resume Builder

June 2018

Generate a beautiful resume from YAML.

A static site built with Ember.js that displays a live print preview of a resume parsed from YAML written in the provided text editor.

Changes are automatically saved as local storage in the browser (so you can edit and come back to them later).

See the source code and fork to customize.

Screenshot of Simple PDF Viewer

Color Vision Deficiency PDF Viewer

March 2018

Preview PDFs in the browser with eight different variations of color vision deficiency.

View each page of a PDF with filters that simulate eight different types of color vision deficiency to verify that your content is accessible for color blind people.

Includes recommended resources for further reading and for color vision deficiency simulator software.

Uses the PDF.js platform (created by Mozilla) and the color blind SVG filters found in the colourblind bookmarklet (created by Alastair Douglas). See the source code and contribute.

Screenshot of


March 2015

A Markov Chain poetry generator.

Generates poetry using variable order Markov chains. Uses the Irvine Phonotactic Online Dictionary to determine proper syllable count for forms which rely on strict meter.

Written in Javascript, originally adapted from introductory coursework written in Python.

Includes short descriptions of different poetic forms, as well as a basic explanation of Markov chains, to encourage further exploration of these topics.

Screenshot of


December 2014

A browser-based math and logic puzzle game.

Object-oriented design with multiple layers of abstraction and a clean MVC architecture written in Javascript.

Game board user-interface comprises Bootstrap components exclusively for complete responsiveness. Pieces are re-sized depending on both window size and size of current game board to waste minimum space and improve usability.

Randomly generates puzzle congfigurations at runtime and can accept multiple solutions. Features three different levels of difficulty and a timer setting.