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.
Daniel Pfeifer · C++ Engineer & Trainer
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.
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.
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.
Structure maintainable CMake projects around targets and explicit dependencies. Reduce unnecessary rebuilds and simplify testing, installation, and packaging.
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.
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.
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.
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.
Architecture and modernization of CMake build systems, CTest infrastructure, and workflows using clang-tidy, clang-format, and include-what-you-use.
Independent review of C++ codebases, APIs, architecture, build systems, and development practices, resulting in concrete recommendations and a practical path forward.
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.
Sharing practical experience in modern C++, software design, build systems, and testing at international C++ conferences.
*!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.
A practical approach to modern CMake using targets, properties, dependencies, and usage requirements to build maintainable software projects.
Watch the talk →Using CTest to organize, execute, and manage testing in CMake-based software projects.
Watch the talk →Much of my engineering work happens in public.
Long-time contributor to the build system used throughout the C++ ecosystem.
Contributor working on C++ architecture and consensus validation.
Working on standardizing a std::copy_on_write vocabulary type.
Work with me
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.
contact@chorse.dev