E.ON Optimum
Visualisation and forecasting of energy usage.
My role
I was primarily responsible for the machine learning elements of the Optimum platform. This was known as the modelling and project tracking module. I also sat on the EON architecture group. My primary responsibilities included:
- Bringing the development in-house (from a third-party consultancy)
- Recruiting and mentoring new team members
- Defining coding and architectural standards
- Working with the product owners to solidify the requirements
- Taking the Proof of Concept through to production
- Migrating clients from a legacy system to the new platform
Major challenges
The major challenge lay in understanding the functional requirements of Optimum. Whilst there was a general product roadmap, the details were unclear. Often it fell to the development teams to decide what the product should do, not just how it should be done. Nevertheless, we had strong developers and made good progress. On a technical level the developers came from different backgrounds and had different levels of experience. This made it hard to agree on common standards that could be universally adopted, without resorting the the lowest common denominator.
The location proved to be a challenge. The Optimum project was run out of EON’s HQ in Essen, Germany. Essen is sometimes described as the energy capital of Germany, given the number of Energy companies based there. However Essen is not a tech capital and there are few tech companies based in the city. This meant there was no local ecosystem or pool of resources to call on. Persuading freelancers and employees to relocate to Essen proved challenging. I should point out that most of my time at EON was pre-COVID and onsite working was the norm.
The solution
EON Optimum is a SaaS application. The platform is primarily built in Scala with some Java and Kotlin (Spring Boot). The frontend elements of Optimum are built in AngularJs/Typescript. The application is hosted on the Google cloud.
- Java, Kotlin, Scala
- Angular js
- Kubernetes
The modelling and forecasting elements of the platform run independently as a standalone system. We use REST for synchronous calls and RabbitMQ for asynchronous messaging.
What did I learn?
Fostering a friendly supportive culture is also important. EON placed great emphasis on this, and from what I saw, they succeeded. It really was a nice place to work. Most of the EON employees I knew had been working there for many years. This is always a good sign, especially in the IT sector, where staff turnover is usually quite high.
The importance of solid requirements, planning and strong management. Hiring great developers is not enough, they need guidance and focus. In particular “the business” needs to be clear about the product roadmap, goals, milestones and return on investment.
On a technical level, the developers need clear standards and a degree of oversight. Building a product of any size needs careful planning and management.
The agile “self-organising” concept has limitations:
- It only works if the team members are on the same wavelength, in terms of skills and experience
- It only works for small teams
- It doesn’t work well across teams
Need help with your project?
Do you need some help or guidance with your project? Reach out to me (email is best)