H.Essers hoofdkantoor
H.ESSERS
Internship · Feb 2026 – May 2026
COMPANY
H.Essers
ROLE
Intern Software Developer
DURATION
Feb – May 2026
SCOPE
Proof of Concept
// INTERNSHIP CASE STUDY

Outlook Add-in
& Ingest API.

A proof of concept built during my internship at H.Essers — a logistics company based in Genk, Belgium. The project automates the manual process of forwarding shipment emails from Outlook into an internal dispatch system, using an Outlook Add-in paired with an event-driven backend.

Realisatie document ↗ Reflectie document ↗ Project plan ↗
// ABOUT H.ESSERS

H.Essers is an international logistics and transport company headquartered in Genk, Belgium. With operations across Europe and beyond, they handle complex supply chains for sectors including healthcare, chemicals and general cargo. The company employs thousands of logistics coordinators who manage daily shipment operations — many of which still rely heavily on email workflows.

01 / PROBLEM

Logistics coordinators at H.Essers received shipment data by email and had to manually re-enter it into internal dispatch systems. This process was slow, error-prone and impossible to audit at scale.

02 / APPROACH

I designed and built an Outlook Add-in that lets users submit selected emails and attachments directly to a downstream system. Behind an API gateway (Gravitee), a custom Ingest API retrieves the full email via Microsoft Graph and publishes a structured event to a Kafka topic for async downstream processing.

03 / SOLUTION

Coordinators can forward an email directly from Outlook without leaving the app. The backend processes it asynchronously, stores the content, and triggers the downstream workflow — fully logged and traceable end to end.

// TECHNICAL ARCHITECTURE

Architecture.

Outlook
Outlook Add-in (Frontend) Office.js · JavaScript

Built with Office.js, the add-in renders a task pane inside Outlook. When a user selects an email and clicks submit, the add-in reads the email metadata and passes it to the API gateway. Authentication is handled via OAuth2 with Microsoft identity platform.

Gravitee
API Gateway Gravitee · REST

All traffic flows through Gravitee as the API gateway. It handles routing, rate limiting and security policies. The gateway forwards validated requests to the Ingest API running behind it.

API
Ingest API (Backend) Java 21 · Spring Boot

The core backend service. It receives the submission from the gateway, fetches the full email and attachments via the Microsoft Graph API using an OBO (On-Behalf-Of) OAuth2 flow, then publishes a structured event to a Kafka topic. Custom handling includes deduplication logic, retry mechanisms and a Dead Letter Queue for failed events.

Kafka
Event Streaming Apache Kafka

Events are published to a Kafka topic for async downstream processing. A Kafka consumer service processes each event, with deduplication to prevent duplicate submissions and full audit logging for traceability.

CI/CD Pipeline
CI/CD Pipeline Azure · GitHub Actions

A full CI/CD pipeline was set up for GitHub Actions — including build, test and deployment stages. The pipeline is ready to deploy the full system when the organisation decides to move from proof of concept to production.

// OUTCOMES
  • [+] Delivered a fully working proof of concept covering the end-to-end email ingestion flow
  • [+] Built a custom Ingest API with deduplication, retry logic and Dead Letter Queue handling
  • [+] CI/CD pipeline set up on Azure — ready to deploy when the organisation decides to roll out
  • [+] Full technical documentation written covering architecture, API contracts and deployment steps
// LEARNED
  • [→] Shipping software inside an enterprise release process
  • [→] Designing APIs for other teams to actually consume
  • [→] Security, auth and observability in production systems
  • [→] How to translate vague business requests into technical specs
STACK Office.js Java 21 Spring Boot Apache Kafka Microsoft Graph Gravitee Azure REST
// PHOTOS

Photos.

Stage foto 1
photo_1
Stage foto 2
photo_2
Stage foto 3
photo_3
Stage foto 4
photo_4
Stage foto 5
photo_5
Stage foto 6
photo_6
// DOCUMENTS

Documents.

Realisatie Document Open PDF ↗

Technical realisation document describing the implementation, architecture decisions and deliverables of the internship project.

Reflectie Document Open PDF ↗

Personal reflection on the internship experience — what went well, what I would do differently, and how the project shaped my growth as a developer.

Project Plan Open PDF ↗

The initial project plan submitted at the start of the internship — scope, objectives, timeline and technical approach.