A hands-on course for C developers on writing memory-safe, vulnerability-free code. Covers memory management, buffer overflows, integer vulnerabilities, dangerous functions and their replacements, format string and command injection attacks, and hardened compilation techniques.