Scott Graham

Experience

Google, Inc., Mountain View, CA, USA

Software Engineer, Chrome

June 2011 - Present

WebKit team.

Electronic Arts, Burnaby, BC, Canada

Software Engineer, Central Technology

March 2008 - April 2011
  • .NET (C#) runtime for game consoles (PS3, X360, Wii). Includes the implementation of the base class libraries, various runtime support, and an LLVM-based compiler for ahead-of-time compilation. I primarily wrote the garbage collector, and the C++ interop layer, and also wrote a large portion of the compiler.

  • Lead of the Android platform. Work here has included the initial port of EA's central technology to the platform, and includes ongoing support and education for a variety of internal and external game teams.

  • Developing internal web service to automate creation of installers for PC game titles. Deals with large binary data efficiently, and is a substantial time and budget savings for game teams.

Sabbatical

July 2007 - March 2008

Various personal and open-source projects, including:

  • Media player software, which included custom Linux distro and Flash-to-Python recompiler
  • Continuation-based web development framework for Python
  • Native-code compiler for Lisp-dialect (written in C#)

Slant Six Games, Vancouver, BC, Canada

Senior Software Engineer

June 2005 - July 2007

As the second employee at Slant Six, I helped drive the development of the studio's initial technology base for PSP and PC, while contributing to contract work being done for Sony on Syphon Filter: Logan's Shadow.

Subsequently, I was gameplay and animation lead on SOCOM: US Navy SEALs Tactical Strike. There were many challenging technical aspects to this project including navigation around a dense world, complex interaction of the 4 characters controlled by the player, and mapping very high-level user input to intelligent behaviour.

I was the animation and physics lead in the preproduction phase of SOCOM: Confrontation PS3. Work included evaluating 3rd party animation engines, integrating Havok Animation and Physics with the rest of the game engine for our "First Playable" milestone, and a C#-based animation sequencing tool.

Electronic Arts Canada, Burnaby, BC, Canada

Software Engineer, FIFA

May 2000 - June 2005

Worked on animation pipeline for FIFA 2005 AI/Gameplay. Was part of architecture planning team for FIFA 2006 (X360) and subsequently worked on the game's presentation code.

FIFA 2004: Lead small team on design and implementation of Flash-based cross-platform front end solution. Includes majority of Flash functionality, including all animation controls, vector rasterization, and JavaScript interpreter. Runs on PS2, Xbox, GC, and PC. Adopted as Electronic Arts worldwide front-end tool for use in all future products, and is now widely deployed (hundreds of titles).

FIFA 2003: Designed and implemented high-level cross-platform rendering engine. Included tool, pipeline, and runtime from authoring art package through to console rendering. Designed to handle building and packaging of very large number of assets in game-ready form, and structuring of art into scenes. Allows artists quick preview of assets on target platform. Handed off to support team and was used in three EA Sports games for the following product year.

FIFA 2002 (PS2): Rewrote and significantly improved performance of low-level PS2 renderer. Wrote and optimized VU0/VU1 code, rewrote tool-side stripping and matrix/vertex DMA chain building, and exposed metrics and tuning information to artists. Delivered game at solid 60fps under intense time pressure.

Education

Skills

Current Projects

My current recreational programming project is an implementation of Python in JavaScript to achieve "in-browser Python", including bigints, comprehensions, and generators. There's a demo at http://www.skulpt.org/. Other for-fun projects can be found on my personal site at http://www.h4ck3r.net.

References

I'd be happy to provide some on request.