Embedded & IoT
We build the software behind connected products.
From the code running on a device to the app people use, we connect the parts your product needs. The starting point is what someone should be able to do, what information would help, and how the product needs to behave in everyday use.
Tell us about your idea, an existing prototype, or a system you need to improve.
What should the product make easier?
A connected product might remove a manual check, make equipment easier to use, or help a team understand what needs attention. That purpose should guide the design of the device, its software and its interface.
Consider everyone who will encounter it: the person installing it, the person using it, and the person maintaining it. Their needs are different, and all three belong in the product brief.
- The people
- What are they trying to do, and what gets in their way?
- The information
- What do they need to know or act on?
- The conditions
- Where will the product operate, and what constraints does that create?
The device is one part of the product.
The software on the device, the connection, the interface and the handling of data need to support the same use. A measurement should lead to information someone can understand, or an action the product needs to take.
Not every product needs every layer. Some functions belong on the device; others benefit from an app, a local service or a remote backend. A cloud connection is a choice, not a requirement.
- Device software
- Reads sensor inputs and implements the device’s required behavior.
- Communication
- Exchanges data between devices, applications and services.
- Interfaces
- Lets people see device information and interact with the product.
- Data processing
- Collects, processes and stores measurements for the intended use.
- Remote updates
- Provides a way to update deployed device software within the agreed scope.
How we make product decisions
Human input defines what the product should achieve. Data helps test assumptions and understand what is happening. AI can assist the work where it is useful, without becoming a requirement for every product.
The experience includes installation and maintenance.
The interface is not only the dashboard. It also includes understanding the device’s state, setting it up and knowing what to do when something needs attention.
Collect information for a reason.
Start with the decision or action the information should support. A useful measurement answers a question; a useful interface helps someone act. That gives the data work a purpose beyond producing more charts.
Choose where the work happens.
Local processing, remote services and connectivity should follow the operating requirements. Power, access to a network and the behavior needed on the device help determine where each function belongs.
Give AI a specific role.
AI-assisted development and AI inside a product are different decisions. AI can help explore ideas, draft work or examine data, with people reviewing its output and making the decisions. An AI feature in the product needs its own purpose, defined limits and validation.
Decisions to resolve before deployment
Everyday operation raises questions a demonstration can leave unanswered. Resolving them helps define what the system needs to do and who will operate it.
- What should happen when the connection is unavailable?
- Define which functions need to continue and how the product reports its state.
- What power and installation constraints apply?
- Make the operating conditions explicit, including where the device will be placed and how it will be powered.
- How will devices be set up and updated?
- Consider the installation steps and the software-update experience.
- Who can access the device and its data?
- Establish the project’s access and data-handling requirements.
- Who will operate and maintain the system?
- Clarify responsibilities, documentation needs and any ongoing services.
These questions shape the project brief. Offline behavior, update mechanisms and ongoing support depend on the requirements and scope agreed for your product.
The technology behind the product
Once the use and constraints are clear, we can choose the parts that fit. Our connected-device software work spans:
- Device software
- ESP32, Raspberry Pi and custom firmware for on-device behavior and processing.
- Device communication
- MQTT integration with brokers such as EMQX and Mosquitto.
- Interfaces
- Flutter applications and dashboards for device information and interaction.
- Telemetry
- Pipelines to ingest, process and store sensor measurements.
- Firmware updates
- Remote update mechanisms for deployed devices, scoped to the project.
Tell us what you need the product to do.
Describe who will use it, where it will operate, and what you already have. Include any constraints you know, such as power, connectivity or existing equipment.