Android Engineer at Airbnb in 2026: Mavericks, Epoxy, and the Native Era
In short
Android engineering at Airbnb is one of the strongest Kotlin shops in the industry, anchored on two open-source frameworks the team built and still maintains: Mavericks for state management and Epoxy for complex RecyclerView screens. After publicly sunsetting React Native in 2018, Airbnb has run a fully native Android stack for nearly a decade, with KSP replacing kapt across the codebase and Jetpack Compose adopted screen-by-screen alongside the existing Epoxy surfaces. Android engineers ship the Guest, Host, and Experiences apps; the team is small relative to peers but unusually senior, and the bar for code review is high.
Key takeaways
- Airbnb's Android codebase is Kotlin-first and was an early industry leader in the Java-to-Kotlin migration.
- Mavericks (formerly MvRx) is Airbnb's open-source Android state management framework, used as the default architecture across the app.
- Epoxy is Airbnb's open-source library for building complex RecyclerView screens declaratively; nearly every list-heavy screen uses it.
- Airbnb publicly sunset React Native in June 2018 after a two-year trial and committed back to fully native iOS and Android development.
- The build system is Gradle with KSP increasingly replacing kapt; Hilt is the DI framework, with parts of the codebase still on Dagger.
- Jetpack Compose is being adopted incrementally; new screens often ship in Compose while legacy Epoxy screens are migrated as touched.
- Total comp for senior Android engineers in the Bay Area generally lands in the $300K-$450K range per Levels.fyi, with L5+ pushing higher.
Android engineer at Airbnb in 2026
Airbnb's Android team in 2026 is small, senior, and unusually opinionated. The codebase has been Kotlin-first since the team's early migration in 2017, and the architectural decisions made in the years that followed, most visibly Mavericks and Epoxy, still define how new features are built. New hires typically join one of three product surfaces: Guest (search, booking, trip management), Host (listing management, calendar, payouts), or Experiences. A smaller platform group owns the build system, design system bindings, and the shared mobile infrastructure that keeps both apps fast.
The cultural marker that distinguishes Airbnb Android from most peers is a strong commitment to native development. In June 2018 the company published "Sunsetting React Native," a five-part essay by Gabriel Peal explaining why a two-year experiment with React Native had not delivered the promised cross-platform leverage and why Airbnb was returning to fully native iOS and Android. That essay is required reading inside the team and is still cited in architecture discussions today: it is why platform-specific quality, not code-share ratios, is the team's north-star metric.
Day-to-day, an Android engineer at Airbnb works in a modularized Gradle project with hundreds of feature modules, ships through a weekly release train, and is expected to write Mavericks ViewModels, Epoxy controllers, and increasingly Compose screens to the team's internal style guide. Code review is rigorous; two approvals are typical for non-trivial changes, and the platform group reviews any change that touches shared infrastructure. Open-source contribution is part of the job for engineers who own a Mavericks or Epoxy surface, since fixes often land upstream first.
Interview process
The Android loop at Airbnb in 2026 is five rounds after the recruiter screen, run on Zoom for most candidates with optional onsite for finalists in San Francisco. The structure is recognizable to anyone who has interviewed at FAANG-tier mobile orgs but with Airbnb-specific signal in the architecture and behavioral rounds.
- Recruiter screen (30 min): background, level calibration, comp expectations, location and visa logistics.
- Technical phone screen (60 min): one Kotlin coding problem on a shared editor, focused on collections, coroutines, or string/parsing logic. Candidates are expected to write idiomatic Kotlin, not Java translated.
- Android coding (60 min): a deeper Android-specific problem, often involving lifecycles, RecyclerView behavior, or coroutine-based data flow. Interviewers care about correctness under configuration changes and process death.
- System / architecture design (60 min): design a feature end-to-end (search results, host calendar, messaging inbox). Strong candidates name Mavericks state, Epoxy list construction, paging, caching, and offline behavior without being prompted.
- Cross-functional (45-60 min): work through a product scenario with an interviewer playing PM or designer; the signal is product judgment and ability to push back without being obstructive.
- Behavioral / values (45-60 min): Airbnb's core values, conflict, ambiguity, and a deep-dive on a recent project the candidate owned.
Tactically: be ready to talk through a screen at three levels of zoom, the Mavericks state shape, the Epoxy controller (or Compose composable) that renders it, and the network and caching layer that feeds it. Candidates who can only describe the UI surface typically don't pass the architecture round at IC4 or above. The behavioral round is not a formality: interviewers grade explicitly for the company's stated values, and a strong technical loop with a weak values round can still result in no offer.
Compensation by level
Airbnb levels Android engineers on the same IC ladder as the rest of engineering: IC3 (mid), IC4 (senior), IC5 (staff), IC6 (senior staff). Per Levels.fyi data for the Software Engineer role in 2026, total compensation ranges roughly as follows for Bay Area candidates. Numbers below are directional and shift with stock price and offer cycle.
- IC3 (mid): ~$220K-$280K total (base around $170K-$190K, equity vesting over four years, target bonus ~10%).
- IC4 (senior): ~$300K-$400K total, the most common offer band for experienced Android engineers.
- IC5 (staff): ~$400K-$550K+ total, with equity becoming the dominant component and refreshers meaningful at review.
- IC6 (senior staff): $550K+ total, heavily weighted toward RSUs and refresh grants.
Airbnb publishes a standard benefits package (annual travel credit, comprehensive health coverage, 401(k) match, sabbatical at tenure milestones) and runs comp adjustments tied to Radford and internal benchmarks. Sign-on bonuses are negotiable and often used to bridge unvested equity from a current employer.
A practical note for Android candidates: there is no "mobile premium" or "mobile discount" at Airbnb. Android and iOS engineers are paid against the same SWE bands as backend and web peers at the same level. The equity refresh stack matters more than the headline grant; a strong IC4 hire who performs well typically sees their TC drift up over years two and three rather than down. Airbnb's stock has been volatile historically, so candidates who care about predictability should weight base and bonus more heavily in negotiation.
Tech stack: Mavericks + Epoxy + Compose adoption
The 2026 Android stack at Airbnb is best understood as four layers, two of which are Airbnb-OSS frameworks the team still owns and ships from.
Language and build: Kotlin is the default; Java exists only in legacy modules and is actively being migrated out. The build system is Gradle with the Kotlin DSL, organized into hundreds of feature modules to keep incremental builds fast. KSP (Kotlin Symbol Processing) has progressively replaced kapt across the codebase, and the platform team maintains internal Gradle plugins for module templating, lint enforcement, and CI sharding.
State management, Mavericks: Mavericks (originally released as MvRx in 2018) is Airbnb's open-source Android framework for managing screen state. It exposes an immutable state class, a ViewModel that reduces over Async<T> results, and a Fragment integration that wires state to the view layer. Mavericks is the default architecture for new screens; the framework's combination of strict immutability, async resource modeling, and testability is what the team points to when explaining how a small Android org can ship two flagship apps without regressions.
Lists, Epoxy: Epoxy is Airbnb's open-source RecyclerView abstraction for building complex, heterogeneous screens declaratively. Instead of writing a RecyclerView.Adapter and ViewHolder by hand, engineers define EpoxyModel classes annotated with @EpoxyModelClass and compose them in an EpoxyController; Epoxy diffs models, animates changes, and recycles views automatically. Search results, host calendars, message inboxes, and the home feed are all Epoxy surfaces. The library has shipped first-party support for Compose interop so Composables can render inside Epoxy controllers during the Compose migration.
UI, Compose adoption: Jetpack Compose is being adopted incrementally rather than via a top-down rewrite. New self-contained screens often ship in Compose, while legacy Epoxy screens are migrated as the surrounding feature is touched. The team has invested in a Compose-flavored design system binding (DLS, Airbnb's internal design language system, exposes Compose components alongside the older XML/Epoxy ones). Candidates should expect to write both Compose and Epoxy in their first year and should be able to articulate trade-offs between the two without dogma.
Networking, persistence, DI: Networking is OkHttp + Retrofit with Moshi for JSON, wrapped by internal API client generators that target the company's API schemas. Persistence is a mix of Room for structured caches and DataStore for preferences. Dependency injection is migrating from Dagger to Hilt; both coexist in the codebase, with new modules adopting Hilt by default. Concurrency is Kotlin coroutines and Flow throughout; RxJava is still present in older code paths but is no longer the recommended default for new work.
Quality and release: the app ships on a weekly train with a phased rollout to Google Play. Test coverage spans unit tests against Mavericks ViewModels, screenshot tests via Paparazzi for Compose components, and end-to-end UI tests for critical booking flows. Crash and performance monitoring are wired through internal tooling layered on top of standard Android signals; the team treats ANR and startup-time regressions as release blockers.
Why this stack matters for candidates: when an Airbnb interviewer asks how you would build a screen, they are listening for whether you can name the state shape, the controller, the data layer, and the navigation entry without prompting. The frameworks are public; spending an evening reading the Mavericks and Epoxy READMEs before the loop is a high-leverage use of time.
Frequently asked questions
- Did Airbnb really sunset React Native?
- Yes. In June 2018 Gabriel Peal published "Sunsetting React Native" on the Airbnb Engineering Medium publication, a five-part essay explaining why a two-year cross-platform experiment had not delivered the expected leverage. Airbnb returned to fully native iOS and Android development and has remained native through 2026.
- What is Mavericks?
- Mavericks (formerly MvRx) is Airbnb's open-source Android state management framework. It defines an immutable MavericksState, a MavericksViewModel that reduces over Async<T> results, and a Fragment integration that wires state to the view layer. It is the default architecture for new screens at Airbnb.
- What is Epoxy?
- Epoxy is Airbnb's open-source library for building complex RecyclerView screens declaratively. Engineers define EpoxyModel classes and compose them in an EpoxyController; the library diffs and animates changes automatically. It is used for nearly every list-heavy screen in the Airbnb Android app.
- Is Airbnb adopting Jetpack Compose?
- Yes, incrementally. New self-contained screens often ship in Compose, and Compose components are exposed through the internal design system. Legacy Epoxy screens are migrated as their surrounding features are touched, not via a top-down rewrite.
- What languages should I know for an Airbnb Android interview?
- Idiomatic Kotlin is non-negotiable; the codebase is Kotlin-first and writing Java-style Kotlin in the loop is a downgrade signal. Familiarity with coroutines and Flow is expected. Java may appear in legacy modules but is not required for the interview.
- Has Airbnb migrated from kapt to KSP?
- Largely yes. KSP (Kotlin Symbol Processing) has progressively replaced kapt across the codebase to improve incremental build performance. Some legacy modules with annotation processors that lack KSP support remain on kapt during the tail of the migration.
- How long is the Airbnb Android interview loop?
- Typically two to four weeks from recruiter screen to offer. The full loop is five rounds after the screen: phone screen, Android coding, system design, cross-functional, and behavioral. Staff candidates may add a partnership round.
- What is the salary range for a senior Android engineer at Airbnb?
- Per Levels.fyi data, IC4 senior software engineers in the Bay Area generally see total compensation in the $300K-$400K range, with base around $190K-$220K and the rest in RSUs and bonus. Android engineers are paid on the same band as other SWEs.
Sources
About the author. Blake Crosley founded ResumeGeni and writes about Android engineering, hiring technology, and ATS optimization. More writing at blakecrosley.com.