To gather insights on the evolution of IoT to this point in 2017, we spoke to 19 executives who are familiar with the current state of the Internet of Things. Here’s who we talked to:
We asked them, "What skills do developers need to be successful working on IoT projects?" Here's what they told us:
- Learn the impact of data, how databases work, as well as the data tier. Think about how data applies to the real world. How will data react in a distributed world? One side exists in which technical developers like SQL and Spark but as these come together need to understand streaming data, machine learning, and creating feedback loops to provide more value so the edge is continually getting better.
- SQL, Java, Python, distributed systems, machine learning, artificial intelligence. Understand how to collect data and learn from it. Have the ability to ask the right questions to get more out of the data.
- The software resides on the device that is resource constricted. Learn to deal with intermittent connected devices. How do you plan for that and manage transitions from one device to another?
- Two answers depending on what you’re trying to accomplish. 1) If you’re a student, understand Amazon’s and Azure’s approach to IoT and learn their products and tools. 2) To be successful, understand the big picture of all moving parts, not just the bits and bytes of code. We moved from Waterfall engineering out to Agile processes where we are learning and iterating more quickly. Work on teams focused on services that can stand alone and collect from other services. A software development architect will understand the big picture.
- Know coding. Listen and execute flawlessly. The key person is the product manager who can work with engineering, developers, and the business professionals. Understand how to solve business problems and add value.
- 1) Systems programming is back. Edge apps run on different environments. 2) Interconnectivity to get value and end user experience with APIs and DevOps.
- From a storage POV, we made it easier to have developer interfaces to storage via a standard Restful. Easy to have Restful-based protocol access.
- Think end-to-end solutions, not just embedded solutions. Connect to the cloud and be able to scale. Bringing together security, IoT, and data is challenging. Individuals and teams need to be mindful of the challenge of managing and visualizing data.
- Understand what’s possible with software, hardware, and gateways.
- Take a standards approach to leveraging a broad ecosystem gives developers a lot of flexibility. Understand the use of machine learning algorithms and how they run on physical devices to make decisions in real time. This requires an understanding of microservices.
- A lot of platforms are out there that require low level programming experience. Jump in. The need for computer science experience is shrinking. Go find the platforms and start playing with them. Don’t start from scratch.
- 1) Keep minds open because so many different standards around security, scalability and resource management. Code must be efficient in memory, power, and bandwidth consumption. Pick up an Arduino or RaspberryPi and see a light blinking because of the code you wrote. Contribute code to the Open Source community.
- Have database management skills and be able to obtain insights from data. The ability to extract patterns from information. Software developers tend to write bloated code. Need to know how to write for resource constrained products. There will be a demand for embedded programmers.
- Device developers and manufacturers need to be looking for partners, both in delivery (cable and ISPs) and technology (connectivity, cloud, analytics), that can help them design and develop IoT solutions quickly and cost-effectively. When choosing a connectivity hardware supplier, system developers should select a partner with a proven hardware reference design and a mature, well-documented software development kit (SDK) that will work for their solution and their chosen service provider. For example, if their service provider plans on using a variety of different connectivity standards, then multi-channel radio support in the silicon is critical. Multi-stack protocol capability is key, as is a scalable software architecture that enables the engineer to plug-in different application protocols as needed.
- Think about the IoT partners you are working with. Know Java and .Net to be able to hard code the technical resources needed to achieve the business outcomes. Be cognizant of the need to collaborate within your organization, with resource providers, and with clients. Be a full-stack developer that knows how to connect APIs. Stay abreast of the changes in the industry and flexible with regards to platforms, architectures, and languages.
- How to work with data, how to architect it, how to aggregate data, model it, make it analytic ready. Access to big data technologies such as MongoDB, Hadoop. Knowledge of data mining and predictive modeling
What else do developers need to keep in mind when working on IoT projects?
And in case you're wondering, here’s who we talked to:
- Scott Hanson, Founder, and CTO, Ambiq Micro
- Adam Wray, CEO and Peter Coppola, SVP, Product Marketing, Basho
- Farnaz Erfan, Senior Director, Product Marketing, Birst
- Shahin Pirooz, CTO, Data Endure
- Anders Wallgren, CTO, Electric Cloud
- Eric Free, S.V.P. Strategic Growth, Flexera
- Brad Bush, Partner, Fortium Partners
- Marisa Sires Wang, Vice President of Product, Gigya
- Tony Paine, Kepware Platform President at PTC, Kepware
- Eric Mizell, Vice President Global Engineering, Kinetica
- Crystal Valentine, PhD, V.P. Technology Strategy and Jack Norris, S.V.P., Database Strategy and Applications, MapR
- Pratibha Salwan, S.V.P. Digital Services Americas, NIIT Technologies
- Guy Yehaiv, CEO, Profitect
- Cees Links, general manager Wireless Connectivity, Qorvo
- Paul Turner, CMO, Scality
- Harsh Upreti, Product Marketing Manager, API, SmartBear
- Rajeev Kozhikkuttuthodi, Vice President of Product Management, TIBCO