Článek jsem tolikrát přepisoval a tak dlouho odkládal, až mi tak trochu "okoral" co do časového uspořádání. Výsledné sdělení je ale pořád stejné, tak si zkrátka zkuste představit, že je cca listopad 2014 a je to :-)
Akademický rok 2014/2015 trávím na Erasmu v Paříži. Nestěžuju si, ale francouzské školství je tak strašně odlišné od toho českého, že jsem se rozhodl druhý semestr vyplnit místo studiem stáží. Jelikož jsem měl film Stážisti furt v hlavě od doby co jsem na něm byl v kině (fakt, neuwarezil jsem ho!), tak jsem si tak naivně řekl, že bych to mohl zkusit.
Záměrně pro účely plného porozumění uvedu přesný postup procesu podání přihlášky (jeho pochopení je klíčové pro zbytek příběhu):
- Navštívil jsem stránku Google Careers.
- Pod vyzývavým logem DO COOL THINGS THAT MATTER jsem šlápl na odkaz Student jobs and internships.
- Vlezl jsem do záložky Advanced degree a vybral Internships for Masters Students
- Nakonec jsem vybral finální odkaz - Software Engineering Intern 2015
Tam jsem následně vše pravdivě vyplnil, vložil životopis a odeslal. Nedával jsem si žádné šance, ale kdo nic nezkusí, nic nezkazí.
Netrvalo to dlouho (konkrétně 2 dny) než se mi ozvala HR specialistka z Googlu (pro jednoduchost jí budu fiktivně říkat Jane), že by si se mnou ráda popovídala. Po tom co se přes mou hlavu přenesly veškeré emoce od radosti až po zoufalost jsem utrousil cool a odpověděl jsem Jane, že jsem rád za její zájem a že si určitě rád popovídám.
Na první kontakt jsem se připravoval videem od Davida Vávry, které mi pomohlo pochopit, co mě asi tak může čekat.
Pohovor č.1 - phone screen
První pohovor (s Jane) jsme si domluvili cca 3 dny od prvního kontaktu. Říkal jsem si, že není na co čekat a tak jsem do toho šel hned.
Pohovor se nesl ve velmi přátelské atmosféře, nejvíc jsme se bavili o mně - projekty, práce, škola. Sem tam se mě nenápadně zeptala na nějakou záludnou technickou otázku, ale nenechal jsem se nachytat na švestkách. Ptala se mě na mou situaci ve škole, tak jsem ji pravdivě řekl, že jsem na Erasmu a že hledám na druhý semestr stáž. Na otázku "a co potom?" jsem opět pravdivě odpověděl, že chci zpět do Prahy, protože chci dodělat školu (reklama na FEL: fakulta nabízí pár hustodémonsky krutopřísných předmětů - například tento, tenhle nebo tamten, které bych ještě rád absolvoval a zároveň jsem ústně domluven u koho budu psát diplomku...).
Překvapivě byla Jane natolik nadšená, že mi rovnou nabídla postup do dalšího kola - interview s inženýrem. Informovala mě, že budu mít jedno kolo přes telefon/hangout a potom bych měl pohovor on-site v případě úspěchu. Druhé kolo trvá 45 minut, subjekt dostane 2 otázky - lehkou a těžkou a musí je nakódit do Google Docs (bomba...). Třetí kolo, v kanceláři Googlu se skládá ze dvou 45 minutových technických interview, obědu (neoficiální interview) a dalších dvou 45 minutových interview. Jestli se mě snažila vystrašit, tak se jí to celkem obstojně podařilo. Dodatek - "ale nenech se rozptýlit tím, že je to Google..." - nezlepšil opravdu vůbec nic. Nakonec mi dala tipy na pohovor (co je tedy jako fajn umět):
- Časové a paměťové složitosti algoritmů
- Naprogramovat datové struktury pomocí pole (speciálně hashmaps a hashtables)
Dále jsem dostal elektronickou kopii Cracking the Coding Interview na procvičení (jako kdybych toho neměl dost z PALů a DSAček) a otázku - "kdy bys chtěl mít interview?". Opatrně jsem se zeptal, jak dlouhou dobu si kandidáti vybírají. Odpověď byla, že mezi 2-4 týdny. Pochopitelně jsem nechtěl vypadat ani jako frajer ani jako srab, tak jsem zvolil "zlatou" střední cestu, tedy 3 týdny.
Po celou dobu jsem se poměrně zodpovědně připravoval - procházel jsem slajdy z bakaláře, kódil různé úlohy na HackerEarth a TopCoder, přečetl dvě knihy o pohovorech a samozřejmě jsem prolezl web a hledal "urban legends" o technických pohovorech. Během tohoto času mě Jane zkontaktovala, že v Googlu končí, ale že mě předává jejímu "skvělému" kolegovi (opět volím fiktivní jméno) Thomasovi. Údajně je to její dobrý přítel a mám se tedy cítit v "dobrých rukách" (taky máte takový ten pocit, že kdyby to byla pravda, tak by to neříkala?). Určitý pocit bezpečí jsem ale cítil, koneckonců - je to Google, co by se asi tak mohlo stát...
Pohovor č.2 - technické interview
Před druhým kolem jsem otestoval vše potřebné - link na Google Docs šlapal, hangout odkaz taky. Zdánlivě to vypadalo, že v tomto směru nebude žádný problém. Chyba lávky...jakmile jsme zahájili hovor tak se mi do sluchátek ozvalo: "Yeah, I can't hear you.". Minuta ticha. Panika. Co teď? První co mě napadlo byla vybitá baterka ve sluchátkách (Bose sluchátka s tlumením okolního ruchu). Tu jsem ji vyměnil, ale furt nic. Tak přišly na řadu Apple sluchátka a samozřejmě zase nic. Zahodivši sluchátka, že vyzkouším zabudovaný mikrofon jsem naznal, že toto také není cesta k úspěchu. Překvapivě byla mým zachráncem appka Hangout pro iPhone, která, nerozdíl od Chromu, mikrofon brala...tak tedy hurá na příklady.
Dostal jsem první jednoduchou otázku (na rozehřátí), kterou samozřejmě nemohu prozradit, ale neměla nic společného ani s datovou strukturou v poli, ani s časovou a paměťovou složitostí. Druhá otázka k mému překvapení opět neměla s výše zmíněnými tématy absolutně nic společného, ale záludná byla. Úroveň odhaduji na druhý semestr bakaláře na FELu (Programování v Javě), kdy jsem jako semestrálku programoval Bejeweled. Místy jsem se parkrát vysekal, ale k mému překvapení jsem ani nebyl příliš nervózní. Můžu ale říct, že Google Docs mi opravdu pily krev. Co to je proboha za nápad - Google určitě musí mít interní editor pro psaní kódu, který alespoň doplňuje závorky a odsazuje kód. Neshledávám jako umění umět pod tlakem mačkat milionkrát tabulátor a být si v každém daném momentě vědom kolik zavírajících závorek musím ještě napsat.
Inženýr na sebe prozradil, že dělá na Androidu, ale že víc mi nemůže říct. Podotknu taky, že byl fakt arogantní. Důkaz, že na blbce můžete narazit všude. Nicméně ocenil mou znalost bzipu a dokonce se mi i dostalo obdivu, že to už je "pokročilé programování". So hardcore! Dokonce se mě zeptal, zda mám nějaké dotazy. Směle jsem se tedy zeptal nakolik doopravdy aplikujou agilní metodiky vývoje (Scrum, Pair programming, Rapid prototyping...) a jestli se každý den těší do práce.
Na odpověď od Thomase ohledně výsledků jsem čekal dva týdny. V pozdní čtvrteční večer, kdy jsem byl zrovna v Praze, mi přišel slibně vypadající e-mail, že jsem se inženýrovi líbil...ALE údajně jsem se dopustil pár drobných chyb a proto by se mnou chtěli udělat ještě jedno kolo - pro jistotu. A že si mám dát pozor na detaily. Aha, fakt super feedback. Domluvili jsme se tedy obratem na dalším interview následující týden.
Pohovor č.3 - technické interview v2.0
Přiznám se, že jak mezi jednotlivými koly bylo mraky času, tak jsem se už tak zevrubně nepřipravoval. Možná to byla chyba, ale celý svět se rozhodně netočí kolem Googlu (i když možná jo...). Nicméně technicky jsem byl vybaven - telefon připraven, žádné hokusy pokusy s prohlížečem, Google Docs funkční. Bezva, jde se na to.
Druhý inženýr byl naopak absolutně má krevní skupina - pohodář, kterému to pálí. První otázka byla čistě matematická záležitost. Pěkně jsme si popovídali o zadané funkci včetně jejího důkazu. Zabočili jsme i do paměťových limitů a vypadal spokojeně, že tady nebude žádný problém. Druhá otázka byla absolutně bezvadná - STROMY. Konečně, řekl jsem si - jako loni v PALech. Chvíli jsem nad tím (nahlas) dumal, mezitím co mi můj protějšek s úsměvem přikyvoval. Zeptal jsem se ho, zda moje navrhnuté řešení dává smysl a on řekl, že rozhodně a že mohu začít psát. Byl jsem asi v plovině implementace, když náhle telefon hlásil stav 0% baterie.
Zde prosím vložte svou oblíbenou nadávku.
Přirozeně browser stále nepřijímal mikrofony napojené na MacBook Pro a jelikož byl můj telefon mimo, nemohl mi ani zavolat na emergency číslo. Minimální nabití, aby iPhone alespoň v nabíječce fungoval je kolem 5-10 minut a takový luxus si zkrátka inženýři z Googlu nemohou dovolit. Jelikož inženýr na druhé straně měl za ušima a zřejmě se mu líbil můj nápad, tak mi řekl - "Can you hear me?", na což jsem zakýval hlavou a na to konto řekl - "Let's reschedule, you almost got it.". Budiž.
Ihned jsem napsal Thomasovi mail s omluvou, že jsem něco takového nečekal (ale mohl jsem) a zda bychom mohli domluvit nový termín. Na odpověď si pro jistotu vzal dva dny a následně se ozval se slovy - "Inženýr s kterým jsi mluvil se bohužel stěhuje do USA a tak musím najít někoho jiného.". Hm, bezva, když narazím na někoho, komu jsem evidentně sednul, tak si to musím sám pohnojit. Ale co - komu se poštěstilo mít možnost třikrát udělat dobrý první dojem?
Pohovor č.4 - technické interview v2.1
K poslednímu interview už jsem vážně neměl žádné emoce a přistoupil jsem k němu jak k denní rutině. Třetí inženýr byl absolutně mimo, neměl připravený Google Docs a byl někde ve své kanceláři, kde měl totální čurbes na stole. Nemám nic proti kreativnímu nepořádku, ale po všech zážitcích jsem začal pochybovat o mé motivaci. Omlouval se mi neustále za komplikace a poslal mi přes jeho soukromý Google+ chat odkaz na Google Docs v jeho soukromém Drivu. O tom si stále myslím své, ale v tu chvíli mi to prostě jen přišlo jako nejrychlejší řešení.
První otázka, která měla být jednoduchá byla asi nejtěžší ze všech otázek co jsem doteď dostal. Opět podotknu, že to nebylo nic s datovou strukturou v poli. Babral jsem se v tom jak dítě v kaši a parkrát jsem šlápl dost vedle. Inženýr byl nicméně velmi asertivní a když jsem sešel z cesty, tak mě chytl za ruku (obrazně) a popostrčil správným směrem. Zabralo mi to dost času a potom prohlásil - no tak, když už jsme tohle téma otevřeli, tak u něj zůstaneme. Aha, takže to je konec, nedostanu těžkou otázku. Druhá otázka byla lehčí než první a po vyřešení první jsem ji měl hotovou víceménně hned. Pak jsme si chvilku povídali, poděkovali si a to byl konec. Neměl jsem žádný pozitivní nebo negativní dojmy, věděl jsem, že jsem si neutrhnul ostudu a to mi stačilo. Nezeptal se mě na žádné důkazy, kde bych mohl zazářit, chtěl jen nudnou implementaci. Věděl jsem, že s předchozím inženýrem bych měl mnohem lepší vyhlídky.
Na výsledky jsem čekal opět 10 dní, po kterých jsem Thomasovi napsal, zda má už zpětnou vazbu. Ozval se, že posílal něco v pátek a jestli mi to nepřišlo. Mám GMail a on pracuje v Googlu - nenechám se oblbnout, Googlí maily nespadnou do spamu, nic neposlal. Sdělil mi, že by si se mnou rád následující den popovídal po telefonu. Nebyl jsem si jistý co očekávat, nicméně jsem byl poněkud spokojenější, že nepřišel vágní e-mail ve stylu: "Thank you, but no thank you".
"Pohovor" s HR specialistou
Thomas na nic nečekal a rovnou šel k věci, že v procesu už nebudou dál pokračovat. Pěkně jsem mu poděkoval, že si na mě našel čas i když mohl jen poslat e-mail (takže něco pravdy bylo na těch "dobrých rukách"). Zeptal jsem se ho, zda by mi mohl prozradit feedback, proč mě odmítli. Chvíli se mě snažil krmit totálně prázdnými frázemi o detailech a "off-by-one" chybách a že hledají obecně vzdělané inženýry. Tak jsem se ho zeptal, zda by mi alespoň mohl doporučit které předměty by se mi mohly hodit, když mám před sebou ještě rok školy po Erasmu. Moment ticha, klikání myši, odfunění si a následoval stejný marketingový výplach, který ozdobil větou: "At this moment we are unable to offer you a full-time position.".
Facepalm
Jemně jsem se ho zeptal zda má přístup k mému CV. Pak jsem se ho zeptal, co vidí jako objective mého životopisu. Pro korektnost zde uvádím screenshot vrchu mého životopisu:
Chvíli se z telefonu nic neozývalo až na pár hlasitých oddechů. Nakonec šel Thomas s pravdou ven, že se chyba stala u nich. Že se mi za to omlouvá a pokud chci, tak mě předá na internship HR oddělení, abych začal proces znovu.
ZNOVU? Fakt, můžu? Ty jo, nic jinýho vlastně ani nechci!
Konec zábavy, nervy mám jen jedny. Pěkně jsem Thomasovi poděkoval, že nemám zájem a ať se má hezky. Zřejmě byl zaskočen víc mou reakcí než vlastní chybou, protože se zadrhnul, utrousil omluvu a rozloučil se.
Poučení
Cítím zášť nebo nenávist? Ale vůbec. Zkusím to znovu? Zcela určitě! Ač mi trochu hnuli žlučí, tak to ve skutečnosti byl docela dobrý trénink - vyzkoušet si třikrát technický pohovor. Alespoň teď přesně vím, co mě příště čeká. Budu muset naskillovat trochu iterátory, v mezičase budu pokračovat na svém grafovacím frameworku a třeba se příště dočkám krásné otázky na teorii grafů hned v prvním kole. Jen si dám pozor, že obě strany chápou, o jakou pozici se ucházím. To aby Google příště dostál svému "IF YOU FAIL, FAIL FAST".