Supporting a reliable data pipeline system for renewable energy applications
Website: Mainstream Renewable Power
Duration: 7 months
Dedicated team behind the project
Data Engineer
Project Manager
The client
Mainstream Renewable Power is a global renewable energy company that develops, builds, and operates large-scale wind and solar power plants. Their technology-driven approach has supported successful projects across Latin America, Africa, and Asia, contributing to the global transition toward clean energy.
Client achievements:
Mainstream has developed and built more than 20 GW of wind and solar projects across Latin America, Africa, and Asia, driving large-scale renewable adoption in emerging markets. Read more
The company has raised over €3 billion in financing to construct and operate sustainable energy infrastructure worldwide.
Recognized as one of the leading independent renewable energy developers, Mainstream contributes to the decarbonization of national grids and supports global net-zero goals.
The challenge
Mainstream’s internal software platform, originally built in 2012, is used to monitor and maintain measurement stations. Over the years, it evolved into a critical system for data collection, reporting, and issue tracking — yet several challenges emerged:
Manual monitoring with no automated alerting system when maintenance or data issues occurred.
Growing backlog with 22 unresolved bugs and 30 new feature requests.
Limited visibility into system performance.
A monolithic architecture running on Windows VMs with basic resource monitoring.
Сontainerized automatic tests have been added into the repository.
Need to improve deployment automation, test coverage, and overall reliability.
What was done
Ralabs joined the project to strengthen the system’s reliability and support Mainstream’s internal team in improving monitoring, testing, and feature delivery.
Key activities included:
Setting up data monitoring and alerting pipelines that run daily or multiple times per day to detect and notify the team of missing data or processing errors before they reach end users.
Improving test coverage on both backend and frontend using Pytest and Jest, raising Python test coverage to about 70%.
Refactoring legacy modules and optimizing file processing to reduce errors and increase performance.
Adding new functionalities such as report generation and downloadable summaries for measurement stations.
Updating libraries and dependencies across the codebase for long-term maintainability.
Implementing logging and error tracking mechanisms with automated email notifications.
Supporting migration readiness by analyzing current deployment and CI/CD setup on GitHub.
Implemented features:
Automated monitoring and alerting for data quality and processing issues
Optimized file cache and bulk download performance
Extended backend and frontend testing
Improved error logging and notification system
Added detailed station summary generation
Updated and standardized codebase dependencies
Results:
30% higher frontend test coverage
Extended unit and integration tests improved frontend reliability, while backend coverage reached 70% with Pytest.
Real-time monitoring and alerts
New daily data checks and notifications help the team detect missing or corrupted data before end users notice issues.
Faster file processing and downloads
Optimized cache logic reduced bulk file processing time and improved stability across large datasets.
Increased platform stability
Refactoring and automated error logging minimized system downtime and improved response times.
Ready for future modernization
The system architecture and CI/CD setup were prepared for a potential transition from a monolith to containerized architecture.
Tech stack

Other сases
Team size: 3 developers
Team size: 5 developers
Team size: 4 developers
Team size: 5 developers