A custom flight-ops platform, sustained for a decade.
- 56,110flights operated through the platform
- 1,375students trained · 38,731 lessons
- 10+years · still shipping new features
Summary
A Tasmanian general aviation operator approaching fifty years of continuous operation — flight training, charter, scheduled regional flights, wilderness scenic tourism, university-partnered pilot training — running out of their own aerodrome near Hobart across a thirteen-aircraft mixed fleet. I've been building and sustaining their custom operations stack for over a decade.
Context
Aviation at this shape runs on compliance, tight rostering, and accurate weight-and-balance calculations across every flight. Commercial charter, pilot flight training, a university-accredited aviation degree pathway, regulated scheduled services, and wilderness tourism each drag their own obligations. The spreadsheet-and-paperwork baseline didn't scale as the charter, flight-school, and tourism sides of the business grew in parallel. No general-purpose product was going to fit the operational surface and the Australian aviation and vocational-education compliance obligations simultaneously.
What was built
-
Flight operations module
Duty rosters, weights and balance, pilot endorsements, scheduling. Wisej 3 on .NET 7 for the desktop-web surface; Blazor WASM on .NET 9 for newer modules.
-
Mobile training app
Originally Xamarin.iOS; since evolved into modern Blazor WASM.
-
Training and compliance module
Course management, fee schedules, AVETMISS reporting for Australian vocational-education obligations.
-
Integrations
Operational email, safety-critical weather feeds, finance, SMS, payments, online travel agents, aeronautical data, and higher-education compliance — every external system the business depends on, flowing through one platform. Microsoft Graph, Gmail, BloomSky, Xero, ClickSend, Stripe, Viator, Rezdy, GetYourGuide, NAIPS WCF, and TCSI/HEIMS underneath.
-
Scale
Built to operate at the scale and with the safeguards a multi-modal aviation business needs. 56,110 flights, 1,375 students, and 38,731 lessons through the platform — with property-level PII encryption, soft-delete across all entities, a MongoDB audit trail, and three parallel UI generations coexisting deliberately. 322,000 lines of C# across 866 files underneath.
Outcome
A decade-old custom platform still shipping new features. Three successive UI architectures have layered in without a rewrite — the older modules keep working while the new ones go in beside them. Operations, training, compliance, and tourism bookings all flow through the same stack.
Reflection
Custom platforms only hold up if the person who wrote the code is still there to extend it. Ten years in, those answers — why a particular pattern exists, which of the three UI generations a new feature belongs in — are still close at hand. That continuity is what keeps the system worth maintaining.