Software built for
energy, mobility and media
We work in four domains where the data is real-time, the protocols are industrial and a wrong reading has operational consequences. Pick the one closest to your problem — each page describes what we build and the stack behind it.
Where we go deep
A team already fluent in the protocols, the failure modes and the operator vocabulary of a sector does not bill the client for that learning. The work starts at integration depth, not from first principles.
Solar portfolio software→
Portfolio monitoring for PV operators: live inverter telemetry, irradiance-corrected performance ratio, yield reporting and rule-based alerts across multiple plants.
BESS management & monitoring→
Control-room views over battery banks, PV inverters and DC strings: live energy flow, SOC/SOH analytics, string-level diagnostics and rule-based alarms.
EV charging platforms→
CPO and EMSP back-ends, white-label charging management, smart charging and load balancing, plus route planning for multi-stop commercial EV fleets.
Video infrastructure→
Transcoding and packaging pipelines: ABR ladders, per-title encoding, low-latency HLS, multi-DRM delivery and hardware-accelerated encoding at scale.
Generic teams re-learn the domain on your budget
Most of the cost in an industrial software project is not in the code — it is in the misunderstandings. A team that has never read an IEC 61850 data model, or that treats an OCPP session as a simple request/response, discovers the real requirements during integration testing. That is the most expensive place to discover them.
Working in a small number of domains lets us start from the constraints instead of from a framework. We know which telemetry fields are unreliable in practice, which vendor implementations deviate from the specification, and which numbers an operator actually looks at first.
- Protocol behaviour known up front, not discovered during integration
- Data models designed around real query patterns, not generic CRUD
- Interfaces reviewed against how operators work, not how demos present
- Failure modes and edge cases named during architecture, not after go-live
- Estimates grounded in domain reality rather than optimistic analogy
What carries across all four
The domains differ; the engineering foundation does not. Every platform we build rests on the same three layers.
Telemetry ingestion
Protocol adapters, brokered and polled ingestion, enrichment pipelines and time-series storage sized for the query patterns operators actually use.
Operator-grade interfaces
Real-time React dashboards built for people making decisions under time pressure — information hierarchy first, chart library second.
Production operations
Structured logging, distributed tracing, alerting and CI/CD pipelines from the first commit, so the system stays supportable after handover.
Not sure which section fits your project?
Describe the hardware, protocols and users involved. We will tell you what is straightforward, what carries risk, and where we have done it before.