IOT Application Series Part 1: Series Overview

Why This Series?
I want to make a series of posts from the perspective of a software development consultant working on a hypothetical client project. This will show the process of evaluating a clients requirements and coming up with a solution to meet those requirements. Then we will dive into the technical details of the solution in future parts.

The Client
The HyperWidget Company (HWC) is a medium sized manufacturing company that produces a widget that it sells to customers for installing on-site. This widget automates part of the customers business with hardware, and they use this widget to produce revenue. HWC also has a geographically distributed technician network that can install and service the widgets. They sell new installations, upgrades, maintenance and inspection plans, and general service calls for these widgets.


The Problem Space
When widgets are out of service, the customer is not making money, so the goal of HWC is to provide preventative maintenance, and tighten the loop between fault and downtime detection, and a technician being on-site to fix the problem. HWC would like to build a solution that both provides notifications to their technicians of problems with the widgets, and also allows their customers to be notified of the problems and the status of the technician repair process. Due to resource constraints and expertise, they are unable to build this solution in house, and have reached out to your company to bid on a solution.

Client Constraints

  • Hardware should be with off the shelf development kits, but with a future goal of manufacturing a custom PCB and assembling at HWC manufacturing plant. Estimated 10 year product life expectancy. $200 budget per device.
  • Hardware device needs to survive harsh environment (indoors, but non climate controlled, hot/cold/humidity cyclical)
  • Hardware device needs to be connected using cellular data due to remote deployment locations without good hardwired internet access.
  • Hardware device should be able to be remotely updated to reduce technician labor for supporting deployments.
  • 10,000 – 20,000 devices. 1500-20,000 datapoints per day per device.
  • Software solutions should be built using Azure and asp.net/c#/sql server for backend and Blazor for frontend to align with HWC technical resources to support and maintain post deployment.
  • Software solutions need to integrate with existing authorization and authentication systems (Azure AD, customer account system)
  • Mobile application needs to be cross platform (available on iOS and Android devices)
  • Deployment of new devices on site needs to be streamlined to reduce deployment labor costs and training for rollout.

Leave a comment