++++++++++++++++++++++ David Abrahams' Resume ++++++++++++++++++++++ ============== Qualifications ============== - Software Development since 1987 through full product life cycle including design, implementation, and maintenance - Internationally recognized computer scientist participating in ANSI/ISO C++ standardization. - Expert in rapid production of reliable, verifiable, exception-safe, maintainable code in large projects, with high efficiency and small footprint. - Leader in the open-source community ========== Technology ========== C++/C (Microsoft Visual C++, GCC, Metrowerks CodeWarrior, Intel C++, Comeau C++, KAI C++, HP aCC, Sun CC, Borland C++), STL, Python, Linux, Windows 2000/NT, Windows 95, Windows 3.1, Unix/Linux, MacOS, Lex/Yacc, PostScript, Lisp, Pascal, Forth, APL, Basic, various assembly languages. Emacs, CVS, Projector, Perforce, SourceSafe, make, Jam/MR. Object-oriented design, generic programming, template and preprocessor metaprogramming, expression templates. Realtime, interrupt-driven, and embedded systems. ========== Experience ========== 2001-Present Principal and Founder, `Boost Consulting`_, Somerville Massachusetts ================================================================================= .. _Boost Consulting: http://www.boost-consulting.com Since our inception, `Boost Consulting`_ has delivered software development, course material, and consulting services to major companies and research institutions, including `Fortress Investment Group`_, `Mentor Graphics`_, `Lawrence Berkeley`__ and `Lawrence Livermore National Laboratories`_, and `Microsoft Corporation`_. Our strengths include: __ `Lawrence Berkeley National Laboratories`_ - Proprietary software development - Open-source software development focused on the `Boost`_ libraries and tools like the `Boost.Build`_ system. - Training in the use of Boost libraries, and in powerful techniques such as generic programming, template metaprogramming, and hybrid development with compiled and interpreted ("scripting") languages - Consulting on software architecture, refactoring, the design and use of domain-specific languages, and development process. For more information please, visit `our website`__. __ `Boost Consulting`_ .. _Lawrence Berkeley National Laboratories: http://www.lbl.gov .. _Lawrence Livermore National Laboratories: http://www.lbl.gov .. _Fortress Investment Group: http://fortressinv.com .. _Mentor Graphics: http://mentorg.com .. _Microsoft Corporation: http://microsoft.com .. _Boost: http://www.boost.org 2001 Software Architect, Altra Broadband, Inc., Burlington, MA ============================================================== - Developed high-performance cross-platform numerical simulation components, designed for adaptability and reuse. Targeted Windows 2000 and Linux with GCC, Metrowerks CodeWarrior, Comeau, and Intel compilers. - Produced automated MATLAB/Mex interface for testing C++ simulator components. - Developed a flexible multi-compiler multi-platform build/test system using Jam/MR, C, and Yacc. - Fully trained a group of scientists, some with no C++ experience, in advanced OO C++ design, STL, generic programming, and template metaprogramming. - Set up and administered CVS source code control. - Provided emacs programming and support. 1998-2001 Senior Engineer, Dragon Systems, Inc., Newton, MA =========================================================== - Developed speech recognition/transcription solutions for handheld devices running embedded Linux, GCC, Microsoft Visual C++, STL, and Python on ARM/StrongARM processors. Also targeted Windows NT and x86 Linux for development. - Developed high-performance natural language parsing/interpretation system using C++ and Python. - Developed open-source `Python/C++ binding system`__ used to build hybrid systems quickly. __ http://www.boost.org/libs/python - Developed cross-platform IPC library for Win32 and Linux. - Responsible for teaching C++ language, style, and techniques. - Contact point for C++ toolchain contract with Cygnus Solutions/RedHat. - Assumed management responsibility during project leader's frequent trips. 1988-1998 Mark of the Unicorn, Inc., Cambridge, MA ================================================== During 11 years at Mark of the Unicorn, I had several overlapping responsibilities 1988-1998 Project Leader, Mosaic Team ------------------------------------- - Developed Music Notation software in C++ for MacOS (Composer's Mosaic - demo available at http://www.motu.com). Had sole responsibility for product design and implementation. - First release rated 4.5 out of 5 mice by MacUser magazine - Used for the 1996 Summer Olympics, the Academy Awards, Barbara Streisand in concert, and major motion pictures - Acquired dedicated user base of professional composers and copyists - Development included an object-oriented GUI framework and real-time interrupt code, some 68040 assembly languages 1996-1998 Programmer, Digital Performer Team -------------------------------------------- - Participated in major redesign of fundamental program structures - Designed and implemented high-level intelligent editing features - Enhanced usability and stability - Designed features that were introduced in 3 product releases. 1993-1995, Researcher/Cross-Platform Engineer, FreeStyle Team ------------------------------------------------------------- - Designed and implemented industry-leading technology for real-time piano music transcription (FreeStyle: an interactive music writing tool - demo available at http://www.motu.com). - Transcription abilities called "the best we've ever seen" by Keyboard magazine, November 1994. - FreeStyle rated best overall in Future Music MIDI sequencer shootout, June 1995. - Developed object-oriented cross-platform (Mac OS/Windows) application framework in C++, including imaging, windowing (GUI), printing, event handling, and text processing. Compilers: Metrowerks CodeWarrior, Borland C++. Some x86 assembler. - Achieved 99% common code base in the main application. ================================================== Additional Experience and Professional Development ================================================== Editorial Board of C/C++ User's Journal, 2003 ============================================= - Staff technical expert - Review articles for relevance and technical correctness - Contribute to overall direction of magazine. ANSI/ISO C++ Language Committee, 1996 - Present =============================================== - Active contributor in library, performance, and evolution working groups steering the direction of the C++ language. - Pioneered a system for understanding program reliability and error recovery. Developed the first exception-safe implementation of the C++ Standard Template Library (STL) as an extension of the SGI STL, and an exception-safety verification suite. - Became a recognized expert on the C++ standard and exception-safety. - Authored formal specification of exception-safety in the C++ standard library. Boost C++ library group (http://www.boost.org) ============================================== Boost is a highly respected peer-reviewed, collaborative open-source C++ library development effort. It is a successful example of bazaar-model development, where developers worldwide participate, contribute, and learn at many levels. 1998-Present, Moderator ======================= Provide guidance, set policy, and established tone of discussions for 1600-member development group. 1998-Present, Developer ======================= Major contributions include the following libraries and tools: - `Boost.Python`__ - Easily interfaces C++ classes and functions with the Python programming language. - `MPL`__ - High-level Template Metaprogramming framework for compile-time computation - `Iterator Adaptors`__ - Automates construction of standard conforming iterators and adaptors - `Operators`__ - Supplies operator definitions for arithmetic classes and iterators - `Conversion`__ - Supplying numeric, polymorphic, and lexical casts - `Utility`__ - Adds simple but important missing functionality to C++. - `Boost.Build`_ - Platform and toolset-independent modular build system for large projects __ http://www.boost.org/libs/python/doc/index.html __ http://www.boost.org/libs/mpl __ http://www.boost.org/libs/utility/iterator_adaptors.htm __ http://www.boost.org/libs/utility/operators.htm __ http://www.boost.org/libs/conversion/index.htm __ http://www.boost.org/libs/utility/utility.htm .. _Boost.Build: http://www.boost.org/tools/build PUBLICATIONS ============ `Building Hybrid Systems with Boost.Python`__ | [as PDF__], With Ralf Grosse-Kunstleve, Presented at the `ACCU Spring Conference`_, `Python UK`_, and `PyConDC`_, 2003. An excerpt to be published in a forthcoming issue of `C/C++ User's Journal`_ __ http://www.boost.org/libs/python/doc/PyConDC_2003/bpl.html __ http://www.boost.org/libs/python/doc/PyConDC_2003/bpl.pdf .. _`C/C++ User's Journal`: http://www.cuj.com .. _`ACCU Spring Conference`: http://www.accuconference.co.uk/prog.asp .. _`Python UK`: http://www.python-uk.org/ .. _`PyConDC`: http://www.python.org/pycon/ `The Boost C++ Metaprogramming Library`__ | [as PDF__] [as single HTML__], with Aleksey Gurtovoy, Presented at the `ACCU Spring Conference`_, 2003 __ http://www.boost.org/libs/mpl/doc/paper/html/index.html __ http://www.boost.org/libs/mpl/doc/paper/mpl_paper.pdf __ http://www.boost.org/libs/mpl/doc/paper/mpl_paper.html `Effects of Metaprogramming Style on Compilation Time`__ With Carlos Pinto Coelho, 2001. __ http://users.rcn.com/abrahams/instantiation_speed/index.html `Policy Adaptors and the Boost Iterator Adaptor Library`__ With Jeremy Siek, 2001. Accepted into the C++ Template Workshop at OOPSLA 2001. __ http://www.oonumerics.org/tmpw01/abrahams.pdf *Boost Coding Guidelines* With Nathan Meyers, revised 2001. Accepted pending final revision. `Generic Programming Techniques`__ With Jeremy Siek, revised 2001. __ http://www.boost.org/more/generic_programming.html `Error And Exception Handling`__ Revised 2003 __ http://www.boost.org/more/error_handling.html `Exception Safety In Generic Components`__ M. Jazayeri, R. Loos, D. Musser (eds.): `Generic Programming, Proc. of a Dagstuhl Seminar`__, Lecture Notes on Computer Science 1766, for the Dagstuhl Conference on Generic Programming, Wadern, Germany, 1998. __ http://www.boost.org/more/generic_exception_safety.html __ http://www.springer.de/cgi-bin/search_book.pl?isbn=3-540-41090-2 Acknowledgements in leading C++ texts ===================================== Bjarne Stroustrup, *The C++ Programming Language* - Special Ed, Addison Wesley, Reading, MA, 2000, ISBN 0-201-70073-5. Technical reviewer for `exception-handling chapter`__ __ http://www.research.att.com/~bs/3rd_safe0.html Nicolai M. Josuttis, `The C++ Standard Library`__, Addison Wesley, Reading, MA, 1999, ISBN 0-201- 37926-0. Technical reviewer. __ http://www.josuttis.de/libbook/index.html Herb Sutter, `Exceptional C++`__: 47 Engineering Puzzles, Programming Problems, and Solutions, Addison Wesley, Reading, MA, 2000, ISBN 0-201-61562-2. __ http://www.gotw.ca/publications/xc++.htm ========= Education ========= 1986, University of Pennsylvania BSE in Computer Science Engineering, Cum Laude. 1987, Carnegie Mellon University, Computer Science PhD program 1988, Berklee College of Music, Jazz Composition program