Too often, design issues at the hardware/firmware interface delay schedules, increase costs, and impact the quality of embedded systems. These problems force firmware engineers to try to work around the problems in FPGAs, ASICs, SoCs, ASSPs, and other chips or, failing that, force respins of the chips. From the collection and study of these problems, Gary developed seven important design principles essential to the successful development and integration of hardware and firmware. This class uses twenty-five real-world experiences to teach those essential principles to engineering managers, technical leads and project engineers who are interested in positively impacting the bottom line without sacrificing the quality of their products.