Learn Memory‑Safe C and C++
Taught by Dr Glenn Coates, a practising software engineer, technical leader and member of the ISO C Standards Committee
What I do
I provide expert low level Memory Safe C and C++ training, focused on preventing and
detecting memory errors through sound design, deep technical knowledge, tooling, and
hardening techniques. My courses start from first principles and develop a deep understanding of
language semantics, compiler behaviour, and memory representation.
Areas of Expertise
My expertise is grounded in a passion for computer science and software engineering, combined with real-world industry best practice and approaches proven over decades of experience. It spans the full software stack, from language design and compilers through operating systems and microprocessors, to reverse engineering binaries to recover intent.
Alongside this technical depth, I have taught hundreds of engineers, with a strong focus on effective knowledge transfer, so delegates don’t just attend training but leave with a real understanding they can apply in practice.
Solid Foundations & Controlled Subsets
I teach carefully chosen subsets of C and C++. By focusing on the essential parts of the languages, delegates build a solid foundation and learn how to write code that is reliable, maintainable, and secure.
Avoiding Unnecessary Complexity
Programmers often spend more time discussing complex language features than focusing on the actual problem they need to solve. I encourage a different approach: use the language to support clear, simple solutions that are easier to understand, reason about, and test.
Memory Safety
I focus on managing memory safely, with attention to both spatial and
temporal safety. This includes approaches such as using controlled language subsets,
fortification, sanitization and static analysis tools.
Undefined Behaviour
Undefined behaviour in C and C++ can lead to unpredictable results, especially under aggressive compiler optimisations. I teach how to recognise and avoid these pitfalls so code remains predictable, reliable, and secure.
Secure Programming Practices
Building on principles such as memory safety, secure programming focuses on designing and writing code that avoids common weaknesses and resists exploitation. This involves applying controlled language subsets, sanitization, analysis tools, and platform features in line with recognised industry standards such as CERT C and MISRA.
Latest Articles