API Integration
- Multiple third-party rail APIs with inconsistent schemas and protocols
- Data transformation required between gRPC and REST interfaces
Enterprise integration engineering inside Emirates Skywards' travel platform — identity, third-party rail APIs, distributed booking orchestration, and hybrid payments

Okta SSO
multi-provider rail APIs
hybrid payments
Worked as a Senior Full-Stack Developer at Snowfall Travel, contracted by Emirates Skywards — the loyalty program of one of the world's largest airlines. The project integrated multimodal European rail booking into the existing travel platform of one of the world's largest airline loyalty programs.
Emirates Skywards needed to expand their travel ecosystem beyond flights — integrating European rail booking with SSO, real-time availability, and hybrid payments, all under an aggressive timeline.
Implemented secure Single Sign-On with Okta (OAuth 2.0 / OpenID Connect), retrieving user profiles, loyalty balances, and managing session persistence with graceful token expiration handling.
Built real-time station search and train offer discovery across multiple European rail providers, with gRPC-to-REST data transformation, geographic filtering, and dynamic schedule synchronization.
Orchestrated the end-to-end booking lifecycle — from streaming train offers with fare details and seat availability, through trip selection, to distributed transaction management ensuring data consistency across services.
Implemented hybrid payment processing supporting credit cards (Visa, Mastercard, Amex), loyalty miles redemption, or partial combinations — engineered for low latency in the payment path with comprehensive error handling.
Product demo
Shipped 4 core services into Emirates Skywards' production platform — authentication, rail search, booking orchestration, and hybrid payment processing — supporting 3 payment types (credit card, loyalty miles, and combined), with search infrastructure supporting millions of monthly searches. The harder deliverable was invisible: consistent booking state across distributed services when any third-party rail provider could fail mid-transaction.
Enterprise integration is a negotiation with reality: third-party APIs disagree with their own documentation, distributed state fails in the seams between services, and the deadline doesn't move. This shipped on time because the riskiest integrations were prototyped first and the booking lifecycle was designed around failure states rather than happy paths — the same discipline I now apply to AI systems that write into other people's platforms.