Ripenso ancora al giorno in cui Airbnb mi ha scartato, più spesso di quanto dovrei.
Era tardo pomeriggio quando uscii dal colloquio finale e finii per restare venti minuti in macchina, con gli occhi fissi sul volante. Quando il recruiter mi spiegò il motivo del rifiuto, scoprii che non c'entravano né il codice né il system design. Era stata una domanda sul senso di appartenenza, sul far sentire qualcuno accolto dentro un team.
All'epoca arrivavo da una serie di colloqui con Google e consideravo la preparazione sul codice come l'intera partita. Avevo scritto e provato dodici storie in formato STAR. Tutte riguardavano funzionalità consegnate, contrasti gestiti oppure questioni tecniche. Con quelle storie già pronte in testa, la raccolta di esempi era la parte della preparazione che mi preoccupava meno. Era anche la prima che avevo completato, senza più riaprirla.
Alla prova sulla cultura aziendale dedicai un'attenzione proporzionata, cioè pochissima. Continuavo a fissare simulazioni di coding. Prima del lavoro facevo esercizi sui grafi, a pranzo guardavo video di system design.
Tutto quell'allenamento mi aveva reso piuttosto fissato sulle prove tecniche. Una mia ex collega mi prendeva persino in giro. Per sei mesi continuò a ripetermi che, nella valutazione finale di Airbnb, la cultura pesa quanto il codice. Io le risi in faccia. Lei non insistette e cambiò discorso. Ero convinto di fare ogni cosa nel modo giusto.
Ready to ace your next interview?
InterviewMan gives you real-time AI answers during live interviews — undetectable on Zoom, Meet, and Teams.
Try InterviewMan FreeEppure, per quanti problemi risolvessi, avevo trascurato un intero colloquio. Quello essenziale. Non ero stato abbastanza "paranoico" da prepararmi per l'intervistatore della cultura che mi aspettava alla fine del percorso.
In quella stanza mi fecero tre domande. Tutte e tre riguardavano il modo di far sentire le persone parte del gruppo. Nessuna delle mie dodici storie parlava di inclusione. La cosa migliore che riuscii a recuperare fu il racconto dell'inserimento di un nuovo ingegnere nella mia vecchia azienda. Mentre lo raccontavo, sapevo già che suonava malissimo. "Be a Host" e "Belonging" sono davvero valori fondamentali per Airbnb, non frasi da manifesto, e io non avevo nulla che toccasse né l'uno né l'altro.
I programmatori mediocri che centrano la cultura ricevono un'offerta; quelli bravi che sbagliano la cultura vengono respinti. Era questo il calcolo che la mia ex collega aveva provato a spiegarmi. Io avevo liquidato tutto come un po' di melodramma sulla sua precedente azienda. In realtà mi stava descrivendo il sistema di valutazione.
Nel mio caso, il percorso di selezione funzionò così. Prima ancora di parlare con una persona c'era un test HackerRank: due problemi, difficoltà media, quarantacinque minuti.
A me capitarono la manipolazione di array e un problema su un albero binario. Una persona in un Discord per studenti di coding bootcamp che seguo senza intervenire ricevette invece un grafo al posto dell'albero. Le domande, quindi, ruotano all'interno di una raccolta.
Volevano inoltre codice vero e funzionante, non pseudocodice. La cosa mi spiazzò perché arrivavo dai colloqui di Google, dove tutto rimaneva sulla lavagna.
Seguì una chiamata di trenta minuti con il recruiter. In sostanza serviva a controllare che fossi una persona normale e che volessi davvero quel lavoro.
Il colloquio telefonico durò quarantacinque minuti. Mi chiesero i componenti connessi tramite DFS, che risolsi in circa venti. Per il resto del tempo l'intervistatrice mi aiutò a cercare i casi limite. A un certo punto disse letteralmente: "potresti controllare l'input vuoto".
Per poco non caddi dalla sedia. A Google nessuno ti regala niente, o almeno non lo aveva mai regalato a me.
In Airbnb, invece, mi indirizzarono lungo tutto il percorso. Disegnavano alla lavagna insieme a me. Durante il system design, l'intervistatore era in piedi accanto a me e abbozzava lo schema al mio fianco. Sembrava quasi una sessione di pair programming. Rispetto a Google, l'esperienza di coding era completamente diversa, soprattutto perché gli intervistatori parlavano davvero con me.
La giornata finale prevedeva due prove di coding e il system design. Nella prima mi chiesero le somme dei percorsi in un albero binario con un vincolo di profondità. Era gestibile e ricordo che, a quel punto, mi sentivo davvero bene.
La seconda riguardava l'unione di intervalli applicata a finestre di prenotazione sovrapposte, presentata come un caso di prenotazioni degli ospiti in conflitto. La domanda sembrava presa direttamente dal loro codice di produzione. La difficoltà andava da media ad alta. Arrivai vicino al limite, ma conclusi, passando gli ultimi dieci di quei quarantacinque minuti a sudare.
In seguito la mia ex collega mi spiegò che fanno sempre così: ogni problema viene rivestito con il linguaggio di Airbnb, tra prenotazioni, annunci, finestre di disponibilità e riserve. Sotto, però, ci sono gli stessi alberi, array, grafi e intervalli su cui ci si esercita da sempre. Nulla di esotico, almeno in nessuna delle mie prove.
La traccia di system design era "costruisci un sistema di prenotazioni e annunci". L'intervistatrice continuava a lanciarmi scenari. Il primo: cosa succede quando due ospiti prenotano lo stesso alloggio nello stesso identico secondo? Poi arrivò un host che smette di rispondere a metà prenotazione. Dopo toccò ai prezzi, che cambiano a seconda della settimana e della stagione. Superato quel punto persi il conto, perché lei continuava ad aggiungere casi.
Avevo seguito la solita preparazione su YouTube per progettare un sistema alberghiero. Mi bastò forse per il quaranta per cento di ciò che mi venne chiesto. Il resto riguardava interamente il dominio di Airbnb, e io ero lì a inventare risposte sul momento.
Ready to ace your next interview?
InterviewMan gives you real-time AI answers during live interviews — undetectable on Zoom, Meet, and Teams.
Try InterviewMan FreeLa preparazione generica del tipo "progetta Twitter" crolla in quella stanza. Posso anche dire con precisione dove: concorrenza tra due prenotazioni e relativa gestione, macchine a stati per host e ospite, prezzi dinamici, funzionamento del ranking di ricerca, calendari delle disponibilità su larga scala. Nei video che avevo guardato su YouTube nessuno affrontava questi argomenti.
Al secondo tentativo affrontai quella prova in un altro modo. Ripetevo l'obiettivo con parole mie, facevo domande per delimitare il problema, proponevo io stesso numeri ragionevoli, partivo da un quadro molto generale e poi approfondivo ciò che sembrava interessare di più all'intervistatrice. In entrambe le occasioni insistette soprattutto sulla doppia prenotazione. La seconda volta, il system design diventò la parte che preferii dell'intera giornata. Una cosa assurda, visto che al primo tentativo era stata la prova in cui ero andato peggio. E per peggio intendo davvero male.
Persino il pranzo è "non valutato" soltanto tra virgolette. In un thread su r/cscareerquestions, qualcuno raccontava che la persona con cui aveva pranzato aveva fatto un'osservazione su di lui durante la valutazione. Conviene quindi comportarsi normalmente per l'intera giornata.
Tornai mesi dopo per il secondo tentativo e, questa volta, usai InterviewMan durante tutto il percorso. La differenza fra le due esperienze è ciò che mi convinse a lavorare a tempo pieno su questo problema.
Quando iniziò il colloquio sulla cultura, InterviewMan aveva già recuperato una storia sul senso di appartenenza da una conversazione precedente, prima ancora che io capissi cosa stesse cercando l'intervistatore. Il mio rifiuto era dipeso interamente dall'appartenenza. Nella prova di coding mostrò l'approccio DFS pochi secondi dopo la comparsa del problema. Nel system design segnalò subito la concorrenza nella doppia prenotazione, proprio il punto su cui l'intervistatrice aveva insistito di più la volta precedente.
Abbiamo controllato la visibilità nel Dock, l'elenco dei processi e Monitoraggio Attività, sia con HackerRank sia con Zoom: non compariva nulla. Dodici dollari al mese con il piano annuale, cinquantasettemila utenti, più di venti funzioni stealth, nessun limite alle sessioni. Interview Coder chiede duecentonovantanove dollari al mese e copre soltanto il coding. Qui il coding rappresenta due prove su cinque, le due meno importanti in Airbnb.
La mia ex collega aveva ragione, letteralmente, su tutto. In questa azienda sono le storie sulla cultura a decidere l'esito. Storie vere, con nomi e momenti vissuti davvero.
Ricordo quando le raccontai del rifiuto. Rimase in silenzio per circa cinque secondi. Io lo interpretai come: "te l'avevo detto chiaramente". E avrebbe avuto tutto il diritto di dirlo ad alta voce.
Dopo quella volta smisi quasi del tutto di raccontare la storia. Non volevo ripercorrerla e, a dire il vero, non mi interessava farlo. Ero soltanto furioso con me stesso: mi ero presentato con dodici storie perfette e neppure una sull'appartenenza, benché lei mi avesse detto esattamente quale prova contava. L'ho imparato nel modo più costoso.
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.

