Software development? I will keep it short. On the one hand, you have an embedded controller running embedded software, some call it firmware, some embedded software. A lot of terminologies which is not consistent. Application specific code programs the embedded controller. Hence application firmware pertains to the code running on the controller. But usually, application software, aside from terminology, probably refers to the other side of the connection. The system with an embedded controller connects (wireless or wired) to another side. Let’s assume a USB device which has an embedded controller and the host side could be a desktop PC. On the PC you will need hardware specific software, drivers for the lower layers (example physical layer). The useful data is extracted by the driver and handed over to a program, an application. It is a bit of a short simplified answer and my terminology probably is not equal to yours. But I tried to depict the places and types of code. Hope it helped.
Which one do you prefer, embedded vs. application software development? Which one is in more demand? Do you have any tips for a future embedded software engineer?