The EON Optimum platform allows industrial, commercial and retail customers to visualise and optimise their energy
usage. Optimum is a global product.
The tech stack
Largely functional Scala (Typelevel stack) on the backend with some Java (Spring Boot). Angular/Typescript on the
frontend. Everything hosted on Google cloud:
- Scala 2.13.x
- Http4s, Cats, Doobie etc
- Java (Spring boot)
- Google cloud
Some legacy Akka / Akka HTTP still in use
A mix of freelancers and EON employees. Scala guys were exclusively freelance, the Java teams were exclusively
employees, the Angular teams were a mix. We had a few business analysts/product owners and some agile “coaches”.
I was primarily responsible for leading the development of the modelling and forecasting elements of the platform.
I also sat on the EON architecture group. I brought the development of the platform in-house from a third party consultancy.
I was also actively involved in coding, especially during the early stages of the project.
### What did I learn
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 and milestones,
On a technical level, the developers need clear standards and a degree of oversight. It’s not that developers
aren’t capable of writing great code without supervision, they are. However, building a product of any size requires
the developers to work together.
The “self-organising team” concept works, but it has limitations:
- It only works if the developers are on the same wavelength in terms of skills and experience
- It only works for small teams
- It doesn’t work globally. You can’t put 30 people in a room and assume everything will sort itself out!