
IoT Startup
Challenge
Business Overview
The client places IoT sensors in one location, which report data live about that location. The IoT sensors are mobile and, therefore, battery-powered and connected to the Internet over mobile broadband. The client has a global customer base that includes government agencies covering a population of 500K to 20M.
About the Project
The client sought to decrease their ongoing cloud expenses and move data processing from the cloud to edge devices. After discussing their issues and previous setups, we proposed a plan to allow seamless migration and end-to-end encryption while helping them minimise operating costs.
Business Overview
The client places IoT sensors in one location, which report data live about that location. The IoT sensors are mobile and, therefore, battery-powered and connected to the Internet over mobile broadband. The client has a global customer base that includes government agencies covering a population of 500K to 20M.
About the Project
The client sought to decrease their ongoing cloud expenses and move data processing from the cloud to edge devices. After discussing their issues and previous setups, we proposed a plan to allow seamless migration and end-to-end encryption while helping them minimise operating costs.
Solution
Phase 1 - Edge Migration
The legacy system worked very well as a prototype but severely lacked scalability and security. We ported a lot of Python code to C++ to improve performance and quickly run their data processing pipeline on the edge devices.
We completed the migration process and tested the system extensively to ensure it worked correctly and had no issues. We wrote monitoring software to measure the reliability and availability of the platform and also introduced alerts for any detected faults. Transferring the processing to the edge devices allowed for improved security and reduced bandwidth and cloud costs, which the client initially wanted.
Phase 2 - Desktop Application
After that, the project expanded to rebuilding the application to enhance security and privacy while migrating the existing desktop application. Our team used the old [Qt] desktop application for design inspiration as we migrated the functionality to a new [Electron.js] application. The choice of using Electron.js worked well as a customer later asked for a web-based desktop application version.
We added end-to-end encryption and digital signature verification to prevent external and third-party access to sensitive data and information. We also set up role-based access control so that the decryption and accessibility of the data are limited to predefined roles granted to users. By doing so, we enhanced the security measures and privacy compared to the original application.
Phase 1 - Edge Migration
The legacy system worked very well as a prototype but severely lacked scalability and security. We ported a lot of Python code to C++ to improve performance and quickly run their data processing pipeline on the edge devices.
We completed the migration process and tested the system extensively to ensure it worked correctly and had no issues. We wrote monitoring software to measure the reliability and availability of the platform and also introduced alerts for any detected faults. Transferring the processing to the edge devices allowed for improved security and reduced bandwidth and cloud costs, which the client initially wanted.
Phase 2 - Desktop Application
After that, the project expanded to rebuilding the application to enhance security and privacy while migrating the existing desktop application. Our team used the old [Qt] desktop application for design inspiration as we migrated the functionality to a new [Electron.js] application. The choice of using Electron.js worked well as a customer later asked for a web-based desktop application version.
We added end-to-end encryption and digital signature verification to prevent external and third-party access to sensitive data and information. We also set up role-based access control so that the decryption and accessibility of the data are limited to predefined roles granted to users. By doing so, we enhanced the security measures and privacy compared to the original application.
Results
Overcoming the Odds
An issue we repeatedly faced during development was regarding reproducibility. Because we were dealing with hardware, it was often difficult to reproduce issues that we infrequently saw, as we needed to know what conditions were required to reproduce them. We added very detailed logging to identify issues more quickly and put in workarounds, even without being able to reproduce the issues. We wrote monitoring software to measure the reliability and availability of the platform and also introduced alerts for any detected faults.
The migration allowed us to reduce operating costs by 90%, increasing scalability. By removing the cloud from the data processing pipeline and implementing end-to-end encryption, we were also able to increase data network security and privacy.
Overcoming the Odds
An issue we repeatedly faced during development was regarding reproducibility. Because we were dealing with hardware, it was often difficult to reproduce issues that we infrequently saw, as we needed to know what conditions were required to reproduce them. We added very detailed logging to identify issues more quickly and put in workarounds, even without being able to reproduce the issues. We wrote monitoring software to measure the reliability and availability of the platform and also introduced alerts for any detected faults.
The migration allowed us to reduce operating costs by 90%, increasing scalability. By removing the cloud from the data processing pipeline and implementing end-to-end encryption, we were also able to increase data network security and privacy.