Team build · full-stack IoT
  • Office air quality, from sensor firmware to a role-based dashboard
  • Four-layer stack: C/C++ → Python edge → Java → React, front and back in a 6-person team
  • Privacy rule enforced twice: edge + server validation

Office air quality, sensor to dashboard

Sensor stations in the rooms, an edge box that filters and forwards, a Spring backend and a role-based React dashboard. Six people built it; front and back end are mine.

The system

Four layers, each a different stack, all talking to each other:

  • Arduino Nano 33 BLE (C/C++):Sensor stations reading temperature, humidity and air quality from a BME688, advertising over Bluetooth Low Energy.
  • Raspberry Pi edge (Python, bleak, SQLite):Reads each station every 10s, applies a 5-sample sliding median to filter sensor noise, and enforces a privacy rule locally before forwarding.
  • Spring Boot (Java 25):Central server — user management, role-based visualizations, climate scores, threshold warnings.
  • React 19 / TypeScript:Dashboard, with a TypeScript API generated from the backend's OpenAPI spec.

Privacy by design

The spec carried a long list of privacy rules and exceptions. Each one is enforced twice — once on the edge box before anything leaves the room, once again on the server — so a single misconfigured layer cannot leak a reading.

ClimateCanary dashboard
C/C++BLEPythonSpring Boot Java 25React 19DockerPostgreSQL
Contact

Let's talk about the project.

Full attention on what we build. Remote, CET.