I graduated with a Bachelor of Science in Computer Science in December 2010. I have experience with game, software, and web development.

Check out some of my projects below or see my open-source projects on GitHub.

Pickle It

Game mod with pickling component

Pickle It is a mod for an indie survival game called Don't Starve and its multiplayer version, Don't Starve Together. Pickle It adds a pickling component to the game, making food last longer. To keep the mod balanced, food quality is generally lowered in its pickled form. It was written in Lua and has over 100,000 subscribers.

Pickle It is available in the Steam Workshop and GitHub.

design dont starve game github lua modification open source steam

Math Match

Game for children to practice math skills

I developed and designed a math matching game for children to practice their math skills. It has 3 different play modes and over a dozen math topics to choose from, ranging from basic addition to algebra to geometric shapes to theorems.

It is written in C# using Unity and I worked with an artist to create art assets for the game. I wrote custom animations for the game and added features like ratings, statistics, and a store where players can spend in-game currency to customize their game experience.

c# children education game matching math mobile unity

MiDone Dashboard

Portal for hospital residency program requirements

MiDone is an online dashboard that Henry Ford Health System asked my Senior Project class to create. MiDone allows residents of HFHS to monitor their progress in the residency program. It also allows the directors to enter the data that is used to calculate the residents' progress.

I had the role of Software Engineer and developed the vast majority of the dashboard. I programmed it in PHP using a MySQL database, the Smarty Template Engine, and the open source project PHP Simpl.

dashboard medical mysql php php simpl portal smarty web

Remix Workout Apps

Considerable modifications to an existing app

I updated an existing mobile workout app and created and packaged four additional versions for new platforms, PC and Mac. The app lets users create a workout session from a large selection of workout moves. Throughout the workout, the user can follow along with video and audio instructions that make it like working out alongside their own person trainer. It is written in C# using Unity.

It was named one of the best fitness apps for 2012 by Huffington Post.

c# mobile port software unity workout

Desktop Help Request Client

Open source Windows application for tech support

The Technical Support team from the Information School at the University of Washington asked me to develop an application for them. The application would gather some basic system information about the computer, along with information provided by the user, and then post the data (in JSON format) to a given URL.

I developed the application in C# using the .NET Framework. The application also uses XML for the config file I created. DHRC has been on all iSchool lab computers, as well as faculty and staff machines, since 2011.

I open sourced the application on GitHub: Desktop Help Request Client repository.

c# github json .net open source software tech support windows xml

Eskimo Escapades I: The Land Bridge

Role-playing game developed for the Xbox 360

Eskimo Escapades I: The Land Bridge (EE1) is a game I created in C#, using XNA and Torque X. It was designed to be used with an Xbox controller, but it also works with equivalent keyboard input.

EE1 was inspired by a narrow land bridge spanned across Lake Huron thousands of years ago, connecting present-day Michigan and Canada. It is a classic-style, turn-based, role-playing game (RPG) in which the player controls a team of four young Eskimos (warrior, mage, hunter, and healer) to get them across the land bridge to Canada.

As the player moves across the game map, he or she encounters three bosses along the way: The Angry Snowman, The Lonely Yeti, and Scott the Mountie. These encounters trigger battles with the bosses and the player must defeat each of the bosses (using the four characters' unique abilities) in order to get to Canada.

c# controller support design game history rpg torque x xbox xna

The Legend of Sleepy Hollow: Jar of Marbles 3

Testing & game design of a popular match 3 game

The Legend of Sleepy Hollow is the third game in the physics-based match 3 Jar of Marbles series. I was involved in testing and game design decisions throughout its development. It added new user engagement features like objectives, achievements, and a story to keep the user engaged.

We released across multiple platforms and had almost 500,000 downloads from the Google Play Store alone during its first month.

design game mobile testing


Artificial intelligence modifications to an existing shooter game

Raven is a C++ game created by Mat Buckland, which I modified to improve the artificial intelligence. The original game is a top-down 2D game environment, in which bots collect health packs and different types of weapons and use them to attack the other bots.

My changes included limiting bots to a certain number of lives (determined by the user), adding a defensive strategy, making bots have "fuzzy" aiming, letting bots message other bots (to demand revenge from other bots when killed and to beg attackers to stop attacking), and letting bots preempt item respawns.

artificial intelligence c++ game modification shooter

Crack the Code

Logic game with scoring system

Crack the Code is a Mastermind game I developed in C++, using Simple DirectMedia Layer. The player guesses what the hidden color code is by clicking the circles on the board to rotate through the colors. The player then presses "Guess!" to have their sequence evaluated. Red and white pegs give the player clues about the hidden color code.

When the player correctly guesses the hidden color code, the player receives one point for each second remaining on the two-minute timer and then a new color code is chosen. A high score table keeps track of the highest scores.

c++ game logic mastermind puzzle sdl

Notepad++ Change Requests

Modifications to an existing open source text editor

In my Software Engineering class, my classmates and I were given change requests for the open source C++ project Notepad++. We used TortoiseSVN for our version control software. Throughout three rounds of change requests, we had to build upon our previous version of Notepad++ as a group while working on change requests individually.

My three changes dealt with finding matching comment tags, search/replace for lines that do NOT contain a given regular expression, and deleting lines that do (or do not) contain a given regular expression.

c++ modification notepad++ regular expressions software svn

The Adventures of Mr. Drunky: Deceiving His Wife

Puzzle game with randomly-generated mazes

The Adventures of Mr. Drunky: Deceiving His Wife is a one-button game I created in C++, using Simple DirectMedia Layer. Mr. Drunky goes to the bar and becomes so drunk that he can't stand in place without spinning in circles and getting home seems as daunting as finding his way out of a maze. The player must help Mr. Drunky find his way home before his wife finds out where he has been and throws him out of the house for good!

Mr. Drunky spins in circles on the randomly-generated maze and the player moves him by holding the spacebar. Mr. Drunky spins fairly quickly, though, so it is difficult to get Mr. Drunky to go the intended direction. If Mr. Drunky finds beer on the way, he drinks it and temporarily spins even faster. The game keeps track of how many times the player successfully gets Mr. Drunky home. Because Mr. Drunky has chosen to disobey and lie to his wife, there are no winning conditions. :)

c++ game maze one button puzzle sdl

Jar of Marbles

Porting an existing game to work on a new touchscreen device

Jar of Marbles is a physics-based match 3 game written in C# using Unity. I was responsible for porting it to work on Ziosk touchscreen devices. The menu and instructions had to be simplified, certain features disabled, some new features added, etc. to work on the new device.

c# game port unity ziosk

Caribou & Wolf Game

Action game with artificially intelligent creatures

The Caribou & Wolf game is written in C# using XNA. The player controls the Yoda character, who must avoid wolves and kill caribou (by colliding with the caribou).

All three character types are animated using sprites – Yoda waves his lightsaber, the wolves walk, and the caribou turn their heads. They also make sounds upon collisions. Wolves and caribou move across the screen at varying speeds and can suddenly change speed and direction. Wolves also chase after and kill nearby caribou and caribou run away from wolves.

If Yoda collides with a wolf, the game is over. In later versions of the game, I gave Yoda lives and awarded points to the player for killing caribou.

action artificial intelligence c# game sprite xna

Linux Shell

Command-based shell with forking and pipelining

I wrote a Linux shell in C that takes commands from the user and executes those commands. Examples of commands include manipulating environment variables, sorting file contents, etc.

If the shell does not recognize the user's command, it will search the machine for an executable file with the same name as the command and run it. This enables the shell to accept all normal Unix commands in addition to the shell's custom internal commands.

The shell also utilizes forking and supports pipelined instructions.

c linux shell software

Process Scheduler

Program that simulates a CPU process scheduler using various scheduling algorithms

I wrote a program in C on Linux that simulates a CPU process scheduler. The program takes an input of 7 integers from the user (which represents information about two processes to be run). It then "schedules" the processes using various scheduling algorithms: first come, first served; shortest job first; pre-emptive shortest job first; and round robin.

c linux scheduling software

Certified Metal Products Website

Custom website design and development for manufacturing company

Certified Metal Products is a supplier of formed and machined metal parts. They wanted a web presence for their business, so Nick West and I got them a domain name, created a custom website design, developed the website, and set up WordPress for them to use to manage the website content.

design mysql php web wordpress

Design By Meg Website

Custom website design and development for eCommerce site

Meg wanted a web presence with the ability to sell her handmade craftwork online. The design for Design By Meg was a joint effort by Nick West and me, while consulting Meg to get the style where she wanted it. I assisted Nick with the programming for this site, especially on the custom back-end manager.

design ecommerce mysql php web