Ottomated — Utility intelligence app
A real-time utility analytics platform that turns raw meter data into actionable cost & carbon insight for facility teams.
I designed and built Ottomated end-to-end — a multi-tenant SaaS that ingests meter telemetry and renders it as clean dashboards facility teams will actually open. Started as a weekend project to scratch my own itch; now runs in production for paying customers.
Commercial-building utility data is a mess. Meter exports are CSVs from the 90s, billing PDFs are unsearchable, and every vendor portal looks like it was built in 2008. I wanted one tool that took whatever the building threw at it — bills, BMS exports, CSV drops — and produced a dashboard a non-technical building manager would understand.
- 01Self-funded — every line had to earn its keep.
- 02Multi-tenant from day one (orgs, sites, users, role-based access).
- 03Time-series data at minute granularity, retained for 5+ years.
- 04Had to handle messy real-world ingest — no two utilities export the same way.
Picked a boring stack on purpose: Next.js + Postgres + TimescaleDB. tRPC for end-to-end type safety. Drizzle ORM. No Redis until I needed it (I did).
Built the ingest pipeline first — a worker that accepts CSV/XLSX/PDF/EDI and normalizes to a single canonical schema. That was 60% of the work and the part nobody sees.
Designed the dashboard around two questions: 'what changed this week?' and 'where am I leaking money?' Everything else got cut.
Shipped the first paying customer in week 11. Used their feedback to drive everything for the next six months.
CSV / XLSX / PDF / EDI 867 normalizer with per-source adapters. Failure replay + dead-letter queue.
Per-site consumption, demand peaks, anomaly flags. Server components + streaming. Sub-100ms paint.
Scheduled PDF reports per site. Carbon accounting per Scope 2 location-based method.
Stripe-backed seat + site billing. SSO via WorkOS. Audit log on every mutation.
What it did, in numbers.
“I stopped opening five tabs to figure out what my buildings did last week. That's the whole pitch.”— Operations Director · Mid-Atlantic property group
- ※Type-safety end-to-end is worth the setup tax. tRPC + Drizzle let me ship features in hours, not days, after month three.
- ※Don't build a queue until you need a queue. Then build a queue. (I waited too long, then built one too elaborate.)
- ※The first painful customer is more valuable than the first ten happy ones. They tell you what you actually built.


