Software Development Industry News

What Developers Need to Know About IoT

What Developers Need to Know About IoT

Tom Smith DZone Monday, 05 March 2018

To gather insights on the current and future state of IoT, we talked to 23 executives involved with IoT. We asked them, "What skills do developers need to have to work on IoT projects?"

Business Context

  • You are not a cog in the assembly line. Think through the entire product experience. Weigh in at the design phase.
  • It used to be OK to be a good developer. IoT is complex. You need to understand the business context of the solutions that you’re building. More successful developers will have a diverse mix of education, especially knowledge of the vertical in which they are working. 
  • Programming skills. Understand how the data will be used for AI/ML/predictive for industrial use cases. Make data more accessible to the end user to realize ROI more quickly. Know how the data will be used. 
  • Consider sustainability of what you are building and what the solution means to the business. Large projects need to be tied to business outcomes. Ensure you are considering the machine you need to keep running. Think differently about device management. 
  • Better integration experience with their team. Understand personas and business value. Create the right solution from the beginning by clearly defining the problem you are solving. Stay agile. Use CI/CD. Complete integration into runtime operations.
  • Embrace learning the industry you are working in to understand the business problems, how the hardware ties in, immerse yourself in what you are doing and think beyond code. Be open to testing and iterating. 
  • Understand how industrial environments work and the protocols therein. How to get information on programmable devices. Modbus – how to register, how to translate, how to get information out of it. MQTT. Write value-added applications into predictive analytics engines and applications.

Security

  • Don’t reinvent the wheel. Security should already be a best practice. Learn the building blocks of IoT. It seems easy but you will spend a lot of time on integration which is hard. Focus on the core business and rely on well-integrated system platforms and build on top of them.
  • Experience with embedded, connected devices. How to put together the whole stack – operating system, middleware, frameworks. How to make it secure. How to solve the updatability problem. Work through the operating system kernel to the application. Engineers need to know how to put together teams to address the different areas of the stack, as well as finding a company that can help. More off the shelf solutions, more user interfaces and microcontroller OS depending on the application.
  • I believe developers will need to keep the broader security picture in mind as they develop IoT products. How does the product balance ease of use and security? How does the product function and get updated when deployed, and then as security flaws are identified? How does the device accomplish these activities and continue to provide a good user experience?

Platforms

  • Need to know mobile platforms, cloud platforms, the wide spectrum of firmware for all technologies. Cloud is probably the most important. Data, AI/ML is important – data engineering, not data science. Work more on the backend with data.
  • 1) Learn about streaming technologies, throughput. How to get all of the servers to do more simultaneously. How to parallelize. 2) Cloud technology is critical. Services, block storage, how to secure and move data. 3) Brush up on SQL for development applications. How SQL work is parallelized.

Other

  • The IoT stack is different. Learn the real-time stack versus the legacy stack. Mobile and edge computing technology. Go beyond neat applications versus useful apps with the edge to add value. Know Java, Node, Objective C for the frontend and .Net for the backend. AI will be important so learn TensorFlow and Café for datasets.
  • Python is the language of choice for firmware that doesn’t require C. Unless you have a compelling reason to create your own, the existing frameworks are very powerful and can scale. Twilio is a good SIM management platform. Don’t start from scratch. Use the available tools to shortcut the process.
  • Play around with a Raspberry Pi. Connect to sensors. Put data in a database and start looking for trends. Doing so teaches you to think differently than relational databases. Play with weather instruments and plot into a graph.
  • I believe successful developers will need to have tools and skills to handle real-time data ingestion and get insights from connecting all data points.
  • Need to know hardware and software. Think about how to make the physical product. Frontend and backend software – iOS and Android. Bluetooth implementation and how to pair with every device. This gets more complex in China. The backend becomes more important. Think about how to design to scale and handle massive amounts of data.
  • Developers need to be a tinkerer, hardware hacker, and a software enthusiast. In addition to that, they need the ability to read technical documents since this is still a new field and learning never stops.
  • Expand scope to include hardware, software, and engineering. Not that you have to do it all but be willing to work with others to solve business problems that add value rather than just writing code.

Here’s who we spoke to:

About redPanda Software

At redPanda Software we have a decade of experience in developing customised software for the retail and financial industries.

Working with clients in South Africa, Africa and the UK, we have built our reputation for producing the highest quality solutions across the following specialised business processes. Read more...

Contact us