Embedded software is computer software, written to control machines or devices that are not typically thought of as computers. It is typically specialized for the particular hardware that it runs on and has time and memory constraints.
Dedicated pieces of software like the Arduino editor and Ardupilot allow us to program microcontrollers, robots and quadcopters. Specialized applications like Fritzing can simplify the design and documentation of electronic circuits. And software libraries allow us to take clever designs from talented programmers and incorporate them within our own creations.