Many embedded systems live in a world where a system failure can be catastrophic. Their systems are so critical that if they fail, people may lose their lives. Also, unlike a PC that may be rebooted, many systems are so intertwined with their environment that they cannot be so easily restarted even if the failure was not catastrophic. Even the most well thought-out design is vulnerable to bugs when the implementation falls short of the design. This paper focuses on how one can use a set of coding guidelines, called MISRA C, to help root out bugs introduced during the coding stage.