Lead Developer/Project Manager2017 - PRESENTLightspeed Graphics
Technologies: Ruby on Rails, Ember.js, TypeScript, C++, Node.js, Ruby, AWS, Terraform, Ansible, Rust, WebGL
- Led an agile team to rapidly prototype and build a complex cloud rendering service and web application.
- Led front-end development and architecture for a large Ember.js/TypeScript project, driving adoption of best practices, code reviews, and leading training sessions.
- Managed deployment and scaling of a GPU rendering service on AWS using Terraform, Packer, Ansible, and Datadog.
- Led back-end development and architecture of a large Ruby on Rails API codebase, with components also written in C++14 as required. Used RSpec and BDD to write full coverage test suites, JSON-API for most front-end interoperations, and Sidekiq for background tasks.
- Worked with graphics APIs (WebGL, OpenGL) and also ray-tracing technology, implementing asset pipelines and optimizing a scalable real-time rendering service. Technologies include GLSL, vertex and fragment shaders, Three.js, OpenGL, linear algebra, Blender, path tracing, C++14 and Rust.
iOS and OpenGL Developer2016 - 2016Qube (via Toptal)
Technologies: OpenGL, Swift, iOS, GLSL
- Built a new GPU-accelerated rendering framework for the popular Pixomatic photo application on iOS.
- Worked expertly and effectively with Swift and OpenGL ES.
- Implemented frameworks and algorithms for soft shadowing, image filtering, object picking, offscreen rendering, and other real-time techniques.
- Integrated custom OpenGL rendering with CoreImage filtering.
C++ Developer2014 - 2016Glory League
Technologies: C, C++, FFmpeg, OpenCV
- Developed solutions for computer vision tracking of teams playing basketball, a core part of the product's visual experience.
- Worked with the industry standard OpenCV library.
- Created custom real-time video processing filters in FFmpeg.
- Designed modular cross-platform C and C++ libraries and abstraction layers.
- Implemented highly parallel architectures.
Medical Doctor2013 - 2015Auckland City Hospital
Technologies: Clinical Medicine
- Worked on medical teams across a range of medical and surgical specialties, in both inpatient and outpatient settings.
- Independently performed a range of clinical activities.
- Assisted in a variety of surgical procedures.
- Constantly applied new knowledge and experience to work effectively in a busy city hospital.
- Taught medical students and nursing staff.
Technical Lead2007 - 2015Savant Information Systems
Technologies: C++, OpenGL, OpenGL ES, GLSL, iOS, Objective C++, Oculus Rift
- Lead engineer on an open-source C++ game and graphics visualization engine.
- Implemented complex graphics algorithms that run across multiple graphics APIs and devices.
- Worked with Oculus Rift headsets to enable a full VR experience.
- Maintained a large standards-compliant and cross-platform C++ codebase.
- Worked on console platforms including the Nintendo Wii and PlayStation 3.
Web Developer2008 - 2014Canterbury Youth Sevices
Technologies: Ruby on Rails, MySQL, Sencha JS, Capistrano, JSON, Linux
- Built a Ruby on Rails web platform for the day-to-day running of a large non-profit organization.
- Created online systems for managing large events, including automatically processing registrations and taking payments.
- Developed systems for financial reporting.
- Used a wide range of web technologies for testing, deployment, reporting, and maintenance.
- Provided ongoing user and technical support.
C++, Wii, and PlayStation 3 Developer2009 - 2012Stickmen Studios
Technologies: C++, Sony PlayStation 3, Nintendo Wii
- Ported existing game engine software to the Nintendo Wii and Sony PlayStation 3.
- Solved a variety of complex performance and memory management challenges unique to console platforms.
- Implemented rendering and API abstractions that function across multiple graphics APIs and platforms.
- Assisted with application and game development debugging on the Nintendo Wii and Sony PlayStation 3.
- Implemented tech solutions specific to each console platform where appropriate.