Skip to content
All work

Case study · Aviation

AeroPass

Integration platform bridging passenger-information systems and aviation stakeholders, with invoicing and reconciliation for airlines.

Airline invoice generation
Days → minutes
Role
Backend Engineering · Integrations
Domain
Aviation

Overview

AeroPass sits between passenger-information (API/PNR) systems and the stakeholders who need flight and passenger status at the airport. It receives data from upstream systems, makes it available to downstream aviation partners including Ghana Airports Company, and provides a portal for managing users, exporting flight data and issuing invoices to airlines.

The problem

Stakeholders had limited, delayed visibility into inbound and outbound flight and passenger-information status, and invoicing airlines was a slow process measured in days.

My role

  • Implemented API key generation and management for integrating systems.
  • Built the ingestion API through which API/PNR data is pushed into the platform.
  • Built the integration that provides flight data to Ghana Airports Company.
  • Wrote the business logic for airline invoice generation.
  • Worked on the reconciliation engine and most remaining backend workflows.

Architecture

  1. Upstream

    • API/PNR systems Passenger information
  2. AeroPass

    • Ingestion API API-key authenticated
    • Invoicing Airline billing rules
    • Reconciliation engine
    • Management portal
  3. Downstream

    • Airport operator Flight data feed
    • Airlines Invoices
  4. Platform

    • MySQL
    • Keycloak
    • IIS
Conceptual data flow. Partner endpoints and message formats are omitted. Areas I built or led

Scale

Flight & passenger status
Near real time
Integration directions
3
Upstream ingestion, downstream partners, and airline invoicing.

Engineering challenges

Accepting data from systems you do not control

Upstream systems push passenger information on their own schedule and in their own shape. The ingestion API has to authenticate callers, validate payloads and handle retries without creating duplicates.

Serving partners with different needs

The airport operator needs a timely flight data feed; airlines need accurate invoices. Both depend on the same underlying records being complete and consistent.

Invoices that match reality

Invoices are only useful if they reconcile with the flights and passenger data that justify them. Manual preparation made this slow and error-prone.

Approach

  • API keys as a first-class feature. Integrating systems authenticate with issued keys that can be generated, scoped and revoked from the portal.
  • Idempotent ingestion. Incoming records are validated and written so that repeated submissions do not create duplicate data.
  • Reconciliation before invoicing. The reconciliation engine checks received data before the invoicing logic generates airline bills, so invoices are produced from verified records in minutes rather than days.
  • Pragmatic hosting. Services run on IIS to fit the target environment, with Keycloak providing identity for portal users.

Impact

  • Days → minutes

    Airline invoice generation

  • Near real time

    Operational visibility

    Stakeholders see flight and passenger-information status as data arrives.

Technologies

  • C#
  • .NET
  • MySQL
  • Entity Framework
  • Dapper
  • Keycloak
  • IIS

Lessons

  1. 01 Integration APIs need to be designed for the partner who is least able to change. Clear authentication, validation errors and idempotent ingestion saved more support time than any feature.
  2. 02 Invoicing logic belongs close to the data it bills for. Generating invoices from reconciled records removed a class of disputes.
  3. 03 Machine-to-machine access needs its own lifecycle — issuing, rotating and revoking API keys is a product feature, not an afterthought.

Let’s build reliable systems.

I’m interested in teams working on hard backend problems — data-heavy platforms, integrations and systems that have to stay correct under load. Open to remote roles as a:

  • Senior Backend Engineer
  • Senior .NET Engineer
  • Senior Software Engineer
  • Backend-focused Full-Stack Engineer