victor@portfolio — zsh
click anywhere to skip
FEERS Energy
In Production·Energy IoT · In Production

FEERS Energy

Currently in production build — live demo not yet public
ClientFEERS
Year2026
RoleSoftware Engineer
StatusIn Production
End-to-end latency<1s
Device authDual
MQTT QoS1
BrokerEmbedded

About the Project

FEERS is a Botswana based energy tech company. It started with Lesego Montsho during her time at the University of Botswana, where she kept noticing the same thing every day. Lights left on in empty dorms. Computer labs burning power overnight with nobody in them. Lecture halls and government buildings running fans and ACs long after everyone had gone home. Nobody was doing anything about it because nobody actually had a way to see what was happening. That frustration turned into a question: what if you could see every appliance drawing power in real time and just turn it off from your phone? That question became FEERS.

Today FEERS is backed by a network of 13 supporting organisations and builds intelligent energy monitoring for commercial buildings, government institutions, and households across emerging markets. The core product is the FEERS Monitor, a small device that sits inside the breaker panel and watches energy flow live, paired with the FEERS App that lets you track usage, get alerts, and remotely switch anything in your home or office on or off. Forgot to turn off the office AC before leaving for the weekend? Open the app. Want to cut power to a water heater you're not using? One tap. The roadmap goes further into FEERS Mobility, which brings EV charging into the same real time load management system.

What I Built

  • Embedded Aedes MQTT broker running inside the Node.js backend
  • Bidirectional control — dashboard → REST → MQTT → hardware relay
  • JWT auth for users, API keys for hardware modules
  • Automatic state sync via retained messages + QoS 1
  • Live energy analytics streamed via Socket.IO

System Design

ESP8266 microcontrollers with PZEM-004T energy sensors publish readings over MQTT to an embedded Aedes broker inside the Node.js backend. The backend persists data to MongoDB, maintains device state, and forwards updates to connected React clients via Socket.IO. A dual-auth system uses JWT tokens for dashboard users and API keys for hardware modules. Device disconnect detection automatically propagates status changes. The frontend is a Next.js dashboard with live-updating charts, device toggles, and scheduling controls.

Tech Stack

  • Node.js
  • Aedes MQTT
  • Socket.IO
  • React
  • Next.js
  • MongoDB
  • ESP8266
  • TypeScript

Gallery