Allen Holub

Expert in:

The Design, Architecture, and Implementation of Computer Programs.
Design & Process Training & Mentoring
Technical Due Diligence


Allen's primary focus in the last few years has been on helping companies be successful in their software-development efforts (and in a few cases, actually building the software). His motivation is frustration; having seen too many companies fail outright or lose millions though failed software efforts. The frustration comes from knowing that these failures are easily avoidable when the company has even a little help.

Having worked as a CTO, software architect (in the sense of a designer of software), programmer, educator, and author specializing in object-oriented design and languages (including Java and C++), Allen is in a unique position to assess and improve both the software itself and the software-development process. He's skilled at helping executives, managers, and programmers get and stay on track.

Here's Allen's detailed C.V. in .pdf format.

Technical Background

Allen has worked in the computer field since 1979—as an independent consultant since 1983. He started out as a hardware engineer, developing robotics control systems—his first software projects were device drivers for his own boards—but the software eventually preempted the hardware. He moved into software by developing compilers and operating systems, and is now an acknowledged expert in OO design and both systems and application development. His software projects have included:

Allen has been an active participant in the open-source community, publishing large amounts of useful source code in books and in the various magazines to which he's contributed over the years. Much of his published code has found its way into commercial products such as the Rogue Wave C++ tool kit and the libraries accompanying the Borland C and C++ compilers.

Allen was an early adopter of Java—programming in it since 1995 (the language was released by SUN in March of that year). Before that, Allen worked primarily in C++ (since 1991), C (since 1980), and various other obscure and now-irrelevant languages (Smalltalk; FORTAN; PL/M; PL/1; Pascal; Modula; 8080, 8085, 68000, and TI 9900 assembler; and the like.)

Allen is one of the foremost experts in Object-oriented Design techniques. He has been a strong public advocate of the design process, in both his public writings and in his teaching work. Over the years, he's helped thousands of programmers work more effectively by showing them "how it's done." An important part of his practice involves training, mentoring, and guidance to companies who wish to apply Object-Oriented design techniques and processes to computer-software development. These sort of technology-support services range from on-site instruction to regular design and code review.

Allen has provided consulting and educational services to many companies, both in the San Francisco Bay Area, across the country, and internationally.

Teaching

Allen is a highly regarded educator. He regularly teaches in-house classes for individual companies, and has taught for the University of California, Berkeley, Extension since 1982. He's taught various topics, including Object-Oriented Analysis and Design, Java, C++, C, Compiler Design, Win32 Systems Programming, and Microsoft Foundation Class Programming. He regularly receives accolades from his students, who represent most of the major software companies in the Bay Area.

Allen is a regular presenter at the Software Development conferences, and presented at Sun's JavaOne conference in 1999 (covering the Java threading model). His Software-Development presentations include the Java VM and security model and OO architectures for developing user interfaces.

Writing

Allen is a Contributing Editor for the on-line magazines JavaWorld (Java Toolbox) and SD Times (Java Watch). He wrote the OO Design Process column for IBM DeveloperWorks and has moderated several public forums (including the ITworld Programming Theory & Practice Forum). His articles have championed the OO-design process, and have opened many readers eyes to what the term "object oriented" really means. Allen was a contributing editor for Dr. Dobb's Journal, Dr. Dobb's Sourcebook, and Programmer's Journal. His popular "C Chest" column, which appeared monthly in Dr. Dobb's Journal from 1983 to 1987, provided many people with their first introduction to C. Allen has also written for Microsoft Systems Journal, Programmers Journal, BYTE. Windows Tech Journal, Mac Tech Journal, C Gazette and others.

Allen's many published books include:

Many of his books appear in Japanese, German, and Russian translation.

Learn to Fly

Education, Etc.

Allen holds an Bachelor of Arts degrees in Computer Science and Medieval-European History (or "mid-evil" history, as his D&B rating used to say) from the University of California, Berkeley. Allen is an accomplished composer and musician (keyboards and percussion, styles ranging from "minimalism" to jazz/funk), He's also an oil painter (post impressionist), and an avid pilot (instrument-rated commercial).

[Top]