Bought a Winnebago van and drove a full loop of the country, wrapping up in February 2026. Plenty of time on the road also went into the Atari Lynx Wolfenstein 3D port below. Now back in Melbourne and looking for the next thing.
Melbourne, Australia · C/C++ since 2004
3D graphics and systems programmer.
Twenty years of C++ close to the metal — from twelve years shipping games at EA to real-time terrain visualisation at Rio Tinto.
I build renderers and engines with a strong 3D-graphics and maths core. Most recently that meant streaming multi-gigabyte mine models in real time at Rio Tinto; for twelve years before that, games at EA. In 2024 I traded the desk for a Winnebago and drove a lap of Australia — back now, and on the hunt for the next thing.
Summary
I'm a C/C++ software engineer with 20 years of commercial experience — 12 of them in the games industry — and a strong background in 3D graphics and maths across Windows, Mac, Linux, iOS and Android.
I've worked the full software lifecycle: design, implementation, testing, debugging and the kind of optimisation where the last week before launch actually matters. Away from the day job I'm a hobbyist coder and Linux enthusiast, which is where the Atari Lynx work lives.
Career
Experience
Mar 2023 – 2024
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
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
- Saw Spy Mouse become #1 on the App Store
- 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
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 custom-hardware interface
- Directed content creators; liaised with doctors and hardware designers
- Took technical handover of a voxel-based bone-drilling simulator from the CSIRO
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
Education
Shipped titles · programming credits
Games I helped ship
Commercially released titles I'm credited on, across mobile and handheld consoles.




Hobbyist · Atari Lynx
Pushing a 1989 handheld
The Linux-enthusiast, hobbyist side of the resume. Ports and engines for a machine with 64 KB of RAM and a cartridge that behaves more like a disk drive than ROM. Source released where the licence allows.

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 ↗
Porting the rotoscoped Atari ST version, animation frames and all, to the handheld.

A port of Éric Chahi's polygon-driven cinematic — a natural fit for Suzy's vector-style drawing.

The dream title. Converted sprites and a background to prove big fighters, moves and a 2-player ComLynx mode are possible.
Featured build · shareware out now
Wolfenstein 3D on the Atari Lynx
Four years in the making — and the shareware release (first three levels) is out now. A port of the 1994 Mac source in a 512 KB cartridge, where the trick isn't the CPU but Suzy, the Lynx's 16-bit sprite engine, drawing each wall as a single hardware-scaled sprite for near-zero CPU cost.
- BSP renderer ported from the Mac and re-cut for the Lynx
- Hardware sprite scaling + overlapped Suzy multiply/divide
- 245 KB of art hand-crushed to 16 colours, packed into 81 KB
Technical skills
Toolbox
Languages
- C++ / C
- C#
- Objective-C · Java
- Python · Lua
- 65C02 assembly
APIs & libraries
- OpenGL / OpenGL ES
- Vulkan
- SDL · Win32
- FMOD
- Berkeley Sockets
Platforms
- Windows · Mac · Linux
- iOS · Android
- Nintendo DS
- Atari Lynx (Suzy / Mikey)
Tools
- Visual Studio · Xcode
- qtCreator · Vim
- 3DStudio Max
- Custom engines & profilers
Also on GitHub
Experiments
Smaller graphics-programming spikes and format loaders.
Get in touch
Open to new work.
Open to 3D graphics, engine and low-level engineering work — and always happy to talk rendering, optimisation, or squeezing 3D out of hardware that shouldn't do it.