Andrew Aye

Mobile: (949) 266-4467
E-mail: andrew.aye@gmail.com
Web: http://www.andrewaye.com

Professional Experience
Principal Software Engineer
Microsoft (Global Publishing)
[Redmond, WA]
In Development:

State of Decay 2

Crackdown 3

Shipped Games:

Quantum Break (XB3,PC)

Ori and the Blind Forest: Definitive Edition (XB3,PC)

Recore (XB3,PC)

In Development: State of Decay 2, Crackdown 3

Shipped Games: Quantum Break (XB3,PC), Ori and the Blind Forest: Definitive Edition (XB3,PC), Recore (XB3,PC)

  • Scorpio: Participate in the working and planning group for development experience
  • UE4: Lead a small team to augment vanilla UE4 to hit performance goals for 4K HDR
  • UE4: Provide guidance and set goals for 3+ Scorpio titles working with 5+ studios around the globe
  • Ori: Plan, Schedule and Lead team to achieve performance targets (60FPS)
  • Ori: Performance evaluation and improvements to Unity 5.3
  • Quantum Break: Input control experiments and improvements
Development Manager
Microsoft (MGS)
[Redmond, WA]
Shipped Games:

Age of Empires: Castle Siege
(iPhone, Windows Phone, Windows Desktop)

Shipped Games: Age of Empires: Castle Siege (iPhone, Windows Phone, Windows Desktop)

  • Support team through studio closure and aid in transitions to new positions
  • Manage transition of studio plan from established IP to new IP due to company re-organization
  • Engineering oversight and scheduling of Age of Empires: Castle Siege on Windows and iOS
  • Hired to help manage expansion of studio for AAA production
Technical Director
Infinity Ward
[Encino, CA]
Shipped Games:

Call of Duty: Modern Warfare 3 (XB2,PS3,PC)

Call of Duty: Ghosts (XB2,PS3,PS4,XB3,PC)

Shipped Games: Call of Duty: Modern Warfare 3 (XB2,PS3,PC), Call of Duty: Ghosts (XB2,PS3,PS4,XB3,PC)

  • Manage a team of 50+ programmers to support game and engine development
  • Responsible for technical direction, design and architecture of the code base
  • Lead team to create a new DX11 code base with competitive feature set
  • Managed scope and feature approvals for the engineering team
  • Collaborate with art leads to establish new process and pipeline for asset creation
  • Work with production to establish project schedules and milestones
  • Project lead for game finalization and shipping
  • Reduced audio processing by 3.5 ms (out of a 16ms frame)
  • Refactored the effects system and optimized the system for additional concurrency. Result was 2-4ms gained per frame and much tighter scheduling on dependent tasks
  • Moved all effects processing to the SPU
  • Optimized the general per frame updating of entities to save 2.5ms on average
  • General troubleshooting of existing systems
  • Organized and managed code teams across multiple development studios during critical final stages of MW3 development
  • Scheduled and managed IW code team to finalize PC SKU and day one console patches
  • Worked closely with IW production and executive Activision management teams to organize submission process for simultaneous worldwide launch
Development Engineer
Microsoft (MGS)
[Redmond, WA]
Shipped Games:

Kinect Adventures (XB2)

Shipped Games: Kinect Adventures (XB2)

  • Optimised Unreal post process shaders to gain back 1.5ms on the GPU.
  • Optimisation of the Unreal render pipeline to reduce GPU time by 2.0ms.
  • Worked with a team to solve and isolate bugs and issues with the Natal hardware, platform and third party software (GFx, WWise).
  • Changed the render thread pipeline to reduce execution time to stay within performance target.
  • Primary person responsible solving for crash bugs and soft locks.
  • Worked with a team to help keep the game within performance targets.
  • Liasoned with the art team to achieve performance and art quality goals.
Lead Technical Engineer
Obsidian Entertainment
[Irvine, CA]
Shipped Games:

Neverwinter Night 2 (PC)

Alpha Protocol (PS3,XB2)

Shipped Games: Neverwinter Night 2 (PC), Alpha Protocol (PS3,XB2,PC)

  • Shared in the design of a brand new engine code base to be used for a new AAA title (Xbox360, PS3, PC).
  • Implemented a cross-platform rendering system and render resource manager.
  • Implemented an asynchronous loading system for all level assets.
  • Implemented a basic scene graph for frustum culling, per-object light lists and shadows.
  • Implemented a cross-platform engine job system for cpu load balancing of work units.
  • Implemented base actor class. They served to keep the system entities synchronized (animation, rendering, physics, pathing and game) and to serve as a base for the update cycle (specially movement) with a concentration on concurrent processing.
  • Improved the engine framework to work in a multi threaded environment. Modified the game loop to allow for concurrent processing and fixup of game data.
  • Render system is run completely concurrently and asynchronously to the game thread - shared in the responsibility to create the methods in which the two threads update each other and control asset management.
  • Restructured the way that render data is exported and then loaded by the engine. The format went from a multi-packet (with differentiated load systems) to a single packet, single load system.
  • Integrated Havok into the code base. Implemented a simple interface into the Havok system for game side collision requests. Implemented a robust interface for interacting with the Havok Physics system.
  • Helped guide the development process, and mentor the programming team.
  • Worked with the Art Technical Director to define render features and the art pipeline.
  • Liaison with Art and Design to make sure that we were meeting requirements and that assets would be delivered in time.
  • Wrangled the milestone deliverables.
Senior Programmer
  • Pathing system was based on an A* two dimensional model. Wrote a series of routines for constructing an arbitrary walk surface based on a collection of objects (placeables) that had artist defined walk surfaces. Created a routine to validate face to face pathability that was used by the pathing system.
  • Analyzed and optimized the engine to improve performance for a range of PC hardware.
  • Isolated and fixed some rendering issues that were producing ill behaviour, either in visual appearance or in execution time.
  • Modified text and font routines to work with FreeType v2.0 and in general fix issues that arose with UTF8 support (localization).
  • Troubleshooting and firefighting for the shipping product.

Simulation Engineer
Terminal Reality
[Dallas, TX]
Shipped Games:

Bloodrayne 2 (PC,XBOX,PS2)

Aeon Flux (XBOX,PS2)

Spy Hunter 3 (XBOX,PS2)

Shipped Games: Bloodrayne 2 (PC,XBOX,PS2), Aeon Flux (XBOX,PS2), Spy Hunter 3 (XBOX,PS2)

  • Integrated O.D.E. (open source physics solver) into the engine code base.
  • Created primitive vs triangle-mesh routines to calculate the penetration depth and normal of intersection, providing for interactions with arbitrary environments.
  • Created continuous collision detection (swept volume) for interactions involving high-speed and/or small geometries.
  • Corrected/Improved a majority of the existing primitive-primitive penetration functions.
  • Implemented a new collision primitive (flat-capped cylinder) using a true mathematically defined cylinder. The common practice is to model a cylinder as an extruded octagon (or other n-gon).
  • Refined the mathematical parameterization of constraints.
  • Modified the methods used to solve the physical simulation ( the calculation of the forces generated by a given set of dynamics and constraints ).
  • Implemented limitations on the system to prevent mathematical divergence in the solution system.
  • Created a debugging visualization system.
  • Refined collision calls for performance on console systems (specifically the PS2).
  • Rigorously tested the collision system for stability and performance. Specific care was taken with floating point limitations (extreme value cases ).
  • Tweaked capsule collisions to provide the predictable, stable results for soft body simulation.

[Toronto, ON]

  • Feasibility study for an existing film production company, expanding into video games.
  • Rough budgetary requirements taking into account the ramping from an initial technical team to a full development team for a game.
  • Preliminary technical design documents for game engine software design.
  • Interviewed/Reviewed potential staff members for an implementation team.

Lead Programmer
Sunstorm Interactive
[Indianapolis, IN]
Shipped Games:

Airport Tycoon 2 (PC)

Bridge Builder (PC)

Mahjong (PC)

Super Ball (PC)

Shipped Games: Airport Tycoon 2 (PC), Bridge Builder (PC), Mahjong (PC), Super Ball (PC)

  • Managed a programming team of five people and communication with the out-sourced art team.
  • Created a data driven text-based open simulation system to allow for ease of customization and expandability.
  • Refined existing graphic engine for increased performance to allow for greater visual capabilities.
  • Created a specifically crafted physics simulation for Bridge Builder ( truss structure simulation ).
  • Created an API layer for the internal engine.

Forum Manager
The Microsoft Network (MSN)

  • Created an online community for people interested in role playing games for MSN.
  • Managed a community team of fifteen people.
  • Responsible for multiple message boards, online chat-based games and event organization.
  • Official representative for the Illuminati: New World Order CRPG from Steve Jackson games.


Computer Science, Honours

B. Math (1993-2000)

University of Waterloo (Waterloo, ON)

Mechanical Engineering, Honours


University of Waterloo (Waterloo, ON)

Film, Fine Arts Honours


University of Waterloo (Waterloo, ON)

1993 - 2000 B.Math Computer Science, Honours University of Waterloo (Waterloo, ON)
1993 - 2000 B.A.Sc. Mechanical Engineering, Honours University of Waterloo (Waterloo, ON)
1993 - B.A. Film, Fine Arts Honours University of Waterloo (Waterloo, ON)

Co-Op Experience
Game Designer
Steve Jackson
  • Helped with the development and testing of the Illuminati: New World Order expansion, INWO: Subgenius.

Canadian Space Agency
[Montreal, QC]
  • Implemented an interactive simulation environment for testing a haptic device to be used as a controller for the Canadian Arm.

[Ottawa, ON]
  • Ported code base to UNIX Platforms (HPUX, DGUX, AIX, Solaris, SunOS)
  • Developed/debugged code for the new release of the product

Network IT
Royal Canadian Mounted Police
[Ottawa, ON]
  • Engineered the RCMP PC Network for the Canadian Capital Region (Users: ~5000)
  • Provided services & support for the transition to the new network structure

Royal Canadian Mounted Police
[Ottawa, ON]
  • Developed an in-house program for reducing police oriented paperwork

Research Assistant
[1990 (June-Aug)]
Atomic Energy Canada
[Chalk River, ON]
  • Assisted in the development of an aqueous gamma radiation probe