Case study · Full-time · built from scratch
Solar project lifecycle & O&M platform
A solar developer ran every plant's lifecycle, from land and design through approvals, procurement and construction to O&M, on spreadsheets, shared drives and e-mail.
- of solar plants in the system
- 180 MW
- rows of SCADA data
- 10M+
- internal and client users
- ~150
Context
The company develops, builds and operates utility-scale solar plants. Every plant goes through land acquisition, engineering, regulatory approvals, procurement and construction, followed by decades of operations and maintenance. Before this platform, that work ran on spreadsheets, shared drives and e-mail.
I built the product from scratch, from the company's initial idea and the first schema to a live system. It puts the whole plant lifecycle and the company's internal operations into one role-based platform, and gives the company's own customers a read-only portal to follow their plant.
What I built
- Lifecycle stages
- Land, Design, Statutory, Purchase, Execution and O&M per client site, with configurable process templates, document workflows (upload → review → approve), design BOMs, vendor cost comparison, material tracking and daily progress reports.
- Operations & maintenance
- Daily inverter and ABT meter generation, CUF, kWh/kWp and availability KPIs, SLDC reconciliation, module cleaning, checklists, spares and insurance tracking, plus nightly generation reports e-mailed to clients.
- Live plant data
- A scheduled worker pulls generation data from the inverter vendor's cloud (iSolarCloud) every 15 minutes and daily, configured from the database without restarts. A SCADA pipeline ingests telemetry through a Redis queue into month-partitioned tables that feed live dashboards and energy reports.
- Procurement
- Purchase orders with a layout designer that renders PDFs, tokenised public links for vendor quotes and registration, a queued vendor e-mail pipeline, and a purchase-order discussion chat over WebSockets.
- Company apps
- Invoicing and accounts, HRMS (employee master, attendance, leave, salary slips), a fixed-asset register, MIS reports and a super-admin console for sessions, permissions and telemetry.
- Mobile app
- A Flutter mobile app for attendance and O&M dashboards, used by field and client users.
Key decisions
Horizontal scaling and zero-downtime deploys
The API is horizontally scalable and highly available: load-balanced instances run behind Nginx with least-connections routing and automatic failover on 502/503/504. Deploys are zero-downtime, rolling and health-gated: readiness flips during shutdown, connections drain, then cron jobs, queues and WebSockets shut down gracefully. A fully automated CI/CD pipeline ships containerised builds through GitHub Actions and Docker Hub to a self-hosted runner.
Results
- Live in production, used by about 150 internal and client users to run projects from procurement through operations.
- Holds data for 180 MW of solar plants and 10M+ rows of SCADA data.
- Hosting migrated from E2E Networks to AWS in December 2025, with object storage moved to S3.
- Two engineers interviewed and onboarded, followed by a full handover to the internal team in August 2026.