Melbourne, Australia · C & C++ since 2004

C++ systems & 3D graphics programmer

Twenty years of high-performance C++ — twelve of them shipping games at EA, then streaming multi-gigabyte mine models in real time at Rio Tinto.

In 2024 I took a career break: bought a Winnebago van and drove a full loop of Australia, studying music and writing Atari Lynx homebrew along the way. Back in Melbourne as of February 2026, and looking for a new challenge.

Technical specifications

Commercial C / C++
20 years
Games industry, Electronic Arts
12 years · senior / lead
Commercial titles shipped
6 · mobile & handheld
Titles that reached #1 on the App Store
3
Education
B.CompSci · Monash, 2004
Current status
Open to a new challenge

Experience

2004 – present
2024 – Feb 2026 Just back
A lap of Australia
Career break

Bought a Winnebago van and drove a full loop of the country, wrapping up in February 2026. Time on the road also went into studying music and the Atari Lynx Wolfenstein 3D port below. Now back in Melbourne and looking for the next thing.

Aug 2019 – Dec 2021
Mar 2023 – 2024
Visualisation Specialist
Rio Tinto · contract, then full-time

Building and maintaining RTVis, the in-house tool that visualises mine sites, mineral deposits and equipment in 3D.

  • Built a terrain renderer that streams 10 GB+ datasets and displays them in real time
  • Prototyped an Android app capable of displaying large terrain models
  • Maintained the existing codebase and shipped new features
  • Worked directly with geologists and end users to identify and fix issues
Oct 2006 – May 2019
Senior Games Programmer
Electronic Arts (EA)

My dream job — twelve years across many shipped games and prototypes, from requirements and design through implementation, testing and optimisation. Senior engineer and lead across several small teams.

  • Led a small team to finish Back at the Barnyard in just six months
  • Optimised Real Racing in the final week before launch
  • On the team that took Spy Mouse to #1 on the App Store
  • Shipped titles on ARM7/ARM9 handheld hardware (Nintendo DS)
  • 3D renderer development; 2D & 3D animation systems across several titles
  • CPU and GPU performance diagnosis and optimisation
  • Rapid prototyping of games and gameplay with designer feedback; tools, exporters and custom builds
May 2005 – Oct 2006
Lead Programmer
Medicvision

My first full-time role after graduating: developing a 3D haptic epidural simulator for medical training and commercialising a haptic temporal-bone drilling simulator — both C++ with an OpenGL renderer.

  • Owned application architecture, all libraries, an OpenGL 2.0 renderer and the C++ interface to the custom haptic hardware
  • Directed content creators; liaised with doctors and hardware designers
  • Took technical handover of a voxel-based bone-drilling simulator from the CSIRO
Oct 2004 – May 2005
Programmer
Monash University

In a team of two, built software for haptic research experiments using the Sensable Phantom Desktop and a custom-built haptic glove, "Exograsp" — all requiring 3D visualisation.

  • Gathered requirements with researchers; implemented in C/C++ and OpenGL
  • Created 3D assets in 3DStudio Max and Milkshape 3D
  • Haptic programming against the Phantom and Exograsp APIs
Graduated 2004
Bachelor of Computer Science
Monash University · major in Systems Development

Shipped games

Programming credits

Commercially released titles I'm credited on, across mobile and handheld consoles.

Real Racing 3 cover art
Real Racing 32013
iOS · Android · more
#1 on the App Store · Programmer
Spy Mouse app icon
Spy Mouse2011
iOS · Android · Windows Phone
#1 on the App Store · Programming
Flight Control app icon
Flight Control2009
iOS · DS · Android · Wii
#1 on the App Store · Programming
Real Racing cover art
Real Racing2009
iPhone / iOS
Programmer · launch-week optimisation
Back at the Barnyard (Slop Bucket Games) cover art
Slop Bucket Games2008
Nintendo DS
Programmer · shipped in six months
The Fast & the Furious: Fugitive 3D cover art
Fugitive 3D2007
Mobile / iOS
Programmer

Atari Lynx homebrew

Hobbyist hardware

I enjoy programming the Atari Lynx, a 1989 handheld console — pure embedded work in C and 65C02 assembly.

A boss fight in Wolfenstein 3D on the Atari Lynx, played in portrait TATE mode
Wolfenstein 3D Shareware out
Four years of work: the 1994 Mac source in a 512 KB cartridge, every wall a single Suzy hardware-scaled sprite for near-zero CPU cost. Played with the Lynx held portrait — TATE mode.
Download the shareware on AtariAge
Super Mario Bros. on the Atari Lynx
Super Mario Bros. Released
A working port of the NES original. Source is public — build it yourself if you legally own the NES ROM.
github.com/pwsqrd/lynx_smb
Prince of Persia on the Atari Lynx
Prince of Persia In progress
Porting the rotoscoped Atari ST version, animation frames and all, to the handheld.
Another World on the Atari Lynx
Another World In progress
A port of Éric Chahi's polygon-driven cinematic — a natural fit for Suzy's vector-style drawing.
Mortal Kombat II sprites on the Atari Lynx
Mortal Kombat II Prototype
The dream title. Converted sprites and a background to prove big fighters, moves and a 2-player ComLynx mode are possible.

Toolbox

Parts list

Languages

  • C++ / C · multithreading · SIMD
  • C#
  • Objective-C · Java
  • Python · Lua
  • 65C02 assembly

APIs & libraries

  • OpenGL / OpenGL ES
  • Vulkan · Metal
  • GLSL shaders
  • SDL · Win32

Platforms

  • Windows · Mac · Linux
  • iOS · Android
  • Nintendo DS (ARM7 / ARM9)
  • Atari Lynx · 65C02

Tools

  • RenderDoc · Instruments
  • CMake · Git
  • Visual Studio · Xcode
  • qtCreator · Vim
  • Custom engines & profilers

Also on GitHub

Contact

Back page

Open to C++ systems, engine and 3D graphics work — and always happy to talk rendering, optimisation, or squeezing 3D out of hardware that shouldn't do it.