How to Become an IoT Consultant?
Numerous people asked me how to become an IoT Consultant. This journey is very subjective and different for everyone, so please share your experiences and provide feedback on my suggestions. I wrote this post based on my perspective. Whether you’re just starting or are an established professional, I hope you find value in my story and advice.
My Journey
I began my career as a developer, working with PHP, JS, and MySQL in what we now call a Full-Stack role. From there, I transitioned into Solution Architecture, IT Consultancy, Project Management, and eventually became an IoT Consultant, Advisor, and Trainer.
My path has been heavily IT-focused rather than hardware-centric. Although I’ve always been interested in hardware, it was never my main area of expertise. If you come from a hardware background, your journey may look very different, and I’d love to hear about your experiences.
What does an Internet of Things Initiative look like?
Before we delve into how to become an IoT Consultant, we need to define what an IoT Consultant does. The characteristics of Internet of Things initiatives define the roles involved, including the IoT Consultant.
Typically, an IoT project consists of:
- Devices (sensors and actuators)
- Edge Gateways (facilitating communication between local Devices and Backend systems)
- Backend infrastructure (on-premise, cloud-based, or both)
The telemetry data flows from Devices to the Backend, and commands flow back using a secure, encrypted channel.
Roles in an IoT Project
IoT projects demand multiple roles:
- Hardware Designer: Focuses on creating the actual “Thing” of the Internet of Things.
- Embedded Developer: Writes the firmware controlling the hardware.
- IT and Network Administrator: Establishes local connectivity, secure networking, and manages physical/virtual servers.
- Edge Application Developer: Creates business logic on edge devices.
- Cloud Developer: Builds the Cloud infrastructure, ensuring it’s secure, scalable, and cost-optimized.
- Full Stack Developer: Develops applications and user interfaces for Cloud and Backend systems.
- Solution Architect: Ensures the entire system works end-to-end and fulfills business requirements.
- Project Manager and Business Stakeholder: Responsible for timelines, budgets, and defining business requirements.
The Domains
To be effective, an IoT Consultant must understand and communicate with all these roles, each with its own focus and expertise.
-
Developers:
- Domain-specific focus (e.g., hardware, firmware).
- Deep, low-level expertise.
- Respect their focused, detailed knowledge.
-
Solution Architects:
- Wide but high-level knowledge.
- End-to-end perspective of the project.
-
Business Representatives:
- Focus on outcomes over functionalities.
- Non-technical customer representatives responsible for defining requirements and organizing budgets.
Understanding the different perspectives—the “how” from developers, the “what” from architects, and the “why” from business stakeholders is a critical trait of an IoT Consultant.
Switching Roles to Become an IoT Consultant
My advice approach to switching roles to become an IoT Consultant:
If You’re a Domain Expert:
- Get out of your comfort zone: Accept that you will not know everything.
If You’re a Solution Architect:
- Respect hardware constraints: Great designs in theory might not always translate well in practice.
If You’re a Business Owner or Project Manager:
- Get your hands dirty: Start designing and building. Experience the implementation challenges firsthand.
How to Start
Learn from others to accelerate your journey
If you’re new and unsure where to begin:
- Find mentors or podcasts: Learn from those who are ahead in the journey. [my podcast]
- Educational Resources: Books and online materials can provide a structured learning path. [my book]
Practice over Theory
When it comes to studying the Internet of Things (IoT), Docker offers remarkable benefits by providing a versatile and scalable environment.
Creating a Fleet of Virtual Devices
By using Docker containers, you can create an entire fleet of virtual devices right on your laptop. This is particularly valuable for managing and experimenting with large numbers of devices without requiring significant hardware investments. You can spawn multiple Docker containers to simulate various scenarios, such as network or battery failures, by simply stopping some of the containers. This hands-on approach is invaluable for troubleshooting and managing a device fleet.
Designing and Implementing Complex Systems
Docker also allows you to design and implement complex IoT systems. By creating multiple Docker images representing different parts of a complex machine or a production line, you can establish network connections between them. Consequently, you can learn how to create edge gateways and deploy applications seamlessly across these containers. Docker’s flexibility allows you to build and test sophisticated systems without needing physical infrastructure.
Simulating End-to-End Scenarios
One of the strengths of Docker is its ability to simulate comprehensive end-to-end IoT scenarios. For instance, you might have an on-premise infrastructure within an isolated network, an edge gateway connecting this network to a cloud backend, and the cloud backend itself. The cloud component can range from actual cloud services to containers running on your laptop to emulate cloud functionalities.
Sample project (outdated code, for reference only!): https://github.com/LMtx/aws-ggc-secret-example-01
Essential Communication Protocols
Effective communication within the IoT ecosystem is fundamental, as it integrates remote devices with backend systems.
While there are numerous protocols and communication options available for IoT, I’d like to focus on a few that I believe provide a substantial foundation. This is by no means an exhaustive list, but based on my experience, these protocols are the most popular and offer a terrific starting point.
My recommendations:
- MQTT: Ideal for many-to-many communication between devices, applications, and backend systems. [homepage, specifications]
- RESTful API: Alternative way to connect remote devices with backend systems. [article]
- OPC-UA: Mainly for Industrial IoT, facilitating communication between factory equipment and edge gateways. [homepage]
Tools and Technologies
Here’s a list of the tools I use regularly:
- Python: Versatile and easy to understand. [homepage, training]
- JupyterLab: Great for mixing code with documentation. [homepage]
- AWS CDK and SDK for Python: Manage static and dynamic cloud infrastructure. [AWS CDK documentation, AWS SDK documentation]
- VS Code and Git: Essential for coding and version control. [VS Code, Git homepage, Git Book]
- Draw.io: Useful for creating diagrams. [homepage]
- UML and BPMN To model software and business entities and processes. [UML, BPMN]
- MQTT Broker and Client: [homepage]
- API Development [homepage]
Conclusion
Becoming an IoT consultant involves technical and organizational learning curves, but the journey is incredibly rewarding.
Feel free to reach out to me with questions. I hope this guide helps you navigate and achieve your goals.
Thank you for reading!
Recorded live stream
You can watch the recorded live stream on my YouTube channel: