Introduction
Decision Trees GmbH connects scientific research with practitioners, using stochastic optimization to help energy producers and traders make decisions under uncertainty — a more robust alternative to legacy deterministic models. DT.EnergySuite is the company's decision-support platform for configuring, analyzing and optimizing energy systems, including thermal generation portfolios and gas procurement, storage and supply contracts, used by energy-sector clients across Europe. This case study covers my contribution to modernizing the platform, extending its client integrations, and developing its WPF-based desktop applications and optimization workflows.
Problem
The platform's input architecture relied on Excel-based (.swing) files, which limited consistency, automation and maintainability as the data and client integrations grew more complex. Energy-sector clients needed richer configuration and curve-data management tooling, reliable automated data exchange with external systems such as Litgrid AB, and clearer dashboards and visualizations to support fast, well-informed planning and optimization decisions.
Solution
We migrated the platform from Excel-based inputs to a JSON-based architecture, removing client-side Excel dependencies and improving the consistency, maintainability and automation of data processing. On top of this, we developed and enhanced C#/.NET WPF applications using the MVVM pattern, covering configuration, data management, visualization and energy-system analysis, including dedicated modules for energy system configuration and curve data management. The platform integrates with external energy-sector systems through both SOAP and REST APIs — including client integrations such as Litgrid AB — for automated data exchange, and surfaces DevExpress-based dashboards, visualizations and reports within the WPF application to support energy planning and decision-making. We also worked on the platform's C++-based optimization engine, enhancing existing components to support new application requirements and optimization workflows, and used Python to automate data-processing and development/support tasks.
Technologies and Tools:
👉 Application Development: C#/.NET, WPF (MVVM)
👉 Optimization Engine: C++
👉 Automation & Tooling: Python
👉 Visualization & Reporting: DevExpress
👉 Data: SQL Server, JSON, XML
👉 Integrations: SOAP & REST APIs
👉 Testing: NUnit
Process
To ensure the successful modernization and delivery of DT.EnergySuite, we adhered to a structured, iterative development process grounded in Agile methodology.
Agile Methodology:👉 Flexibility and Collaboration: Emphasized flexibility and collaboration to adapt to evolving client requirements and deliver value incrementally.
👉 Continuous Improvement: Fostered a culture of continuous improvement through regular feedback and iterative development.
👉 Sprint Planning: Defined goals, prioritized tasks, and allocated resources at the beginning of each sprint.
👉 Daily Stand-Ups: Conducted daily meetings for updates, challenge discussions, and coordination.
👉 Sprint Reviews: Demonstrated completed work to stakeholders and gathered feedback at the end of each sprint.
👉 Sprint Retrospectives: Reflected on the sprint process, identified areas for improvement, and implemented actionable insights.
👉 Domain Expert Collaboration: Worked directly with domain experts and clients to understand requirements, investigate technical issues and deliver appropriate software solutions.
👉 Stakeholder Communication: Maintained regular communication with stakeholders to understand requirements and manage expectations.
👉 Comprehensive Testing Strategy: Applied unit testing with NUnit and contributed to debugging, troubleshooting and improving the reliability of complex software components.
👉 Automated and Manual Testing: Integrated both automated and manual testing into the development pipeline to maintain high quality.
Key Functionalities
Stochastic Decision Support:Enables energy producers and traders to configure, analyze and optimize thermal generation and gas portfolios under market uncertainty, rather than relying on legacy deterministic models.
JSON-Based Configuration:Replaces Excel-based (.swing) inputs with a JSON-driven architecture, improving consistency, maintainability and automation of data processing.
Energy System Configuration & Curve Data Management:WPF/MVVM modules for configuring energy systems and managing complex domain-specific curve data and workflows.
Client System Integrations:Integrates with external energy-sector systems, including clients such as Litgrid AB, via SOAP and REST APIs for automated data exchange.
Dashboards & Visualization:DevExpress-based dashboards, data visualizations and reports within the WPF application, supporting energy planning, analysis and decision-making.
Optimization Engine:A C++-based optimization engine at the platform's core, enhanced to support new application requirements and optimization workflows.
Responsibilities
Platform Modernization:👉 Excel-to-JSON Migration: Migrated the platform from Excel-based (.swing) inputs to a JSON-based architecture, removing client-side Excel dependencies and improving the consistency, maintainability and automation of data processing.
👉 WPF/MVVM Development: Developed and enhanced C#/.NET and WPF applications using MVVM, including configuration, data management, visualization and energy-system analysis functionality.
👉 Domain Modules: Developed modules for energy system configuration and curve data management, handling complex domain-specific data and workflows.
👉 Client Integrations: Integrated with external energy-sector systems using both SOAP and REST APIs, including integrations with clients such as Litgrid AB, enabling automated data exchange.
👉 Dashboards & Reports: Developed DevExpress-based dashboards, data visualizations and reports within the WPF application to support energy planning, analysis and decision-making.
👉 C++ Enhancements: Worked with the platform's C++-based optimization engine, making changes and enhancements to existing components to support application requirements and optimization workflows.
👉 Python Automation: Wrote Python scripts to automate data-processing and development/support tasks and improve engineering workflows.
👉 Data Exchange: Worked with SQL Server, JSON, XML and API-based data exchange across different application components and external systems.
👉 Testing & Reliability: Applied unit testing with NUnit and contributed to debugging, troubleshooting and improving the reliability of complex software components.
👉 Domain Collaboration: Worked directly with domain experts and clients to understand requirements, investigate technical issues and deliver appropriate software solutions.
👉 Full Lifecycle Contribution: Contributed across the software lifecycle, including requirements analysis, development, integration, testing, debugging, deployment and production support.
👉 Modernization Impact: Helped move a core energy-optimization platform off legacy Excel-based inputs onto a modern, automatable JSON architecture.