Insights · 5 min read

IoT development: what to build first and why

IoT spans firmware, connectivity, and the cloud, and teams are usually strong in only one. How to sequence the build so the device and dashboard arrive together.

By GGP Editorial

IoT development spans three worlds at once: firmware running on a device, a network link, and software in the cloud that ingests data and shows it to people. Teams often have strength in one of the three and struggle with the other two. The projects that stall are usually the ones where the device was built first and the cloud and dashboard were treated as an afterthought.

Start with the data, not the device

The question that should come first is what data the device produces, how often, and what a person does with it. A temperature sensor sending a reading every five minutes is a different system from a fleet tracker sending GPS every ten seconds. The data rate decides your connectivity, your storage, and your cost long before you pick a microcontroller.

QuestionExampleWhat it drives
How much data10 sensors vs 10,000Ingestion and storage design
How oftenEvery 10s vs every hourBandwidth and battery
Who acts on itAlerts, dashboards, automationThe software layer

Getting this table filled in first keeps the hardware team from building something the cloud team cannot afford to run.

Scope the first version tightly. One device type, one sensor or one message type, one dashboard view that a real operator would check daily. That is enough to prove the whole chain works, from firmware to browser. Adding more device types and more views after that is mostly repetition. Teams that try to support the whole fleet on day one usually ship nothing on day one.

Connectivity is a real constraint

Devices talk over WiFi, cellular, LoRa, or Bluetooth, and the choice is a trade-off between range, power, and cost. WiFi is cheap but only works where there is a router. Cellular works anywhere with coverage but every SIM costs money. Battery-powered devices can rarely afford to stay connected, so they wake up, send, and sleep. That duty cycle has to be designed in, not patched later.

MQTT is the workhorse protocol for most IoT backends because it is light and works well over flaky links. Devices publish readings, the broker forwards them, and the cloud stores and processes the stream. Expect dropped messages and duplicate messages, and design for both from the start.

On the cloud side the data is time-series, so the storage and query layer should be built for that from day one. A general relational database works for a hundred devices and creaks at a hundred thousand. A time-series store, or at least a table design that treats time and device id as the primary keys, keeps queries fast and storage cheap as the fleet grows.

Security is not optional

IoT devices live in the physical world, often unattended, for years. That makes them a target. Default passwords, unencrypted links, and firmware that can never be updated are how botnets are built. Three rules we hold to: every device gets a unique credential, everything is encrypted in transit, and every device can be updated over the air. If you cannot update a device after it ships, you will be shipping a second device sooner than you think.

Fleet management is the quiet fourth pillar. When you have five thousand devices, you need to know which are online, which are behind on firmware, and which are misbehaving, from one screen. Build that view early, even when you only have five devices, because retrofitting it later means touching every device you already shipped.

The dashboard is part of the product

The cloud side is where the business value shows up. Alerts, historical charts, fleet views, and the rules that turn readings into actions. Build this with the device, not after it. When the dashboard and the device are developed by the same team on the same timeline, the data model stays consistent and the demos actually work end to end.

The handoff between hardware and cloud is where most integration bugs live. The device sends a reading, the cloud has to parse it, validate it, timestamp it, and store it without losing or duplicating anything. If the firmware team and the cloud team are not talking daily, this contract drifts and you spend weeks chasing mismatched field names. We keep the two sides in one project with one shared data contract, which is the practical fix for that drift.

We are a China-based team and IoT is one of our core areas, alongside AI, financial systems, and mini programs. We have served customers in Brazil, South Africa, Singapore, and the United States, so we are used to working across time zones with overlap hours, a dedicated group, and English or Portuguese communication. If you have a device prototype and a cloud that does not quite talk to it, that is a fixable problem and a common one.

Talk to us about your project

Need help applying this?

Tell us what you are building and where you are today. We typically reply within 24 hours.