Sampai sekarang, hari ketika Airbnb menolak saya masih terlalu sering terlintas di kepala.
Hari sudah menjelang sore ketika saya keluar dari sesi final dan akhirnya duduk di mobil selama dua puluh menit, hanya menatap setir. Setelah recruiter menjelaskan alasannya, ternyata penolakan itu bermuara pada satu pertanyaan tentang rasa memiliki. Bukan coding, bukan system design, melainkan soal membuat seseorang merasa diterima di dalam tim.
Waktu itu saya baru saja melewati serangkaian interview Google, jadi saya menganggap persiapan coding sebagai inti dari semuanya. Saya sudah menulis dan melatih dua belas cerita dengan format STAR. Semuanya tentang mengirim fitur, menghadapi perbedaan pendapat, atau urusan teknis. Karena seluruh cerita itu sudah siap di kepala untuk saya ucapkan kapan saja, bank cerita justru menjadi bagian persiapan yang paling tidak saya cemaskan. Bagian itu pula yang pertama kali saya selesaikan dan tidak pernah saya buka lagi.
Perhatian yang saya berikan pada sesi budaya mereka ya sebanding dengan anggapan tadi. Jadwal mock coding terus berdatangan. Sebelum bekerja saya mengerjakan soal graph, lalu saat makan siang menonton video system design. Begitulah keseharian saya.
Semua latihan itu membuat pandangan saya agak sempit ketika memikirkan sesi teknis. Seorang mantan rekan satu tim bahkan mengejek saya gara-gara hal tersebut. Sejak enam bulan sebelumnya, ia terus bilang bahwa budaya punya bobot yang sama dengan coding dalam debrief terakhir mereka. Saya menertawakannya terang-terangan. Ia tidak membantah, hanya mengganti topik. Saya merasa sudah melakukan semuanya dengan benar.
Ready to ace your next interview?
InterviewMan gives you real-time AI answers during live interviews — undetectable on Zoom, Meet, and Teams.
Try InterviewMan FreeNamun sebanyak apa pun soal yang saya latih, ada satu sesi utuh yang luput. Sesi yang penting. Saya rupanya belum cukup "paranoid" untuk bersiap menghadapi interviewer budaya yang menunggu di ujung rangkaian interview.
Di ruangan itu saya mendapat tiga pertanyaan, dan ketiganya membahas cara membuat orang merasa menjadi bagian dari kelompok. Tidak satu pun dari dua belas cerita saya membicarakan inklusi. Cerita terbaik yang berhasil saya gali hanyalah pengalaman melakukan onboarding untuk engineer baru di perusahaan sebelumnya. Ketika mengucapkannya, saya sudah tahu ceritanya terdengar buruk. "Be a Host" dan "Belonging" memang benar-benar core values mereka, bukan slogan di poster, sedangkan saya tidak punya satu pun cerita yang menyentuh keduanya.
Coder biasa-biasa saja yang berhasil di bagian budaya bisa mendapat tawaran. Coder kuat yang gagal di bagian budaya akan ditolak. Begitulah hitung-hitungan yang sudah dijelaskan mantan rekan saya. Saya memasukkan semua pesannya ke kotak bernama "ia agak dramatis soal bekas tempat kerjanya". Padahal ia sedang menjelaskan cara penilaian yang sesungguhnya.
Kalau diurutkan, funnel yang saya jalani seperti ini. Sebelum berbicara dengan seorang manusia pun, ada tes HackerRank berisi dua soal tingkat medium dengan waktu empat puluh lima menit.
Saya mendapat soal manipulasi array dan binary tree. Seseorang di Discord bootcamp coding yang diam-diam saya ikuti mendapat graph sebagai pengganti tree, jadi mereka merotasi soal dari sebuah bank pertanyaan.
Mereka juga meminta kode yang benar-benar bisa dijalankan, bukan pseudocode. Hal itu sempat membuat saya kikuk karena saya datang dari interview Google, tempat semua pengerjaan tetap berada di whiteboard.
Sesudahnya ada panggilan recruiter selama tiga puluh menit. Pada dasarnya mereka hanya memastikan bahwa saya manusia normal yang memang menginginkan pekerjaan tersebut.
Phone screen berlangsung empat puluh lima menit. Saya mendapat DFS connected components dan menyelesaikannya dalam waktu sekitar dua puluh menit. Sisa waktu dipakai interviewer untuk membantu saya mencari edge case. Pada satu titik ia benar-benar berkata, "you might want to check empty input".
Saya nyaris jatuh dari kursi. Di Google tidak ada orang yang memberi petunjuk apa pun, atau setidaknya saya tidak pernah mendapatkannya di sana.
Di Airbnb, mereka memberi sedikit dorongan sepanjang proses. Mereka ikut menggambar di whiteboard. Saat system design, interviewer berdiri di samping saya sambil membuat sketsa bersama di papan. Seluruh proses terasa seperti pair programming. Pengalaman coding itu benar-benar berbeda dari Google, terutama karena para interviewernya betul-betul berbicara dengan saya.
Hari final round sendiri terdiri dari dua sesi coding dan system design. Sesi coding pertama membahas binary tree path sums dengan batasan depth. Soalnya masih dapat saya tangani, dan saya ingat saat itu sempat merasa cukup yakin.
Sesi kedua tentang interval merging pada jendela reservasi yang saling tumpang tindih. Soalnya dibungkus sebagai pemesanan tamu yang saling bentrok dan rasanya seperti diambil langsung dari kode produksi mereka. Tingkatnya medium hingga hard. Saya nyaris kehabisan waktu, tetapi berhasil selesai, sementara sepuluh menit terakhir dari empat puluh lima menit itu saya lewati dengan berkeringat.
Setelahnya, mantan rekan saya menjelaskan bahwa mereka memang selalu berbuat begitu. Setiap soal mengenakan baju khas Airbnb, entah itu bookings, listings, availability windows, atau reservations. Di baliknya tetap ada tree, array, graph, dan interval yang selama ini dilatih. Tidak ada yang eksotis, setidaknya tidak dalam sesi mana pun yang saya jalani.
Prompt system design saya berbunyi "build a booking and listing system", lalu interviewer terus melempar skenario. Yang pertama, apa yang terjadi kalau dua tamu memesan listing yang sama persis pada detik yang sama? Berikutnya, bagaimana jika host tiba-tiba tidak memberi kabar di tengah proses booking? Sesudah itu muncul berbagai skenario harga, termasuk harga yang berubah tergantung minggu dan musim. Entah di titik mana saya berhenti menghitung karena pertanyaannya terus datang.
Saya sudah mempelajari materi standar tentang hotel booking dari YouTube. Materi itu mungkin membantu menghadapi empat puluh persen pertanyaan yang dilontarkannya. Sisanya benar-benar menyangkut domain Airbnb, dan saya duduk di sana sambil mengarang jawaban saat itu juga.
Ready to ace your next interview?
InterviewMan gives you real-time AI answers during live interviews — undetectable on Zoom, Meet, and Teams.
Try InterviewMan FreePersiapan umum semacam "design Twitter" ambruk di ruangan tersebut. Saya bahkan bisa menunjukkan persis bagian tempat ia ambruk: concurrency untuk double booking beserta cara menanganinya, state machine bagi host dan tamu, dynamic pricing, cara kerja search ranking mereka, serta availability calendar dalam skala besar. Tidak satu pun video YouTube yang saya tonton membahas hal-hal itu.
Pada percobaan kedua, cara saya menjalani sesi itu berubah. Saya mengulang tujuan dengan kata-kata sendiri, bertanya untuk mempersempit scope, mengajukan angka yang masuk akal, memulai dari gambaran yang sangat umum, baru kemudian menggali bagian yang tampaknya paling menarik bagi interviewer. Double booking menjadi hal yang paling keras ia kejar, dalam kedua percobaan. Di percobaan kedua, system design malah menjadi bagian favorit saya sepanjang hari. Agak gila kalau mengingat itulah sesi yang saya hancurkan pada percobaan pertama, dan maksud saya benar-benar hancur.
Bahkan makan siang hanya "tidak dinilai" kalau memakai tanda kutip. Di sebuah thread r/cscareerquestions, ada orang yang lunch buddy-nya menyebut sesuatu tentang dirinya saat debrief. Jadi, bersikaplah normal sepanjang hari.
Beberapa bulan kemudian saya kembali untuk percobaan kedua. Kali ini saya memakai InterviewMan untuk seluruh proses. Perbedaan antara kedua percobaan itulah yang membuat saya yakin untuk mengerjakan masalah ini secara penuh waktu.
Ketika sesi budaya dimulai, InterviewMan sudah menampilkan cerita tentang rasa memiliki dari percakapan kami sebelumnya, bahkan sebelum saya menyadari arah pertanyaan interviewer. Seluruh penolakan saya dahulu terjadi gara-gara belonging. Saat coding, pendekatan DFS sudah muncul dalam hitungan detik sejak soalnya terlihat. Di system design, InterviewMan langsung menandai concurrency pada double booking, sudut yang paling keras dikejar interviewer saya pada percobaan sebelumnya.
Kami menguji visibilitas dock, process list, dan Activity Monitor di HackerRank serta Zoom. Tidak ada yang muncul. Harganya 12 dolar per bulan bila dibayar tahunan, dipakai oleh 57.000 orang, memiliki lebih dari 20 fitur stealth, dan tidak membatasi jumlah sesi. Interview Coder meminta 299 dolar per bulan dan hanya menangani coding, padahal di sini coding cuma dua dari lima sesi, dua sesi yang paling tidak menentukan di Airbnb.
Mantan rekan saya ternyata benar soal semuanya. Cerita tentang budaya menentukan hasil akhir di perusahaan ini. Ceritanya harus nyata, lengkap dengan nama dan momen yang memang pernah dialami.
Saya ingat ketika menceritakan penolakan itu kepadanya. Ia diam sekitar lima detik. Saya mengartikannya sebagai "I literally warned you", dan seandainya ia mengucapkannya pun ia memang berhak.
Setelah itu saya hampir tidak pernah menceritakan kisah tersebut lagi. Saya tidak ingin menjalaninya sekali lagi lewat cerita, dan memang tidak terlalu berminat. Saya hanya marah besar kepada diri sendiri karena datang membawa dua belas cerita yang sudah dipoles, tetapi tidak satu pun tentang belonging, padahal ia sudah memberi tahu sesi mana yang paling menentukan. Pelajaran itu saya dapat dengan harga mahal.
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.

