Chad Austin
web:https://chadaustin.me
email:

Summary & Objective

I want to build things that matter -- not work on technology for its own sake.

My ideal job is working with a close team of bright and diverse people on consumer-facing software I care deeply about, while developing technology that pushes the state of the industry forward.

What I bring to the table is years of experience leading teams, a background in human factors and usability, and experience with a wide range of technologies: 3D graphics, build systems, compression, UI architecture, high-performance backends, and application development on Windows, iOS, and the web. I'm just as happy slinging bits in assembly language as I am writing high-level Python or Haskell.

Experience

Dropbox
2015 - Present

Founding member of product prototyping team, building experimental products for knowledge worker collaboration. Shipped on web, iOS, macOS, and Electron on Windows. Implemented cross-app authentication and integration with Dropbox Paper. Drove our emphasis on performance and interactivity - for example, to reliably hit low input latencies, I built performance monitoring tools for React. Owned the web frontend build stack and kept edit-to-refresh time under 3 seconds. Built a React-style collection diffing engine in Swift for iOS and macOS. Gave two well-received internal presentations on engineering for performance.

IMVU
2005-2015

Technical Director

My role was to define and implement an overall technical strategy for an engineering team of 50 engineers to meet IMVU's long-term product goals. To that end, I led the transition of the bulk of our engineering team from Python and C++ to web technologies, both in the desktop client (where we embedded Firefox) and on the website. I led the team that built the JavaScript frontend tooling, test suite, module loader, and MVC framework.

Led the adoption of Emscripten for our 3D engine, starting in 2012. Authored Embind, an efficient C++ API for exposing C++ as a JavaScript interface. Designed and implemented the first version of the high-performance 3D user-generated content optimization and delivery server. Led the team that implemented 3D mesh and animation compression for user-generated content, reducing it by 50-70% and fitting the typical scene in 5 MB and a 5s load time tolerance.

Once Haskell arrived at IMVU, I socialized the new technology and helped train engineering by running classroom tutorial sessions that emphasized building web services, not theoretical ideas. Wrote BufferBuilder, the fastest JSON encoder available in Haskell.

Served as a primary interviewer, sometimes conducting 8 interviews a week. Recruited at universities and job fairs.

Technical Lead

Implemented and drove the adoption of Python coroutines for asynchronous code, dissolving swaths of subtle asynchronous programming bugs. Served as tech lead of 8-engineer team that implemented IMVU's HTML-based UI, which immediately improved revenue 10%, led to profitability, and significantly improved engineering productivity and customer usability. Tripled 3D rendering frame rate, significantly reduced client's memory consumption, implemented constant refinements to our Scrum development processes, and improved automated testing best-practices. Advocated open source participation, releasing key components as open source [GitHub and SourceForge] and submitting changes to existing projects upstream: Python, Mozilla, SCons, Cal3D.

First Engineering Hire

As an early startup employee, I wore many hats. I managed releases, implemented continuous integration, implemented unit testing and acceptance testing across multiple languages and products, communicated with customers, debugged cluster failures as on-call operations engineer, implemented build systems, wrote Direct3D renderer, built new features from vague customer needs, helped scale our backend to support millions of customers, and built marketing tools. 1/3 of the early engineering team stemmed from my referrals.

Virtual Reality Applications Center
2002 - 2005

Under Dr. Dirk Reiners

OpenGL GPU performance analysis tool for automatically optimizing scene graphs to render efficiently on the current hardware and driver combination. OpenFlight model loader for the OpenSG scene graph.

Under Dr. Adrian Sannier

Netscape
Summer 2001

Fixed accessibility and internationalization bugs. Implemented an audio decoding and playback system for the Mozilla Media Player (internal prototype).

Vermeer Manufacturing
1998 - 2001

Wrote manual for automatic horizontal directional drill planning software. Developed GUI and communication components in C++ for embedded drill controller running on Windows CE. Implemented communication protocol over RS-232 for reading data from GPS and ground-penetrating radar.

Open Source

Is It Snappy?

iPhone app for measuring input-to-output latency with the 240 Hz camera. Simply record a button press and the screen in the same video and use frame-accurate scrubbing to determine the time delta between the events.

sajson

One of the world's fastest production-worthy JSON decoders.

Crux

Programming language, emphasizing human factors and a sound but syntactically light type system, that compiles to JavaScript.

buffer-builder

Extremely high-performance binary data, UTF-8, and JSON encoder for Haskell.

Audiere

Cross-platform, cross-language sound library. It was used in the rerelease of Funcom's The Longest Journey and several indie, shareware, and small-market titles.

SCons

I was a member of the original team on the SCons project, one of the first build systems that emphasized reliability and reproducibility. IMVU deployed client releases from incremental builds and I can count on one hand the number of times this went wrong.

Corona

Cross-platform, cross-language image loading and saving library. Used in several games, emulators, and desktop applications.

Sphere

2D role-playing game engine and editor. It had tile-based graphics (with primitive 3D support) and embedded Mozilla's JavaScript engine for scripting. Managed an online community of a couple hundred active indie game developers.

Speaking

CppCon 2014Embind and Emscripten: Blending C++11, JavaScript, and the Web Browser [video]
GDC China 2013Multiplatform C++ on the Web with Emscripten
GDC 2013Multiplatform C++ on the Web with Emscripten
SVCC 2011Survey of Web-Based 3D Technologies
GDC 2011HTML5: The New UI Library for Games

Writing

chadaustin.meLong-time blog about various technical and project management topics. Thousands of unique visitors per month.
HTML5 Game Development InsightsCoauthor. Wrote chapter describing how to port a C++ game to run in web browsers with Emscripten and WebGL.

Education

Iowa State University
2004 - 2005
M.S. in Human Computer Interaction

Sense and perception, the psychology of human memory, design and usability, and computer graphics. My Master's thesis describes the implementation of a functional staged-computation GPU language.

Iowa State University
1999 - 2003
B.S. in Computer Science

Programming languages, compilers, graphics, computational geometry, technical writing, virtual reality, linguistics, and economics.

Extra
Last updated April 2017. Latest version available at https://chadaustin.me/resume