David Abrahams' Resume

Qualifications

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

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:

  • 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.

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.
  • 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

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

The Boost C++ Metaprogramming Library | [as PDF] [as single HTML], with Aleksey Gurtovoy, Presented at the ACCU Spring Conference, 2003

Effects of Metaprogramming Style on Compilation Time With Carlos Pinto Coelho, 2001.

Policy Adaptors and the Boost Iterator Adaptor Library With Jeremy Siek, 2001. Accepted into the C++ Template Workshop at OOPSLA 2001.

Boost Coding Guidelines With Nathan Meyers, revised 2001. Accepted pending final revision.

Generic Programming Techniques With Jeremy Siek, revised 2001.

Error And Exception Handling Revised 2003

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.

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

Nicolai M. Josuttis, The C++ Standard Library, Addison Wesley, Reading, MA, 1999, ISBN 0-201- 37926-0. Technical reviewer.

Herb Sutter, Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions, Addison Wesley, Reading, MA, 2000, ISBN 0-201-61562-2.

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