Interviu la Google (II)

Citeşte aici prima parte din articolul Interviu la Google

Cum rezolvă Google problemele

google_logo_vechiA trecut ceva timp de când am promis că voi spune ce a urmat după al doilea interviu tehnic, telefonic, pentru Google Zurich. După vreo două săptămâni, însă, într-adevăr am văzut că sunt (încă) destul de deştept, pentru că, într-adevăr, am fost invitat la un interviu on-site (la faţa locului). M-a contactat recruiterul, prin e-mail şi m-a felicitat că am trecut cu brio acest al doilea interviu şi dacă putem stabili o perioadă, cam peste vreo două săptămâni în care să vin la Zurich. Dacă ar fi fost după mine, aş fi aşteptat ceva mai mult, timp în care să mă mai pun la punct cu unele tehnici de programare sau algoritmi sofisticaţi. Am căutat pe Google cam ce fel de probleme ar putea să mă întrebe acolo, am contactat un vechi prieten, care a lucrat pentru o vreme la Google în Mountain View, iar el m-a testat cu o serie de probleme de algoritmică. La aceste probleme predominau soluțiile cu tabelele de dispersie, sortările rapide şi rezolvarea de probleme în timp liniar. De pildă, una din probleme avea o aplicabilitate foarte directă la Youtube. Am constatat că cei de la Google au un mod foarte inventiv de a rezolva unele probleme, care aparent se rezolvă în O (nxn), dar ei le rezolvă chiar în O(n), dacă trebuie să le rezolvi de mai multe ori. La unele probleme la care eu aveam o soluţie în O(log(n)) ei vin adesea cu o soluţie în O(1), încât uneori te întrebi dacă ceea ce se predă la algoritmică prin liceu sau facultate sunt cele mai avansate metode.

Adesea, fiecare problemă ce trebuie rezolvată de Google are o anumită particularitate, iar noi de multe ori aplicăm orbeşte un algoritm, bine învăţat, fără să studiem bine particularităţile acelei probleme şi să observăm că, deşi algoritmul este foarte bun, poate că în acele cazuri speciale există ceva şi mai bun.

Idei furate sau coincidenţe?

Dorind să le fac o impresie bună, le-am trimis şi câteva idei de-ale mele, din preocupările mele din domeniul limbajului natural, publicate sau care au fost ulterior publicate în articole de reviste sau la conferinţe internaţionale. Recruiterul m-a încurajat în acest sens, iar eu m-am gândit că e bine să trimit o serie de materiale reprezentative ale ultimelor mele preocupări academice, ca să fac impresie bună. Ulterior m-am convins că nu le sunt de mare folos, ei preocupându-se mai mult de problemele de bază ale informaticii (căutare şi ordonare) sau arhitecturi generale distribuite şi mai puţin de inteligenţa artificială. Pe de altă parte, mi-am asumat riscul ca să-mi fie furate ideile şi un googler să şi le însuşească, ca fiind ale lui. De fapt, Google e o firmă foarte isteaţă din punct de vedere juridic, au nişte contracte de confidenţialitate foarte deştepte, aşa încât am fost nevoit să semnez două asemenea contracte şi să le trimit lor. Unul se referea la faptul că nu voi spune ce probleme mi-au dat la interviuri (aşadar nu vă voi spune!), iar al doilea că sunt de acord să nu am pretenţii asupra a ceea ce le-am trimis benevol, dacă se întâmplă ca ei să descopere sau să inventeze ceva similar lucrărilor mele. E normal, din moment ce ei cercetează permanent şi uneori e posibil ca ideile să se suprapună :). Cu alte cuvinte, dacă mâine o să vedeţi vreo tehnologie implementată de Google, să nu fiţi convinşi că au făcut-o angajaţii permanenţi, ci poate vreun candidat intervievat.

În fine, am fost pus în legătura cu o altă persoană, o domnişoara care s-a ocupat de rezervarea biletelor de avion: mi-a trimis nişte variante din care să aleg, atât pentru dus, cât şi pentru întors şi mi-a spus că pot veni cu soţia şi că pot sta încă o zi sau două pentru a vizita oraşul. Ei puteau să-mi rezerve camera la hotel pentru două nopţi sau mai multe, dar ei îmi plăteau doar o noapte de cazare pentru o cameră (double) şi drumul cu avionul dus-întors doar pentru mine. Am ales să merg singur, după ce am discutat în familie problema. Mai ales că domnişoara de la Google a ales companiile aeriene şi nu unele foarte ieftine, ci Swiss Air şi Lufthansa. Am primit un ultim telefon în ziua de 10 martie şi mi s-a spus că totul este OK, interviul urma să fie pe 14 martie, iar eu să ajung acolo pe 13 martie.

Zborul către Zürich

Pe 12 martie 2008 eram în Bucureşti, la familia Verly, nişte prieteni de familie vechi. Ea e româncă, profesoară, iar el e francez, istoric şi editor. Au doi băieţi minunaţi şi un bunic binevoitor, care m-a condus la aeroportul “Henry Coandă” (Otopeni). Nu mai zburasem cu avionul de 21 ani, dar am constatat că multe nu se schimbaseră. A fost o perioadă în care se prăbuşeau avioanele mereu, aşa că am preferat să văd Europa folosind autocarul, trenul sau maşina. În 2002 am ajuns până la Paris cu autocarul, într-o excursie în care am vizitat şi Ungaria, Cehia, Slovacia, Austria, Germania şi Luxemburg şi am realizat că, dacă faci multe opriri şi vizitezi, nu e deloc obositor. Ultima oară zburasem între Kiev şi Sankt Petersburg (Leningrad), când am fost cu părinţii într-o excursie în fosta URSS (Ucraina şi Rusia), cu un avion rusesc şi nu mai reţinusem multe lucruri privind zborul. Emoţiile oricum erau, dar faptul că zburam cu o companie la care Google plătea, pentru mine, atâtea mii de euro, îmi dădea mai multă încredere.

Citește și  Mary Kenneth Keller- speranța calculatorului
 Zürich
Zürich

După toate procedurile de pe aeroport, m-am urcat în zborul Bucureşti-Zürich al companiei Swiss Airlines, am plecat (parcă) la ora 12:00 de aici, am ajuns acolo în două ore, dar a trebuit să dau ceasul înapoi cu o oră. M-am urcat exact în trenul ce mi-a fost indicat de un googler român care avea să se ocupe de mine acolo, la Zürich, care a sosit exact la ora indicată, pe peronul indicat şi a plecat exact la ora indicată. Am ajuns în gara centrală la exact ora indicată pe bilet, am coborât la exact peronul menţionat şi în exact zona menţionată.

Pentru cine nu a văzut oraşul, dar ştie cam cum sunt oraşele germane, acest oraş elveţian este ca un oraş nemţesc, puţin mai frumos, cu un aer extrem de curat, străbatut de două râuri, în care auzi vorbindu-se atât acea germană elveţiană ciudată, cât şi italiană, franceză, retoromană, iar toată lumea ştie engleză.

Pe stradă erau mulţi tineri îmbrăcaţi milităreşte, iar ulterior am înţeles câte ceva despre istoria Elveţiei şi am înţeles că sunt, într-adevăr, cei mai buni militari din lume. Am văzut şi foarte multe fete frumoase, cum doar la Bratislava am mai văzut. Am văzut şi maşini de lux, negre, şofate de domni cu chipiu, în care pe locul de onoare stăteau doamne cu pălărie şi foarte bogate. Am văzut două bănci ce nu am văzut să aibă filiale la noi, am găsit şi magazine unde o bucată de ciocolată costa 25 CHF, în rest, ca în orice oraş occidental, lume respectuoasă.

Am găsit hotelul ales de Google pentru mine, în centrul Zurich-ului. M-am cazat şi am găsit în cameră ceva ce la niciun hotel nu mai văzusem până acum: un seif. M-am amuzat şi mi-am zis că era normal să găsesc aşa ceva în Elveţia. Am primit un SMS de la googler-ul român care urma să mă aştepte a doua zi în faţa hotelului.

Google Zürich

A doua zi am fost luat (după o întârziere specific romanească) din faţa hotelului, am mâncat la McDonalds şi am mers pe jos până la clădirea Google Zürich. La intrare – veselie mare: o adunătură de tineri între 20 şi 30 ani (maxim!) care vorbeau aproape doar despre informatică, parcă eram la Gălăciuc, la concursul Infoeducaţie al lui Emil Onea, sau la Concursul de Informatică Aplicată (de la Buzău, al lui Robert Harabagiu) sau la orice olimpiadă naţională de informatică. Se vorbea în engleză, dar şi foarte mult româneşte şi deodată am revăzut figurile unor foşti elevi, olimpici de Gălăciuc sau ONI, pe vremea când ei erau concurenţi, iar eu eram în juriul concursului. Mă simţeam aiurea că urmam să fiu examinat de câţiva dintre ei sau ca ei.

M-am bucurat pentru ei şi ei s-au bucurat că m-au văzut. Eram îmbrăcat în blugi, cămaşă şi pulover, aşa cum mi-a recomandat recruiterul, dar, deşi atmosfera era aparent relaxantă, eu aveam emoţii. Am fost pus iar să semnez, în două feluri, o declaraţie de confidenţialitate, cum că nu zic ce întrebări mi se vor pune şi nici dacă văd vreo bucată de cod la nu ştiu ce googler, în timp ce mă 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), săli de masaj, în care te uiţi la acvarii, un tobogan în spirală, ca să ajungi repede la cantină etc. Totuşi, mi se părea ca un soi de grădiniţă pentru nişte copii deştepţi de 20-30 ani.

Puţine fete, dar printre ele erau şi prietenele angajaţilor, care puteau veni de 2-3 ori pe lună acolo. Ele purtau în piept o etichetă de vizitator, ca şi mine.

Am inţeles că poţi veni la orice oră vrei, dar cum toţi au atât de mult de lucru, cam toţi ajung pe la 9 şi se apucă de lucru, pleacă destul de târziu sau mai gândesc unele lucruri şi acasă.

Interviurile 1, 2 şi 3

Urma sa inceapă interviurile. Dacă, după primele 3 interviuri eram suficient de slab, ar fi renunţat la mine şi m-ar fi trimis acasă, ca să nu mai piardă timpul cu mine. Dacă eram suficient de bun, mi-ar fi făcut o ofertă de angajare şi nu ar mai fi pierdut timpul cu mine cu celelalte două interviuri. Interviurile urmau să fie din ce în ce mai grele, ultimul fiind cu un googler foarte deştept. Dacă aveam o pregătire foarte bună, dar nu excelentă, m-ar fi trecut prin cele 5 interviuri, cu o pauză de masă după primele trei şi urma ca decizia finală să o ia Larry Page.

Interviurile se desfăşoară într-un loc separat, pentru a nu deranja sau a fi deranjat de cei care lucrează. Durează 45 minute, în faţa unei table albe cu markere, în limba engleză. Apoi o pauză de 15 minute, când apare alt googler să te intervieveze. Interviurile se înregistrează şi poţi bea un suc sau orice în timpul ăsta sau în pauză. Ei te întreabă orice vor în legătură cu postul pe care aplici. Am înţeles ulterior că majoritatea te întreabă ceva care îi interesează pe ei, în legătură cu proiectele la care lucrează ei. Cu alte cuvinte, pe ei îi interesează să găsească cel mai potrivit tip pentru echipa lor. Pentru un post de software engineer te întreabă 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 român. Ei vor să vadă cum gândeşti, nu-ţi spun niciodată dacă e bine sau rău ce ai făcut. Te întreabă mereu ce ordin de complexitate are algoritmul dat, nu-i interesează în ce limbaj de programare scrii codul şi sunt interesaţi mereu dacă poţi veni cu o soluţie mai rapidă. Interviul este foarte relaxant, ca desfăşurare, dar foarte, foarte solicitant din punct de vedere intelectual, e ca şi cum ai da toate examenele dintr-un an de facultate în doar 45 minute. Şi mai ales că te întreabă orice (în englezaă şi nu ai bibliografie. Totuşi, recruiterul îmi recomandase sa ma antrenez folosind Topcoder Competition (http://www.topcoder.com/tc) -> rubrica algoritmi şi să citesc o carte de algoritmi a lui Thomas H. Cormen şi ceilalti treii (o am tradusă în limba română şi o pot împrumuta oricărui student de-al meu interesat). Cine e interesat, poate accesa AICI.

Pauza de masă şi vizita campusului

După interviul 3, am fost invitat de googlerul care se ocupa de mine (de altfel, un român din Bacău, medaliat cu aur la Olimpiada Internaţională de Informatică de la Tampere) să vizitez campusul şi să iau masa cu el şi alţi googleri. Sunt convins ca nu am procedat tocmai bine când, la finele mesei, am mai dorit încă un suc natural de portocale, care a dus la o întârziere cu 2-3 minute la cel de-al patrulea interviu. Mâncarea este foarte diversă, sănătoasă şi foarte bună. Abia la masă am constatat ca sunt şi cam 15-20% fete acolo, de toate naţiile, mai ales pakistaneze, indiene etc. Campusul era grozav, în sensul că m-a impresionat curăţenia şi imaginaţia cu care l-au decorat. Mi-a plăcut foarte mult „Biblioteca”, unde în loc de şemineu aveau un monitor pe care se vedeau „flăcările” virtuale. Sunt multe săli unde se organizează videoconferinţe, chiar cu Sergey Brin şi Larry Page în direct.

Interviurile 4 şi 5

La interviul 4 totul a fost OK, a fost un interviu mai uşor, din punctul meu de vedere, dar la 5 a apărut un tip, foarte bine pregătit, un român foarte stăpân pe el şi cu un aer de superioritate. Cred ca avea peste 30 ani. Cred ca m-am descurcat bine la acest interviu, dar e adevărat că nu mi-au venit ideile foarte repede, poate eram şi obosit. La ora 15:00, cand interviurile s-au încheiat, a venit recruiterul la mine, mi-a dat o sacoşă cu cadouri Google (printre care un tricou roşu cu care apar adesea pe la universitate) şi mi-a spus că voi primi răspunsul în două-trei săptămâni. Decizia finală aparţine lui Larry Page.

Înapoi spre casă

Am ajuns înapoi în stradă, foarte mulţumit de cum m-am descurcat, am vizitat oraşul, m-am plimbat peste tot, inclusiv a doua zi, până aveam avionul spre Munchen, de unde spre Bucureşti. În avionul Munchen-Bucureşti am văzut foarte mulţi români si am avut sentimentul că sunt acasă, printre necivilizaţii mei confraţi. Am fost aşteptat la Otopeni de familia Verly şi cazat în apartamentul lor. A doua zi am ajuns acasă, cu trenul.

În scurt timp am depus dosarul pentru conferenţiar universitar la universitate. Am simţit că îmi doresc asta mai mult, cariera academică. Cei de la Google au simţit că sunt mai pregătit pentru altceva şi nu mi-au oferit un job de software engineer, ci posibilitatea să candidez, în octombrie, pentru un post de altă natură, tot la ei la Google Zurich.

Să fiţi voi sănătoşi

Mi-am zis: “să fiţi voi sănătoşi”, m-am bucurat cu postul de conferenţiar, mi-am susţinut teza de doctorat şi în informatică (până atunci eram doar doctor în contabilitate) şi am recomandat cinci persoane ca să fie contactate de googlerii din Zurich, pentru un eventual interviu.

Una dintre persoane, Simina Brânzei, o fostă elevă de-a mea de la C. N. Ferdinand I Bacău, pe care am şcolit-o din clasa a IX-a, a ajuns la Google Londra şi apoi la Google New York. Ea mi-a zis că cei de la Google au ratat când nu m-au angajat, pentru că nu ştiu câtă imaginaţie am, mai ales că ea a cunoscut mulţi googleri mai slab pregătiţi. Un coleg, Cosmin Tomozei, a spus ca am aplicat pentru un job nepotrivit vârstei şi experienţei mele, că era mai bine să fi aplicat pentru un post de manager de proiect. Aşa este, ştiu acum asta. Dar, pentru că Simina a ajuns la Google şi pentru că ea mi-a fost elevă şi pentru că vârsta medie a googlerilor este de 25 ani, am realizat că locul meu este aici, ca descoperitor de talente şi formator de programatori de valoare, precum Simina sau oricare alt elev/student de-al meu.

Bogdan Pătruţ

7 noiembrie 2009