Worked on Paper, FiftyThree's highly-decorated iOS app (2012 Apple Design Award and App of the Year winner). Most code was written in cross-platform C++ (C++ 11/14), with Objective-C++ used to target native platform features.
Truly full-stack engineer on a team of three, building a website serving more than 30M visitors per month.
Supported Social Gold product after Google acquisition (Ruby, Rails). Prototyped virtual currency web service on Google infrastructure (Java, Megastore). Transitioned to Picnik team in January 2011, joining team working on a next-generation image editor with support for multiple rendering backends (WebGL, Canvas, Flash, C++, NaCl).
Lead developer of the Inventory API, a new service from Jambool that provides a complete management system for virtual goods, including advanced analytics. The system consists of a API for programmatic access and a HTML-based console for end-users, both connecting to a RESTful service on the back end and all developed in Ruby on Rails.
Worked in Rich Media Labs, an incubation group reporting to Ray Ozzie. From 2006 to 2009, worked on Moab, a WPF-based photo editing and cataloging application designed to address the needs of professional photographers. For the application, implemented a high performance grid control that scaled to millions of thumbnail images; the WPF team used my findings to produce a white paper entitled 'Improving Scrolling Performance in WPF'. Also implemented a 'Seadragon-lite' 3D image viewer in pure WPF, and redesigned the pixel pipeline to support integration of a hardware-accelerated RAW image decoding and bitmap editing library. After Moab, worked on an image-sharing application for Xbox 360, Silverlight visualizations of Bing Twitter search results, and an ASP.NET application for rapidly building web content.
Worked on an industry-leading photo management application, iView Media Pro (C++, Win32/Mac). Implemented thread manager for managing background tasks on Windows and Mac, worked on Windows GUI to bring feature parity with Mac version, and fixed bugs.
Worked with external game development partners from due diligence through production. Supervised initial design and spec production, provided ongoing guidance, evaluation, and coding support in development cycle. Key titles included a next-generation, massively-multiplayer PC title, and a title for Xbox 360.
Led a team of 5 programmers to deliver a platformer/adventure title: Lemony Snicket’s A Series of Unfortunate Events. This PS2/Xbox/Gamecube title was published by Activision for simultaneous release with the movie at Christmas 2004. In addition to project coding duties and team management, conducted extensive engine-level modifications, including a complete overhaul of the supplied collision detection system, a reworking of the lighting system, and implementation of a custom memory allocator that featured leak tracking, overwrite detection and support for multiple heaps.
As a member of the Sports Games Group, worked on an unshipped basketball project and NHL Rivals 2004 (both for Xbox). Coding responsibilities included AI, physics, and memory management. In addition, wrote a custom Win32 GUI for Microsoft’s Source Depot source control client (a Perforce variant). This tool was initially used by all of the art teams within the Sports group, then subsequently adopted across internal Microsoft project teams.
Wrote an customized HTML authoring package for the National Geographic Society, running under Silicon Graphics Irix. Created data visualization tools using the SAS statistical analysis system in support of Motorola’s PowerPC production efforts.
Developed programs to acquire images from a digital video camera and perform high-speed image processing before outputting the images to a number of graphic file formats for Windows and X/Motif. In the process, developed various utilities for many operating systems and platforms (SGI Irix, Linux, SCO Unix, MacOS, Windows and DOS) and learned to administer a heterogeneous network of Macintosh, DOS, and Unix computers.