IoT (Internet of Things) is going to be part of your customer's future, and better be part of your product portfolio. However, incorporating IoT is hard and done wrong can destroy your brand and worse yet your business.
The most accepted definition of firmware is something like, programming stored in 'memory which cannot be modified during run-time.' This kind of memory is called 'non-volatile' memory. It's the opinion of the author and several other firmware engineers that this definition, although true, is lacking. It only conveys two things.
Firmware is the software that engineers use to control or communicate with electronics. It's typically embedded in a device or 'thing'. Think of it as the bridge from 'soft' software to 'hard' hardware. How did we get here?