więc moja znajoma Priya powiedziała mi sześć miesięcy przed moim onsite w Airbnb, że kultura ma w ich finalnym omówieniu taką samą wagę jak kodowanie. zaśmiałem się jej w twarz. serio się zaśmiałem lol. potem siedziałem w samochodzie przez dwadzieścia minut po onsite i gapiłem się na kierownicę, bo mnie odrzucili przez pytanie o poczucie przynależności, nie przez kodowanie, nie przez system design, tylko przez pytanie o to, jak sprawić, żeby ktoś poczuł się mile widziany w zespole. miałem gotowych dwanaście historii STAR i każda jedna była o dowożeniu funkcji albo radzeniu sobie z konfliktami, albo o technikaliach. ani jednej o inkluzywności. mina Priyi, kiedy jej o tym powiedziałem, była niezła.
„Be a Host” i „Belonging” to ich prawdziwe core values, to nie są tylko slogany na plakatach, osoba prowadząca interview kulturowe zadała mi trzy pytania i wszystkie trzy były o tym, jak sprawić, żeby ludzie czuli, że przynależą. nie miałem nic. próbowałem wymyślić coś o wdrażaniu nowego inżyniera w mojej poprzedniej firmie i szczerze mówiąc, kiedy to wypowiadałem na głos, wiedziałem już, że brzmi jak śmieć. Priya mnie ostrzegała, przeciętni coderzy, którzy świetnie wypadają kulturowo, dostają oferty, a mocni coderzy, którzy to zawalą, odpadają, myślałem, że dramatyzuje, a ona po prostu miała rację lol.
ok ale pogadajmy o faktycznych rundach, bo kodowanie było kompletnie innym doświadczeniem niż w Google. interviewerzy w Airbnb z tobą rozmawiają. podczas mojego czterdziestopięciominutowego phone screena dostałem DFS connected components i ogarnąłem to w jakieś dwadzieścia minut, a moja interviewerka spędziła resztę czasu, pomagając mi szukać edge case'ów. dosłownie powiedziała „możesz chcieć sprawdzić pusty input” i prawie spadłem z krzesła, bo w Google nikt ci niczego nie podaje na tacy. w Airbnb cię naprowadzają. rysują z tobą na tablicy. podczas system design moja interviewerka stała obok mnie przy tablicy i szkicowała razem ze mną, zamiast siedzieć po drugiej stronie sali i się przyglądać. to było jak pair programming.
przed phone screenem jest HackerRank. dwa problemy, medium, czterdzieści pięć minut. ja miałem manipulację na tablicy i problem z drzewem binarnym. Priya dostała graf zamiast drzewa, więc rotują pulę pytań. chcą prawdziwego działającego kodu, a nie pseudokodu, co mnie zaskoczyło po stylu tablicowym Google. potem trzydziestominutowa rozmowa z rekruterem, w zasadzie tylko sprawdzenie, czy jesteś normalnym człowiekiem, który faktycznie chce tę pracę.
w dniu onsite miałem dwie rundy kodowania i system design. pierwsze kodowanie to było sumowanie ścieżek w drzewie binarnym z ograniczeniem głębokości, do ogarnięcia. drugie to merge'owanie przedziałów w nakładających się oknach rezerwacji, ubrane w kontekst rezerwacji gości, które ze sobą kolidują, brzmiało jak coś z ich faktycznego kodu produkcyjnego. medium do hard, było blisko limitu czasu, ale skończyłem. schemat jest taki, że biorą standardowe rzeczy z LeetCode i ubierają je w język Airbnb, bookings, listings, reservations i availability windows. przejrzyj tę domenową otoczkę, a pod spodem są drzewa, tablice, grafy, przedziały. nic egzotycznego.
system design był szczerze mówiąc moją ulubioną częścią całego dnia. prompt brzmiał „zbuduj system bookingów i listingów”, a mój interviewer cały czas dorzucał scenariusze. co jeśli dwóch gości zarezerwuje ten sam listing dokładnie w tej samej sekundzie. co się dzieje, kiedy host znika w połowie bookingu. dostępność, która się zmienia. ceny, które ruszają się wraz z popytem i sezonem. polityki anulowania per listing. standardowe przygotowanie pod hotel booking z YouTube pokryło może czterdzieści procent. reszta to były rzeczy specyficzne dla domeny Airbnb i wymyślałem je na bieżąco.
to, co zrozumiałem po zbombieniu tej rundy, to że generyczne przygotowanie typu "zaprojektuj Twittera" tutaj się rozpada. pod Airbnb musisz rozumieć double-booking i jak sobie z nim radzić, state machine'y hosta i gościa, dynamic pricing, jak działa ich ranking wyszukiwania, kalendarze dostępności na dużą skalę. za drugim razem moje podejście było takie: powtórzyć cel własnymi słowami, zadać pytania, żeby zawęzić zakres, samemu rzucić sensownymi liczbami, zacząć naprawdę wysoko poziomowo, a potem wejść głębiej w to, czym ona wydawała się najbardziej zainteresowana. double-booking był tym, o co cisnęła najmocniej za oboma razem.
lunch jest „niepunktowany”, z takim cudzysłowem w powietrzu, bo Priya mówi, że osoba, z którą jadła lunch, wspomniała coś o niej podczas omówienia. więc po prostu bądź normalny przez cały dzień.
wróciłem kilka miesięcy później i odpaliłem InterviewMan do drugiego podejścia. zaczyna się runda kulturowa, a ono już wyciągnęło historię o przynależności z rozmowy, którą wcześniej z nim odbyłem, jeszcze zanim w ogóle zorientowałem się, czego interviewer chce. przy kodowaniu miało podejście DFS w kilka sekund od pojawienia się zadania. przy system design od razu oznaczyło problem współbieżności przy double-bookingu, dokładnie ten sam wątek, który moja interviewerka najmocniej cisnęła ostatnim razem. sprawdzałem dock, listę procesów, Activity Monitor przy HackerRank i Zoom, nic się nie pokazało. dwanaście dolarów miesięcznie przy planie rocznym, pięćdziesiąt siedem tysięcy użytkowników, ponad dwadzieścia ukrytych funkcji, bez limitów sesji. Interview Coder chce dwieście dziewięćdziesiąt dziewięć dolarów miesięcznie i robi tylko kodowanie, czyli dwie z pięciu rund, i te dwie, które w Airbnb mają najmniejsze znaczenie.
Priya miała rację dosłownie we wszystkim. historie kulturowe decydują o wyniku w tej firmie. prawdziwe, z imionami i momentami, które faktycznie przeżyłeś. nauczyłem się tego w drogi sposób lol
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.
