HomePersonale › Interviu la Google Zurich – partea a II-a

Interviu la Google Zurich – partea a II-a

Cum rezolva Google problemele

A trecut aproape un an de cand am promis ca voi spune ce a urmat dupa al doilea interviu tehnic, telefonic, pentru Google Zurich. Dupa vreo doua saptamani, insa, intr-adevar am vazut ca sunt (inca) destul de destept, pentru ca, intr-adevar, am fost invitat la un interviu on-site (la fata locului). M-a contactat recruiterul, prin e-mail si m-a felicitat ca am trecut cu brio acest al doilea interviu si daca putem stabili o perioada, cam peste vreo 2 saptamani in care sa vin la Zurich. Daca ar fi fost dupa mine, as fi asteptat ceva mai mult, timp in care sa ma mai pun la punct cu unele tehnici de programare sau algoritmi sofisticati. Am cautat pe Google :) cam ce fel de probleme ar putea sa ma intrebe acolo, am contactat un vechi amic care a lucrat pentru o vreme la Google in Mountain View, iar el m-a testat cu o serie de probleme de algoritmica, in care predominau tabelele hash, sortarile rapide si rezolvarea de probleme in timp liniar. De pilda, una din probleme avea o aplicabilitate foarte directa la Youtube. Am constatat ca cei de la Google au un mod foarte inventiv de a rezolva unele probleme, care aparent se rezolva in O (n x n), dar ei le rezolva chiar in O(n), daca trebuie sa le rezolvi de mai multe ori. La unele probleme la care eu aveam o solutie in O(log(n)) ei vin adesea cu o solutie in O(1), incat uneori te intrebi daca ceea ce se preda la algoritmica prin liceu sau facultate sunt cele mai avansate metode.

Adesea, fiecare problema ce trebuie rezolvata de Google are o anumita particularitate, iar noi de multe ori aplicam orbeste un algoritm, bine invatat, fara sa studiem bine particularitatile acelei probleme si sa observam ca, desi algoritmul este foarte bun, poate ca in acele cazuri speciale exista ceva si mai bun.

Idei furate sau coincidente?

Dorind sa le fac o impresie buna, le-am trimis si cateva idei de-ale mele, din preocuparile mele din domeniul limbajului natural, publicate sau care au fost ulterior publicate in articole de reviste sau la conferinte internationale. Recruiterul m-a incurajat in acest sens, iar eu m-am gandit ca e bine sa trimite o serie de materiale reprezentative ale ultimelor mele preocupari academice, ca sa fac impresie buna. Ulterior m-am convins ca nu le sunt de mare folos, ei preocupandu-se mai mult de problemele de baza ale informaticii (cautare si ordonare) sau arhitecturi generale distribuite si mai putin de inteligenta artificiala. Pe de alta parte, mi-am asumat riscul ca sa-mi fie furate ideile si un googler sa si le insuseasca, ca fiind ale lui. De fapt, Google e o firma foarte isteata din punct de vedere juridic, au niste contracte de confidentialitate foarte destepte, asa incat am fost nevoit sa semnez doua asemenea contracte si sa le trimit lor: unul se referea la faptul ca nu voi spune ce probleme mi-au dat la interviuri (asadar nu va voi spune!), iar al doilea ca sunt de acord sa un am pretentii asupra a ceea ce le-am trimis benevol, daca se intampla ca ei sa descopere sau sa inventeze ceva similar lucrarilor mele, mai ales ca ei cerceteaza permanent si uneori e posibil ca ideile sa se suprapuna. Cu alte cuvinte, daca maine o sa vedeti vreo tehnologie implementata de Google, sa nu fiti convinsi ca au facut-o angajatii permanenti, ci poate vreun candidat intervievat.

In fine, am fost pus in legatura cu o alta persoana, o domnisoara care s-a ocupat de rezervarea biletelor de avion: mi-a trimis niste variante din care sa aleg, atat pentru dus, cat si pentru intors si mi-a spus ca pot veni cu sotia si ca pot sta inca o zi sau doua pentru a vizita orasul. Ei puteau sa-mi rezerve camera la hotel pentru doua nopti sau mai multe, dar ei imi plateau doar o noapte de cazare pentru o camera (double) si drumul cu avionul dus-intors doar pentru mine. Am ales sa merg singur, dupa ce am discutat in familie problema. Mai ales ca domnisoara de la Google a ales companiile aeriene si nu unele foarte ieftine, ci Swiss Air si Lufthansa. Am primit un ultim telefon in ziua de 10 martie si mi s-a spus ca totul este OK, interviul urma sa fie pe 14 martie, iar eu sa ajung acolo pe 13 martie.

Zborul catre Zurich

Pe 12 martie 2008 eram in Bucuresti, la familia Verly, niste prieteni de familie vechi. Ea e romanca, profesoara, iar el e francez, istoric si editor. Au doi baieti minunati si un bunic binevoitor, care m-a condus la aeroportul “Henry Coanda” (Otopeni). Nu mai zburasem cu avionul de 21 ani, dar am constatat ca multe nu se schimbasera. A fost o perioada in care se prabuseau avioanele mereu, asa ca am preferat sa vad Europa folosind autocarul, trenul sau masina. In 2002 am ajuns pana la Paris cu autocarul, intr-o excursie in care am vizitat si Ungaria, Cehia, Slovacia, Austria, Germania si Luxemburg si am realiat ca daca faci multe opriri si vizitezi, nu e deloc obositor. Ultima oara zburasem intre Kiev si Sankt Petersburg (Leningrad), cand am fost cu parintii intr-o excursie in fosta URSS (Ucraina si Rusia), cu un avion rusesc si nu mai retinusem multe lucruri privind zborul. Emotiile oricum erau, dar faptul ca zburam cu o companie la care Google platea, pentru mine, atatea mii de euro, imi dadea mai multa incredere.

Dupa toate procedurile de pe aeroport, m-am urcat in zborul Bucuresti-Zurich al companiei Swiss Airlines, am plecat (parca) la ora 12:00 de aici, am ajuns acolo in doua ore, dar a trebuit sa dau ceasul inapoi cu o ora. M-am urcat exact in trenul ce mi-a fost indicat de un googler roman care avea sa se ocupe de mine acolo, la Zurich, care a sosit exact la ora indicata, pe peronul indicat si a plecat exact la ora indicata. Am ajuns in gara centrala la exact ora indicata pe bilet, am coborat la exact peronul mentionat si in exact zona mentionata.

Pentru cine nu a vazut orasul, dar stie cam cum sunt orasele germane, acest oras elvetian este ca un oras nemtesc, putin mai frumos, cu un aer extrem de curat, strabatut de doua rauri, in care auzi vorbindu-se atat acea germana elvetiana ciudata, cat si italiana, franceza, retoromana, iar toata lumea stie engleza.

Pe strada erau multi tineri imbracati militareste, ulterior am inteles cate ceva despre istoria Elvetiei si am inteles ca sunt, intr-adevar, cei mai buni militari din lume. Am vazut si foarte multe fete frumoase, cum doar la Bratislava am mai vazut. Am vazut si masini de lux, negre, sofate de domni cu chipiu, in care pe locul de onoare stateau doamne cu palarie si foarte bogate. Am vazut doua banci ce nu am vazut sa aiba filiale la noi, am gasit si magazine unde o bucata de ciocolata costa 25 CHF, in rest, ca orice oras occidental, lume respectuoasa.

Am gasit hotelul ales de Google pentru mine, in centrul Zurich-ului. M-am cazat si am gasit in camera ceva ce la niciun hotel nu mai vazusem pana acum: un seif :) . M-am amuzat si mi-am zis ca era normal sa gasesc asa ceva in Elvetia. Am primit un SMS de la googler-ul roman care urma sa ma astepte a doua zi in fata hotelului.

Google Zurich

A doua zi am fost luat (dupa o intarziere specific romaneasca) din fata hotelului, am mancat la McDonalds si am mers pe jos pana la cladirea Google Zurich. La intrare veselie mare: o adunatura de tineri intre 20 si 30 ani (maxim!) care vorbeau aproape doar despre informatica, parca eram la Galaciuc, la concursul Infoeducatie al lui Emil Onea, sau la Concursul de Informatica Aplicata (de la Buzau, al lui Robert Harabagiu) sau la orice olimpiada nationala de informatica. Se vorbea in engleza, dar si foarte mult romaneste si deodata am revazut figurile unor fost elevi, olimpici de Galaciuc sau ONI, pe vremea cand ei erau concurenti, iar eu in juriul concursului. Ma simteam aiurea, ca urmam sa fiu examinat de cativa dintre ei sau ca ei.

M-am bucurat pentru ei si ei s-au bucurat ca m-au vazut. Eram imbracat in blugi, camasa si pulover, asa cum mi-a recomandat recruiterul, dar, desi atmosfera era aparent relaxanta, eu aveam emotii. Am fost pus iar sa semnez, in doua feluri, o declaratie de confidentialitate, cum ca nu zic ce intrebari mi se vor pune si nici daca vad vreo bucata de cod la nu stiu ce googler, in timp ce ma plimb prin campus.

Ca decor, e exact cum se poate vedea pe Youtube, daca veti cauta Google Zurich. Totul e decorat cu baloane, ca cei doi de “o” din cuvantul Google, cu scaune sub forma de “o”, totul e viu colorat, sunt jocuri mecanice (flipper), sali de masaj, in care te uiti la acvarii, un tobogan in spirala, ca sa ajungi repede la cantina etc. Totusi, mi se parea ca un soi de gradinita pentru niste copii destepti de 20-30 ani.

Putine fete, dar printre ele erau si prietenele angajatilor, care puteau veni de 2-3 ori pe luna acolo. Ele purtau in piept o eticheta de vizitator, ca si mine.

Am inteles ca poti veni la orice ora vrei, dar cum toti au atat de mult de lucru, cam toti ajung pe la 9 si se apuca de lucru, pleaca destul de tarziu sau mai gandesc unele lucruri si acasa.

Interviurile 1, 2 si 3

Urma sa inceapa interviurile. Daca dupa primele 3 interviuri eram suficient de slab, ar fi renuntat la mine si m-ar fi trimis acasa, ca sa nu mai piarda timpul cu mine. Daca eram suficient de bun, mi-ar fi facut o oferta de angajare si nu ar mai fi pierdut timpul cu mine cu celelalte doua interviuri. Interviurile urmau sa fie din ce in ce mai grele, ultimul fiind cu un googler foarte destept. Daca aveam o pregatire foarte buna, dar nu excelenta, m-ar fi trecut prin cele 5 interviuri, cu o pauza de masa dupa primele trei si urma ca decizia finala sa o ia Larry Page.

Interviurile se desfasoara intr-un loc separat, pentru a nu deranja sau a fi deranjat de cei care lucreaza. Dureaza 45 minute, in fata unei table albe cu markere, in limba engleza. Apoi o pauza de 15 minute, cand apare alt googler sa te intervieveze. Interviurile se inregistreaza si poti bea un suc sau orice in timpul asta sau in pauza. Ei te intreaba orice vor in legatura cu postul pe care aplici. Am inteles ulterior ca majoritatea te intreaba ceva care ii intereseaza pe ei, in legatura cu proiectele la care lucreaza ei. Cu alte cuvinte, pe ei ii intereseaza sa gaseasca cel mai potrivit tip pentru echipa lor. Pentru un post de software engineer te intreaba orice din orice domeniu al algoritmicii, al structurilor de date sau al matematicii. Da, al matematicii! Am fost intervievat de 3 googleri, din care unul era roman. Ei vor sa vada cum gandesti, nu-ti spun niciodata daca e bine sau rau ce ai facut. Te intreaba mereu ce ordin de complexitate are algoritmul dat, nu-i intereseaza in ce limbaj de programare scrii codul si sunt interesati mereu daca poti veni cu o solutie mai rapida. Interviul este foarte relaxant, ca desfasurare, dar foarte, foarte solicitant din punct de vedere intelectual, e ca si cum ai da toate examenele dintr-un an de facultate in doar 45 minute. Si mai ales ca te intreaba orice (in engleza) si nu ai bibliografie. Totusi, recruiterul imi recomandase sa ma antrenez folosind Topcoder Competition (http://www.topcoder.com/tc) -> rubrica algoritmi si sa citesc o carte de algoritmi a lui Thomas H. Cormen si ceilalti treii (o am tradusa limba romana si o pot imprumuta oricarui student de-al meu interesat). Cine e interesat, poate accesa: http://books.google.ro/books?id=NLngYyWFl_YC&dq=cormen+algorithms&printsec=frontcover&source=bn&hl=ro&ei=efn2SrOsG4rgnAOBl6CpAw&sa=X&oi=book_result&ct=result&resnum=4&ved=0CBYQ6AEwAw#v=onepage&q=&f=false

Pauza de masa si vizita campusului

Dupa interviul 3, am fost invitat de googlerul care se ocupa de mine (de altfel, un roman din Bacau, medaliat cu aur la Olimpiada Internationala de Informatica de la Tampere) sa vizitez campusul si sa iau masa cu el si alti googleri. Sunt convins ca nu am procedat tocmai bine cand, la finele mesei, am mai dorit inca un suc natural de portocale, care a dus la o intarziere cu 2-3 minute la cel de-al patrulea interviu. Mancarea este foarte diversa, sanatoasa si foarte buna. Abia la masa am constatat ca sunt si cam 15-20% fete acolo, de toate natiile, mai ales pakistaneze, indiene etc. Campusul era grozav, in sensul ca m-a impresionat curatenia si imaginatia cu care l-au decorat. Mi-a placut foarte mult „Biblioteca”, unde in loc de semineu aveau un monitor pe care se vedeau „flacarile” virtuale. Sunt multe sali unde se organizeaza videoconferinte, chiar cu Sergey Brin si Larry Page in direct.

Interviurile 4 si 5

La interviul 4 totul a fost OK, a fost un interviu mai usor, din punctul meu de vedere, dar la 5 a aparut un tip, foarte bine pregatit, un roman foarte stapan pe el si cu un aer de superioritate. Cred ca avea peste 30 ani. Cred ca m-am descurcat bine la acest interviu, dar e adevarat ca nu mi-au venit ideile foarte repede, poate eram si obosit. La ora 15:00, cand interviurile s-au incheiat, a venit recruiterul la mine, mi-a dat o sacosa cu cadouri Google (printre care un tricou rosu cu care apar adesea pe la universitate) si mi-a spus ca voi primi raspunsul in doua-trei saptamani. Decizia finala apartine lui Larry Page.

Inapoi spre casa

Am ajuns inapoi in strada, foarte multumit de cum m-am descurcat, am vizitat orasul, m-am plimbat peste tot, inclusiv a doua zi, pana aveam avionul spre Munchen, de unde spre Bucuresti. In avionul Munchen-Bucuresti am vazut foarte multi romani si am avut sentimentul ca sunt acasa, printre necivilizatii mei confrati. Am fost asteptat la Otopeni de familia Verly si cazat in apartamentul lor. A doua zi am ajuns acasa, cu trenul.

In scurt timp am depus dosarul pentru conferentiar universitar la universitate. Am simtit ca imi doresc asta mai mult, cariera academica. Cei de la Google au simtit ca sunt mai pregatit pentru altceva si nu mi-au oferit un job de software engineer, ci posibilitatea sa candidez, in octombrie, pentru un post de alta natura, tot la ei la Google Zurich.

Sa fiti voi sanatosi!

Mi-am zis: “sa fiti voi sanatosi”, m-am bucurat cu postul de conferentiar, mi-am sustinut teza de doctorat si in informatica (pana atunci eram doar doctor in contabilitate) si am recomandat cinci persoane ca sa fie contactate de googlerii din Zurich, pentru un eventual interviu.

Una dintre persoane, Simina Branzei, o fosta eleva de-a mea de la C. N. Ferdinand I Bacau, pe care am scolit-o din clasa a IX-a, a ajuns la Google Londra si apoi la Google New York. Ea mi-a zis ca cei de la Google au ratat cand un m-au angajat, pentru ca nu stiu cata imaginatie am, mai ales ca ea a cunoscut multi googleri mai slab pregatiti. Un coleg, Cosmin Tomozei, a spus ca am aplicat pentru un job nepotrivit varstei si experientei mele, ca era mai bine sa fi aplicat pentru un post de manager de proiect. Asa este, stiu acum asta. Dar, pentru ca Simina a ajuns la Google si pentru ca ea mi-a fost eleva si pentru ca varsta medie a googlerilor este de 25 ani, am realizat ca locul meu este aici, ca descoperitor de talente si formator de programatori de valoare, precum Simina sau oricare alt elev/student de-al meu.

Bogdan Patrut, 7 noiembrie 2009