skip to content
open to remote rolesget in touch →
all projects

aviation · operations · backend

Digital Austrian

An internal operations platform for Austrian Airlines, handling flight management, passenger tracking, invoicing and bag tag generation.

role
backend developer
at
crossonic
client
austrian airlines
status
completed
stack
C# · .NET 8 · ASP.NET Core · Entity Framework Core · Apache Kafka · Redis · SQL Server
links
none public yet

What it is

Digital Austrian is a large-scale internal operations management system built by Crossonic exclusively for Austrian Airlines. It is the system the airline runs on behind the counter rather than anything a passenger sees.

It covers flight management, passenger tracking, invoice generation and bag tag generation, which means the correctness bar is operational rather than cosmetic. A wrong bag tag is a real bag in the wrong city.

My role

  • Worked the backend of a platform handling flight management, passenger tracking, invoice generation and bag tag generation, from September 2024 to June 2026.
  • Developed and maintained backend services in C# and ASP.NET Core, and designed the RESTful APIs the operational workflows run on.
  • Built the business logic for internal operations and process management, with SQL Server and Entity Framework Core underneath it.
  • Resolved existing bugs and delivered new features to improve system reliability and maintainability.
  • Optimized response times of existing APIs, reducing latency across key endpoints.
  • Troubleshot and resolved production issues in a live operational environment, where a bug is someone stuck at a desk rather than a red build.
  • Collaborated with frontend developers, QA and other stakeholders across the development lifecycle.

Engineering notes

  • Implemented the Unit of Work pattern to improve data consistency and transaction management, so a partially applied operation cannot leave the system half-updated.
  • Used Apache Kafka for event-driven communication between services, and Redis for caching to keep response times down under load.
  • Applied both Code-First and Database-First approaches with Entity Framework Core, chosen per module according to what the project actually required rather than by preference.

Constraintsdraft

The correctness bar on this system is operational rather than cosmetic. A wrong invoice is an argument with a customer, a wrong bag tag is a bag in the wrong city, and a wrong passenger record is somebody standing at a desk while it gets sorted out.

That is what the Unit of Work pattern is there for: an operation lands whole or it does not land, and there is no state where half of it took. It is also why the services talk over Kafka rather than calling one another directly — a published event survives the service that was meant to react to it being restarted, which a synchronous call does not. Redis sits in front of the read paths that get hit hardest, so a busy desk does not arrive at the database as load.

Status

Danish worked on it from September 2024 to June 2026. It is an internal airline system, so there is nothing public to link to.