Download PDF


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!

Work experience

Sep 2009Present

Game Programming Tutor (Lecturer)

Media Design School
  • 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 2007Sep 2009

Software Engineer

Electronic Arts

  • 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.

May 2006Aug 2006

Software Development Engineer Intern

  • Created a personalization system for, handing both front-end and back-end code.

  • Technologies Used: Java, JavaScript, AJAX, NetBeans, MySQL, HTML, CSS, Subversion.


High School Diploma, Advanced Placement Credit

Richmond Hill High School
  • Graduated at top of class, awarded Governor General's Academic Medal (Canada).
Aug 2003May 2007

Bachelor of Science with Honors

Cornell University
  • Cumulative GPA: 3.76 (Awarded Magna Cum Laude)

Curriculum Vitae

Previous Projects


Artificial Intelligence and Planning
Currently working with Dr. Mike Barley of University of Auckland to explore properties of weighted A* search using heuristics generated from state space abstractions of planning problems. Worked extensively on AI for simulated characters in SimAnimals and SimAnimals Africa for The Sims Studio in Electronic Arts. 
Teaching and Course Planning
Currently teaching game programming at Media Design School in Auckland, New Zealand. Lectures to and supervises students, as well as marking work and giving feedback and guidance. Conducts course reviews and generates new course materials.
Web Development
  Currently using SilverStripe CMS system to develop a personal project. Used PHP and MySQL to develop a prototype for a professional networking site, Used Java-based technologies to develop a personalization system for, a branch of Created HTML websites for local businesses while in high school, such as for Window and Door Specialist of Richmond Hill.  
Game Development
Currently teaching game programming and development. At end of course, students pitch a game idea and work in teams to program it and make it fun. Created games for Electronic Arts. Small personal game projects and explorations since high school. Experienced in different Scrum implementations.
  Currently using Java to program a tool to explore weighted A* search using heuristics generated from state space abstractions of planning problems. Used Java to create a personalization system for while working at Used Java to experiment with some personal computer game projects. First exposure to Java was high school computer science course.  
  Currently teaching students to program in C++. Used C++ at Electronic Arts to create computer games.