Skip to content
5 min read
Airpaz: Flight & Hotel Booking

Airpaz is a travel platform for booking flights and hotels across multiple markets. I worked as a Frontend Developer on its React Native mobile apps and React web application, contributing to a six-person frontend team that shared ownership across Android, iOS, and web.

Airpaz app screenshot

My Role

I built and maintained customer-facing booking features from April 2025 to June 2026. My work covered product delivery, performance-oriented state management, automated testing, release tooling, and production issue investigation. I collaborated with five other frontend engineers, including our frontend lead.

Challenge: Hotel Search Drop-off

Internal analytics showed that users frequently abandoned the hotel search flow while waiting for results. Hotel names and images were already available, but pricing data took longer to arrive. Holding the entire screen until every field was ready made the experience feel slower than it needed to be.

The flight search flow already contained a related progressive-loading pattern, but hotel search had different data and behavior. I adapted the idea rather than copying its implementation.

Solution: Progressive Hotel Results

I changed hotel search to expose useful data as soon as it became available. Users could start reviewing hotel names, images, and core details while pricing continued to load progressively in the background through a polling-like flow.

I placed the orchestration and business rules inside Redux Toolkit middleware. This kept timing, merging, and state transitions outside the presentation layer. The UI only consumed the latest ready state, making components easier to reason about and maintain.

Internal tracking showed improved user retention through the hotel search flow after the change. Exact figures remain private, but the direction confirmed that reducing perceived waiting time improved the booking experience.

Architecture and Tooling

The mobile application uses React Native and TypeScript across Android and iOS. Redux Toolkit manages application state and progressive search orchestration, while TanStack Query supports server-state workflows.

For development and production diagnosis, the team used Flipper, Rozenite, an internal analytics tracker, and Sentry. The tracker recorded interaction events such as cancel and submit clicks, allowing us to reconstruct user journeys and analyze behavior. Together, these tools helped us inspect application behavior, trace user-flow problems, and investigate production issues.

Technology Responsibilities

Technology Responsibility
React Native Provides the shared mobile foundation for the Android and iOS applications.
TypeScript Adds type safety across UI components, application state, and booking data contracts.
Redux Toolkit Manages client state and runs progressive hotel-search orchestration through middleware.
TanStack Query Handles server-state requests, caching, and synchronization with booking services.
Flipper Supports application, network, and native debugging during development.
Rozenite Extends React Native developer tooling for runtime inspection.
Internal analytics tracker Records interaction events such as cancel and submit clicks for user-journey reconstruction, behavior analysis, and drop-off detection.
Sentry Captures production errors and supplies diagnostic context for incident investigation.
Maestro Runs repeatable end-to-end checks for critical hotel and flight booking flows.
Fastlane Automates mobile build and release tasks.
GitLab Runner Executes CI/CD jobs for the mobile delivery pipeline.
Slack incoming webhooks Delivers build-completion notifications without requiring engineers to watch the CI dashboard.

Protecting Critical Booking Flows

I introduced Maestro end-to-end coverage for critical hotel and flight booking journeys. I also created reusable mocks so important scenarios could run consistently without depending entirely on live services.

This automation gave the team repeatable checks around the flows carrying the most product risk and reduced reliance on manual verification alone.

Release Automation

Mobile builds ran through Fastlane and GitLab Runner. Previously, team members had to keep checking the CI dashboard to learn whether a build had finished.

I built a Slack notification bot that reported build completion directly to the team. The change removed repetitive dashboard monitoring and made release status visible where engineering communication already happened.

Product Scale

The Google Play listing publicly reports more than one million downloads and a rating above four stars. The product supports multiple markets, languages, airlines, currencies, and payment methods, so even focused frontend changes operate within a high-variation booking system.

Why It Matters

This work connected frontend engineering with measurable product behavior. Progressive results reduced perceived waiting during hotel search, automated tests protected revenue-critical booking flows, and release notifications removed friction from the team’s daily operations.