Software development is of growing importance in all kinds of industries, but arguably none is more important than developing for and with connected devices. If your Fitbit glitches, that is one story, but it is an entirely different one if a connected medical device fails in the middle of surgery or a self-driving car goes haywire in the middle of rush hour. Because of the critical role that IoT devices are playing in our lives, poorly developed IoT devices can be life threatening, making this type of development particularly unique.
While a developer of any kind needs to have a certain level of skill and passion to be successful, being an IoT developer comes with its own set of challenges and requirements. In the coming years, leading-edge IoT projects will begin to surface as a primary driver of the industry. Below are five qualities and skills developers must have to be a successful IoT developer in this fast-paced age of “connected everything”:
- Curiosity about hardware. Chances are, as an IoT developer you’ll either be writing firmware, writing services that work with hardware, or perhaps testing your code with interesting boards (they may have strange wires soldered onto/hanging off the sides of them). If this makes you think “Yuck! I want to keep writing my clean code for the web/iOS/etc.,” then being an IoT developer is not for you.
- Willingness to consider new tools. Emerging service offerings from cloud companies (i.e., Amazon and Microsoft) may be based on existing tools, but they offer new features and out-of-the-box power. You can’t rest on your laurels in a field that has this much going on.
- Ability to prototype. Do you know what a Raspberry Pi or Arduino is? As an IoT developer you will probably find out (see number 1). Being an IoT developer isn’t like programming for a server or off-the-shelf mobile device. If you are waiting for production hardware to be completed or designed, what do you do? Answer: prototype hardware with one of the commercially available prototyping platforms.
- General fearlessness about low-level computing concepts and tools. At some level, you’re going to need to think about bytes of data, inspecting logs from a command line, looking at network traffic, or doing something that is conveniently tucked away in many “modern” programming languages and development platforms.
- Screwdriver ownership. Perhaps you’ve heard the old adage “Beware of programmers who carry screwdrivers.” If you are one of the people that we’ve all been warned about (you know who you are), and you say to yourself, “In spite of my years in software, I’m eminently qualified in the use of this screwdriver,” then IoT development just might be for you.
Of course, these traits are somewhat generalized, but we are living in an age of unprecedented convergence between software and all kinds of hardware, and the developer has a crucial role in how the future of interconnected “things” plays out — thus, shaping the world we live in.
An earlier version of this article appeared in IoT Agenda.