The most common mistakes and pitfalls associated with developing embedded real-time software are presented. The origin, causes, and hidden dangers of these mistakes are highlighted. Methods ranging from better education to using new technology and recent research results are discussed. The mistakes vary from problems with the high-level project management methodologies, to poor decisions on low-level technical issues relating to the design and implementation. The most common mistakes have been identified from experience in reviewing the software designs and implementations of many embedded programmers, ranging from seasoned experts in industry to rookies learning the material in college.