IIoT Gateway

Team – 1x Embedded Software Developer, 1/8 CTO as a Service
Tech stack – STM32L4, Wirepas, FreeRTOS, C, Protobuf

What was the client’s initial situation? What challenges were they facing?

When we joined the project, client was struggling with a lack of in-house knowledge, experienced engineers, and budget to hire them. Their technical team consisted of a part-time senior engineer (20–30 hours/week) and a student.

One of their biggest technical challenges at the time was extending their communication protocol – without clear ownership or strategic direction.

How was the client handling the problem before we stepped in?

There was no real solution in place for the lack of skilled resources. As for protocol changes, the embedded team would update the firmware and an Excel spreadsheet, then inform the gateway team to manually adjust their software – a process that was fragile, inefficient, and error-prone.

How did GoodByte solve the problem?

I stepped in to support the student developer directly, offering mentorship and technical guidance – particularly around implementing automatic node joining in the network.

At the same time, I began documenting system knowledge and building a knowledge base. This helped me understand the system while leaving behind structured resources for future team members – enabling onboarding without relying on me.

We also reworked the communication protocol:

  • Migrated to Protobuf;
  • Unified message definitions between firmware and gateway. This significantly improved consistency and maintainability;

To accelerate the development of the software, we also engaged an embedded programmer to work on the client’s project code.

How did the changes help the client?

  • Shared protocol definitions – Communication between components became clearer and more reliable through versioned protocol definitions stored in the repository.
  • Version transparency – It became easy to identify which system component used which protocol version.
  • Optimized encoding – Message size was reduced through more efficient encoding techniques
  • Automated tests – The team gained confidence in communication reliability through automated testing.
  • Team efficiency – With the student independently delivering key features, Snapdaq accelerated without
    needing to scale the team prematurely.

Embedded Tech Advisory

Identified the key architectural gap:

  • Communication flow – Lack of a single source of truth was identified and foundational changes were introduced to address it
  • Student mentorship – Guided the student toward a working solution despite hardware limitations (Wirepas modem), supported onboarding, and helped resolve daily blockers
  • Knowledge base – A shared knowledge base was created to support team onboarding and reduce dependency on individual contributors

Embedded Software Development

  • Protobuf implementation – Current focus on implementing Protobuf to enable standardized, efficient, and scalable data exchange across the system.
  • Firmware maintenance and development – Ongoing development and maintenance of node firmware operating within a Wirepas mesh network.
  • Device-to-gateway communication – Implementation and optimization of communication between nodes and the gateway, including transmission of system status and critical operational parameters.
  • Troubleshooting communication issues – Involvement in identifying and resolving communication problems between networked devices.
  • Technical documentation – Creation of technical documentation describing firmware structure and functionality for internal and external use.