Taxonomy Icon

IoT

The Internet of Things (IoT) is a global system of interconnected physical devices that deliver data via the Internet, and the IoT is transforming the way we live and work. IoT devices have been widely adopted across a range of industries, including healthcare, manufacturing, automotive, retail, and building automation, just to name a few. Businesses are leveraging data from connected devices to increase operational efficiency and to provide improved value and experiences to their clients. With the pace of IoT adoption rapidly increasing, and with the number of connected devices already in the billions, the demand for skilled developers who are able to deliver IoT solutions continues to rise.

Developers that want to make the most of the opportunities of IoT should foster skills across a range of key topic areas including:

  • Hardware
  • Networking
  • Application design
  • Application development
  • Security
  • Business intelligence and data analytics
  • Machine learning and artificial intelligence (AI)
1

Hardware

At the heart of IoT are the billions of interconnected &things,& or devices with attached sensors and actuators that sense and control the physical world. The development of the hardware for these devices calls for electrical engineering skills, while the physical design draws on industrial design and CAD skills.

In addition to network connectivity to transmit the data they collect, these devices typically require some basic processing and storage capabilities, provided by a micro-controller or by a System-on-a-Chip (SoC) integrated circuit. IoT devices are embedded devices, and as such, the circuit design of each device must take into consideration operating constraints, such as:

  • Environmental conditions
  • The type and number of sensors and actuators attached to the device
  • The volume of data to be collected and transmitted
  • The size, power, and range for the device
  • The cost per unit
  • …amongst others

IoT devices may be prototyped using commoditized micro-controller platforms, such as Arduino, or single-board-computers like the Raspberry Pi, with custom printed circuit boards (PCBs) developed at a later stage. Prototyping with these platforms requires circuit design skills, as well as micro-controller programming, and an understanding of hardware communication protocols like serial, I2C, or SPI that are commonly used to establish communication between the micro-controller and the connected sensors and actuators. The embedded programs are often developed using C++ or C, however Python and JavaScript are becoming more popular for prototyping IoT devices.

2

Networking

Connectivity is another key aspect of IoT, which enables devices to communicate with other devices as well as communicate with applications and services that are running in the cloud. Network design and management are essential skills within IoT, due to the sheer volume of connected devices and due to the impact that network design decisions can have at scale. For example, mesh networks are a highly scalable and robust network topology design, and are frequently adopted within IoT; however, the distributed nature of mesh networks makes the system more complex and also increases latency and power requirements for each of the devices in the network.

In addition to network design, developers should have a working knowledge of network standards, protocols, and technologies. These include wifi, Low Energy Bluetooth, Zigbee, cellular, and RFID technologies used in consumer applications, as well as Low Power Wide-Area Network (LPWAN) technologies like LoRa. LPWAN also includes SigFox and NB-IoT (narrow band IoT) that offer lower cost, low-power long-range wireless connectivity, which are better suited to large-scale and industrial IoT applications.

3

Application design and development

Web and mobile applications provide user interfaces for interacting with and consuming data from IoT devices. IoT devices, however, may have their own user interfaces (UIs). Voice-based and gesture-based interfaces are gaining traction within IoT, particularly for home automation, while augmented reality interfaces provide exciting possibilities for overlaying IoT data over the physical world. As a result, UI and UX design skills are some of the hottest skills in IoT right now.

Web and mobile applications are developed using high-level languages, with Java, Swift, and Node.js among the top languages for IoT app development. GPS programming skills are in particular demand, as many IoT applications, including wearables and smart vehicles, are location-aware. Developers should keep track of emerging frameworks and developer kits that they can leverage for rapid prototyping, as well as IoT platforms that provide infrastructure and tools to help automate building, deploying, managing, and operating IoT applications.

4

Security

Security for IoTSecurity is one of the biggest concerns in IoT. Security must be built-in at every step of the design of the system, not added as an afterthought. Critical issues that are closely related to security include data ethics, privacy and liability.

The biggest challenges in IoT security are the need to secure:

  • The physical and network access to devices and their data
  • The applications and services with which the devices communicate
  • The networks themselves

As millions of new devices connect each day, the number of potential points of attack grows daily. Compromised IoT devices have been used to launch Distributed Denial of Service (DDoS) attacks. However, once devices are in the wild, it can be challenging to roll out firmware updates to patch security issues without established security and device management practices or a security infrastructure.

With so much at stake, security engineering skills are highly regarded within IoT. These include threat assessment, ethical hacking, encryption to ensure data integrity, securing network architectures and applications, as well as event monitoring, activity logging, and threat intelligence.

5

Business intelligence and data analytics

As the number of IoT devices transmitting data increases, big data turns into really big data. Developers will need big time data management skills to securely and reliably ingest, store, and query the vast quantities of heterogeneous data originating from these devices.

Many IoT devices generate latency or time-sensitive data, so it is necessary to filter or discard irrelevant data. Key technologies and platforms for data analytics that IoT developers should develop skills in include Hadoop, Spark, and NoSQL databases.

6

Machine Learning and AI

To deliver value and make sense of the huge volumes of data that is generated by IoT devices, machine learning and AI skills are the final must-have skill for IoT developers. Intelligent big data analytics involves applying cognitive computing techniques drawn from data mining, modeling, statistics, machine learning, and AI. These techniques can be applied in real-time to sensor data streams for predictive analysis or to autonomously make decisions in response to incoming data and can also be applied to historical data to identify patterns or anomalies in the data.

Are you ready to get started developing IoT solutions?

The technologies involved in developing IoT applications are rapidly evolving. Developers should be prepared to cultivate a diverse set of skills, and be agile and willing to adapt to new processes, platforms and tools. To help you get started in IoT development, you can use my IoT 101 learning path.