Background: US bachelor's degree, 4.5 years of experience.
Timeline
- Mid-October: mass-applied on LinkedIn to Airbnb Beijing (the "air mattress" company) — got a recruiter email the same day.
- A week later: 15-minute HR Screen introducing the role.
- Late October: 45-minute Tech Screen.
- Early November: VO1 (Coding 1) and VO2 (Coding 2), 45 minutes each.
Suggest a split stay where you stay at 2 different houses, one for the first part of your trip and the other for the remainder. Make an API endpoint that will return all possible combos of split stays across 2 listings for a given date range. Give each listing a name ("A", "B", etc.) and our availability will just be a list of day numbers.
For example: A - [1,2,3,6,7,10,11]; B - [3,4,5,6,8,9,10,13]; C - [7,8,9,10,11]
Given the date range [3-11], the expected result is all sets of two Airbnbs that could form a split stay: [B, C]
Brute force solution; extra credit for writing a bitmask solution.
Reference brute-force solution:
from itertools import combinations
def find_splits(listings, start_date, end_date):
desired_days = set(range(start_date, enddate+1))
splits = []
for a,b in combinations(listings.keys(), 2):
a_set = set(listings[a])
b_set = set(listings[b])
if desired_days.issubset(a_set) or desired_days.issubset(b_set):
continue
combined_days = set(listings[a]) | set(listings[b])
if desired_days.issubset(combined_days):
splits.append((a,b))
for a in listings.keys():
a_set = set(listings[a])
if desired_days.issubset(a_set):
splits.append((a))
return splits
listings = {"A": [1,2,3,6,7,10,11], "B":[3,4,5,6,8,9,10,13], "C":[7,8,9,10,11]}
print(find_splits(listings, 3,11))
print(find_splits(listings, 11,11))
- Mid-November: VO3 (Tech Experience Interview), 45 minutes, deep dive into resume projects.
- Mid-November: VO4 (45-minute System Design).
- Host page — pick a date range, aggregate info: nights booked out; average price.
- Assume 3 tables: Listings; Reservations; Pricing.
- When a host has 100+ listings, the page gets slow — how would you optimize the underlying design?
- Late November: 45-minute HM interview, deep dive into resume projects + behavioral.
- Describe an experience collaborating with other teams / where an internal ETA wasn't met and it caused impact, or the timeline slipped or scope got cut.
- How did you identify the root cause?
- How was the team divided up on the project?
- Was there a backup plan to unblock at the time?
- Late November: VO5, 45-minute Core Values Interview, behavioral.
- Walk through your background.
- Any hobbies outside of work, or fun stories from school?
- Why Airbnb?
- A memorable experience using Airbnb while traveling.
- Any tips for picking an Airbnb listing? Any bad experiences?
- An example of communicating with yourself or across different teams.
- How do you make sure a design project and its later rollout stay in sync with teams across different timezones/cultural backgrounds? What problems came up along the way?
- When you started working, was there a senior who helped you a lot?
- In an emergency, do you make sure you get dedicated communication time with your senior?
- Looking back, what could you have done better / improved?
- How do you manage the gap between expectations (work/life)?
- Any adventurous moments/decisions in your life? How do you approach taking risks?
- What's the biggest obstacle in going from just writing code to owning an entire project?
- What obstacles/challenges/biggest uncertainties do you expect at Airbnb?
- Early December: heard back that I passed every interview, but the position had been filled — I can stay in the pool for a year.
Discussion
Loading comments…