Airbnb Software Engineer Interview Experience — Tree Sums, a Retry HOF, and a Rental Watchlist Design Question

Company: Airbnb

Role: Software Engineer

Round: Onsite

Seniority: General

The interview was on the easier side. The algorithm question was about a tree, where the leaves are numbers and each parent node's value equals the sum of its children. You need to be able to get the value of any given node. The second part adds a mutation: you can turn a node into a leaf, or take a leaf and attach a subtree to it, turning it into a parent node. Again, you need to be able to get the value of any node after the mutation. The frontend question was to write a retry higher-order function — wrap a function that might throw an error and support different retry modes: retry once, retry n times, and exponential backoff retry. The design question was about a watchlist system for renting: on an Airbnb listing, a user can post the date range they want to stay, and if someone else cancels during that window, the user gets notified. The host can also see how many watches their own listing has. Correction (2025-07-20 09:06 +08:00): I misremembered — the tree question was actually from the phone screen, not onsite. The retry question was the onsite algorithm question. The onsite frontend question was to write three inputs, with validators to validate the values: one validator checks based on the length of the value, and another validator throws an error if two inputs have the same value — which means editing one input also has to trigger the other input's validator.

Airbnb Software Engineer Interview Experience — Tree Sums, a Retry HOF, and a Rental Watchlist Design Question

Airbnb·Software Engineer·Aug 2026
OnsiteTechnical Screenhard

The interview was on the easier side.

The algorithm question was about a tree, where the leaves are numbers and each parent node's value equals the sum of its children. You need to be able to get the value of any given node. The second part adds a mutation: you can turn a node into a leaf, or take a leaf and attach a subtree to it, turning it into a parent node. Again, you need to be able to get the value of any node after the mutation.

The frontend question was to write a retry higher-order function — wrap a function that might throw an error and support different retry modes: retry once, retry n times, and exponential backoff retry.

The design question was about a watchlist system for renting: on an Airbnb listing, a user can post the date range they want to stay, and if someone else cancels during that window, the user gets notified. The host can also see how many watches their own listing has.

Correction (2025-07-20 09:06 +08:00): I misremembered — the tree question was actually from the phone screen, not onsite. The retry question was the onsite algorithm question. The onsite frontend question was to write three inputs, with validators to validate the values: one validator checks based on the length of the value, and another validator throws an error if two inputs have the same value — which means editing one input also has to trigger the other input's validator.

Curated and edited by PracHub

Practice the questions from this interview

Airbnb Software Engineer Interview Experience — Tree Sums, a Retry HOF, and a Rental Watchlist Design Question | Airbnb Interview Experience