Software for embedded systems intended for use in medical devices and other life-critical systems poses unique concerns about safety and reliability because the development environment is so very different than the intended operational environment. This is particularly true with implantable devices and specialized use equipment, such as diagnostic X-ray devices. When working on a life-critical system, effective project management is critical. In addition, special techniques, simulators, and emulators need to be employed to appropriately verify software and analyze the timing of critical events and non-deterministic conditions. Project management tips and real-life development scenarios will also be discussed.