IoT · Smart city
Designed to monitor 50,000 manholes across a city
Proprietary IP built for municipal deployment: CNDINGTEK sensors over NB-IoT and 4G, a Python ingestion API, and threshold-based alerting. Presented to municipal authorities; IP retained.
Domain: IoT / Smart City / Infrastructure Type: Proprietary IP (built and presented to a municipal authority; project discontinued, IP retained) Team Size: Backend + IoT integration
Urban infrastructure teams responsible for underground utilities — sewage, drainage, telecom ducts — had no way to monitor manhole conditions in real time. Flooding, unauthorized access, structural tilt, and extreme temperatures went undetected until they surfaced as failures, safety incidents, or service disruptions. Inspection rounds were manual, periodic, and reactive. The unit economics of a city-wide physical inspection program simply don't work at scale.
We built this as proprietary IP and presented it to the municipal authority responsible for monitoring approximately 50,000 manholes across the city. At that scale, "IoT project" stops being a hardware exercise and becomes an engineering problem where every design decision gets multiplied by 50,000. The system had to:
The project was ultimately not deployed and was later discontinued; the IP remains with us.
Sensors (DC413) → NB-IoT / 4G → Gateway → Ingest API → Time-series store → Alert pipeline / Dashboard
At a conservative one-sample-per-hour reporting cadence, 50,000 devices generate ~14 messages per second steady-state. Outage-recovery bursts push that an order of magnitude higher as the fleet catches up after a carrier incident. Any architecture that doesn't acknowledge that asymmetry — normal load is easy, recovery load is the design point — falls over the first time a carrier has a bad night.
The ingest path is built around three principles:
Battery-powered NB-IoT devices live or die by their duty cycle. Every byte on the wire costs battery and cellular-plan budget. The protocol reports compact binary frames at configurable intervals; thresholds and sample rates are tunable from the backend via downlink config so a device's behavior can be changed without physical access. Dead-zone reporting (silence when nothing is changing) is preferred over periodic heartbeats where possible, with a watchdog heartbeat on a long interval to distinguish "quiet" from "failed".
Manhole telemetry is a classic time-series workload: heavy writes, mostly-recent reads, occasional historical scans for trend analysis. The schema is keyed on (device_id, metric, timestamp) with server-side timestamps preserved alongside device-reported timestamps so clock skew and delayed delivery are both visible. Retention is tiered — high-resolution recent data, downsampled longer-term data — so analytics queries stay fast as the fleet accumulates years of history.
A raw threshold-alert system at 50k devices produces a stream of alerts no human can act on. The pipeline is designed around what an operations team can actually process:
The CNDINGTEK data format was documented sparsely and behaviorally. Getting to a production-ready parser meant reverse-engineering the binary layout, validating our understanding against live sensor captures across multiple devices, and building a test harness of captured frames so protocol work could be verified without a device in the loop. The parser is defensive: unknown fields are preserved, malformed frames are rejected with enough diagnostic context that a flaky device can be identified and tagged, not just logged.
At city scale, individual devices are invisible — what matters is fleet health. The operator view emphasizes aggregates: percentage of devices reporting in the last N hours by neighborhood, battery-distribution histograms, signal-quality heatmaps, and a drill-down from aggregate anomalies to specific devices. A 50k-pin map is a theater prop; a searchable, filterable table with saved views is an operations tool.
Infrastructure IoT lives or dies on install discipline. The system treats device-to-manhole binding as a first-class provisioning event — GPS tag at install time, photographic record, owning team assignment, and a reconciliation pass that flags devices reporting from coordinates materially off their registered location (likely mis-bound or stolen).
| Layer | Technology |
|---|---|
| Sensors | CNDINGTEK DC413 |
| Connectivity | NB-IoT (primary), 4G (fallback) |
| Backend API | Python |
| Gateway | NB-IoT Gateway (custom provisioning and config) |
| Protocol | Proprietary binary format — custom parser with replay-test harness |
| Storage | Time-series schema with tiered retention (high-res recent, downsampled historical) |
| Alerts | Deduplicated, severity-classified, flap-suppressed pipeline |
IoT projects expose a specific kind of engineering maturity: they span hardware protocols, low-power networking, intermittent connectivity, time-series scale, and operator ergonomics at fleet size, and any one of those dimensions can sink the project. Getting this system to work meant reverse-engineering a proprietary sensor protocol, respecting the duty cycle of battery-powered devices, designing the backend around recovery-burst load rather than steady-state, and — critically — designing an alert pipeline a real operations team could actually live with. Even though the project didn't reach production, the design decisions and the IP we retained are directly applicable to the class of problem again.
More recent work
Healthcare · Patient management
A six-app healthcare ecosystem — the product our client took to Shark Tank
Patient app, resident web, staff portal, admin dashboard, shared SDK, and an AI emergency dispatcher — all sharing a single backend with role-isolated access. Built for a healthcare startup that was later featured on Shark Tank with the product we delivered.
Read the case study
Transportation · Smart city
Multi-modal routing and cashless ticketing for public transit
Proprietary IP we built and productised — launched on the App Store and Play Store. 150+ APIs, dynamic fare engine, real-time vehicle tracking, ONDC-certified, and a voice AI for 250+ metro stations.
Read the case study
Tell us what you're trying to build. Discovery calls this week, scope within 3 business days.