B.Math (Computer Science, Honours)
B.A (Fine Arts, Honours, Film)
My driving force is a need to find and solve puzzles. I love intellectual challenges and will always push myself to try and surmount any obstacle. I thrive in pressure environments, and love the feeling that comes in completing an extremely hard task that is necessary and has a tight time constraint. My love of puzzles has had me work with and rework programming architectures and designs - specifically in the field of computer game engines. I enjoy the logic puzzles required to design and create a high performance engine. The added complexity in modern hardware of multiple cores, sometimes asymmetric, makes it even more fun due to the increase challenge. I still spend a few hours every week playing games as well - and some time watching movies and tv. I made the brilliant decisions of putting the TV in front of my exercise machine so that I always combine to the two activities. This has helped me stay fit, and let me catch up on my movie and tv watching. I try and get in at least a movie a week, though with everything else that comes up I do not have a good track record of meeting that goal.
I have almost completed my first pass on the collision library when I decided to refactor the entire engine. I found that some early decisions I made in the design and implementation - specifically reliance on templates was creating a significant compilation time problem (large compile times). I also wanted to make the engine as cross platform as possible and to make that process as easy as possible. To that point I did a test change of moving the code from using a C++ compiler to a C compiler and restricting myself to that language. As it turns out, my compilation times dropped by several orders of magnitude. I started refactoring into C and figured, might as well go completely in, and chose to stick to Ansi C requirements. Its been a lot of fun creating this new version of the engine. I have also spent a lot of time creating a unit test framework and tests while refactoring the engine to determine validation and testing. That was less fun but still at least really useful. I have since also spent some time porting the engine to the apple framework for iPhone/iPad and MacOS. Focused on the iPhone right now in terms of the Apple platforms. Its definitely been an interesting project.
I worked at Infinity Ward as a Lead Engineer and Project Manager. I was responsible for all technical leadership, establishing our goals and managing the entire engineering team. In conjunction with the art leads, we created a new process and pipeline for art assets to meet the technical requirements that allow us to leverage modern GPU hardware. Previously on MW3, I helped the studio maintain its goal of running the game at a constant 60 FPS. I was able to save 5ms+ through combined changes to sound culling and processing, entity updates and a refactor of the effect system. At the end of the project I helped to manage and schedule the programming team to meet the requirements of releasing the game. I used to work at Microsoft Game Studios (Good Science) as a Software Development Engineer. It was a new studio at MGS and its first project was the pack-in title for Kinect called Kinect Adventures. My duties were primarily in areas related to performance and stability. I've worked with the team to achieve our desired frame rate targets, reduce latency from the Kinect device to final render, and did primary work on eliminating crashes and soft locks in the product. My previous position was at Obsidian Entertainment as a lead technical engineer. My duties were fairly diverse and focused on engine design and implementation. I was responsible for primary work on the scene and render systems, as well as all system and system integration tasks. The engine was used in the cancelled Aliens RPG project and in Dungeon Siege 3. While at the same company I helped out the NWN2 team for the last eight months of production to get the game ready for shipping. While I did perform many fire fighting tasks, my focus was on getting the walk mesh, and the rendering time into a shipping state. Previously, I have worked at Terminal Reality (collision and physics), and Sunstorm Entertainment (engine). Shipping games that I've worked on include Alpha Protocol, Neverwinter Nights 2, Spy Hunter 3, Aeon Flux, and Bloodrayne 2. Technology that I built was used in Airport Tycoon 2. In terms of low budget/arcade titles, there were a couple that I worked on for Real Arcade, versions of breakout, mahjong and a pointifex clone (bridge builder). In addition to the above, I spent a year free lancing, and had a few short-term jobs through out university (co-op program) and during high school. I took my undergraduate degrees at the University of Waterloo in Ontario, Canada.
My career focus has been on engine technologies. I have spent over ten years working in that area and I am looking forward to taking on new challenges, particularly in the application of physic technologies to the generation of render content. I have personal interests in programmatic animation, hair and cloth animation and rendering.