W 2007 roku dwa razy otarłem się o rozmowę kwalifikacyjną z Google. Przed dalszą lekturą polecam zapoznanie się z pierwszą i drugą historią.

Rok kończyłem zawiedziony. Nie udało się, a było tak blisko. Miałem jednak silne postanowienie próbowania w kolejnym.

Próbować nie musiałem.

3 stycznia w mojej skrzynce czekał list zatytułowany "Hello from Google".

Logo Google

Google o mnie pamięta!

Odezwała się Maria, otwierając maila kilkoma ciepłymi słowami wstępu, które brzmiały tak miło, że nie mogę ich nie zacytować:

Hi Chris,

Happy New Year from everyone here at Google. I hope you enjoyed spending the festive season with your family and friends and are looking forward to an exciting year 2008.

Dalej, kilka słów przypomnienia - "spotkaliśmy się na wykładzie..." - zapamiętała mnie!

Kolejny akapit: rekrutacja w Krakowie dobiegła końca. Maria jednak zadała sobie trud, by porozmawiać z kilkoma pracownikami i poszukać dla mnie odpowiedniego projektu. Pierwsze odpowiedzi na moje CV były bardzo pozytywne.

Marii udało się znaleźć dla mnie propozycję stażu na wakacje w Szwecji, w zespole zajmującym się zagadnieniami komunikacji oferowanej przez Google. Praca wymagała znajomości Flasha (w którym miałem już spore doświadczenie), zaś zespół... Zajmował się tym, czego ja już dokonałem i opisałem w CV (oczywiście, nie tylko).

Maria poprosiła o jak najszybszą odpowiedź, czy taka propozycja mi odpowiada.

Nadzieje rosną...

Oczywiście, Google'om nie mówi się "nie", więc już po dwóch dniach szef zespołu w Szwecji miał okazje wyrazić swoją aprobatę na temat mojej kandydatury.

Zapytywał jednak, czy mógłbym przylecieć na początku czerwca lub w środku sierpnia (na trzy miesiące), bowiem wakacje w Szwecji są w lipcu i sierpniu, przez co większość ekipy by była nieobecna, a chcą uniknąć dołączania się do projektu w trakcie jego realizacji.

Odpisałem, że porozmawiam z moim dziekanem na temat możliwości przesunięcia sesji normalnej lub poprawkowej. Zanim to zrobiłem, Maria kulturalnie przeprosiła za takie trudności - ma klasę.

Po trzech dniach byłem już po rozmowie z Pełnomocnikiem Dziekana ds. Informatyki Stosowanej WFAIS UJ. Jak można się spodziewać po Uniwersytecie, zostałem zapewniony, że nie będzie trudności. Mało tego: jeśli odbędę ten staż, otrzymam dodatkowe punkty ECTS!

Reakcja Marii była... Sami oceńcie ;)

...
me: Yeah, the University is very fond of Google :)
Maria: YAY!!!

Przy okazji poszukiwań informacji o Google w Internecie, trafiłem na informację, że studenci i absolwenci UJ w 2005 roku mieli okazję wyjechać na praktyki do siedziby Google w Dubilinie. Właśnie dlatego kocham UJ!

Mógłbym napisać równie dużo na temat tego, jak miło można prowadzić konwersację w oparciu o moje rozmowy z Marią. Absolutnie zdeklasowała osoby, które mnie rekrutowały do IBM.

Mam rozmowę!!!

Następnego dnia Maria uraczyła mnie mailem: będę miał rozmowę kwalifikacyjną! Przekazała to w taki sposób, że byłem pewien - nie tylko ja tu jestem ogromnie podekscytowany! Nie omieszkała dodać: "fingers crossed" :)

Podałem kilka dogodnych terminów na rozmowę telefoniczną i Maria ustawiła mnie z jednym z inżynierów oprogramowania z tamtejszego zespołu, Mikaelem, na piątek 18 stycznia. Oto jej wskazówki (z gotowca):

Od tej rozmowy zależeć będzie, czy będziemy kontynuować proces rekrutacji. Rozmowa potrwa 45 minut i odbędzie się w języku angielskim.


Tematy, które może chcieć poruszyć Twój rozmówca, to między innymi:

- koncepcje podstaw budowy komputerów

- rozwiązywanie problemów, zdolności do analitycznego i projektowego myślenia, kompetencje związane z techniką

- programowanie, tak teoretyczne, jak praktyczne (w danym języku lub pseudokodzie)

- problemy logiczne i algorytmy

- projektowanie systemów

- zdolności projektowania i wdrażania algorytmów oraz znajomość Flasha

Innymi słowy, mogą mnie zapytać o wszystko.

Nie musisz znać pełnej i optymalnej odpowiedzi. Chcemy poznać Twój tok myślowy, dlatego ważne jest, byś wyrażał go słowami.

To z pozoru retoryczne zdanie jest kluczem do interviews z Google. Należy je traktować w pełni dosłownie - jak się później okazało, nie interesuje ich tyle, jakie języki znam, lecz jak dogłębnie. Nie chwalono mnie za genialny algorytm, lecz za to, jak "wpadałem" na jego usprawnienie. Podkreślam: tok myślowy jest kluczem w rozmowach z Google.

Musisz także posiadać stałe łącze oraz komputer pod ręką. Zapoznaj się z writely.com, ponieważ wraz z rozmówcą będziecie używać tamtejszych arkuszy do wymiany wiadomości i kodu.

Po tym można poznać, że mają stare gotowce ;) Writely zostało bowiem kupione już dobrych wiele miesięcy temu przez Google i przekształcone w Google Docs & Spreadsheets. Otrzymałem także drugi mail informujący o utworzeniu wspólnego arkusza dla mnie i Mikaela pod podanym adresem.

Chociaż Twój rozmówca raczej o to nie zapyta, zachęcam do zapoznania się z produktami i usługami Google, co pomoże przybliżyć Ci idee towarzyszące rozwojowi firmy:

- Produkty

- Laboratoria

- Korporacja

- Reklamy

Dobry film informacyjny można także znaleźć na YouTube.

Przyglądnąłem się tym linkom na 30 minut przed rozmową. Niewiele pomogły, ale i tak warto odwiedzić.

Pamiętaj, że ta rozmowa ma określić co WIESZ, a nie, czego nie wiesz. Jeśli masz wątpliwości, nie wahaj się poprosić o sprecyzowanie pytania - rekrutujący z radością rozjaśni sprawę!

To jest ważny punkt, z którego trochę korzystałem. Bardzo istotne jest, by zrozumieć, jakiej odpowiedzi oczekuje rozmówca. Każde jego słowo musi być zrozumiałe.

Oczywiście, aż do momentu rozmowy, Maria wspierała mnie i wręcz kibicowała. Nigdy się z takim podejściem nie spotkałem, ale mogę powiedzieć, że jest świetne.

Nadchodzi czwartek, dzień przed rozmową...

Do trzech razy sztuka, się mawia.

Chciałbym, jednak tym razem dorwała mnie choroba. Gorączka wykluczyła jakiekolwiek algorytmiczne myślenie - czy można mieć większego pecha?

Późnym wieczorem wysłałem w tej sprawie maila do Marii (osoby pracujące w Google mają bardzo elastyczny czas pracy). Na szczęście, była bardzo wyrozumiała. Jeśli nazajutrz nie poprawi mi się, mam napisać, a ona będzie "happy to re-schedule".

Pech chciał, że w piątek (i sobotę) czułem się równie źle. Maria wyraźnie przejęła się moim stanem zdrowia i zagadywała, jak się czuję.

Zajrzała do kalendarza Mikaela (tak, w Google używa się Google Calendar do ustalania spotkań!) i ustaliła rozmowę na wtorek, 22 stycznia.

O pracy jako rekruter

Jak widać, z Marią rozmawiało mi się świetnie.

Zafascynowany tym, jak radosna może być osoba na jej stanowisku, zacząłem wypytywać, jak dostać taką pracę.

Dowiedziałem się, że nie trzeba pracować wcześniej jako programista. Maria, zanim trafiła do Google, nabyła doświadczenie w rekrutacji ludzi z sektora IT w dużej niemieckiej firmie. Obowiązkowo jednak osoby zajmujące się rekrutacją muszą być dobre "technicznie". Dowiedziałem się także, że głównym obowiązkiem Marii nie jest wcale rekrutacja - zajmuje się bowiem Stosunkami z Uniwersytetami.

Maria studiowała Biznes ze spacjalizacją na HR (w wolnym tłumaczeniu: zasoby ludzkie ;) ) i rekrutację w Europie Wschodniej, tak więc całkiem konkretne rzeczy.

Zaznaczyła jednak, że w Google pracują różni ludzie. Jeden z pracowników był dobry w organizowaniu ogromnych imprez, inny właśnie skończył studia.

At Google it really does not matter too much what you have done. It is more important what you can do...the right attitiude.

Dla niejęzycznych: w Google nie jest istotne co już zrobiłeś, lecz czego możesz dokonać. Odpowiednia postawa.

Dodała także, że pewne zrozumienie i doświadczenie pomaga ;) Sprawa ma się lekko inaczej w stosunku do programistów, ponieważ od tych wymaga się technicznych umiejętności...

Bardzo mnie podekscytowało to, w jaki sposób przedstawiła tą posadę Maria. Wiem już, co będzie moim drugim priorytetem po skończeniu doktoratu z informatyki: HR.

Maria dodała także, iż nawet jako programiści w Google, poznajemy dużo osób - wszyscy garną się na kampusy :)

Pierwsza rozmowa kwalifikacyjna z Google

Po trzech próbach, w końcu dostałem interview!

We wtorek zapewniłem sobie odpowiedni komfort i ciszę przed komputerem, otwarłem też niezbędne witryny: ling.pl, translate.pl (do tłumaczeń - nie przydały się), Gmail oraz... A jakże by inaczej: Google.com!

Mikael miał zadzwonić na mój domowy numer (przez komórkę gorzej słychać, może się wyładować itp.) o 15:30. O godzinie 15:00 stwierdziłem, że Google Docs to kiepski pomysł na wymianę kodu - zmiany nie są chyba widoczne w czasie rzeczywistym, lecz po zapisaniu arkusza. Jak jednak zdobyć adres rozmówcy?

W arkuszu utworzonym przez Marię zgłębiłem ustawienia udostępniania. Ujrzałem adres Mikaela i zagadałem. Okazało się, że on także miał właśnie to zrobić (miał pewne problemy z dostaniem się na Google Docs. erm :P ).

Szybka wymiana zdań i... Dzwoni! Alarm, że ktoś się włamuje do mieszkania :D

Pomyślałem tylko "OMG" i poszedłem sprawdzić, co jest grane.

Okazuje się, że spadek napięcia w sieci powodował uruchomienie się alarmu. Wróciłem na stanowisko, szybkie wyjaśnienie i...

me: This is ok, you can call when you're ready

3:32 PM Mikael: ring ring neo

Pytania z rozmowy kwalifikacyjnej

Zaczęło się od ustalenia rzeczy, które już były ustalone: na kiedy bym mógł przyjechać, jakie języki umiem... Ktoś ewidentnie nie czytał mojego CV ;)

Wreszcie, przeszliśmy do konkretów. Najpierw trochę teorii (poniższe odpowiedzi nie są pełnymi, które udzielałem):

Jak wytłumaczyłbyś nietechnicznej osobie, co dzieje się po wpisaniu adresu w przeglądarce i wciśnięciu Entera?

Co dzieje się naprawdę?

Na pierwsze pytanie dosyć łatwo odpowiedzieć.

Przy drugim powiedziałem trochę o DNSach, parsowaniu adresów (TLDki itp.), przesyłaniu plików przez różne protokoły itd.

Strona www działa powolnie. Jakie mogą być tego przyczyny? Jak temu zaradzić jako użytkownik i jako webmaster?

Tu miałem pole do popisu :)

Przez dobre kilkanaście minut nawijałem o możlwiościach przyspieszenia działania witryn i powodach ich powolności. Niektóre pomysły wyraźnie zaskoczyły (pozytywnie) Mikaela - odpowiedź była wyczerpująca nawet dla mnie :)

Dostajesz za zadanie napisanie aplikacji w języku, którego nie znasz. Masz dwa tygodnie. Co robisz?

Przekonałem Mikaela, że znając kilka języków, wystarczy poznać syntax nowego, by w nim pisać. Podałem, skąd i w jaki sposób bym zdobywał wiedzę.

Dodajmy, że masz to napisać na systemie, którego nie znasz. Co wtedy robisz?

Odpowiedziałem, że większość platform znam, zaś poznanie kolejnych przy dobrych umiejętnościach językowych to kwestia czasu.

Jak wziąłbyś się za napisanie serwera http?

Byłem szczery: nic takiego nigdy nie pisałem, więc nie znałem popularnych architektur. Mogłem jednak powiedzieć coś na temat ogólnego pisania serwerów i równoważenia obciążenia na kilka maszyn, co chyba w końcu zadowoliło rozmówcę.

Minęło 25 minut rozmowy...

Teraz sobie trochę pokodujemy. Powiedzmy, że mamy robota, który porusza się po schodach. Mamy także dostępną funkcję boolean step() i jej prawdpodobieństwo równe p, że wynikiem jej wywołania będzie wejście o stopień wyżej, oraz 1-p, że robot cofnie się o jeden stopień. Jak zaprojektujesz funkcję void StepUp() by mieć pewność, że po jej wywołaniu będziemy na wyższym schodku?

Pierwsze rozwiązanie, jakie zaproponowałem, opierało się na indeksowaniu schodków. Prawdopodobieństwa użyłem jedynie do oszacowania, ile iteracji będzie koniecznych do pojawienia się robota na wyższym schodku.

Pomińmy teraz prawdopodobieństwo. Jak zaprojektujesz tą funkcję, by nie korzystała z liczników?

Z początku nie wiedziałem co ma na myśli, mówiąc "without counters", ale słusznie domyśliłem się, że chodzi o pozbycie się indeksowania schodków, czyli nie wiemy, na którym obecnie jesteśmy stopniu.

Przez 10 minut napisałem na chacie Gmaila cztery funkcje, udoskonalane wraz z kolejnymi wnioskami Mikaela. W końcu doszedłem do rozwiązania, które zaskoczyło nie tylko jego, ale nawet mnie, gdy później się nad nim zastanawiałem.

Można powiedzieć, że udało mi się błysnąć geniuszem ;)

Celowo nie będę przedstawiał swojego kodu - sami się zastanówcie ;)

Ależ ten czas leci. To wszystkie pytania, jakie dla Ciebie przygotowałem... A jakie Ty masz dla mnie?

Pytań zbytnio nie miałem, jednak miałem kontakt mailowy z Mikaelem, gdybym na jakieś wpadł. Zapytałem tylko:

Sam wymyślałeś te pytania, czy macie jakąś bazę?

Okazało się, że pytania gdzieś usłyszał. Wszyscy programiści w Google mają obowiązek przeprowadzania takich rozmów kwalifikacyjnych, więc wewnątrz firmy wymieniają się pomysłami.

To bardzo ciekawe podejście, bowiem każdy ma swój wkład w rozwój firmy, a w dodatku jego praca nie ogranicza się do klepania kodu.

Aha... Jak mi poszło? ;)

Odpowiedź była dosyć wymijająca - w ciągu kilku dni miał się ktoś ze mną skontaktować. Średnio mnie to ucieszyło, ale cóż począć...

Miałem wrażenie, że nieźle odpowiedziałem na zadane mi pytania i powinni się jeszcze odezwać.

Pożegnałem się z Mikaelem, wymieniając kilka ciepłych słów (choć sam rozmówca wydawał się być zmęczony - nie sądzę jednak, by mną).

Trochę wniosków

Przede wszystkim potwierdziło się, że w Google nie liczy się co już wiem, ale co mogę się dowiedzieć. Mikael wyjaśnił mi, że nie jest istotne, jakie języki umiem, bo i tak prędzej czy później zlecą mi coś, co będzie wymagało nauczenia się nowego. To według mnie dobra polityka - nie zatrudniać specjalistów od jednego języka, lecz osoby pojętne, które będą się rozwijać i mają chęć do nauki, wyzwań i poznawania nowych technologii.

Dowód ku temu pojawił się już w trakcie rozmowy. Mikael zaproponował, bym pisał kod w C lub jego następcach, ja natomiast zaproponowałem PHP, którego on nie znał (który jednak ja zdecydowanie preferuję) - oczywiście, zgodził się. Czasem mu tłumaczyłem mój kod, więc on także uczył się w trakcie tej rozmowy.

Może się wydawać, że pytań było niewiele, jednak rozmowa faktycznie trwała lekko ponad 45 minut.

Poziom angielskiego Mikaela był wystarczający. Zrobił jeden, czy dwa błędy, jednak mówił płynnie. Nie jest więc prawdą, że pracownicy Google muszą umieć perfekcyjnie angielski. Mało tego - wszystkie osoby z Google, z jakimi miałem przyjemność rozmawiać, miały inną narodowość. To słychać po akcencie i widać po nazwiskach. Pracują jednak wspólnie i poczułem tą przyjazną atmosferę przez telefon.

W trakcie rozmowy wpadałem na różne pomysły usprawnienia sposobów komunikacji w Google. Nie będę ich zdradzał, ale Mikaelowi podobała się taka pomysłowość - chyba poczuł, że faktycznie wniosę coś tak do zespołu, jak efektów jego prac.

Ciąg dalszy nastąpi...

Po dwóch dniach w mojej skrzynce czekał mail z pozytywną oceną mojej rozmowy i zaproszeniem na kolejną.

O tym jednak przy okazji kolejnego wpisu ;)

  • Dodaj lub śledź Atom dla komentarzy komentarze
  • Kategorie wpisu: Codzienność, Informatyka, Praca, Techblog, Wszystkie
  • Trackback do wpisu (?)
  • Dodaj do Ma.Gnolia Dodaj do del.icio.us Dodaj do Digg.com Dodaj do StumbleUpon Dodaj do Google Reader lub Google IG