IoT for Software developers Part 1: Re-kindelling old flames
Many MANY years ago when I graduated, my first love was embedded electronics. Making little gadgets out of micro-controllers and a few components. The thought of making the devices talk to each other to make life easier/cooler in some way was always a fascination. I suspect that is the case with most people involved in IT. As fate would have it though, I never got a chance to work on it as a profession. Instead I ended up in the field of Enterprise Application Integration – the art of putting together applications, systems and processes so as to deliver value to an enterprise. This area has seen diminishing returns as most companies have already gone through the adoption curve, because of competition in the services sector and because of new tools that simplify the task. As luck would have it, the new wave is to integrate devices to existing enterprise systems. I won’t go into what IoT is and its promise (I presume you too were not spared the hype) but in a series of articles I will share my journey from enterprise integration architect to an IoT architect.
To begin with let me share a random but few interesting things to ignite the imagination:
- Arduino ESP 8266 Wifi Module: This is a little module (circuit board) that can wifi-enable any electronic device. It gives you a few I/O pins to turn things on or off (or to read data from them) and to communicate. The cool thing is that it costs less than 5$ and runs off 2x 1.5v batteries. This used to several hundred dollars in the past which made most applications cost-prohibitive. With that out of the way, you take pretty much anything and connect it to your Wifi network. There is even code out there that lets you host a tiny web server on there.
- Raspberry Pi: $30 computer. Like a serious computer. With an HDMI port, keyboard and mouse etc. You can run Linux on it, or Android or very soon, Windows 10. One of these can automate an entire house or industrial equipment … all for what you could easily pay for a good meal. The range of programming languages and ease of use means that even kids are starting to program on these!
- Falling prices of mobile phones: How much would it cost to place sensors in an environment so that you can see (camera / screen) , hear (mic) , feel (touch), talk (communicate in many many ways)? Well now a days your basic android costs about 50$. Kits are even cheaper. You recall the 100$ motion sensors that turned on your lights, well now the camera can actually see how many people there are in the room and text you if one of them is not supposed to be there (facial recognition). And these are destined to get cheaper and faster with even more sensors with every coming year. What’s cool is that you only need to be a partial nerd to program in these. Gone are the days when you needed an EE degree to work on these things.
I am excited. All the hype has me geared up but I am unsure about a few things:
- As someone earning a living from selling IT services, how aggressively should one jump into this? Some of these things look like they might be just hype or may need a few years to prove themselves. There is of course also the question of what role offshore companies will play in the ultimate SI ecology.
- While there is much hype, salaries for IoT developers are close to (or lower) than enterprise software developers. This might be because the value is limited or because most companies don’t yet realize the value. Or it may all be fluff at the end of the day to get nerds like me excited.
- Standards are evolving rapidly here with a turf war ongoing between major players. Where to place our bets is another question.
- The range of skills required for an end to end IoT solution is quite large. Hardware basics/ Embedded through to machine learning to Big data analytics. What layer to develop company focus on is another issue.
I’ll explore these further in subsequent articles in this series.