10 Principles for Building Safe Embedded Software Systems