Senior Unity Developer2017 - 2018Paladin Studios
Technologies: Unity, C#, Android, 3D, Shaders, Graphics, Games, Java
- Built a mesh analysis, a cascading platform, and a pathfinding and shot-finding framework for a 2D runtime destructible terrain in Unity3D.
- Developed an AI that took into account the movement, attack, and defense constraints of the various possible ability and weapon configurations. This worked at interactive speeds to give the illusion of a larger player base to increase retention.
- Converted an existing touchscreen card game called Stormbound into its desktop Windows, Mac, and WebGL variants. This added extra platforms with different spending profiles for players to interact with.
Senior Systems Engineer2015 - 2017GetSocial BV
Technologies: Unity, C#, Android, Java, Objective-C, 3D, Graphics, Games
- Developed a cross-platform SDK with a Java core which was used by the native Android applications and transpiled into Objective-C for iOS using J2ObjC.
- Expanded a further layer for both platforms to enable access to the features for the Unity3D clients sitting on those platforms as well.
- Maximized a worker utility so that all of the business logic and the majority of the networking was able to be reused along with the related tests—resulting in approximately two-thirds of the code being reused between the platforms.
- Dealt with the platform abstraction by developing a dependency injection framework to allow definition and implementation of modules to work between transpiled and native layers.
Senior Android Engineer2014 - 2015Komoot
Technologies: Android, Java, Python
- Developed the Android/iOS client-side implementation of WebView card stack widgets to assist in determining user interest in various routes and sightseeing locations. This increased the visibility of user-created trails and also encouraged users to enter point-of-interest data once they had completed their own routes.
- Created a live client tool that detected memory leaks and generated reports which pulled the crash rate down from ~3% to ~0.3%.
- Rebuilt/reskinned the Android client following Material Design guidelines.
Senior Software Engineer2012 - 2014Valtech Digital Australia
Technologies: C#, Android, Java, Objective-C, 3D, Graphics, Games
- Developed an alternate animation and widget system to sit on top of the Android UI framework to provide a smooth and responsive experience. This was then used to provide an unlimited 2D virtual streaming canvas in the Android FOXTEL cable TV client.
- Improved the performance of the Sony Song music-streaming Android client by building a UI element snapshotting tool for smooth full-screen animations of pre-rendered sections.
- Created a single player platformer prototype 2D game using libGDX.
Senior Games Engineer2009 - 2010Epiphany Games
Technologies: C#, C++, Lua, 3D, Graphics, Games, Gamebryo, WPF
- Developed a baked 3D terrain mesh analysis and pathfinding system in C++ with Lua bindings for developer scripting on the Gamebryo game framework.
- Built a strategic/tactical squad-based AI system in Lua for a publisher demo of a PC platform RTS that was subsequently picked up.
- Created new tools and modified existing ones in C# that were released as part of the Gamebryo game framework.
Senior Software Engineer | Team Lead2007 - 2009TileFile Ltd
Technologies: C#, Android, Java, 3D, Graphics, J2ME
- Designed the systems and led team development for the J2ME, Android, and Motorola’s set-top box environment clients.
- Developed an animated UI framework with separate layout and rendering passes optimized for speed and low resource consumption on the J2ME platform.
- Created a low-resource single step JPEG decoder and scaler to overcome an issue (one of the target devices had a camera API that was able to take pictures that were larger than the available heap memory on the device making the larger photo sizes unusable).
- Developed an asynchronous network and UI task framework for various requests (memory, local storage, network) for J2ME and Android.
Software Engineer | Team Lead2003 - 2007Spectrum Wired
Technologies: C#, Java, 3D, Graphics, J2ME, 2D
- Developed a sliding window UDP network system to maintain synchronization over the poor connections of mobile networks (2G/3G) at the time for a multiplayer soccer game "Goal!" for Disney in J2ME; this was mainly done due to the unreliable networks at the time.
- Built a scriptable user interface system to increase the possible complexity of the system beyond.
- Created a software-rendered 3D portal engine using fixed-point mathematics to work with the JIT J2ME runtime that was running at interactive speeds on lower-end mobile devices.
- Designed, developed, and ported the mobile game "Atlantis Escape" using marching squares for runtime random terrain generation.
- Developed 2D texture/sprite-packing software to reduce the memory footprint using the guillotine technique. This was to combat the 40 KB jar limit on our games at the time.
- Ensured client website reliability by designing and developing a J2SE/servlet-based content management and website framework that focused on security with tiered class loaders to allow downtime-free safe switching of deployed modules.