31 Blueberry Lane, Wilton, NH 03086 • 603-654-6474 •
I am an expert in the C++ programming language, including generic programming and parallel programming. I have written a book on the C++ standard library, am a member of the ISO C++ committee, and have implemented portions of the STL using advanced generic-programming techniques. I am also skilled in large-scale, component-based development, including clear documentation, unit testing, and frequent code review. Most of my recent experience has been in language and runtime design for parallel programming systems, with previous experience in network-management and system software. I have team leadership experience and would welcome team lead responsibilities, but I do not wish to be a pure manager.
Language and runtime library design for parallelism, reusable component development in C++, unit testing strategies, the C++ standard library.
Strong verbal and written communications skills, team leadership, testing methodologies, large-scale development methodologies, embedded systems, compiler technologies, generic software design, networking technologies, software tools.
Languages & Technologies
Book: The C++
Standard Library from Scratch, Que Publishing,
Conference talks and papers:
Work Stealing, CppCon 2015, Bellevue WA.
Overview of Parallel Programming in C++, CppCon 2014, Bellevue WA.
Decomposing a problem for Parallel Execution, CppCon 2014, Bellevue WA.
Reducers and other Cilk++ Hyperobjects, Voted best paper, SPAA 2009, Calgary, Canada
Reconsidering the STL Allocator Model, C++ Connections 2005, Las Vegas NV
Sample of C++ Standards Proposals and papers:
P0076 Vector and Wavefront Policies (proposal accepted in 2016).
P0155 Parallel Task Blocks (proposal accepted in 2015)
N4238 An Abstract Model of Vector Parallelism (white paper presented in 2014)
N3916 Polymorphic memory resources (proposal accepted in 2014)
N3068 Equality Comparison for Unordered Containers (proposal accepted in 2010)
N2554 The Scoped Allocator Model (proposal accepted, with changes, in 2008)
Article: M and Robotics, with Max Rivers and James Poitras, M Computing, April, 1995.
· Coordinated the design and evolution of parallel programming languages across the suite of parallelism technologies at Intel. Guided teams to ensure that new language syntax and library APIs remain simple and consistent with the language being extended (C, C++, Fortran, or OpenMP).
· Refactored and documented the Cilk parallel runtime scheduler in preparation for open-source release as part of gcc 4.9 and (eventually) Clang/LLVM.
· Gained acceptance for a number of parallelism-related features as a member of the ISO C and C++ standards committees.
· Prototyped proposed-standard parallelism features in the Clang compiler front end.
· Designed and delivered trainings on Cilk Plus and parallelism, both internally and to customers.
· Guided language design to ensure that Cilk++ (an extension of C++ for multicore computing) remained consistent with the rest of the C++ language and library.
· Implemented parallel loop construct in the Cilk++ compiler front-end for Windows.
· Contributed to all aspects of the highly-efficient Cilk++ work-stealing scheduler.
· Implemented and evolved the Cilk++ reducer construct, which was the subject of an award-winning paper presented at SPAA ’09.
· Represented Cilk Arts on ISO C++ standards committee.
· Worked with the leading authority on component testing and large-scale C++ development to achieve nearly 100% test coverage in the core component library used throughout the organization.
· Implemented large portions of a modified Standard Template Library, using a powerful and flexible memory allocator model.
· Gained acceptance for a number of allocator-related proposals as a member of the ISO C++ standards committee.
· Led seminars and wrote Perl tools intended to foster better software engineering and testing practices throughout the organization.
· Developed tools for building high-quality, Cisco-like command-line interfaces (CLI), cutting 3 to 6 months off customer’s development time.
· Full product included compiler for CLI-description language, compact and efficient run-time parser, emacs-like command-line editor, and high-quality customer documentation.
· Provided ongoing support and customization services to customers.
· Helped numerous clients produce high-quality products and services by providing software development contracting services, mentoring, and development-process consulting.
· Served clients from multiple fields, including:
Proven Process Medical Devices, East Walpole, MA, 2003 – 2003
Highland Laboratories, Ashland, MA, 1993 – 2003 (Dates are not contiguous.)
Nauticus Networks, Framingham, MA, 2002 – 2002
Tenor Networks, Acton, MA, 2001 – 2001
IPOptical, Dulles, VA, 2000 - 2001
Ironbridge Networks, Lexington, MA, 1999 - 2000
Xerox Corporation, Distributed Network Applications, Burlington, MA, 1998 - 1999
BMC Software, Inc., Waltham, MA, 1995 - 1998
Semaphore Trainings, headquartered in North Andover, MA, 1993 - 1996
Business Matters, Inc., Waltham, MA, 1993 - 1996
Hewlett Packard (Clinical Information Systems), Andover, MA, 1991 - 1993
Intersolv, Cambridge, MA, 1989 - 1991
Millipore Corp., Bedford, MA, 1989 - 1990
Wang Laboratories., Lowell, MA, 1988 - 1989
Polygen Corp. Waltham, MA (now part of Ligand Pharmaceuticals, La Jolia, CA), 1985 - 1988
Desktop Scientific Systems (co-founder), MA (sold to Polygen in July, 1985), 1984 - 1985
Mass Computer Associates, Wakefield, MA, 1984 - 1984
Data Concepts, Inc., Lexington, MA, 1982 - 1984
Hampshire College, Amherst, MA - B.A. in Computer Science, May, 1983.
Senior Thesis: Language Extensions for Improved Data Abstraction