← Back to Directory

Airbnb interview notes, page 9 of 19

Large Enterprises

Most of these Airbnb write-ups come from Software Engineers (141), then Machine Learning Engineers (19) and Data Scientists (12). The most reported rounds are the technical phone screen (85), the system design round (47), the behavioral / leadership round (20) and the product sense round (13).

187 interview notes · updated Oct 2026

Airbnb·Software Engineer·Technical Phone Screen

May 2026
Airbnb software engineer interview with a classic OOP design question. Nothing flashy, but the scope creep potential is real if you're not careful about what you actually need to implement.
  • Design and implement a banking system that supports depositing funds, withdrawing funds, transferring money between accounts, and checking an account balance.

“Spent the first few minutes just clarifying scope because 'banking system' could mean a lot of things.”

View Post

Airbnb·Software Engineer·Technical Phone Screen

May 2026
One coding question for an Airbnb software engineer round, the classic reservation/property combination problem. The interviewer skipped pleasantries and jumped straight in, which set a pretty stressful pace. Ran out of time before finishing test cases, which stung.
  • Given a set of properties in a neighborhood, each with a certain capacity, find the optimal combination of properties that can accommodate a specified group size. Minimize total capacity first; if there's a tie, prefer the combination with fewer properties.

“Spent way too long on small helper functions early on and it cost me at the end.”

View Post

Airbnb·Machine Learning Engineer·Technical Phone Screen

May 2026
Coding round at Airbnb for an ML Engineer role. One algorithmic question, bowling game scoring, which sounds deceptively simple but has enough edge cases to trip you up if you haven't thought through the 10th frame carefully.
  • Given a sequence of rolls in a standard 10-frame bowling game, compute the total score. Strikes and spares carry bonuses from subsequent rolls, and the 10th frame allows up to two extra rolls. Write clean, modular code with a helper function to score individual frames.

“The core logic isn't hard but I fumbled the 10th frame handling for longer than I'd like to admit.”

View Post

Airbnb·Software Engineer·Onsite - System Design / Architecture

May 2026
Airbnb system design round focused entirely on building a recommendations service from scratch. The scope was enormous and I underestimated how deep they wanted to go on privacy and consent handling specifically.
  • Design a scalable recommendations service for a consumer app that handles personalization, ranking, and feedback loops while remaining privacy-conscious.
  • How would you handle cold-start for new users and new items in a recommendations system?
  • What caching and storage strategies would you use to meet low-latency SLA targets for recommendation serving?
  • How would you support A/B experiments and ensure the recommendation system doesn't corrupt experiment results?
  • How would you handle regional privacy regulations and user consent in the context of a personalization pipeline?
  • How would you detect and prevent abuse or spam from corrupting recommendation quality?
  • Walk me through how you'd design backfill and reprocessing pipelines when the recommendation model changes.
  • What monitoring and alerting would you set up for a recommendations service in production?

“I started with the API surface and data model which felt safe, but the interviewer kept pulling me toward privacy constraints before I was ready.”

View Post

Airbnb·Machine Learning Engineer·Technical Phone Screen

May 2026
Airbnb ML engineer round with a graph/union-find coding problem. A variant of the classic accounts merge, extended to handle both emails and phone numbers as shared identifiers. Pretty standard for the space but the added contact type wrinkle tripped me up a bit.
  • Given a list of accounts where each account has a name and a list of contacts (both emails and phone numbers), merge all accounts that share any common email or phone number. Return the merged accounts with the union of all contacts.

“My first instinct was to just do it for emails like the standard version, and I literally forgot to handle phone numbers as a separate identifier type for a solid two minutes.”

View Post

Airbnb·Software Engineer·Technical Phone Screen

May 2026
Airbnb coding round for a software engineer position. One meaty graph/BFS-style problem that looked deceptively clean on the surface but had a lot of edge cases hiding underneath.
  • You have n crates, each either locked or unlocked. Each crate holds a token count, a set of keys that unlock other crates, and a list of new crates that become accessible when opened. You start with an initial set of accessible crates. You can open any accessible unlocked crate, collect its tokens, discover new crates, and use found keys to unlock others. What's the maximum tokens you can collect, and how do you design an algorithm close to O(n + total_edges) that correctly handles cycles, duplicate references, and crates you find before you have the key for them?

“I went in thinking BFS, which was right, but I underestimated how much state you need to track.”

View Post

Airbnb·Software Engineer·Technical Phone Screen

May 2026
Airbnb SWE interview with a coding problem built around their actual product, which was a nice touch. The split stay problem sounds deceptively clean until you start thinking through edge cases.
  • Implement a function that finds all valid 'split stay' combinations: given n hotels each with an unsorted list of available dates, and a requested date range [start, end], find every (A, B, s) triple where hotel A covers [start, s] and hotel B covers [s+1, end] with A != B.

“The problem is product-flavored which threw me a bit because I kept thinking about it from a UI angle instead of just treating it as a set coverage problem.”

View Post

Airbnb·Software Engineer·Technical Phone Screen

May 2026
Airbnb software engineering interview that went deep into system design for a financial ledger. The question had a lot of moving parts and I definitely underestimated how long the complexity analysis portion would take.
  • Design and implement a transaction ledger that processes a stream of payment and refund records. Each payment has an id, userId, amount, and timestamp. Each refund has the same fields plus an optional reference to a prior payment. You need to pick data structures, implement addPayment, addRefund (with a pluggable priority rule), and getUserBalance. Refunds without a payment reference should select which prior payments to offset based on a comparator (e.g. most recent first, largest amount first). Support partial and multiple refunds per payment, and for each refund return the list of (paymentId, refundedAmount) pairs it consumed. Then analyze time and space complexity for each operation.

“This one hit me harder than expected.”

View Post

Airbnb·Software Engineer·Technical Phone Screen

May 2026
Airbnb software engineering interview with a two-part coding problem that looks deceptively simple until you're actually in it. The ASCII terrain rendering was fine but the water simulation had enough edge cases to keep me busy for the whole session.
  • Given an array of integers representing column heights, print an ASCII rendering of the terrain where each column is drawn as a vertical stack of '+' characters sitting on a base layer.
  • Implement a function that pours a given amount of water into a specific column of the terrain. Each unit of water should flow left or right to settle at the lowest reachable position, preferring the lower neighbor and breaking ties by going left first. After all water is placed, print the updated terrain with water shown as 'W'.

“Easier part of the problem.”

View Post

Airbnb·Software Engineer·Technical Phone Screen

May 2026
Airbnb coding screen with a pretty involved availability-matching problem. The problem was framed around their actual product (split stays), which was a nice touch, but the logic had enough edge cases to keep you on your toes for a while.
  • Given a map of listing names to their available day numbers and a requested date range, return all valid stay options: any single listing available for the entire range, and any ordered pair of distinct listings where the first covers the start through some split day and the second covers the rest through the end.

“The single-listing case is easy enough, just check if the listing's availability set is a superset of every day in the range.”

View Post