Embedded Development

facebook embedded post

Embedded development is a development of hardware-related software, which is usually called firmware in that industry. Embedded software is very different from regular PC software and requires dedicated specialists to be hired for this job. Among the key differences is its high platform dependency and low portability, thus a developer effort is required to port it to different hardware. The applications are very various, they range from smart home to industrial and medical equipment. Even the most simple machines, like ventilators, require some very dedicated SW to work. Basically everything which interacts with the real world is Embedded, be it employee work hours accounting system (based on NFC cards or fingerprints) or stock keeping Business Intelligence, or even waiter digital bells. All these applications use microcontrollers (MCUs) or SOCs to interact with the physical world, WiFi network, IoT.  The most popular programming languages are C and C++.

Some industries demand strict coding standards to work reliably, for example MCUs which control automobile ABS, ESP, and other critical features require firmware to comply with MISRA standards.

To hire an Embedded developer one has to specify a hardware platform, not every developer can work with any hardware. It can be some WiFi IoT SoC like ESP8266, or popular Raspberry PI, or even Arduino. A less common solution can use STM32 or MSP MCU on a custom PCBa. Some projects can be a mix of both, like mobile applications – it is Embedded till BSP/HAL and drivers level, everything above is regular mobile SW development.