Andrei Alexandrescu

Romanian-born Computer Scientist Andrei Alexandrescu is an expert in a broad range of topics including software systems design and implementation, programming language design, library design, all aspects of the C++ and D programming languages, Machine Learning, and Natural Language Processing. His creative approach to problem solving, broad knowledge, and charismatic presence make Andrei a sought-after invited speaker at conferences worldwide.

Andrei started publishing as a contributor to C/C++ Users Journal in 1998, a few months after his arrival to the United States. His interests gravitated around devising simple, flexible design artifacts by using the generative capabilities of templates in the C++ programming language. Soon thereafter, following seminal discussions with Scott Meyers and the late John Vlissides, Andrei embarked on writing his first book, Modern C++ Design. The book, published in 2001 by Addison Wesley, coined the term "policy-based design" and became a best-seller that revolutionized C++ programming and also influenced other languages and systems. Noted C++ exeget Francis Glassborow wrote in his review in ACCU: "I particularly look out for books that either set a new standard of excellence in an existing category or that open up an entirely new area. [...] This book is very definitely in the second category." Today, programmers colloquially use the term "modern C++" to refer to the style promoted by the book—light, precise components that use the type system gainfully to adapt to the usage context and to generate specialized code.

Andrei's second book, C++ Coding Standards (Addison Wesley, 2004), written in co-authorship with Herb Sutter, established itself as the ultimate collection of guidelines for writing high-quality, industrial-software C++ code. The book won the Jolt Productivity Award at the Software Development Conference in 2005. C++ Coding Standards has been translated in numerous languages.

During the 2000s, Andrei's articles have had a marked influence in the software industry. His ScopeGuard abstraction, co-authored with Petru Marginean, has become a staple technique in C++ and has also enjoyed adoption in Perl, Python, C#, and D (becoming a full-fledged feature in the latter language). The article Mojo: Move of Joint Objects has focused C++ community's attention on issues related to unnecessary object copying in C++ and spurred a line of work by David Abrahams, Howard Hinnant, and others, that has ultimately led to the rvalue references language feature in C++0x.

The late 2000s witnessed a shift of interest towards other fields. Andrei's doctoral research, completed in 2009, is in Machine Learning applied to large-scale tasks in Natural Language Processing. His doctoral dissertation includes one theorem of importance to scaling graph-based methods to large learning tasks, and an original algorithm DynTrie that combines dynamic programming and the trie data structure to the end of optimizing large string similarity computations.

Simultaneously with his doctoral work, Andrei became a contributor  to the D programming language, in which he recognized a potentially superior vehicle for furthering the ideas pioneered by Modern C++ Design. Since 2006 he became co-designer of the language together with Walter Bright (the creator and first implementor of the D programming language) and the main designer of D's standard library. Andrei introduced new language features (such as the scope() construct and restricted generic functions) and a host of highly generic implementations of classic algorithms. His library design introduced the cross-linguistic concept of range, which combines the expressiveness of iterators as defined in C++'s Standard Template Library with the safety and convenience of the Iterator design pattern. Andrei's third book The D Programming Language (Addison Wesley, 2010) is an authoritative guide to the language.

In the recent years, various conferences around the world (such as the Web 2.0 conference in Beijing, the ACCU conference, and Boostcon) offered Andrei the honor of being the keynote speaker. In addition, Andrei is often invited as guest speaker at numerous conferences and trade events and is a featured instructor at the C++ Astoria Seminar and the C++ and Beyond Seminar. Andrei is also a  trainer featuring technology companies such as Adobe Systems, Amazon, Banc of America, and Morgan Stanley in his portfolio.

Born in 1969 in Bucharest, Andrei initially pursued other interests, such as classical guitar (honorable mention in 1986 and 3rd prize in 1987 at the Classical Guitar Festival in Sinaia, Romania) and drumming. He began programming as late as college and registered his first success at the "Traian Lalescu" students' informatics contest in 1993 as he was pursuing a BS degree in Electrical Engineering at University "Politehnica" Bucharest.  Following his move to the United States in 1998, Andrei worked in the financial and dot-com industries, after which he studied at University of Washington in Seattle between 2001 and 2009, earning a PhD in Computer Science. In 2006 the US Government granted Andrei the EB1-EA Green Card, reserved to foreigners with outstanding achievements. Currently Andrei works as a Research Scientist at Facebook.

 

February 2011