IoT

Developer Skills for Successful Enterprise IoT Projects

Successful IoT projects are engineering-heavy. This article discusses the developer skills needed for a complete IoT project:

  • Hardware designers
  • Embedded firmware developers
  • Wireless communications experts
  • Back-end developers
  • Front-end developers
  • App developers
  • Automation and systems integration engineers
  • Data scientists

The first step of any successful IoT project is to define the business goals and build a proof-of-concept system to estimate if those goals are reachable. At this stage, you need only a subset of the skills listed in this article. But once a project is so successful that it moves beyond the proof-of-concept level, the required breadth and depth of the team increases.

You may also like: How to Start an Enterprise IoT Project

Often, individual developers possess several of the skills. Sometimes, each skill on the list will require their own team. The amount of people needed depends both on the complexity of the project and on success. More success usually means more work but also more revenue that can be used to hire more people.

Hardware Designers

Most IoT projects include some form of custom hardware design. The complexity of the hardware varies considerably between projects. In some cases, it is possible to use hardware modules and reference designs, for which a basic electrical engineering education is enough. More complex projects need considerably more experience and expertise. To build Apple-level hardware, you need an Apple-level hardware team and an Apple-level budget.

Typical skills:

  • Printed Circuit Board (PCB) design
  • RF and antenna design
  • Clocks, signal routing experience
  • Low-power design and power consumption optimization
  • Chip selection: microcontrollers, sensors, interface chips
  • Interfacing: SPI, I2C, JTAG, USB, GPIO
  • Production and component sourcing

Apple hardware

To build Apple-level hardware, you need an Apple-level hardware team and an Apple-level budget

Embedded Firmware Developers

To turn the hardware into magic, you need embedded developers. These are software people that do software at an extremely low level, close to the bare metal hardware. This software is called firmware (where firm is something between soft and hard). The typical background is a combination of electrical engineering, computer architecture, and software development. Embedded developers work with prototype versions of the final hardware, and their desks, therefore, tend to look messy.

Typical skills:

  • Programming languages: C, assembly language, C++
  • Real-Time Operating System (RTOS) experience: FreeRTOS, Contiki, Zephyr
  • Embedded Linux
  • Source code version control
  • Physical and information security
  • Platforms: Texas Instruments, ARM Cortex, AVR, Microchip, Arduino, Raspberry Pi

Wireless Communications Experts

Most IoT projects are wireless, and wireless is hard because it combines all the difficulties of the physical world with the complexities of software. A typical background for a wireless communication expert is with wireless communication, network protocols, and software development. For large-scale IoT systems, wireless communication expertise is necessary to dimension the network and communication patters appropriately. For consumer-grade IoT systems, wireless communication expertise is needed to make the devices smoothly connect via Bluetooth to users’ smartphones.

Typical skills:

  • Network simulation
  • Wireless mesh networking
  • Good understanding of wireless propagation
  • Good understanding of power consumption
  • Protocols: TCP/IP, IPv4, IPv6, RPL, TLS, WiFi, Bluetooth, 6lowpan, ZigBee, LoRA, MQTT, CoAP

Back-End Developers

In IoT systems, the back-end is where databases and application logic resides. The back-end is typically deployed in a cloud host and takes care of storing data from the IoT devices, authenticating users, and providing APIs for the front-end and for integration with other systems.

Typical skills:

  • Programming languages: JavaScript, Go, Python, Ruby
  • Database: MySQL, MongoDB, Redis
  • DevOps experience
  • Cloud platforms: Amazon AWS, Heroku, Microsoft Azure

Front-End Developers

Most IoT projects have a front-end in the form of a web page. This is where users of the system interact with it. This needs to be user-friendly, secure, work in the most common web browsers, and be kept up to date. Front-ends are developed in HTML and almost always use some existing front-end framework written in JavaScript. Front-end developers create visual experiences, often by writing lots of text on a screen.

Typical skills:

  • UI/UX design
  • Experience with user interviews and HCI
  • HTML, CSS, Javascript
  • Web development frameworks: Vue.js, React, Bootstrap

Image title

Front-end developers create visual experiences, often by writing lots of text on a screen

App Developers

Many IoT projects that are user-facing use a mobile app as the user interface. As the project progresses, the mobile app experience becomes more and more important. This usually means that two versions of the app need to be developed and maintained: iOS and Android. Sometimes, a hybrid native app, which typically would be developed in HTML, is the way to do. Most app developers are well-versed in the benefits and challenges of native or hybrid frameworks.

Typical skills:

  • Android, iOS development
  • Native/ hybrid frameworks: Phonegap/Cordova, Ionic, Angular, React, Vue
  • Programming languages: Java, Swift, Objective C, JavaScript

Systems Integration and Automation and Engineers

Many IoT projects need integration with existing software. Software integration is an often underrated task that can take significant effort and a specific set of skills to be successful with. And once the software integration is underway, you will want to ensure that the integration keeps working. This is where automated testing comes into play. A systems integration and automation engineer will have significant practical experience and a lot of grit, because this is tough work.

Typical skills:

  • Automated testing frameworks: Jenkins, Mocha, Travis
  • REST APIs
  • Programming languages: Javascript, Java, Python, Bash

Data Scientists

IoT projects revolve around data and you need to make sense of that data. In the early stages of the project, this may be as simple as putting key performance indicators into an Excel sheet to compare them, but as the project progresses, you may need more in-depth analysis of the data. This is where a data scientist comes in. Data scientists make sense of complex data to find patterns and actionable information, which ultimately drives the value of the data.

Typical skills:

  • Statistics, AI, machine learning, data mining
  • Programming languages: Matlab, R, Python
  • Tools: Excel, Google BigQuery, Hadoop, TensorFlow, Spark

Conclusion

A fully-fledged IoT project requires a wide range of skills to be successful. In the early stages of the project, validating the business case is the most important task, and for this, you will not require all the skills in the list above. But once you have established the business case and the project can begin for real, these skills become increasingly important.

Comment here

This site uses Akismet to reduce spam. Learn how your comment data is processed.