RapidConnect - IoT Wireless Connectivity Platform
Summary
As the first embedded engineer to join an IoT startup, I designed and developed from the ground-up a firmware platform that accelerates custom development of IoT wireless products for the home automation and smart energy space. The platforms were named RapidHA, RapidSE, which later evolved into RapidConnect. These were the foundational platforms for the many products and services that the company provided.
Outcome: RapidConnect has been successfully used to bring dozens of products to market, and is still actively being used and maintained over a decade later.
Role: I started as the lead developer, and later the manager of different engineering teams that maintained and used the platform.
Challenges
- Conform to multiple standards and ecosystem requirements
- Continual up to date with new wireless standard specifications
- Maintaining evolution of underlying technology stack
- Designing easy-to-use APIs, abstracted on top of complex technology, maintaining a balance of abstraction but also customizability
- Influencing the wireless standards to make them easier for small IoT vendors
- Abstracting a common network management API over multiple wireless technologies
- Most customers don’t understand IoT wireless well.
Process
- Designing rigorous QA test suites
- Managing product iterations
Lessons
- Design good code structure so it is easy to refactor for future updates. It also makes it easy for future developers to maintain. It also enables allowing write unit test code.
- Test the code and platform in multiple ways
- It never was as successful as its initial promise. There was still a gap between the easiness required for users to develop themselves vs the ease promised by the platform. It is indeed used a lot internally to provide turnkey solutions to customers.
- Tell the customer the straight up truth. Customers have their own ideas on what are possible, but they also rely on us as the experts. We need to tell them what is possible within the technical and time constraints.
- Have good relationship with supplier, to receive up to date support and early updates
- Managing good engineering practices in combination with business delivery. Others were good at engineering practices, but I was especially good at balancing technical needs with business practicalities. I delivered incrementally and tried not to over-engineer. I was precise on delivery criteria and tried not to add fluff. But i also maintained an architecture that is clean and organized.