DZone Research: IoT and Devs
While you don't need embedded experience, you do need to know distributed application development.
Join the DZone community and get the full member experience.Join For Free
To understand the current and future state of IoT, we spoke to more than a dozen IT executives active in the space. Here's what they told us when we asked, "What skills do developers need to have to be successful with IoT projects?:"
- With so much accessible and affordable, yet powerful technologies available today, the barrier of entry to building IoT apps is super low. We teach a ton of entry-level classes on IoT development, where we bring in a common board like Arduino or Raspberry Pi, mix it with our platform, and have people building basic apps in an evening — like turning on a light, activating a servo, or reading the temperature. It requires a basic understanding of programming, but new frameworks have allowed web/mobile developers to use their native languages to build IoT apps. You don’t need embedded experience anymore.
- Languages and what’s needed to develop tools. Also, keep in mind emerging technology trends. Work well with K8s, GPUs, and the Nvidia code library. Go beyond programming languages, script, APIs, and look to what the environment needs to help with computing and storage aspects. Develop a product that will work over the long term.
- Stay true to the fact the software is the end user touchpoint to the hardware for any solution. Have a solid UX design. Protocols of communications are standard like BLE.
- 1) Use resources like DZone and talk to people in the ecosystem to understand what to do — how to choose the right chipsets. Get help picking the right chip. Be in forums, read guides, engage the community. 2) Spend time testing. Replicate the real world. Power goes out in India and Wi-Fi may not be stable. Android phones have less RAM there – you wouldn’t expect it unless you test. Do not rush to launch without thorough testing.
- Interpersonal skills. Collaborate, communicate. We’ve got the Python and R; we need more integration and speaking skills. The power of “and” put people together to identify and solve the problem.
- A number of tools are fairly new and improving. You can develop a hardware prototype in about 15 minutes based on automatic data models to develop source code and define how to describe what a device is then it generates code that can pass the certification. All the developer needs to do is make the connections to their specific hardware to have a service device working in a few minutes. The client device companion just reads the details from the introspection file and creates an open source code to build their own controller. Have the ability to build a prototype in a short amount of time. OCF's goal is for applications and service to talk to devices – developers are not embedded programmers. OCF provides data and control points to developers with a background in service development. Developers should look at system design and security awareness that’s new with IoT. New security risks and aspects to the systems design.
- Distributed application development experience is a must. Also, securing data on the wire and at-rest experience is necessary.
- Start with understanding the business problem you are trying to solve. Centralization on certain tech – learn Node and Docker, continue to learn from best practices in the software community and know it will apply on IoT devices as well.
- So many that it can be daunting — networking, cloud, embedded programming, electrical engineering — the list goes on. IoT ties so many fields together that it’s nearly impossible to have expertise in all of them. One of the key drivers behind our solution is enabling people who may only have knowledge in one of these areas to build robust and reliable IoT systems themselves. For developers, the ability to work in unfamiliar domains or collaborate outside your expertise is necessary. Ultimately, the key is really thinking about what the problem is that needs solving and being clever and efficient with your existing skills and resources in addressing it. There are often many ways to deliver the same result, so it’s good not to be too wedded to a particular process or technology.
- A number of developers already have some of the skillsets needed to develop an IoT project. However, the challenge for developers is they often need to be “full-stack” if they want to develop an IoT product from prototype to scale. To build an IoT project, you need to learn how connectivity works, how hardware works, the software/app layer of hardware, security, cloud, and more. To build an IoT project at scale, developers need to have embedded firmware expertise, electrical engineering expertise, mechanical engineering expertise, manufacturing expertise, and manufacturing testing expertise. It’s quite a large skillset, which can be intimidating. Usually, this is why enterprise IoT projects require a number of domain experts.
- For those developing IoT platforms, knowledge of distributed computing solutions will be a key skill. Many IoT applications generate massive amounts of data and only a distributed computing solution can provide the speed and scalability necessary to support these applications at an affordable price.
Here’s who we spoke to:
- Mike Donovan, V.P. of Product, Aquicore
- Adam Fingerman, CEO, ArcTouch
- Dave Schuman, Mobility Leader, Cloudera
- OJ Ngo, CTO and Co-founder, DH2i
- Nikita Ivanov, Founder and CTO, GridGain Systems
- Suzy Visvanathan, Director of Product Management, MapR
- Uri Sarid, CTO, MuleSoft
- David McCall, President, and Clarke Stevens, Chair, Data Model Tools Task Group and Vice Chair, Data Modeling Work Group, Open Connectivity Foundation
- Zach Supalla, Founder and CEO, Particle
- Stephen Blum, CTO, PubNub
- David Bericat, Global Technical Lead, Industrial IoT and Edge Computing, Red Hat
- Vaughn Shinall, Head of Product Outreach, Temboo
- Ray Wu, CEO, Wynd
Opinions expressed by DZone contributors are their own.