Blog by Lukasz Malinowski – Why should embedded developers care about the cloud?
Disclaimer: I’m not an embedded developer. I used to code in Assembler a long, long time ago. Seeing my firmware running on bare metal was a very fulfilling experience. That was a short but meaningful episode in my life.
Blog by Lukasz Malinowski – Why should embedded developers care about the cloud?
Embedded development and the cloud seem like two opposite paths. One is very low-level and precise the other is high-level and abstract.
Why should you, the embedded developer, care about the cloud?
I see the following benefits of extending your expertise with cloud skills:
Increased relevance/impact in project engagements,
End-to-end solution understanding,
Managing fleets of devices instead of independent devices,
Opportunity to move from development to architecture roles.
You already know and understand the IoT’s specifics, so consider the cloud a natural extension.
Changing perspective allows us to look at the Internet of Things deployment as an ecosystem of connected devices instead of multiple independent devices.
Let’s take the Firmware Upgrade as an example. As the embedded developer, you can design and implement that functionality in your firmware. Thousands of connected devices will use that firmware. Yet, you operate on the single-device level.
You could implement the Over the Air (OTA) Firmware Upgrade by leveraging the cloud capabilities. Suddenly, you manage the whole fleet of devices and play a vital role in the IoT ecosystem.
You can design a solid OTA procedure because you already know all the pitfalls of a remote Firmware Upgrade.
Your end-to-end project guidance would provide significant business value for the stakeholders.
This way, you can make the next big step in your career. The more impact on the business you have, the higher salary you might expect, and cloud knowledge is a significant leverage.
To further increase your influence, you may decide to change your role from developer to architect/advisor in the future. That would open new job opportunities for you.
What are the main barriers to entry into the cloud domain:
new programming languages
new abstractions – cloud services
fleet perspective instead of a single device
business logic implementation
Cloud integrates with high-level languages (like Python), and you probably use C for firmware development.
Learning the basics of those languages should be fine for you. Python looks like a pseudo-language with awkward syntax compared to C, but you will get used to it.
Knowledge of Python will help you with cloud assignments and automating low-level embedded development tasks, which will take your skills to the next level.
New abstractions introduced by the cloud might be hard to grasp initially. Cloud uses many virtual components, which rarely map to the hardware equivalents.
We briefly touched the fleet management, but this topic is broader than the Firmware Upgrade use case. You need to manage the identities of your devices and supervise various versions of hardware configurations, to name a few.
The most significant change is in the business logic area. Your role changes from developer to advisor. You work not only with devices but also with business entities and deliver business outcomes. You use cloud capabilities to magnify your impact.
Based on my experience, there is significant demand for high-level guidance – that type of advisory impacts strategic decisions in the company, increasing your role’s importance.
In the world of IoT, neither device nor the cloud can provide a substantial business value on its own.
I hope that this topic is interesting to you. I will elaborate on it in future articles.
Lukasz Malinowski – IoT Advisor and Trainer – I will help you design your Internet of Things solution and train your team to build it