Safely writing code that isn't thread-safe
I spent the first 10 years of my career thinking I wasn't smart enough to write multi-threaded C code.  Since then I have been convinced that <i>nobody</i> is smart enough to write multi-threaded C code, and multiprocessing should be used instead.