Currently a Senior Staff Software Engineer on Google’s Android team. Extensive experience with dynamic translation and just-in-time compilers. Co-author of Android JIT compiler used on more than a billion devices worldwide, and lead developer of the ahead-of-time compilation system at the heart of the new Android Runtime (ART). Previously worked on Transmeta’s Code Morphing System, and was the technical architect of Hewlett-Packard’s strategy of using dynamic binary translation to migrate PA-RISC applications to Itanium platforms.
Sep 2008 - present: Google/Android
Lead developer for the Android Runtime (ART) Quick Compiler, an ahead-of-time compiler that replaced the Dalvik JIT in the Android Lollipop release. Google I/O 2014 Keynote.
Co-developer (with Ben Cheng) of the Dalvik JIT that powers Android applications. Introduced in the Froyo release, the JIT improved Android application performance up to 5x. Talk on the JIT at Google I/O 2010.
March 2002 - Sep 2008: Hewlett-Packard
Senior Research Scientist, HP Labs. Explored application of compiler and dynamic translation techniques to the imaging pipeline of high-end industrial presses. Examined applicability of GPUs to meet the huge real-time processing requirements of HP's Indigo high-speed digital presses. Significantly improved the throughput of high-speed drum-based ink-jet industrial printer by adapting instruction scheduling algorithm to control page start based on ink density/drying time.
Sep 1998 - March 2002: Transmeta Corporation
Senior Software Engineer. Worked on Transmeta's "Code Morphing" system, which translated x86 code to VLIW instructions on the fly. In particular, I developed the x86 profiling interpreter and "safety net" and was the co-developer of an experimental Forth-like hybrid interpreter/compiler.
Nov 1996 - Sep 1998: Hewlett-Packard
Dynamic Optimization Architect. Technical lead of a 20-member compiler lab that sought to productize a JIT-like system that would continually profile and re-optimize running programs on server systems. The team produced a functional prototype that delivered small (5-15%) gains, but not enough to productize. Most of the key team members eventually ended up at VMware and Transmeta.
Sep 1993 - Nov 1996: Hewlett-Packard
Software Engineer. Proposed, designed and led development of HP's strategy to use dynamic translation for migrating legacy PA-RISC applications to Itanium systems. Additionally, as a side project converted prototype dynamic translator into "Dr. Pat" - a dynamic instrumentation framework similar to todays' Valgrind. Served as the HP representative on the joint HP/Intel Itanium architecture design team's software migration subgroup.
Aug 1984 - Sep 1993: Hewlett-Packard
Software Engineer. Various projects including developing techniques for debugging of optimized code, RISC code generation, ports of Ada and Cobol compilers and development of "Millicode" run-time support routines.
As a hobby project, I designed and built a computer (including the CPU) out of TTL devices. I also built a complete C tool chain for it, ported the old Minix operating system and currently leave it attached to the internet where it serves web pages and supports open telnet sessions. It's been the subject of several Slashdottings, won Best of Show at a Vintage Computer Festival, took an Editor's Choice award at the 2009 Maker Faire and was featured in ExtremeTech magazine. The computer, Magic-1 is here and details of the project can be found at my hobby website: http://www.homebrewcpu.com.
Computers are a second career for me. I started writing sports stories for my local newspaper in the early 70's, then went on to get a journalism degree and ended up as the managing editor of a small daily newspaper in Kansas (the Parsons Sun). At the time, small newspapers were early adopters of computer technology for typesetting and text editing. I got interested in the possibilities of electronic news delivery, so I quit my job to return to school to learn more about computers. Somehow, I ended up at Google.
Awarded 31 US patents, with a handful still in the pipeline.
Two of my patents were featured by Microprocessor Report's "Patent Watch" column, an industry report highlighting interesting inventions:
Other US patents:
M.S. Computer Science, University of Kansas, 1984
B.S. Journalism, University of Kansas, 1980