Chandler Carruth

Chandler Carruth leads the C++ platform team and LLVM team at Google. He is also an active contributor to the LLVM and Clang open source projects, and speaks at various C++ events where he tries to help spread knowledge about C++, compilers, tools, and optimization. Previously, he worked on several components of Google’s distributed build system. He received his M.S. and B.S. in Computer Science from Wake Forest University, but disavows all knowledge of the contents of his Master’s thesis. He can usually found coding with the aid of Cherry Coke Zero in the daytime and pontificating over a single malt scotch in the evening.

Presentations

Making C++ Easier, Faster, And Safer With Tools - Part 1 (2016)

We write a lot of C++ code at Google, but as the scale of our codebase and developer base have grown we struggled to remain productive and effective. C++ can be a very challenging language, and five years ago the tools to help programmers out were in very poor shape. We looked to LLVM and Clang to build up advanced C++ tools both to cope with the scale and scope of our code, and to empower and accelerate our developers. Today these tools form the core of how we write and maintain C++ code.

Making C++ Easier, Faster, And Safer With Tools - Part 2 (2016)

We write a lot of C++ code at Google, but as the scale of our codebase and developer base have grown we struggled to remain productive and effective. C++ can be a very challenging language, and five years ago the tools to help programmers out were in very poor shape. We looked to LLVM and Clang to build up advanced C++ tools both to cope with the scale and scope of our code, and to empower and accelerate our developers. Today these tools form the core of how we write and maintain C++ code.

Panel-style Extended Q&A / AmA (2016)

Understanding Compiler Optimization (2016)

C++ is used in applications where resources are constrained and performance is critical. However, its power in this domain comes from the ability to build large, complex systems in C++. These systems leverage numerous C++ features in order to build and utilize abstractions that make reasoning about these complex systems possible. Abstractions are the very essence of how we scale software to solve ever larger and more complex problems.