- Kenneth Joel
The Engineer that Shouldn’t Exist
Can bringing intelligence to the extreme edge be a one dev show?
We’ve all heard of the full-stack developer. The one who mysteriously orchestrates the big picture of the front end and the back end of a website or app. But if the stack is too tall, can it topple over?
Photo by Christina @ wocintechchat.com on Unsplash
The world of Embedded Systems is run by experts, with PCB designers, Firmware Engineers and System Integrators each having their own problems to chew on. Quite often, firmware engineers take on tasks ranging from device driver development to implementing application logic for a given use case.
Gadgets of the 21st century however, require more than just simple application logic to satisfy users. Intelligent algorithms now power almost every device we use, these are often low footprint algorithms running on ultra low power hardware. Examples range from the 13kB “Ok, Google” model capable of running on simple DSPs to the step counters we can find on Smart Sensors used in Smart Watches and other wearables.
Photo by 30daysreplay Social Media Marketing on Unsplash
Can there exist a “Full Stack” Edge-AI engineer? Someone who is capable of not only developing and optimising a machine learning model but also implementing it on a low power embedded device like a Cortex-M series MCU. It seems like too much to expect, as discussed in this paper below.
There are many devices that can benefit from going offline. Lower latency, lower running costs and lower power consumption to name a few. However, the technical challenge of successfully taking an intelligent device completely offline can be quite daunting as it requires a much wider range of skills.
As an aspiring embedded software engineer, it makes practical sense for one to understand all aspects of the ‘intelligent edge device stack’ ranging from bringing up a bare-metal Board Support Package, to custom driver development to RTOS and algorithms which would also include some Digital Signal Processing and lately, some AI too. But maybe this full stack effort is best left to those developing the hardware and algorithms behind these smart sensors while the embedded software engineer behind a new product primarily plays the role of a system integrator.
This is exactly the work around we are beginning to observe in the sensors industry. Across multiple verticals like consumer, industrial and automotive electronics; the semiconductor vendor who manufactures the sensors also provides the algorithms to complement them and enable different use cases. These algorithms are ‘sold’ to their customers in the form of Sensor hubs, which are often tiny low power microcontrollers that are tightly coupled with these sensors and implement some highly optimised algorithms particular to that sensor or group of sensors.
It will be interesting to see the direction that the industry takes as everyday devices keep getting smarter:
- Will embedded software developers need to expand their credentials?
- Will there be more smart sensors?
- Will some mainstream AI developers start specialising in ultra low power algorithms for embedded devices?
Only time will tell. Until then, stay tuned for more musings on EdgeAI and Smart Sensors!
- Hey Siri: An On-device DNN-powered Voice Trigger for Apple’s Personal Assistant