Computer games can be fun and addictive. We're trying to make programming just as addictive for students. Follow our progress on our blog.

We have a small team. My duties include: managing the project, designing the game, creating the 3D and 2D assets, programming the GUI, and programming the in-game IDE.

I wanted a clean and simple interface that blended seamlessly with the themes of the games. The scroll parchment and the whimsical syntax-highlighting draw the student into the exciting world of crafting spells by writing code.

But it doesn't just look pretty. It also works.

The code is parsed at runtime to perform syntax highlighting as the user types. Scripts are evaluated when the user casts spells onto game objects. The scripted spells coexist with each other peacefully in a multi-threaded environment.

EpicShores brings game developers, product providers, and gamers together in a unique web experience.

I designed and built the entire system myself. The backend is in Ruby on Rails. The frontend is a loose connection of JavaScript-powered web widgets that communicate via reverse-ajax, using a comet server I built in NodeJS. There are APIs for product providers who wish to provide coupons for players to unlock. There is an interface for game developers to deploy their games.

The product is still under development.

For more information, see my video explanation.

Tab-completion in IDEs can help programmers with simple things -- i.e. finishing method and variable names. WitchDoctor is an Eclipse plugin that observes the programmer and attempts to detect when a complex change is being made to the program -- a refactoring, for example. After predicting the user's future changes, WitchDoctor completes them in the background and suggests them.

For the details, see the paper under review for ICSE.


A Tetris variant that uses the accelerometer of the mobile phone. We built the game for Android and ported it to the iPhone.

During the course of the project, I managed two undergraduate student interns. I documented my management technique in an ITNG publication.

Social Networks Research

I did an REU at Trinity University. My research there turned into an honors thesis at Southwestern University. I developed a mathematical model for the diffusion of information (such as memes and diseases) through social networks. I also developed an efficient algorithm for predicting diffusion patterns.

Discovering New Molecules

During an REU at Southwestern university, I developed a genetic algorithm for discovering molecules with desirable properties.

Industry Stuff

See my resume. I haven't included industry projects in my portfolio becuase they weren't self-motivated.