William H. Maddox III
wmaddox3rd AT gmail DOT com
Sr. Software Engineer
Over a decade of professional experience in the development of compilers, software tools, and
programming at the software-hardware interface on both production and pre-production platforms.
Skills and Expertise
- C, C++, Java, Common Lisp, Scheme (extensive programming experience)
- Compilers: parsing, semantic analysis, code generation, optimization
- Static program analysis and verification tools
- Dynamic binary translation and VM-based language runtimes
- Industry-standard PC (x86) platform architecture
- Hardware-level (device driver/kernel) programming and debugging
- Hardware lab procedures and use of test equipment, e.g., PCI and USB bus analyzers
- Implementation of interactive programming environments
- Programming language extensibility and generative programming
San Jose, CA
Sr. Computer Scientist - SW Dev.
with bytecodes and types).
- Co-developer of AVM4 runtime for the Flash Player Next project.
- Currently principal maintainer of the Actionscript VM in the Adobe
Cadence Design Systems,
San Jose, CA
Member of a four-person team building Newspeak, a Smalltalk-derived language
and platform for collaborative networked applications.
(Project terminated and position eliminated in restructuring.)
- Slimmed down the Squeak virtual machine for Newspeak and prepared it for external release.
- Performed preliminary design of VM-level object serialization mechanism to
allow bootstrapping from an empty Squeak VM without a base image.
Mountain View, CA
As member of C/C++ compiler team, contributed to ongoing GCC community
compiler development efforts, including gimple-tuples and LTO (link-time
optimizer) branches. Also performed compatibility testing of application
codebase against new compiler releases.
- Implemented serialization of types and global declarations for LTO.
- Converted optimization passes to new tuples-based IR.
- Corrected issues in Google codebase revealed by new compiler releases.
Santa Clara, CA
Member of the Technical Staff
Implemented enhancements and fixes to Code Morphing Software (CMS) for Crusoe
and Efficeon processors. Implemented validation and optimization tools.
- Developed CMS workaround for USB transfer glitches that had become a major
- Implemented virtualized (CMS-emulated) northbridge configuration and legacy
VGA interface for Crusoe-derived system-on-a-chip.
- Adapted CMS power management code for the new SOC platform.
- Implemented thermal diode calibration mechanism for Efficeon CMS.
- Diagnosed CMS failures during Efficeon bringup and validation.
- Identified a race condition in the Linux kernel pagefault handler as
the actual cause of system failures originally attributed to CMS.
- Extended static pipeline hazard checking tool to check dynamic translations
generated by CMS, closing a significant gap in testing coverage.
- Implemented core infrastructure for link-time “whole program” optimizer;
retained responsibility for core architecture for duration of project.
Technical lead for the JDK reference compiler (‘javac’) in the Java Software
- Transitioned compiler to new purchased codebase, including acceptance
testing, preparing early-access release, and adapting for full command-line
compatibility with previous compiler.
- Coordinated with compiler vendor; relayed bug reports and integrated code
- Directed work of additional half-time engineer working on the compiler.
- Presented compiler roadmap and fielded community feedback at annual JDK
Tools and Libraries birds-of-a-feather session at JavaOne.
Member of the Technical Staff
Member of the ‘javac’ engineering team.
- Evaluated, prioritized, and resolved compiler bug reports. Provided
feedback to users and licensees.
- Corrected numerous failures of reference compiler to conform to published
language specification, allowing company to strengthen conformance testing
of licensee products.
- Coordinated closely with Java specification lead during preparation of
JLS 2e to assure resolution of errors and omissions in the first edition
exposed by bug reports against the compiler.
- Co-authored white paper on the eve of annual JavaOne trade event to counter
- Advised JDK project management team in rotating role of engineering liaison
(“Lead Engineer”) during development of JDK 1.2.2.
Additional Relevant Experience
Graduate Student Researcher, UC Berkeley
- Designed and implemented incremental “on-the-fly” static semantic
analyzer for language-based programming environments. System translated
declarative specification of constraints into an executable analyzer.
Dissertation available online.
- Developed extensible language and compiler permitting user-definition of
additional language constructs while retaining robust error reporting and
Report available online.
Research Programmer, Carnegie-Mellon University
- Designed and implemented code generator for an Ada compiler.
- Developed attribute grammar evaluator generator for static semantic
analysis in a transformation-based programming environment.
- Doctor of Philosphy, Computer Science, University of California, Berkeley
- Master of Science, Computer Science, University of California, Berkeley
- Bachelor of Science, Applied Mathematics, Carnegie-Mellon University, Pittsburgh
- Member Association for Computing Machinery
- Member IEEE Computer Society
- Awarded AT&T Bell Laboratories Scholarship
- Avid collector of vintage minicomputers from the 1960s and 1970s