305 Bennington St
San Francisco 94110
USA
Telephone: +1-415-6014661
e-mail: sam@superduper.net
e-mail: sbc@google.com
e-mail: samo@debian.org
I am dedicated to building platforms and tools that allow more code to run in more places. From building one of the first open source mobile operating systems, to enabling PlayStation games to run on Nokia phones, to enabling C/C++ to run securely on the Web (Emscripten), I have more than 20 years of professional experience building compilers, toolchains and SDKs.
Senior Software Engineer — Google Inc. (San Francisco, USA)
July 2012-present
Working on WebAssembly tooling and standards as part of the v8/Chrome team. Primary maintainer of Emscripten, the toolchain used to bring C/C++ applications to the Web. Contributor to the WebAssembly LLVM backend. Creator and maintainer of the WebAssembly linker (wasm-ld), which is part of the LLVM project. Many contributions to wabt and binaryen, two of the most popular tools for WebAssembly manipulation and optimization.
Active in the WebAssembly standards process and champion of two proposals that are now part of the WebAssembly standard: Memory64 (which enables access to memories larger than 4GiB) and Extended Constant Expressions (which allows for more expressive initialisers).
Prior to 2015, worked on the Native Client (NaCL) toolchain and SDK. This was the native code sandbox in Chromium the preceded WebAssembly. Primary maintainer of the naclports project, comprising over 200 ports of open source projects to Native Client.
Key Engineer/Head of Innovation — Ideaworks3D (London, UK) (San Francisco, USA)
January 2004-June 2012
Ideaworks3D was a technology company and game development studio that brought many AAA game titles to mobile including Call of Duty, Metal Gear Solid, Tony Hawk's Pro Skater, Tetris, Game of Life, Tomb Raider, Need for Speed and The Sims. We won several industry awards including the two BAFTAs.
Led development on the core runtime of the Marmalade SDK. This was a platform abstraction technology which powered many mobile games of the time. The technology allowed a single native binary to be executed on any operating system. This enabled apps to be written once, against a standard API and deployed to all platforms without porting or recompilation. Targets included iOS, Android, WebOS, Symbian, Winmobile, and more.
Lead engineer on Airplay Online, the network protocol and server technology that enabled many successful games both in-house and third-party. Developed fast, scalable server application using C++/Linux/pthreads and utilising embedded Python or Java for highly customisable online game behavior. Developed and maintained the Airplay Online server cluster.
Senior Software Engineer — Transvirtual Technologies Inc. (San Francisco, CA)
August 2000-December 2001
Worked primarily on the XOE (previously PocketLinux) project, an operating system for PDAs and other resource constrained devices. XOE was open source, build on Linux, Java, and XML, with the goal allowing app developers to write as much as possible, including application logic and presentation layer, in XML. Work included Linux kernel programming, and JVM internals. Also responsible for building cross compiler toolchains and creating embedded Linux images.
Many of the ideas we developed for PocketLinux are visible today in the Android OS, which bears a striking resemblance.
Field Applications Engineer — MathEngine Inc. (Oxford, England and San Francisco, CA)
August 1999-July 2000
Worked with customers to bring realistic physics to the next generation of games. Involved coding in C/C++ targeting next generation gaming platforms. Created and maintained Linux port of MathEngine products. Worked on one of the Japanese PS/2 launch titles.
30 years of programming experience and Linux specialisation.
Extensive experience with C/C++, Python and JavaScript. Professional experience also includes C#, Java, Ruby, OpenGL/GLES, SQL, CMake/make/autoconf, sh/bash, XML/SGML.
Debian user since 2000. Retired Debian developer (package maintainer).
When I'm not at my computer I enjoy sailing, snowboarding and riding electric unicycles. I also love to play chess, although not very well.