Daniel Pfeifer · C++ Engineer & Trainer

Modern C++
Training & Consulting

I help teams build maintainable C++ software, whether written by humans or generated with AI. My training and consulting focus on orthogonal design and local reasoning for clearer code, easier testing, and faster builds, reducing overall development costs.

Training

Learn when and why to use C++ features, where they fit, and when to avoid them. Practical training in the design decisions that keep your code maintainable, tailored to your team and codebase.

Modern C++

Make informed choices about value semantics, ownership, lifetime, and API design. Evaluate the trade-offs of modern language and library features, and keep code easy to reason about locally.

Effective CMake

Structure maintainable CMake projects around targets and explicit dependencies. Reduce unnecessary rebuilds and simplify testing, installation, and packaging.

Codebase Modernization

Bring the training directly to your codebase. Workshops can combine teaching with real production code: introducing modern C++, improving APIs, simplifying ownership, adopting development tools, or modernizing a build system.

Consulting

More AI-generated code makes maintainability more important.
Clear interfaces, explicit ownership, and testable components help both engineers and AI tools work with your codebase.

Software Design & Refactoring

Improve the structure of existing C++ software while respecting the constraints of a mature codebase. Particular focus on value semantics, ownership, API design, local reasoning, and separation of concerns.

C++ Modernization

Move established C++ codebases forward incrementally. Adopt modern language facilities and engineering practices without requiring a rewrite, using custom clang-tidy checks developed specifically for your codebase to automate repetitive refactoring work.

CMake & Development Tooling

Architecture and modernization of CMake build systems, CTest infrastructure, and workflows using clang-tidy, clang-format, and include-what-you-use.

Code & Architecture Reviews

Independent review of C++ codebases, APIs, architecture, build systems, and development practices, resulting in concrete recommendations and a practical path forward.

Experience

I am a C++ engineer with decades of experience building, maintaining, and improving software systems.

I spent seven years at Apple before becoming independent. I have contributed to CMake since 2012 and have spoken about C++, CMake, software design, and build systems at international C++ conferences.

Today, a major focus of my open-source work is Bitcoin Core, where I work on improving consensus-validation architecture and applying modern C++ software-design techniques to a large, long-lived codebase.

Selected Talks

Sharing practical experience in modern C++, software design, build systems, and testing at international C++ conferences.

CppCon 2026

You Shall Not Pass *!

Exploring value semantics, ownership, and the evolution of C++ techniques for designing value types. From the Rule of Three to modern approaches for managing resources, aliasing, and object lifetimes.

Recording coming soon

C++Now 2017 · Most Educational Session

Effective CMake

A practical approach to modern CMake using targets, properties, dependencies, and usage requirements to build maintainable software projects.

Watch the talk →

C++Now 2025

Effective CTest

Using CTest to organize, execute, and manage testing in CMake-based software projects.

Watch the talk →

Open Source

Much of my engineering work happens in public.

CMake

Long-time contributor to the build system used throughout the C++ ecosystem.

Bitcoin Core

Contributor working on C++ architecture and consensus validation.

WG21

Working on standardizing a std::copy_on_write vocabulary type.

Work with me

Let's improve your C++ codebase.

I am available for C++ and CMake training, consulting, code and architecture reviews, and codebase modernization. Engagements can be tailored to your team, codebase, and current engineering challenges.