Challenges in Firmware Development