Adityacprtm
Aditya Pratama
Site Reliability Engineer
operator/01
system status
status available
tzGMT+7
response<24h
Back to Portfolio
ThingsBin — IoT Data Platform

ThingsBin — IoT Data Platform

Solo Developer2021 · 1 month

An IoT data collection and visualization platform built with Node.js and AWS. IoT devices push telemetry data via a REST API for real-time monitoring and historical analysis.

Tech Stack

Node.jsAWSMongoDBExpress.js

Architecture

IoT devices send telemetry via HTTP POST to an Express.js API running on an EC2 instance. Data is stored in MongoDB with time-series collections for efficient range queries. A Vue.js dashboard displays real-time sensor readings via WebSocket and historical charts using Chart.js. The system supports multiple device types with a flexible JSON schema.

Challenges & Solutions

Ingestion Throughput for Bursty IoT Data

When multiple devices reported simultaneously, the single-threaded Node.js event loop struggled under high concurrency. The fix was to introduce a Redis-backed message queue to decouple ingestion from persistence, along with connection pooling for MongoDB.

Time-Series Data Growth

Without data retention policies, the database grew rapidly. MongoDB's TTL indexes were configured to automatically expire data older than 90 days, and aggregation pipelines were used to downsample older records into hourly summaries.

© 2026 Aditya Chamim Pratama All systems operational