A complete list of open source repositories that I’ve contributed to can be found on GitHub. Here are the most interesting ones:

Matryoshka

Matryoshka is a configurable caching library for PHP that allows you to build custom caching behavior on the fly. This is accomplished by wrapping existing backends with reusable components. For example, given an existing backend you can easily change its functionality by wrapping it with another backend to prefix all keys, change expiration times, gather metrics, disable gets, etc. More information can be found in the introductory blog post and the README on GitHub. Developing this library was a great experience as it gave me the chance to practice test-driven development which resulted in 98% code coverage.

iFixit Android App

The iFixit Android App is an open source app that provides repair information for everything and has community features such as guide editing, favoriting, and commenting. Users can also download repair guides to their device to view them while offline. The app was started as a final class project with Tim Asp and iterated upon in a subsequent class. Since then, we’ve added more features, improved its stability, and maintained it through several Android system updates.

Ray Tracer

I wrote a ray tracer in my intro to graphics class which featured spheres, phong shading, depth of field, and reflections. I then built upon it in my graduate graphics course and added refaction, procedural textures, and normal mapping. It’s written entirely in C++ and uses OpenMP to parallelize the work. Check out the README to see renders and runtime stats.

Global Game Jam

Global Game Jam is an event where teams from all over the globe create games according to a theme from start to finish in 48 hours. It is a lot of fun to take a weekend and work with different people on a very unique project. I also got the chance to do nearly all of the music for these games which was a blast. Here are the four games that I’ve developed at Global Game Jams over the last few years:

Planes on a Snake is a game whose plot is a play on the movie Snakes on a Plane. The player controls Jamuel L. Sackson by firing at enemy plans before they crash into the snake-covered earth.

In Heart Healer Extreme, the player controls an enthusiastic man tasked with keeping everybody in the city happy. As the game progresses, new heart healing weapons become available which have various cooldowns, effectivenesses, and ranges.

Peggle Damacy is a mashup of Peggle and Katamari Damacy. The goal is to collect all of the pegs on the board but only the ones in the player’s available spectrum can be collected. Collecting pegs expands the available spectrum and increases the size of the fired ball.

Business Team came to life when Business Time and SpaceTeam came together. This is a web based cooperative game that involves telling your teammates to complete certain tasks before the time runs out. This was written using Node.js and socket.io. The playable game can be found at businessteamgame.com.