IoT water monitor for regions where the supply is unreliable. An Arduino reads the tank level every minute, the dashboard shows it live, and email alerts fire before you run dry. It has been running on my family's tank for over a year.
Personal Project


In Baja California, water isn't guaranteed. Many homes rely on water trucks that deliver on irregular schedules, and storage tanks are the buffer between having water and running dry. I wanted to build something that would tell you exactly how much water you have left and warn you before it runs out.
Designed the full system architecture: Arduino firmware that registers itself on first boot, Lambda for sensor ingestion and notification dispatch, NestJS API behind API Gateway, and a React SPA with Clerk authentication.
Built an LSTM prediction service on FastAPI, trained on historical usage with hyperparameters tuned by a genetic algorithm and cached in Redis. I measured it against the latency it added and switched it off. A simpler regression is what I would build in its place.
About 1,440 readings a day at under 100 ms per write. The system has been running on my family's tank in Ensenada since 2025, and my dad and my brother use it too.