Programming Languages: C/C++ (4 years), C# (3 years), Java (3 years), Lua (< 1 year), Python (< 1 year), Actionscript (<1 year)
Software: Unity Engine, Git, SourceTree, Perforce, Microsoft Excel, Microsoft Word, Visual Studio 2012, Source Engine (< 1 year), OpenGL (< 1 year), WPF (<1 year)
Other: I have a strong working knowledge of game design and game design theory, with 6 years of experience developing games in one form or another. I am very self-driven and capable of leading a small team (I have done so repeatedly). I am very organized and well-documented.
Associate Software Engineer at Vicarious Visions (June 2015 -): While at Vicarious Visions I assisted with a variety of software engineering tasks including UI programming on the mobile port Guitar Hero Live, tools programming, and general bugfixing across two engines and three languages (C++, C#, and Actionscript).
Internship at Pearson (June – August 2014): While at Pearson I assisted the content uploading team with fixing technical errors. This frequently involved logging and resolving software defects in many parts of the company’s large Java-based program. I also wrote some automatic tests using JMeter.
Instructor at iD Tech Camps (June – July, 2012 and 2013): When working at iD Tech Camps for two years, I taught campers aged 6-17 game design and modding for various games including: Neverwinter Nights 2, Half-Life 2, Portal 2, and Starcraft II. I also helped to set up camp activities and ensure a safe environment at camp.
Technical Game Development II (IMGD 4000): Worked as a team of four to make a term-long game that emphasized various technical skills. I learned about pathfinding (especially A*), hierarchical state machines, maze generation, and even a bit of occlusion culling (it was extra credit), and got more experience with Unity and C#. The end result was Pogomeister.
Technical Game Development I (IMGD 3000): In this course I learned to program my own simple game engine. The first five weeks of the course were spent programming a simple game engine in C++ using ncurses and cygwin. The last two weeks were spent designing and implementing a small game, or as all the cool kids call it: Rail Tank Saves the Day!
Computer Graphics (CS 4731): Learned how to set up and render 3D objects in OpenGL. Covered topics include transformations using matrices, camera control, normals and shading, fog calculations, shaders in GLSL, and L-Systems. The course utilized C++ and was fairly intense on 3D math. You can see the results, or as my professor would call them, the “pretty pictures,” here.
Computer Animation (CS 4732): Expanded on the skills from 4731 to learn about, and implement, smooth animation interpolations using splines, hierarchical animation,and behavioural animation. This course also used C++ and was even more intense on 3D math. It also produced the hierarchical animation and boid simulation projects that can be seen on this very website.
Software Engineering (CS 3733): This course gave me invaluable experience working with a team of 14 programmers to build a software calendar suite in Java. I gained valuable experience with Agile development methods, Git, and collaboration with a large team in general. Although I did not officially lead the team, I regularly took initiative to help guide the team and keep things organized.
Algorithms (CS 2223): This course helped expand my knowledge of computing algorithms, particularly with regards to searching through graphs, and sorting collections of items. Additionally, I learned how to analyze the performance of algorithms mathematically.
Object-Oriented Analysis and Design (CS 4233): In this class I practiced designing programs and utilizing design patterns. Several patterns ranging from strategy, to factory, to composite, and much, much more were covered. This course also utilized test-driven development, further reinforcing the habit of testing my code.
Operating Systems (CS 3013): Here I learned how to manipulate the Linux Kernel, do some basic multithreading, and handle memory allocation in C. This included learning how to write malloc!
Introduction to Artificial Intelligence (CS 4341): This class taught me the basic principles of computer AI from a non-gaming perspective. Searches, inference, and machine learning were covered among other topics.
AI for Interactive Media and Games (IMGD 4100): Not to be confused with the other AI course, this is the course that taught me how to fake intelligence in games with techniques such as behavior trees and fuzzy logic. I also won an AI bot soccer tournament in the class, which should surprise anyone who knows my skill level in sports.
Principals of Physics – Mechanics (PH 1111): This was the important physics course, where I practiced and derived the various Newtonian formulas using Calculus.
Game Audio II (IMGD 3030): In this course we had to assemble a library of custom recorded and edited sounds from a variety of sources and implemented them in UDK. In addition to teaching me a lot of the fundamentals of sound design in games, I got a lot of experience with Audacity from this course.
IQP: Junior year at WPI I did a project with 3 engineers to study people’s perceptions of climate change in New Zealand. This involved extensive research, paper writing, interviewing and interview analysis. I was one of two people who generally (albeit informally) led the group, and actually conducted the majority of our interviews with random people on the street. Not exactly a programming or game design related project, but definitely an informative experience.
Best Interative Media & Game Development MQP Award (2015): My senior year project, The EcoKids and the Paper Pests was one of two winners for the best MQP (read: senior project) award at WPI.
The Stephen Salisbury Prize (2015): Each year, the departments at WPI can nominate seniors for this award based on their project-related achievements. There is typically one student nominated per department per year, and I was the lone student in game development to receive the award in 2015, among eighteen other students from other departments.
Interactive Media & Game Development Outstanding Junior Award (2014): This mouthful of an award is given out to a student in the game development department at WPI who does exceptional work. Notably each year to date (including 2014), there is only one of these given out to any student in the department.
Dean’s list every semester: As a result of my high grades in all courses, I have consistently made the Dean’s List every semester at WPI. I’ve also maintained a 3.96 GPA, composed of all A’s except for one class. We don’t talk about that B.