C++ Developer in Vancouver, BC, Canada
Founder, Software Engineer2014 - PRESENTVirtual Light Software Inc.
Technologies: C++, Oculus SDK, Direct3D 11
- Developed a virtual reality data visualization and GIS project for the Oculus Rift.
- Contracted for Oculus Rift development with IMVU.
- Worked for EA on Star Wars: Battlefront development.
- Helped start SG14, a game development and low latency study group, as part of the C++ Standards Committee.
- Built reusable framework for Oculus Rift development with Direct3D 11.
Senior Manager of Engineering2011 - 2014EA
Technologies: C++, Xbox One, PS4, Windows Phone
- Ported existing core technologies to new platforms (Xbox One, Windows Phone, PS4, Wii U) and developed new cross platform shared technology for use throughout the company.
- Worked with teams across EA to gather technical requirements for fine grained concurrency and led teams in designing and implementing new features to meet those requirements.
- Represented EA on the OpenCL and OpenCL HLM committees and helped drive efforts to apply GPU compute to solve problems for our customers.
- Worked in technical recruitment to set standards, create common programmer tests, and interview candidates.
- Led the platform development for Xbox One during preparations for Xbox One launch.
- Managed a team and wrote code myself as an engineering manager.
Senior Programmer2009 - 2011Smoking Gun Interactive
Technologies: C++, Unreal Engine 3, Xbox 360, Kinect
- Built an Unreal Engine 3 title on Xbox 360, 20,000 Leaks, as part of the "Kinect Adventures!" mini game collection that shipped as a pack for the launch of Kinect for Xbox 360.
- Worked as a graphics programmer on a variety of unannounced internal projects and demos for Xbox 360, PS3, and PC.
- Recommended, set up, and maintained the continuous integration server using TeamCity.
- Developed computer vision algorithms for Kinect Me, an app for auto-generating a player Avatar using data captured by the Kinect camera.
- Participated in hiring processes by interviewing and evaluating programming candidates.
Senior Programmer2006 - 2009Relic Entertainment (a THQ studio)
Technologies: C++, Win32, Direct3D 9, Direct3D 10, Xbox 360, HLSL
- Worked as the rendering lead on Dawn of War II (85 Metacritic).
- Collaborated with Dawn of War II artists on tool, pipeline, and artist workflow improvements.
- Developed and optimized an HLSL shader for the Dawn of War II terrain system, HDR lighting, unit painting, and other rendering features.
- Added engine optimizations and feature additions to the Company of Heroes codebase for Dawn of War II.
- Assisted with optimization and bug fixing on Company of Heroes (93 Metacritic), as well as preparations for the D3D10 port of the graphics engine.
Software Engineer2003 - 2006EA
Technologies: C++, Direct3D 9, Xbox 360, PS3, Xbox, PS2
- Became part of the RenderWare development team when EA purchased Criterion.
- Optimized RenderWare animation and math libraries for PS3 and Xbox 360 using VMX intrinsics and SPUs.
- Wrote a substantial document on optimizing C++ code for the PS3 and Xbox 360 which was widely distributed within EA.
- Played a key role in delivering the first version of RenderWare to support the final Xbox 360 hardware.
- Designed and implemented the runtime and pipeline back-end for the shader system used in two of EA’s Xbox 360 launch titles: FIFA 2006 and NBA Live 2006.
- Developed and supported EA's internal graphics library prior to the purchase of RenderWare.
- Fixed several challenging rendering bugs for FIFA 2005 and NHL 2005 on PC and was credited on FIFA 2005 PC in recognition of support efforts.
Senior Programmer2002 - 2003Nicely Crafted Entertainment
Technologies: C++, Direct3D 9
- Worked as a senior 3D programmer on Time of Defiance (73 Metacritic), a massively multiplayer online strategy game for PC.
- Wrote the majority of the DX8.1 3D engine and developed a new DX9 3D engine for use in the Time of Defiance boxed release and future products.
- Optimized the server physics code and implemented hierarchical object support on the client and server.
- Developed a new custom OOP GUI framework rendered using D3D for implementing game UI.
- Implemented a 3D sound support using DirectSound.
Programmer2000 - 2001Rebellion Developments
Technologies: C++, Direct3D 8, Playstation 1, Xbox
- Built the control system, weapons, and weapon effects for "Delta Force: Urban Warfare" (70 Metacritic) for PS1.
- Created the UI, controls, graphic effects, and game logic for the prototype of an unreleased Xbox action game.
- Used Direct3D 8 GUI framework for the prototype of an unreleased PC strategy title.
- Created particle effects, gameplay scripting, and bug fixing for a PC action and strategy title called Gunlok.
- Worked on special effects, AI, and game logic for the prototype of an unreleased PC strategy title.
- Dawn of War II (Development)http://www.dawnofwar.com/
Dawn of War II (85 Metacritic: http://www.metacritic.com/game/pc/warhammer-40000-dawn-of-war-ii) was the sequel to the popular PC game Dawn of War. I was the lead graphics programmer on the project and a core part of the team from the early days of pre-production until the product shipped.
As lead graphics programmer, I made extensive modifications to the Company of Heroes graphics engine in order to meet the visual goals for Dawn of War II and its gritty sci-fi universe. This included implementing a new HDR (High Dynamic Range) lighting engine, a new terrain texturing system, a new system for players to apply custom 'paint' to their units in the game, and many optimizations.
The features I implemented required tool, pipeline, and runtime code and close collaboration with artists on the team. The work involved a number of tools and technologies, such as C++, C#, HLSL, MAXScript, Photoshop scripting, Python, Perforce, NVIDIA PerfHud, PIX, and more.
- Frostbite Engine (Development)http://www.frostbite.com/
As the Senior Engineering Manager on the Frostbite Vancouver team at EA, I led a team responsible for maintaining the core low level cross platform libraries used by the Frostbite game engine, which power many EA games.
One of my primary responsibilities was to work as the technical product owner for the job manager project, a cross platform library for task and job scheduling that is used by Frostbite and other teams at EA to support the use of task-based concurrency to make efficient use of multiple processors across the many platforms on which EA's games run.
As a technical product owner, I worked with customers on game teams to understand their requirements. As an engineering manager, I led a team of engineers in designing and implementing features to better meet our customers' needs, which was both a leadership and a programming role.
- Kinect Adventures! (Development)
As a Senior Programmer at Smoking Gun Interactive, I worked on a number of mini games and activities that were part of Kinect Adventures, the game bundled with Kinect for Xbox 360 at launch.
This project used Unreal Engine 3, and I was responsible for implementing rendering features, performance optimizations, image processing, and gameplay logic.
- Company of Heroes (Development)http://www.companyofheroes.com/games/company-of-heroes
As a senior programmer at Relic Entertainment, I assisted with optimization and bug fixing on the PC strategy game, Company of Heroes (93 Metacritic). I also worked on preparations for the D3D10 port of the graphics engine.
- RenderWare (Development)https://en.wikipedia.org/wiki/RenderWare
As a software engineer on the central technology team at EA Canada, I played a key role in delivering the first version of RenderWare to support the final Xbox 360 hardware. I spent 3 days on site at Microsoft’s Xbox offices ensuring RenderWare worked on the final hardware before it shipped to EA studios. I also designed and implemented the runtime and pipeline back-end for the shader system that was used in two of EA’s Xbox 360 launch titles: FIFA 2006 and NBA Live 2006.
Finally, I optimized RenderWare's animation and math libraries for PS3 and Xbox 360 using VMX intrinsics and SPUs, in addition to writing a substantial document on optimizing for the PS3 and Xbox 360 which was widely distributed within EA.
- Star Wars Battlefront (Development)http://starwars.ea.com/starwars/battlefront
I worked on this project as a contract software engineer brought in to help with bug fixing and performance optimization during the last few months of development. With my work on Star Wars Battlefront (75 Metacritic), I helped ensure a successful consumer launch on Xbox One, PlayStation 4, and PC.
LanguagesC++, HLSL, Python, Assembler x86, F#, C#
FrameworksDirectX 11, Unreal Engine, Unity, Unity3D
Libraries/APIsStandard Template Library (STL)
ToolsMicrosoft Visual C++
PlatformsOculus Rift, Xbox 360, Playstation 3, PS3, Win32, Windows Phone, CUDA
OtherPerformance Optimization, Virtual Reality (VR), Game Development, Optimization, Computer Graphics, PS4
- Master of Arts degree in Natural Sciences1997 - 2000Cambridge University - Cambridge, UK