Brian Sharon

GitHub @floatplane
LinkedIn bsharon
Twitter @floatplane

Experience

FiftyThree

Engineer May 2014 - Jul 2016

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.

  • Rich text editor in Paper 3: seamlessly integrated UITextView into an OpenGL app, handled snapshotting and render to texture for animated scene transitions, built serialization engine (Objective-C++, C++, OpenGL)
  • Built service to store, index and retrieve large binary objects in S3. Developed the node.js server, as well as client wrappers for native and web. (node.js, ES6, Objective-C++)
  • Built backup and restore flow for Paper data. Periodic backups were sent to the cloud. Users could choose from a list of checkpoints from which to restore, at which point network errors and retries were robustly handled to avoid data loss. (Objective-C++, C++)
  • Rebuilt a Python tool to auto-generate C++ model classes from JSON Schema definitions. The classes robustly perform 2-way JSON serialization and enforce data constraints expressed in the schema. Available at https://github.com/FiftyThree/js2model. (Python, C++)
  • Wrote a Git plugin to enforce clean merges of GitHub PRs, automating a tedious and error-prone process for maintaining a linear history in our Git repository's master branch. Available at https://github.com/floatplane/git_pr. (Ruby)

PicMonkey

Principal Engineer Feb 2012 - May 2014

Truly full-stack engineer on a team of three, building a website serving more than 30M visitors per month.

  • Built rich text tool inside our image editor, leapfrogging competitors by supporting dynamic loading of fonts and multiple style runs in a single block of text (ActionScript).
  • Made PicMonkey the first online image editor to support embedded color profiles (ActionScript/C++).
  • Implemented responsive re-design of homepage. New site loads more quickly, performs better in SEO and drives improved conversion rate (JavaScript/CoffeeScript/Sass/Bootstrap 3).
  • Implemented PayPal as a new payment option for PicMonkey subscriptions, driving a 20% lift in revenues (JavaScript/Python).
  • Improved SEO by taking help pages stored in desk.com and hosting them locally. Spun up ElasticSearch cluster, configured via Chef, for indexing and search (Python/Ruby/JavaScript/EC2).
  • Extensive experience using Chef to provision and update machines in the cloud, including writing custom cookbooks. Experience managing EC2 instances via the dashboard and command-line.
  • End-to-end implementation of photo sharing feature, which allows users to upload images to S3 and creates a unique webpage that can easily be shared via email or social networks (Python, JavaScript, ActionScript).
  • Implemented PicMonkey Facebook app, averaging 5.5M views/month (JavaScript/Backbone.js).

Google

Senior Software Engineer Aug 2010 - Feb 2012

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).

  • Performed large refactoring of legacy codebase to break a monolithic Flash application into individual modules that could be loaded on demand, resulting in 2x load time improvement.

Jambool/Social Gold

Senior Software Engineer Jan 2010 - Aug 2010

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.

  • Jambool was acquired by Google in August 2010

Microsoft

Senior Software Development Engineer Aug 2006 - Jan 2010

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.

  • Received Gold Star award, 2008

iView Multimedia

Software Engineer May 2006 - Aug 2006

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.

  • iView Multimedia was acquired by Microsoft in August 2006

Microsoft

Development Lead Dec 2004 - Jul 2005

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.

Amaze Entertainment

Lead Engineer Sep 2002 - Dec 2004

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.

Microsoft

Software Design Engineer Sep 2001 - Sep 2002

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.

Human Code

Director of Tools and Technology Jun 1996 - Sep 2001

As director, led team of 6 programmers responsible for Human Code’s game engine development and support. The team developed an engine that was high performance and highly reusable, while remaining stable, easy-to-use, and portable to Win32, PlayStation 2, and MacOS. Over a 3 year period Human Code shipped 11 titles using this engine and never missed a ship date. Also performed duties of a company director including proposal writing, sales support, personnel management and budgeting. Earlier projects at Human Code included leading the programming team on Human Code’s first C++ game; authoring XtraNet, a cross-platform (Win32/Win16/MacOS) C++ library of TCP/IP tools for Macromedia Director and Shockwave; building a web-based game using HTML and JavaScript; and developing assorted tools for internal use.

JJT Consulting

Consultant Jun 1995 - Jun 1996

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.

Stokes Imaging Services

Software Engineer Jun 1992 - Jun 1995

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.

Volunteering

Ada Developers Academy

Teaching Assistant Oct 2017 - Present

Ballard Youth Soccer Club

Head Coach Jun 2009 - Jun 2016

Education

Carnegie Mellon University

Sep 1989 - Jan 1991
Master of Science - Physics

Trinity University

Sep 1985 - Jun 1989
Bachelor of Science (cum laude) - Physics