Life at Expedia Group Blog
Building the App-First Experience at Expedia Group
Rick Fast | Senior Vice President, Experience Engineering
Think about your last trip. Was your flight on time, did you get rerouted or encounter a challenge and wish you had a companion alongside you to smooth the way? At Expedia Group, we’re travelers who are passionate about seeing the world and having a great experience along the way. That’s why we’ve upped our commitment to delivering great trips for travelers. It’s what we want when we travel and we’re building it for our customers and partners.
What does this mean? As home to many of the original dot coms in the online travel industry including Expedia, Hotwire, and Hotels.com, Expedia Group has built a first-class offering of travel eCommerce experiences that were historically focused on driving transactions on the web in a burgeoning industry. Now, with experience honed from millions and millions of trip bookings and even more miles traveled, we’re shifting how we engage with our travelers to focus on being the indispensable companion they need while they plan, shop, book, and take trips. Being indispensable means being there and there is no better way to do this than focusing on mobile devices as the primary channel to engage our customers. Applying our tech capabilities to the device most travelers always carry, we can leverage what we know and learn about the traveler to provide a much more personalized and contextual experience. While we still want to provide the best value to the traveler in the core shopping experience, we can also focus on capabilities that can turn the app into a companion that helps on every step of the traveler journey.
For example, new capabilities like flight price tracking and alerts are made possible when Expedia Group can watch the prices on behalf of the customer and keep them abreast of changes leveraging push notifications that reach them wherever they are using Expedia’s new One Messaging Platform, our direct communications platform. Instead of the old model, where the traveler repeatedly performs the same search, Expedia Group is shifting to a world where we leverage what we learn from the traveler from their preferences and interactions to help them plan and shop, even when they are not actively interacting with the experience. Asynchrony and push notifications are just one facet of mobile apps that Expedia Group is leveraging to build the best traveler experience in the industry.
To do this, Expedia Group has shifted its product focus to be oriented around the app, making several technology and design shifts to put our native apps at the forefront. As we embark on this journey, there are several challenges we face.
Powering all of our travel brands
Expedia Group is home to many of the world’s top travel brands, including our flagship brands Expedia.com, Hotels.com and Vrbo. Besides these, our platform also houses other top brands such as Orbitz.com, CarRentals.com, Ebookers, and many more. While some of our brands currently have their own app in the app stores, we’re working to bring all our consumer brands into a single configurable codebase that can deliver unique branded content and capabilities. This allows us to optimize our experience in one place, which means we will be able to roll out great new features to a much larger audience, fast. It will also help unlock capabilities on other brands that were previously only available to one, such as first-class support for booking vacation rentals on Expedia! Using the architecture summarized below, we aim to support this configurable experience while still delivering a responsive and performant app experience.
Cohesive Experience Across Touchpoints and Platforms
Another primary goal for our platform is to meet travelers on the touchpoint of their choosing with a seamless, cohesive experience. This is a lofty challenge when you consider the number of consumer brands the platform supports across Figma (our design tool), web, iOS, Android, and email. Over the past few years, Expedia Group has developed a comprehensive design system and corresponding atomic components to allow engineers to build experiences without worrying about the specific brand. This is done through a technology known as design tokens, which are simply a collection of values that define digital brand characteristics such as fonts, border radiuses and colors. These tokens are packaged and consumed by a component library on each platform and made available to use for building experiences.
Much of the work so far on the design system has been done for our web platform using React and Typescript, but we have begun the journey of building our next generation of native components for iOS and Android leveraging SwiftUI and Jetpack Compose respectively. We find that the declarative approach offered by these emerging technologies reduces the development cost to maintain our core experiences, while still being close enough to the metal to allow us to easily take advantage of what each platform has to offer natively.
As the Expedia Group Design System allows us to deliver a consistent look and feel across all brands and platforms, our Experience API strategy aims to reduce the engineering cost to deliver consistent data and content to travelers on each platform. Leveraging GraphQL Federation and a pattern known as Server-Driven UI (SDUI), we have built a distributed service layer that looks like a single graph delivering API models that more closely resemble view models. This approach allows us to centralize business logic and much of the presentation logic that would normally be duplicated across platforms. Further, this approach allows us to deliver many content changes and features across platforms by only changing the backend. This is a huge boost for us
. as we deploy our backend services hundreds of times daily and we have a longer release window for publishing to the app stores.
Dynamic and Personalized
Expedia Group is building an experience platform that is both dynamic and personalized, across all platforms. We do this through a catalog of modules called blocks. As we transition to a mobile app first orientation on how we deliver experiences, we are re-platforming our apps to implement this block system using SwiftUI and Compose. Blocks are thin, data-aware composite components that leverage our Experience API GraphQL to fetch the experience data they need to render. Most blocks are implemented independently and are responsible for registering their own GraphQL query, and the client batches them and sends them to our GraphQL Gateway.
Breaking our experiences down into blocks gives us flexibility for how we render an experience for a customer based on several dimensions, including the brand, the traveler’s profile, and preferences, as well as the device type or viewport size. While blocks can be orchestrated manually into an experience with ease, Expedia Group also leverages a dynamic layout engine on the backend that can translate context into a JSON template that specifies the screen layout to use and a set of blocks to display. This capability allows our brand marketing teams, product managers, and other partners to configure and rearrange the modules and content for specific screens on specific brands.
The layout engine above allows business users to change and configure the content across our apps using a convenient API and UI, but as we move to become the companion that travelers bring along, it is important that we can also deliver a personalized experience as well, especially on iOS and Android. Our module system integrates with several intelligent ML-driven systems on the backend, such as our contextual bandit solution, AdaptEx. Leveraging reinforcement learning techniques, AdaptEx accepts context about the traveler and can rapidly test different module configurations and optimize the layout. Leveraging the bandit at the platform level ensures that we can experiment with new modules and layouts quickly, while also ensuring an optimal, personalized view for the traveler.
Next Generation UX
Our user experience is focused on the traveler and our relationship with them. Our next generation experiences are designed to be intuitive, delightful, and trustworthy. When we look at the whole travel experience, our native apps are with the traveler at every step of the journey. Expedia Group has followed a mobile-first approach to design, but these designs were traditionally focused first on the mobile web and then extended to desktops and apps. We are adopting new UX principles and patterns to reinvent our experiences across all touchpoints, beginning with an overhaul of our design language. Our new design language forms the app first foundation for our multiple brands, end to end cohesion, and adaptive, personalized experiences for each traveler.
What does this mean for Expedia Group Experience Engineering?
The simple answer is that we’re actively looking to grow our amazing mobile engineering team! We’re looking for iOS and Android engineers at all levels all over the world. It’s an ambitious plan: building a dynamic, configurable, performant, personalized and engaging app experience that scales to the hundreds of millions of travelers across Expedia Group’s host of brands. If you’re looking for a challenge and want to work with some of the newest native app technologies, hit us up! Take a look at our open roles here.