I am a programmer most interested in AI, data mining and HCI. After working in the games industry at Electronic Arts, I've decided to try my hand at teaching and see what life is like outside of North America and ended up in New Zealand teaching games programming. I can only guess at what's next for me, but will be keeping an eye out for opportunities to delve deeper in to AI, data mining and HCI. In fact, I already have a few side projects to explore these topics. In particular, I am interested in promoting more intimate and integrated interactions between computers and humans by making machines behave more intelligently through better planning, being more predictive of the user's needs and by finding multi-sensory, more intuitive and emotional ways to share data between human and machine. If I can somehow combine these interests with game development, that would be even better!
Sep 2009 - Present
Game Programming Tutor (Lecturer)
Responsible for all aspects of a class of students studying to achieve a tertiary programming Diploma in Interactive Gaming.
Delivers lectures, supervises students in lab and grades and delivers student feedback.
Manages students during team projects, providing a support role both to resolve technical and inter-personal issues.
Develops new course content and student assessments.
Topics taught: C++, DirectX, OO design, team management, planning and design tools, CVS.
Sep 2007 - Sep 2009
Shipped SimAnimals and SimAnimals Africa for Nintendo DS.
- Worked on a team of six engineers, communicating and reviewing code frequently to promote knowledge transfer.
- Focused on AI and world simulation framework, but worked with code at all levels.
- Created a new Nintendo DS engine for first in-house mobile platform team.
- Designed and created tools and data exporters for use by artists and designers.
Content creator for The Sims Carnival.
- Designed and created mini-games for The Sims Carnival website.
Technologies Used: C++, C#, proprietary languages, Perforce, Scrum development paradigm.
Aug 2006 - Dec 2006
- Supervised and aided students in lab for AEP 264: Computer Instrument Design.
May 2006 - Aug 2006
Software Development Engineer Intern
Created a personalization system for Endless.com, handing both front-end and back-end code.
May 2005 - May 2006
- Designed, prototyped and built educational lab equipment.
- Designed electronic circuits and computer-supported instruments.
Collaborated educators to create custom educational lab exercises for students.
This project investigates properties of weighted A* search of planning problem spaces using heuristics generated from state space abstractions. The goal is to be able to find approximate solutions to graph search problems (such as planning or path-finding) faster by quickly determining the optimal heuristic weighting. This will have applications in AI and searching. I am designing and programming a tool to read a planning problem in PDDL, and provide a collection of tools for researchers to investigate properties of the state spaces, abstractions, solution paths, heuristic weightings, etc. I will be using this tool to find patterns to leverage in weighted A* search of these spaces. This is the first long-term research project I am involved in, and one in which I am volunteering in solely due to my personal interests. I have learned much about the academic research process, planning problems and AI. The first version of the tool is due to be complete by early 2011. Papers are expected to result from this project.
Nomenda.com is a professional networking site, targeted for use within specific organisations. Its aim is to promote a corporate sense of community and more directed corporate and inter-corporate communications. I was one of four co-founders and programmers on the project, which was run like a start-up company. I also helped pitch the idea to interested parties. This project was interesting for me as it brought a commercial aspect to the features we designed and coded. It was very interesting to see the motivations, enthusiasm and sense of immediacy in a start-up project. After we completed a first beta test version, two of the co-founders graduated a semester early and took the project to their work places for launch. The project was introduced to BlackRock, but the growth in users eventually stalled.
A sandbox game targeting young audiences, this game is more like a portable toy box than a typical game. Users interact with and befriend animals in a variety of environments, and can help them accomplish certain goals. I was a software engineer on the first in-house mobile platform team at Electronic Arts. Over the period of one year, we designed and built a new engine for Nintendo DS in addition to the game. As for the engine, I created efficient low-level algorithms and data representations. As for the game, I focused mainly on the world simulation framework and animal AI, tacking issues such as path finding and social interactions. I tackled the interesting problem of giving the animals memory of previous events and of their environment. This is the first time environmental memory has been applied in a game in the Sim/Sims series of games. SimAnimals sold approximately 430k units and achieved a rating of 70/100 on Metacritic.
My students in the tertiary-level Diploma of Interactive Gaming course at Media Design School were split into two groups, each given eight weeks to design and create an original game using 3D graphics. This year, they created two games, Interstellar Excavation (top) and Total Cube Domination (bottom). As their tutor/lecturer for the course, I taught them all the technical and teamwork skills required for this project. I closely oversaw and advised students on the concept, scheduling, design and production work. The biggest challenge was detecting and addressing inter-personal issues on teams before they negatively impact the project. The completed projects were high in quality and polish. They will be submitted to international game competitions such as the Crowbar Awards. Results from awards are pending, and we are expecting to do well.
The Canada FIRST Robotic Games competition challenges teams from across Canada to design, build and use a robot to complete in a game with pre-determined rules. The 2002 competition had teams build a robot to pick up and toss beanbags at goal hoppers. I served as an engineering team leader and worked extensively on the system to pick up beanbags. This was the first engineering project I worked on of this scope with this many team members. This project gave me much insight on team dynamics and co-operation. Our team from Richmond Hill High School placed second overall, and was the highest placing new team.
I spent a summer as a freelance website programmer during my early high school years. I was paid to create a website for a local company, The Window and Door Specialist. This was a very special project for me, as it was the first project in which I sought out, not as a part of my courses. It was also the first time I used computing technology in a professional manner. The website was a success, and served as the company's main site for a year or two, until it was replaced by a newer version.
This research project with Professor Charles Mohler investigated different agricultural tilling practises on different crops and weeds in different climates over the years. The computer model is based on data collected from previous experiments in the field. The goal of the project is to increase crop productivity around the world. I programmed the MATLAB model and ran simulations on a collection of scenarios, generating data and graphs. This was my first brush with academic research. I learned about the process and how an idea becomes an investigation. I was also found that computer programming skills can contribute to research in nearly all fields. After passing on my model, results from the (possibly modified) model have been used in graduate-level lectures and at least one published paper: Vertical movement of weed seed surrogates by tillage implements and natural processes (Mohler, Frisch, McCulloch, 2006).
Cornell Fe was a student team in the mechanical engineering department working with Professor Andy Ruina to create an efficient walking robot. I was a co-founder of the team, and designed and set up the organisation structure. I also helped spread the news and find recruits. On the team, I contributed to the robot design and sources components. This was the first project in which I was a co-founder of a team, and gained experience in starting and setting up an engineering organisation. The team eventually became a registered research course with Professor Ruina, who went on to work on a variety of walking robots, including the record-breaking Ranger robot.
Endless.com is the second targeted site created by Amazon.com. This site sells only shoes, and is programmed and maintained by a small dedicated team. I spent three months as a software engineering intern on the Endless.com team, creating a system that allows users to retain settings (size, brand, etc.) across multiple sessions, displaying the information in a visual manner. This was the first time I combined a variety of different web technologies together to create a commercial solution. It was interesting to see the user data that Amazon.com collects and processes, and to see how open source tools can be combined to create powerful solutions. It appears that my system has been made live on the site after some modifications. The project was successful, and I received a full time job offer as a result of the internship.
The Sims Carnival is a website by Electronic Arts based around a tool that allows users to create simple mini-games. Users create games and upload them to the site to allow others to play them. I was employed by EA as a content creator to create a collection of official polished mini-games to seed the collection of games when the site was launched. This was interesting as it kicked off my games career by allowing me to work closely with designers and artists to generate ideas and create a multitude of mini-games. The website has been active for three years, but ultimately, did not achieve the target number of users, and will be shutting down in January of 2011.
The sequel to SimAnimals for Nintendo DS, this game features different animals, environments, behaviours and interactions. I functioned as a software engineer contributing to all sections of code. Given the very short development cycle and the extra requested features, our team had to be creative in how to optimize the code and data. Through play-testing and good technical design, our team managed to stay ahead of schedule. I gained experience in both technical optimization and in feature optimization, and became good at predicting the minimum level of detail required in a simulation before a user notices any adverse effects. SimAnimals Africa sold approximately 80k units according to VGChartz, and received an average rating of 69/100 out of three reviews listed on Metacritic.