Appunti sul mio percorso di selezione da SWE in Stripe, messi per iscritto a cose fatte.
Come forse avrai già intuito, questo articolo non parla di maratone su LeetCode, di programmazione dinamica e men che meno, rabbrividisco al solo pensiero, di alberi binari da invertire. Non sarei la persona giusta per dare consigli in materia. Ho però affrontato il percorso di selezione di Stripe abbastanza di recente, quindi qualcosa sul formato l'ho imparato. Per estensione, mi dichiaro autorizzato a distribuire consigli sui colloqui in stile Stripe.
Saranno particolarmente utili a chi continua a sentirsi dire «Stripe è diversa» senza che nessuno si prenda mai la briga di spiegare in che senso.
Cominciamo!
La buona notizia è che si può diventare più bravi nei colloqui per Stripe, proprio come in qualsiasi altra attività, facendo pratica. A me ne è servita parecchia prima di riuscire a leggere con un minimo di sicurezza del codice sui pagamenti mezzo rotto. E non sono ancora un fenomeno. L'ultimo round su CoderPad che ho affrontato è finito in un piccolo disastro: nella seconda parte avevo scritto una funzioncina ingegnosa che poi non riuscivo a estendere nella terza, così ho dovuto riscriverne interi pezzi mentre l'intervistatore mi guardava sudare.
Ready to ace your next interview?
InterviewMan gives you real-time AI answers during live interviews — undetectable on Zoom, Meet, and Teams.
Try InterviewMan FreePerché è stato un incubo? Avevo una tale fretta di chiudere la prima parte che ho privilegiato l'astuzia rispetto all'estensibilità. Ma se sapevi che nella terza parte avrebbero aggiunto la gestione dei tentativi, perché hai scelto la soluzione più furba? Ottima domanda. Perché non avevo la minima idea di come prepararmi, è la mia risposta.
Ed eccomi al primo consiglio: prima leggi il codice rotto, poi prova a indovinare dove sia il bug.
Vedo spesso suggerimenti dati con le migliori intenzioni: presentarsi al Bug Bash avendo imparato a memoria un elenco di «bug ricorrenti nei pagamenti», così da riconoscere lo schema già al secondo minuto. La mia opinione, forse discutibile, è che sia una sciocchezza totale. Se va bene, indovini e ti senti brillante per dieci minuti, finché non scopri che la correzione rompe un altro percorso del codice.
Se va male, passi l'ora intera a cercare conferme a un'ipotesi sbagliata. Il round dura sessanta minuti e si lavora su vero codice Stripe. Io ho dedicato i primi dieci minuti soltanto alla lettura. Ho trovato il bug più o meno al trentaquattresimo minuto: stava al confine fra una funzione di validazione e un percorso di nuovo tentativo che, alla seconda esecuzione, azzerava silenziosamente lo stato.
Le probabilità di non sentirti dire «costruisci qualcosa con PaymentIntents» durante il colloquio Stripe Integration sono precisamente pari a zero. Saperlo ti mette nella condizione di fare un round impeccabile. Prima di entrare, dovresti riuscire a spostarti quasi a memoria fra queste pagine:
- La pagina PaymentIntents.
- La pagina dei codici di errore.
- La pagina sull'idempotenza.
Non c'è alcun motivo per doverci pensare sul momento e poi impappinarsi anche solo nel decidere dove fare clic. Prima del colloquio, prenditi il tempo di girare fra queste pagine finché non saprai orientarti a sensazione. Sembra il consiglio più ovvio del mondo, eppure in molti non lo seguono. A mio parere, esercitarsi tenendo aperta la documentazione è il gesto più semplice e, insieme, quello che può incidere di più per distinguersi in questa fase.
Solo in questo caso, comportarsi da stalker è perfettamente accettabile. Leggere il blog di ingegneria di Stripe prima del system design serve per due motivi. Per prima cosa, permette di capire meglio quali problemi distribuiti interessino davvero a Stripe e su cosa potrebbe insistere chi ti intervista. Poi aiuta a farsi un'idea del genere di problemi per cui l'azienda assume.
Nel mio round abbiamo usato Whimsical e il problema somigliava a un rate limiter. Nella seconda metà della conversazione siamo entrati nel caso di due server in disaccordo sul fatto che un client avesse superato o meno il limite. I normali corsi di system design mi avevano dato i diagrammi. Il blog di ingegneria di Stripe mi ha dato il modo di inquadrare la questione che coincideva con ciò che l'intervistatore voleva davvero approfondire.
Una nota sugli strumenti, visto che questa domanda arriva ogni volta. Per le parti della preparazione in cui un overlay dedicato soltanto al coding non può essere d'aiuto, io mi sono appoggiato a InterviewMan. Stripe non significa soltanto CoderPad. Ci sono voce, video, condivisione dello schermo e colloquio comportamentale. Interview Coder 2.0 costa duecentonovantanove dollari al mese e gestisce unicamente il coding.
InterviewMan costa dodici dollari al mese con il piano annuale, vale a dire centoquarantaquattro dollari l'anno. Ha cinquantasettemila utenti. La valutazione è di 4.8 su 5, basata su duecentocinquantasette recensioni. Tutte le funzioni stealth sono incluse. Supporta Zoom, Teams, Meet, Chime e Webex. Funziona all'interno di HackerRank, CoderPad e Codility. È disponibile per Windows, macOS, Android, iOS e Chrome. Dopo ho comunque registrato una simulazione per controllare il dock, l'elenco dei processi e il risultato dal lato della registrazione di Zoom. Controlla sempre.
Se vieni scartato, sei semplicemente un percorso di selezione più vicino a quello che finirà con un'offerta. In ogni caso, chiedi un riscontro al recruiter. Spesso sarà utile. Altre volte ti diranno che ci eri quasi, ma hanno ritenuto più adatta una persona con appena un po' di esperienza fintech direttamente pertinente in più. Un commento del genere non serve moltissimo, ma almeno dovrebbe rassicurarti: sei molto, molto vicino.
Ora vai e prenditelo!
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.

