Edit: I always fall horribly behind updating this page. If you want a good idea of some things that I am working, check out my github.

Here is a list of some of the computer science projects that I have done or am currently working on.



JOCR (Japanese Optical Character Recognition (some people call it "Joker")) is an effort to automatically translate manga (Japanese comics) into English.

I am doing pretty well at most steps. Unfortunately, it falls apart on the last phase when I pass the data off to Google Translate for machine translation.

This is my most ambitious project and I will probably be continuing this through my PhD.

Check it out on github:

Media Server

A media server with a full browser client.

I was unhappy with the setup and feature set required for current media servers, so I made my own.

The client is pure HTML5, so you can view all your media from your desktop, tablet, phone, etc.

Check it out on github:

Super Gem Battle

A browser based gem fighting game inspired by Super Puzzle Fighter II Turbo.

I try to keep a server up so you can always play:

Just click quick play, follow the instructions and wait for someone else to also search for a game.

Use left/right arrow to move the gem, up arrow to rotate, down to drop faster, and space bar to drop all the way.

Check it out on github:


Master's Thesis: SPOONS

The goal of the SPOONS (Swift Perceptions of Online Negative Situations) system is to use Twitter posts to determine when Netflix users are reporting a problem with any of the Netflix services.

I worked on this January 2011 through May 2013.

See the papers section for more details.


CPLOP (Cal Poly Library Of Pop) is a project that I am working on in conjunction with the Cal Poly Biology department. We are attempting to build a database of e.coli specimens. Doing so may help us figure out the source of contamination in various areas. This is the first database of its kind and hopefully will be made available to researchers worldwide.

Pizza Compiler

Pizza is a fully-featured object oriented programming language. Or at least it will be when my team an I finishes. The Pizza compiler is not for any class, just a side project.

The goal of the Pizza language is to make a compiled language that feels like scripting language. We are also working on an intuitive import/include system that makes testing easy and gives a lot of control over what gets included. Pizza will target the x86 and x64 architectures as well as the Sun JVM.

CSC-300 Paper

I wrote a 7000ish word paper for a Computer Science Professional Responsibilities course (CSC-300). My topic was whether or not Microsoft was ethical in their decisions to ban modified Xbox 360s in November 2009. This paper invokes many sections of the Software Engineering Code of Ethics and other ethical systems. By the way, this paper was written entirely in LaTeX using VIM.

You can read my current draft and tell me what you think.

Data Mining

This is a project where my group and I invoked many data mining techniques. We came up with four different datasets and then ran analysis on them. Our datasets include market basket data from a local donut shop, match data from a popular online game, and survey data from Cal Poly's Computer Science students. Some of the data mining algorithms that we employed were Pagerank, clustering, and Apriori.

You can download our entire report.


Toleco is a two player turn based strategy with a pre-historic theme.

This is a project that my group (Team Ocelot) did for a software engineering series. What is interesting about this project was that it was all about the process. We took this software all the way from the customer's requirements to maintenance. We did full design document including an System Requirements Specification, System Test Plan, and Project Plan. For this project, I took on the roles of Project Manager and Integration Manager.

You can download it here. To run it just unzip the folder and run with "java -jar Toleco.jar". You can try and launch it just by double clicking the jar, but the images may be messed up.

EVIL Compiler

EVIL (Extraordinarily Vexing Insipid Language) is a simple C derivative. For my compiler's class, my partner and I wrote a compiler for the EVIL language. Our compiler included some optimizations including constant folding, useless code removal, and copy propagation. Our compiler targets the SPARC architecture.


MUSH (Minimally Useful SHell) was a project for a System's Programming class. My shell had the base functionality one would expect from a shell. The features included input/output redirection, piping, and batch mode.