Online Travel Agency (OTA) Platform
Web-based travel booking platform enabling users to search, compare, and book flights from multiple airlines and GDS systems
A comprehensive travel booking platform integrating multiple airlines (Novo Air, US-Bangla Airlines, Jazeera Airways, AirAstra, Air Arabia, IndiGo) and Global Distribution Systems (Amadeus, Sabre, Travelport). Built with scalable microservices architecture to handle high-volume flight searches and bookings.
What it does
A multi-tenant OTA platform that lets travel agencies search, compare, book, and manage flights, hotels, holiday packages, and other travel services. One codebase serves multiple client brands with isolated configuration, supporting both B2B and B2C business models.
Scale
- 6 live client brands — TripLover, TravelChamp, FirstTrip, TakeTrip, TakeOff, and TripLover Dubai
- 36+ services in the ecosystem, built for high availability and fault tolerance
- 30 integrated GDS/NDC suppliers — a single flight search fans out to all of them and returns 200-300 feeds spanning 40-50 unique airlines
- Airline and GDS coverage including Amadeus, Sabre, Travelport, Novo Air, US-Bangla Airlines, Jazeera Airways, AirAstra, Air Arabia, and IndiGo
My role
I architected and led development of the multi-tenant SaaS platform. Beyond the core architecture, I:
- Led the migration of the core database from SQL Server to PostgreSQL, cutting licensing costs and unblocking Linux hosting
- Migrated 8 legacy .NET Framework applications to .NET Core for cross-platform deployment
- Built an automated xUnit API integration test suite covering 30+ supplier integration projects
- Integrated APM monitoring with Elasticsearch-based structured logging, cutting production failure rates by 30%
- Implemented Progressive Search, Search Ranking, Universal Split PNR, Refund Reissue, and PNR Details
- Contributed to CI/CD pipelines and code reviews, and mentored new team members
Why this stack
A modular monolith on .NET Core rather than full microservices — the modules share a deployment boundary while staying independently maintainable, which suits a platform where a single search has to coordinate 30 suppliers with low latency. Dapper over EF Core keeps the hot search path close to raw SQL. RabbitMQ decouples the long-running booking and ticketing workflows, with MSSQL and MongoDB each serving the workloads they fit.
Live Demo
View LiveDeep Dives
Mar 4, 2025
Cutting ADM Penalties with an Automated Booking Cancellation Service
A background service that automatically cancels un-ticketed bookings before the last ticketing time, saving ~$23K-$27K across 6 OTA clients.
Jul 23, 2026
How a Redis Stampede (Thundering Herd) Hit Our OTA Search Ranking Engine — And How We Fixed It
When 30 integrated suppliers and 40-50 unique airlines per search met an uncached rank lookup, concurrent cache misses stampeded the database in unison — here's how negative caching and locking around retrieval broke the herd.
May 24, 2026
Progressive Search: Showing Flight Results Before All 30 Suppliers Answer
Flight search used to wait on all 30 suppliers before showing anything — one slow responder meant everyone waited. Here's how Server-Sent Events let us stream results the moment each supplier answers.