Backend

Eneco Digital Core — Middleware API Platform

iO Digital / Eneco August 2022 – July 2024 Software Engineer

Built a high-performance middleware API platform for Eneco — one of the Netherlands' largest energy companies — serving as the integration backbone between Eneco's digital consumer products and backend systems.

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

Key Achievements

  • Designed and implemented high-throughput middleware handling millions of API calls per month
  • Reduced response times by 60% through Redis and Fusion Cache layered caching strategy
  • Built robust integration testing suite achieving 85%+ code coverage
  • Implemented DDD and SOLID principles resulting in a maintainable, extensible codebase
  • Delivered critical integrations enabling Eneco's digital transformation roadmap

The Challenge

Eneco’s digital products — including their consumer energy portal and mobile app — needed a reliable, performant middleware layer to communicate with their complex backend systems. The existing integration approach was tightly coupled, difficult to maintain, and didn’t scale well during peak demand periods (cold winter months, price alerts, etc.).

Key challenges:

  • Performance at scale: Handling traffic spikes of 10x normal load during peak periods
  • Legacy integration: Connecting modern REST APIs with older SOAP-based backend services
  • Reliability: Zero-downtime requirements for a critical energy infrastructure service
  • Maintainability: Making the codebase extensible for a team of 8+ developers

The Solution

I helped build a clean, layered middleware platform using ASP.NET Core with strict DDD and Clean Architecture principles:

API Layer:

  • ASP.NET Core Web API with Swagger/OpenAPI documentation
  • Request validation with FluentValidation
  • Standardized error handling and problem details (RFC 7807)

Caching Strategy:

  • L1 cache: Fusion Cache (in-memory) for hot data
  • L2 cache: Redis distributed cache for shared state across instances
  • Cache invalidation via Azure Service Bus events

Data Layer:

  • Entity Framework Core for relational data (SQL Server)
  • Azure Table Storage for high-volume logging and event data
  • Repository pattern with Unit of Work

Infrastructure:

  • Azure Functions for async processing
  • Azure DevOps pipelines for CI/CD
  • Application Insights for monitoring

My Role

I worked as a backend engineer contributing across the entire platform:

  • Implementing new domain features using CQRS with MediatR
  • Designing and implementing the caching strategy
  • Writing unit and integration tests
  • Code reviews and architecture discussions
  • On-call support for production issues

Interested in working together?