Backend

Eneco Digital Core — Middleware API Platform

iO Digital / Eneco August 2022 – July 2024 Software Engineer

High-performance middleware API platform gebouwd voor Eneco — één van de grootste energiebedrijven van Nederland — als integratieruggengraat tussen Eneco's digitale consumentenproducten en backendsystemen.

C#ASP.NET Core.NET 8RedisFusion CacheEntity Framework CoreSQL ServerAzure Table StorageAzure FunctionsAzure DevOpsSwaggerSOLIDUnit TestingIntegration Testing

Belangrijkste resultaten

  • High-throughput middleware ontworpen voor miljoenen API-calls per maand
  • Responstijden met 60% verminderd via Redis en Fusion Cache gelaagde cachingstrategie
  • Robuuste integratietestingsuite gebouwd met 85%+ codedekking
  • DDD en SOLID-principes toegepast voor een onderhoudbare, uitbreidbare codebase
  • Kritieke integraties opgeleverd die Eneco's digitale transformatieroadmap mogelijk maakten

De uitdaging

De digitale producten van Eneco — waaronder hun consumentenenergieportaal en mobiele app — hadden een betrouwbare, performante middlewarelaag nodig om te communiceren met hun complexe backendsystemen. De bestaande integratiebenadering was sterk gekoppeld, moeilijk te onderhouden en schaalbaar niet goed tijdens piekperioden (koude wintermaanden, prijswaarschuwingen, etc.).

Belangrijkste uitdagingen:

  • Prestaties op schaal: Verkeerspieken van 10x de normale belasting opvangen tijdens piekperioden
  • Legacy-integratie: Moderne REST-API’s verbinden met oudere SOAP-gebaseerde backenddiensten
  • Betrouwbaarheid: Zero-downtime vereisten voor een kritieke energieinfrastructuurdienst
  • Onderhoudbaarheid: De codebase uitbreidbaar maken voor een team van 8+ ontwikkelaars

De oplossing

Ik hielp een schoon, gelaagd middlewareplatform te bouwen met ASP.NET Core en strikte DDD- en Clean Architecture-principes:

API-laag:

  • ASP.NET Core Web API met Swagger/OpenAPI-documentatie
  • Verzoekvalidatie met FluentValidation
  • Gestandaardiseerde foutafhandeling en probleemdetails (RFC 7807)

Cachingstrategie:

  • L1-cache: Fusion Cache (in-memory) voor veelgevraagde data
  • L2-cache: Redis gedistribueerde cache voor gedeelde status over instanties
  • Cache-invalidatie via Azure Service Bus-events

Datalaag:

  • Entity Framework Core voor relationele data (SQL Server)
  • Azure Table Storage voor grootschalige logging en eventdata
  • Repository-patroon met Unit of Work

Infrastructuur:

  • Azure Functions voor asynchrone verwerking
  • Azure DevOps-pipelines voor CI/CD
  • Application Insights voor monitoring

Mijn rol

Ik werkte als backend engineer en droeg bij aan het gehele platform:

  • Nieuwe domeinfeatures implementeren met CQRS en MediatR
  • De cachingstrategie ontwerpen en implementeren
  • Unit- en integratietests schrijven
  • Code reviews en architectuurdiscussies
  • On-call ondersteuning bij productieproblemen

Interesse om samen te werken?