What Programming Language Does Airbnb Use?
Airbnb's main web application was built in Ruby on Rails, and the company now runs that Rails code alongside a large set of backend services written in Java and Kotlin. The browser front end is React with TypeScript. The iOS app is Swift, the Android app is Kotlin, and the data platform runs on Airflow, a workflow scheduler Airbnb created and later gave to the Apache Software Foundation.
So there is no single Airbnb language. There is one language per layer, and the layers are public because Airbnb's engineering team writes about them and open-sources a lot of its tooling.
Airbnb's languages by layer
| Layer | Language | Framework or tool | Status |
|---|---|---|---|
| Original web application | Ruby | Ruby on Rails (the monolith Airbnb calls Monorail) | Still running, shrinking |
| Backend services | Java, Kotlin | Service-oriented architecture with generated clients | Main direction for new work |
| Web front end | JavaScript, TypeScript | React, with Airbnb's own design system | Current |
| iOS app | Swift | Native, with Airbnb's Epoxy and Lottie libraries | Current |
| Android app | Kotlin | Native, with Epoxy and MvRx | Current |
| Data pipelines | Python, Scala, SQL | Airflow, Spark, Superset | Current |
| Data stores | SQL | MySQL, Redis, Elasticsearch, Kafka | Current |
Airbnb runs its infrastructure on AWS. That detail matters for interviews because the system design questions Airbnb asks assume cloud building blocks such as object storage and managed queues.
Ruby on Rails: the monolith and the move to services
Airbnb started as one Rails application. Engineers named it Monorail. For years every feature, from search to payments, lived in that one codebase, and Airbnb has said publicly that deployments and ownership became hard to manage as the team grew.
The response was a service-oriented architecture. Airbnb split the monolith into services with defined interfaces, most of them written in Java. Later services adopted Kotlin, which runs on the same Java virtual machine and needs less code for the same logic. The Rails application still exists, but new backend work goes into services.
This history is a good system design example. If an interviewer asks why a company would leave a monolith, the Airbnb story gives you a concrete answer: deploy speed, clear ownership, and the ability to scale one part of the system without the rest.
JavaScript, TypeScript, and React
Airbnb's web client is built in React. The team migrated its JavaScript to TypeScript and open-sourced ts-migrate, the tool it wrote to convert large codebases automatically.
Airbnb is also known for its JavaScript style guide, one of the most used ESLint configurations in the industry. It prescribes camelCase for variables, functions, and object properties, and PascalCase for classes and React components. The guide also asks that comments explain why a piece of code exists rather than restate what it does.
The design system, which Airbnb calls its Design Language System, is a shared React component library used by every product team. This is why Airbnb's screens look consistent across the web and the apps.
Python, Scala, and Airflow for data
Airbnb's data team works mostly in Python, Scala, and SQL. Spark handles large batch jobs, Kafka moves events between systems, and Elasticsearch indexes listings for search.
Airflow is the best known result of this work. Airbnb built it to schedule and monitor its data pipelines, released it as open source, and it is now Apache Airflow, used by thousands of companies. Apache Superset, a data exploration and dashboard tool, also began at Airbnb.
Python is also the main language for Airbnb's machine learning work, such as search ranking and pricing suggestions for hosts.
Swift and Kotlin on mobile
Airbnb tried React Native for its apps and then returned to fully native development. The team published a detailed series explaining the decision, and the short version is that maintaining three platforms at once cost more than it saved.
The iOS app is written in Swift and the Android app in Kotlin. Airbnb open-sourced several mobile libraries along the way, including Lottie for animations, Epoxy for building complex screens, and MvRx for Android architecture.
"Languages" in the other sense: 62 locales
Some readers who search this topic want the list of languages the Airbnb product supports, not the programming languages. Airbnb's site and apps are available in 62 languages, and listing descriptions are machine-translated by Airbnb's own translation engine when a guest reads them in a different language from the host. Those locale codes are product settings, not part of the engineering stack.
What this means for an Airbnb interview
Airbnb's coding interviews are language-agnostic. You can solve problems in Python, Java, JavaScript, or any common language. The interviewers care about correctness, testing, and how you explain your work, and Airbnb is known for asking candidates to run their code.
Knowing the stack helps most in the system design round, where questions often mirror Airbnb's real systems: search over listings, a booking flow with payments, or a pricing service. For what to expect, read the top system design interview questions for Airbnb and what an Airbnb interview is like.
How to Prepare
- Practice coding problems that must compile and run. Airbnb interviewers execute your code, so write clean, tested solutions. Grokking the Coding Interview covers the patterns behind the questions.
- Prepare the Airbnb-shaped design questions. Listings search, booking, and payments all appear. Grokking the System Design Interview covers the building blocks.
- Read the reported coding questions. See Airbnb coding interview questions.
- Prepare the culture round. Airbnb interviews for its core values in a dedicated round. Read what the culture of Airbnb is.

GET YOUR FREE
Coding Questions Catalog

$99

$197

$72