web: | https://chadaustin.me |
---|---|
email: | chad @ above domain |
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.
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.
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.
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.
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.
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.
Fixed accessibility and internationalization bugs. Implemented an audio decoding and playback system for the Mozilla Media Player (internal prototype).
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.
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.
One of the world's fastest production-worthy JSON decoders.
Programming language, emphasizing human factors and a sound but syntactically light type system, that compiles to JavaScript.
Extremely high-performance binary data, UTF-8, and JSON encoder for Haskell.
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.
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.
Cross-platform, cross-language image loading and saving library. Used in several games, emulators, and desktop applications.
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.
CppCon 2014 | Embind and Emscripten: Blending C++11, JavaScript, and the Web Browser [video] |
---|---|
GDC China 2013 | Multiplatform C++ on the Web with Emscripten |
GDC 2013 | Multiplatform C++ on the Web with Emscripten |
SVCC 2011 | Survey of Web-Based 3D Technologies |
GDC 2011 | HTML5: The New UI Library for Games |
chadaustin.me | Long-time blog about various technical and project management topics. Thousands of unique visitors per month. |
---|---|
HTML5 Game Development Insights | Coauthor. Wrote chapter describing how to port a C++ game to run in web browsers with Emscripten and WebGL. |
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.
Programming languages, compilers, graphics, computational geometry, technical writing, virtual reality, linguistics, and economics.