Software engineering in C++ is hard. I want to share practical examples on mitigating bugs and improving code quality. I will review some recommended best coding practices (almost always auto, DRY (don't repeat yourself), commenting/documentation, error handling), their implications for modern development and propose some alternatives.
I want to discuss integration of recommended tooling into daily workflow (code reviews, sanitizers, static analyzers, issue tracking) and how it affects programmers on psychological level both in positive and negative ways.
I am going to cover topic of tracking bugs in your production code and how to simplify that process. Lastly I will show you some examples (static initialization, interface design, high level encapsulation) how to lover entry barriers for new team members inspired by scripting languages by using OOP and metaprogramming in your framework.