Curriculum Vitae

Personal Details

Name:

Steven Goodwin

 Date of Birth:

30th July 1973

Address:

PO Box 31216

London NW2 5ZS
(Tel: 07703 608881)

 

 

E-Mail:

goodwin_steven@hotmail.com

 

 

Marital Status:

Single

Nationality:

British

 

Clean Current Driving License

 

Non-smoker

 


Personal Statement

I am a highly experienced manager and developer with over twelve years of commercial experience in the games industry using C, C++, and Java. I have full life-cycle experience on over five commercial products, as both a programmer and manager. In addition, I have produced numerous independent projects on Linux, Windows, the Amiga, and various web-based platforms. I am also an internationally published author on the topics of Linux, development practice, and games. My first book, “Cross-Platform Game Development”, was published in Q1 2005 and has since become an industry standard and been used as the course text at Westwood College, USA.

 

I am currently looking for a senior technical management role overseeing and working creatively with existing, new, and emerging technologies. My ideal role would encompass multiple disciplines and support personal and professional growth.


Education

1991-1994

Loughborough University of Technology, Leicestershire

BSc (Hons) in Computing. Achieved a 2.1 grade of 68.7%. Primary study areas included Programming Languages, Software Project Management and Human-Computer Systems. My final year project involved writing a compiler and toolkit aimed at introducing new users to 'C'.

1990-1991

Colbayns High School, Pathfields Road, Clacton-on-Sea

GCE 'AS' level Computer Science (A)
GCE 'A' levels Electronics (A), Physics (B), Mathematics (C)

1990

GCE 'AS' level Technology (D)

1984-1989

GCSE level Computer Science (A), English Language (A),
Mathematics (A), Physics (A), Electronics (A),
Technology (A), Geography(A), History (B),
German (C), English Literature (C),
English Oral (2)

Also won the prize for outstanding performance in Electronics (1989).

Work Experience

Software Architecture

September 2009-Date

As Playfish's software architecture I design and build the client infrastructure components for all the games currently under development. This includes code to interact with Facebook, our servers, and other libraries. The work involves the creation of abstraction layers and intelligent interfaces that allow for upgrades and changes to the backend systems without affecting the games at all.

 

As one of the senior developers, I demonstrate and promote best practice and code re-use through my updates to the teams and internal advocacy.

 

SGX Engine

Ongoing

The SGX Engine is my 3D graphics engine for hand-helds, consoles, and PC. It is based around of series of null drivers and loosely-coupled modules to facilitate an infinitely upgradable engine.  It is an engine whose design, architecture, and development has been carried out entirely by myself.

 

It currently supports PC, Nintendo Wii, Nintendo DS and iPhone. I have personally written the low-level driver code for the Wintel32 version (with OpenGL, FMOD/OpenAL), the Wii (using the Revolution SDK), and DS (with a custom NitroSystem abstraction). For each platform I have designed and built platform-specific driver code for the graphics, audio, input, core, and filesystem components. The remaining sections (collision, physics, scripting, GUI, and so on) utilize the existing cross-platform code in the other components.

 

SGX, and the principles of its design, has been covered in my first book (Cross-Platform Game Programming) and in talks given at FOSDEM (2009) and Develop in Brighton (2009). It has been used in various commercial titles including Squibs Arcade, eyePhone Spy Dogs and three (as yet) unannounced commercial titles.

 

Alten8

August 2008 – July 2009

As Alten8’s Head of Development I oversaw all its game projects in various roles. As a producer I coordinated and focused all departments, allocating time and determining trade-offs between the various disciplines of code, art, design, and audio.

 

When I joined the company, there was no team to speak of (one artist and programmer working ad hoc on other projects) and was an art outsourcing house for DVD covers. I began by organizing a team structure, reviews, and building an attack plan to develop the first batch of games.

 

As a programmer I wrote game code for all three titles (Tractor Tom, Squibs Arcade and eyePhone Spy Dogs), as well as the Nintendo Wii and Nintendo DS code for the SGX Engine. This entailed writing low-level driver code utilizing the console API’s to provide an abstraction interface for the games, in areas such as graphics, audio, and the filesystem. For the iPhone project I worked as both a programmer and an external producer for our off-site programmer.

 

Cash flow problems prevented the release of the (completed) Wii version of Squibs Arcade, but it hoped that a co-production venture would allow it to be released in the future.

 

Glu Mobile

October 2005-August 2008

This role has permitted me complete control of the management and development of a brand new tool chain for this major mobile publisher and developer. I have been instrumental in creating a level editor and architecting an asset pipeline to unify the myriad of tools and batch files that were prevalent previously. I also use this position to advocate and facilitate the usage of common tools, and code sharing.

 

As a senior developer I also liaise with designers, artists, and other lead programmers to create tools and solutions that aid the individual projects. This may involve writing project-specific processing modules and exporters, or general-purpose code that is focused for one project, but is later available to all. I also report to the studio head to proactively discuss future strategies.

 

In 2006, I designed and built the company's first cross-platform 3D engine for mobile development. This was written in Java and worked with both the Mascot and JSR 184 (M3G) API's by abstracting the common elements behind an effective API. It was primarily focused towards our first full 3D game, Project Gotham Racing: Mobile, but consisted of a general-purpose engine layered with a general purpose racing engine, and custom code for PGR. This is now used by all the other 3D titles (including Transformers), but I am still able to influence the continued enhancement of this code, to ensure a high level of quality.

 

Additionally, I founded Glu University that gives lectures and tutorials on the various technologies inside (and outside) of the company and disseminates information, raising the average ability of all our developers. Past lectures have included 3D on mobile, optimizations, and the asset tool chain.

 

Criterion Software

June 2004-October 2005

Tools developer and technical author. This role allowed me fuse my communication skills and abilities as a writer with my existing experience as a manager and lead developer to raise the standard of the RenderWare 4 documentation, culminating in the timely release of RenderWare 4.0.

 

As a tools developer I coordinated work between authors and developers to produce suitable tools that aided the documentation team. This included automated build scripts, change log generation and “RwDoc” which extracts documentation comments from C++ source code to create an API reference. This involved writing a complete C++ parser in Perl to understand the many idiosyncratic uses of the language, such as namespaces, templates and function overloading, and build an XML description of the API. Additional scripts then build this information into a CHM (compiled HTML) file.

 

The authoring side of the role involved writing and proofing tutorials about the RenderWare 4 API. Sometimes the code and tutorial structure will come from a programmer and I would adapt it to conform to the in-house style, and in other instances I created the material myself. I also authored numerous guides and documentation standards for the programmers and authors.

 

As the senior developer on the documentation team I was able to introduce novel ideas and concepts, and inspire my fellow workers to think in new directions. I then used my management experience to help ease the pressure on the lead by controlling much of the tools work of which I was more closely involved.

 

 

Freelance

 

2004

Freelance writer and tutor. As part of my sabbatical I studied many new fields, such as PEAR::DB, SOAP and Brew. I applied my OOA&D knowledge to PHP under a LAMP environment to develop Home Automation software, and continued work on my own engine.

 

My primary focus during this time was the writing of a book entitled “Cross-Platform Game Programming”. This is an original title covering all aspects of game development. It details the methods for introducing scalability into the tool chain and cross-platform run-time code, handling threaded and multi-processor architectures and dealing with non-standard libraries. It helps the reader understand the jungle of abstractions, design patterns and engine architectures used in cross-platform development, using my own SGX engine as a guide to best practice. It was published by Charles River Media, and released in Q1 2005. I have since used the knowledge present within the book to create course notes and a lesson plan for Westwood College who are using the book as the course text for their “Game Porting Basics” lessons.

 

During this period I also wrote a variety of articles for Develop and Linux Magazine on topics as diverse as multi-lingual programming, databases and the development ‘crunch’. The latter being Develop’s cover feature in March 2004, generating an impressive response from the development community. This article has since been used as material in the BA(Hons.) Computer and Video Games course at Southampton Institute.

 

I also gave talks, presentations and tutorials (most notably to Mensa) on Linux, web design and digital photography.

 

 

 

Computer Artworks

 

 

2003

Senior Programmer at Computer Artworks (Victoria). I was a fundamental part of the Core Technology group that developed and supported the company’s common technology, including its tool chain and cross-platform, client-server, game engine.

 

My major successes within this role were the audio engine (which I designed, managed and helped implement), the automated build system, and the unification of our tools. This was a two stage process. The first involved the accumulation of existing tools and bringing them into a single, understandable, process with consistent naming and usage patterns. The second was the design and (partial) implementation of a new GUI-based solution encompassing existing technology while additionally providing a user-friendly, and feature-full, tool chain and preview system.

 

I was also instrumental in providing a strategy and technical guidance in the preparation and deployment of the open source tool Subversion. For this, I established its suitability and produced in-house documentation and presentations for its use and subsequent (planned) roll out.

 

As a senior programmer I was frequently called upon to perform code reviews for other team members, and assist the game teams integrate new features, or understand existing elements.

 

Computer Artworks liquidated in November 2003.

 

Bits Studios

 

 

1998-2003

 

My first role at Bits Studios was as a programmer on Die Hard: 64, a console game for the Nintendo 64 platform. This involved comprehending a large, unfamiliar, code base very quickly and writing game components as required by the design document. As the N64 market declined in late 1999, the project was no longer financially viable, and the project was moved onto the (at the time, unreleased) GameCube console.

 

In 2000 I took over the lead programmer role on the newly christened Die Hard: Vendetta project. This was a full life cycle role, and resulted in a number 1-selling first-person shooter license for Fox Interactive. It runs cross-platform on Nintendo GameCube (released Q4-2002), PS2 (Q2-2003), X-Box (Q2-2003) & PC (internal testing only).

 

 

As the lead programmer, I fulfilled a dual role as both developer and manager. As a programmer I orchestrated the move away from a predominately C code base, to C++. This involved an object-oriented design for the game engine that provided a loosely coupled architecture to support the individual components in an efficient manner. This required that I design the standards used within the engine’s sub-systems and libraries. This included implementing code for AI path finding, front end and in-game menus, the particle system and most of the game infrastructure.

 

The move to GameCube also required me to become responsible for adopting cross-platform techniques, devising methods to handle the limited resources of the embedded system, and encouraging the use of style guidelines.

 

I was also in charge of our tool chain and bespoke editor (Win32, MFC with COM), which involved maintenance coding, the integration of new features (as managed with the design and code teams), and incorporating external changes back into the tool. During the closing months of the project I increase my auditing role by taking charge of optimizations and conformance to the ‘Lot Check’ quality guidelines.

 

The management aspect of the role made me directly responsible for interviewing and hiring seven new staff, bringing the total to twelve. Once employed, I acted as a mentor and tutor, training them in the use of the engine, tools, as well as directing peer reviews. At the end of each year I also wrote appraisals, and made assessments.

 

I also dealt with many non-programmers on a regular basis, both inside and outside the team. My most frequent contact came from the artists and designers, where I managed feature requests and bug reports, and incorporated them into the development schedule. I often demonstrated the new features once they had been incorporated. There were also dealings with other managers and journalists, providing background information for the technical side of the project.

 

 

Edcom Ltd

 

 

1994-1998

Lead, technology and game programmer, writing strategy simulations for Edcom Ltd. During the course of my employment I completed four published computer games, working full life-cycle on each of them. The first two were developed for Windows 3.1 using the WinG libraries for graphics. The later games ran under Windows 95 using DirectX technologies. All four were written in a combination of 'C' and 'C++' and were available in several foreign language versions.

 

Powerhouse. A tycoon-style business simulation to buy and sell energy resources across the world. I acted as technology programmer on this title, but it was my least involving of the four projects. Here I wrote the multimedia libraries for audio, FLI animations and image loading, as well as integrating Smacker. This code became part of our core library, and critical to the swift turnaround of future products.

 

 

Grand Prix Manager. Hailed as “the best Grand Prix Management simulation” by PC Zone, it gave you control of every aspect of managing and developing a Grand Prix team. In addition to creating library code (a new rendering engine and data-driven front end) I was responsible for writing the vast majority of the game. I also outsourced modular tasks to the other programmers and liased with the artists to produce the required graphics.

 

Grand Prix Manager 2 is my most successful title to date and has amassed sales of over 200,000 units. It was an upgrade (and overhaul) of the original GPM game. In order to increase functionality (but under the same specification of PC) I optimized much of the render code using profiling tools and hand-written Pentium assembler. This game also featured my networking library for the first time.

 

After release, a Windows 95-specific patch was issued. This presented a refactored sound engine and DirectX network code, incorporating DirectPlay for Internet gaming. This upgrade also involved porting the 16-bit code to the Win32 API.

 

Fields of Fire. A real-time strategy game set during the American conflicts of the 1700s. This was another project where I took an R&D role, providing library code and technical support for the 32 bit OS and the new 16-bit colour graphic engine. I also wrote new libraries for path finding, animation and font handling.

 

Part of Edcom’s success was due to the common technology and tools that existed. I was instrumental in encouraging this approach, and was responsible for its maintenance and direction throughout my time here.

 

1988-1993

Miscellaneous part-time work at Electrical Windings, Gateway Foodmarkets & Colbayns High School.

Additional Skills

Extensive experience in a lead role, directly managing around ten programmers in a team at Bits Studios, and one-on-one management at Computer Artworks. This has involved hiring new staff, producing schedules, dealing with problems, and creating workable solutions. I have also worked along side other team leads, external staff and product vendors. My lead position at Edcom Ltd  involved scheduling work for artists, as well as programmers.

 

A very broad base of knowledge and depth of experience, crossing most modern operating systems and languages. Keenness and enthusiasm to learn and develop new technologies, with good memory retention enabling me to draw parallels between many varied disciplines, and espouse them to others.

 

Technical writing abilities as demonstrated by my books “Cross-Platform Game Programming”, “The Game Developers Open Source Handbook”, a large number of published articles in Develop, Linux Magazine, and my work at Criterion Software. I also give lectures to both lay and technical audience on a variety of topics.

 

Interests

A composer and performer of music in the 'Electro' vein, which also extends to assisting colleagues in their own musical excursions. Some examples are available at http://www.BlueDust.com/pub/mp3.

 

I also have an ongoing Home Automation project, called “Minerva” and based at http://www.minervahome.net, whose functionality includes the remote control of my radio, TV and CD player, and was a featured part of my talk at NotCon ’04, and more recently at FOSDEM.

 

The Open Source software and community play a large part in my external activities, as both speaker and attendee at many conferences and events.

 

My blog (http://www.bluedust.com/blog) contains my numerous thoughts and musings on technology, and has become my point of contact for the geek community, as has my bi-weekly column in Free Software Magazine (http://www.freesoftwaremagazine.com).


Other Information

Gained promotion to Sergeant of The Boys' Brigade, and attained the Presidents Badge. Both awards display competence in leadership, maturity and self-motivation.

 

The founder of Quarantine Records, a University club set up to release the music of student bands and performers. Organizational skills and imagination were used extensively to launch the idea into a complete society with around 40 members.

 

One of eight finalists in the Charnwood Arts 'Composers Platform' of 1994. 'Recursion' was performed to an audience of around 100 people.

 

One of the few people to have had puzzles accepted for publication in Think Tank, the puzzle section of the free paper 'Metro'.

 

A member of Mensa, the high IQ society, the Society of Authors, and a reader at the British Library.

 

An on-line CV is also available at http://www.BlueDust.com/cv that contains more information about my work, links to software, music and various other projects – such as the portrait of Tori Amos made from Lego!


Referees

Withheld for privacy reasons.

Please e-mail me at goodwin_steven@hotmail.com if you wish to contact them.