Embedded software is computer code written to control machines and devices that are not typically considered computers, like firmware. It has specialized functions for specific hardware and constraints on time and memory. Hardware design involves finalizing a layout in software and prototyping the physical device. Quality assurance testing occurs last to ensure robustness and catch bugs early by verifying the product meets requirements.