Wsparcie nas

Białorusin przeszedł rozmowy kwalifikacyjne w firmach FAANG (i nie tylko) i zgarnął trzy oferty. Oto jego wrażenia

Nasz czytelnik (który wolał pozostać anonimowy) nie tracił czasu — aktywnie uczestniczył w rozmowach kwalifikacyjnych w firmach z grupy FAANG. I zdobył więcej niż jedną ofertę! Opowiedział devby o swoich doświadczeniach.

Białorusin przeszedł rozmowy kwalifikacyjne w firmach FAANG (i nie tylko) i zgarnął trzy oferty. Oto jego wrażenia

Nasz czytelnik (który wolał pozostać anonimowy) nie tracił czasu — aktywnie uczestniczył w rozmowach kwalifikacyjnych w firmach z grupy FAANG. I zdobył więcej niż jedną ofertę! Opowiedział devby o swoich doświadczeniach.

Firmy, w których przeszedł rozmowy kwalifikacyjne:

  • Amazon
  • Google
  • Meta
  • Databricks
  • Waymo
  • Kilka firm HFT (High Frequency Trading).

Przez pewien czas ignorowałem zaproszenia na rozmowy, a potem zacząłem chodzić na wszystkie naraz.

Aplikowanie tylko do jednej firmy wydało mi się głupie: można nie dostać oferty i się rozczarować. Albo dostać, ale stracić 10-15% wynagrodzenia przez brak kontrpropozycji od innej firmy.

Ostatecznie przeszedłem 25-30 rozmów w różnych firmach (nie licząc wstępnych kontaktów z rekruterami). Otrzymałem trzy oferty, więc o porady dotyczące pomyślnego przejścia przez rekrutację lepiej pytać kogoś innego. Ja po prostu podzielę się swoimi wrażeniami.

Część techniczna

W dużych firmach IT rozmowy oparte na LeetCode wyglądają mniej więcej podobnie: w niektórych proponują uruchomienie kodu, w innych trzeba zapisać go w notatniku i przekonać rekrutera, że działa. Zazwyczaj proszą o dry-run kodu (co jest częścią oceny), czyli wykonanie go linia po linii. Tutaj można stracić dużo czasu, jeśli nie przećwiczy się tego wcześniej.

Wydaje mi się, że algorytmiczne przygotowanie studenta 1-2 roku studiów wystarczy do przejścia tego etapu: nie pytają o jakieś skomplikowane algorytmy, tematy są znane z wyprzedzeniem i można je przećwiczyć na LeetCode. W przypadku całkowitego zawieszenia się, rekruter podpowie, i nie będzie to oznaczać porażki. Rozwiązałem nieco ponad 50 zadań na LeetCode i patrząc wstecz, rozumiem, że warto byłoby rozwiązać drugie tyle, aby zwiększyć swoje szanse.

Główną trudnością jest to, że podczas rozmowy masz ograniczony czas. Meta na przykład oczekuje, że spędzisz tylko 15-20 minut na jednym zadaniu, włącznie z przejściem przez kod. Google jest bardziej rozsądny: daje 40 minut na zadanie o podobnej złożoności. Jeśli rozwiążesz je szybciej, rekruter prawdopodobnie zaproponuje dodatkowe pytanie lub zadanie za dodatkowe punkty, które mogą zrekompensować potknięcia z poprzedniej rozmowy.

W pracy piszę w C++ i w tym języku przechodziłem rozmowy. Okazało się to bardzo złym pomysłem: pisanie kodu wymaga dużo czasu, obciążenie poznawcze jest ogromne. Szczególnie bolesne było, gdy kod trzeba było jeszcze uruchamiać (przekonanie rekruterów, że kod w C++ działa, jest łatwiejsze niż faktyczne napisanie działającego kodu).

Dlatego poradziłbym programistom piszącym w C++ (i być może również w Javie) przejście podczas rozmów na Pythona. Oczywiście, jeśli taka opcja w ogóle istnieje. Miałem rozmowy w firmach spoza FAANG, gdzie naciskano wyłącznie na C++.

System design i Behavioral

System design nie mogę powiedzieć nic mądrego: w Google na poziomach L3/L4 i w Waymo na L4 tego typu rozmów nie ma, w Meta nie doszedłem do tego etapu, a w Amazon jest dość formalny, około 20 minut. Coś tam zaprojektowałem i tyle.

Do części behawioralnej zazwyczaj zaleca się przygotowanie historii w formacie STAR, ale rekruterzy sami zadawali pytania. Kiedy opowiadałem jakąś historię, po prostu obserwowałem reakcję i informację zwrotną rekruterów, starając się dostosować sposób prezentacji. To było coś w rodzaju testów A/B.

Z tego, co zrozumiałem, podczas części behawioralnej nie sprawdza się tyle umiejętności miękkich kandydata (wystarczy nie być psychopatą), ile zakres jego odpowiedzialności w poprzedniej pracy. Zasadniczo: jeśli opowiadasz historie o malowaniu jednego przycisku — ocenią cię jako juniora, jeśli odpowiadasz za duży projekt od początku do końca — raczej jako seniora. Największy nacisk na część behawioralną wydaje się być w Amazon. Na każdej rozmowie 20 minut jest przeznaczone na pytania behawioralne.

Nieoczywista wskazówka przy tworzeniu CV: zewnętrzny headhunter doradził mi, by dodać do każdego punktu technologię/język, w której/którym zrealizowany został projekt. Posłuchałem i dosłownie do każdego wiersza na stronie dopisałem C++, i to naprawdę zadziałało: rekruterzy zaczęli mówić «you have a lot of C++» i liczba odpowiedzi wzrosła.

W jakich firmach miałem rozmowy, co tam zauważyłem i jaki był rezultat

Do Meta aplikowałem przez polecenie. Lista zadań jest tam znana (około 100), ale wymagają idealnego ich rozwiązania w 15-20 minut. Sprawdzają raczej zdolność do monotonnego przygotowywania się. Ale jednocześnie to najbardziej przewidywalne rozmowy — zadania są znane i można rozwiązać wszystkie z wyprzedzeniem.

Zacięłem się podczas rozmowy + nie udało mi się nawiązać komunikacji z rekruterem (był z Indii i trudno mi było zrozumieć akcent), w rezultacie nie przeszedłem screeningu. Właściwie zaproponowano mi kontynuowanie rozmowy na niższym poziomie (E5->E4), ale odmówiłem. Nie pozbawiało mnie to możliwości ponownej próby na E5 po pół roku.

Google byłem w bazie od 4. roku studiów (po prostu wysłałem tam CV) i zaczęli mnie okresowo zapraszać na rozmowy. Ta firma wydaje się bardziej sprawdzać umiejętność myślenia (moje wrażenie). Zadania są bardziej losowe (rekruterzy mogą pytać o cokolwiek w ramach algorytmów i struktur danych z listy), a wyciekłe zadania szybko usuwają.

Przyjąłem zaproszenie tylko raz i otrzymałem ofertę.

Amazon skontaktował się ze mną manager zatrudniający — porozmawialiśmy, opowiedział o zespole, ogólnie mi się spodobało, więc umówiliśmy rozmowę. Wydaje się, że w tej firmie wszystko zależy od zespołu. U mnie było dość łatwo, pod względem trudności wydają się być na dole stawki. Dostałem ofertę. Mój znajomy w C3, przeciwnie, miał bardzo trudno — więc to także loteria.

Databricks skontaktował się ze mną manager z jednego z ich biur. Ale w końcu go zawiodłem. To była najtrudniejsza rozmowa pod względem oceny (miało być osiem etapów).

Samo zadanie nie było trudne, ale kod musiał koniecznie działać i trzeba było wymyślić testy. Szybko zaprogramowałem, a potem przez 10-15 minut łapałem różne segfaulty w kodzie, aż skończył się czas. Po rozwiązaniu rekruterzy (było ich dwóch i obaj brali udział) powiedzieli «looks good to me», a potem dostałem odmowę z informacją zwrotną, że kod nie działa, co automatycznie oznacza «no hire». Ogólnie oczekują idealnego rozwiązania.

Waymo rozmowa przypomina tę z Google, ale kod trzeba uruchamiać (zadania były bardziej związane z implementacją niż algorytmami). Zadania były nieco ciekawsze (bardziej otwarte). Dostałem ofertę.

Netflix nie próbowałem: w Europie chyba nie ma wakatów.

Microsoftu nie rozważałem.

Apple otrzymałem odmowę na etapie CV.

Czy kryzys pogorszył oferty FAANG?

Kryzys objawia się tym, że oferty pracy są umieszczane w krajach o niskich wynagrodzeniach. Rekrutację przenoszą do Serbii, Polski, Rumunii, Indii itp. Wcześniej mogły to być Niemcy, Szwajcaria, Wielka Brytania, Irlandia, Holandia. Tam wynagrodzenia są znacznie wyższe, a ponadto łatwiej byłoby przenieść się do USA po roku pracy.

Od razu dostanie się do amerykańskiego biura jest trudne, ale po roku pracy można spróbować przenieść się na wizę L1.

Kim trzeba być, aby otrzymać ofertę od FAANG w czasie kryzysu

Rozmowa kwalifikacyjna to loteria: zarówno trudność zadań, jak i styl zachowania rekruterów są zmienne. Są tacy, których interesuje twój tok myślenia, wtedy rozmowa bardziej przypomina dialog, w trakcie którego wspólnie rozwiązujecie trudne zadanie. A bywa, że rekruter po prostu daje zadanie i patrzy, czy je rozwiążesz. Jeden z nich tak mi właśnie powiedział: «Nie mów, tylko rozwiązuj». Rozwiązałem — postawił mi «hire».

Myślę, że gdybym miał teraz przejść je wszystkie ponownie, to prawdopodobnie niektórych ofert bym nie otrzymał, ale zamiast nich dostałbym inne. Zwiększyć szanse pomaga praktyka rozwiązywania zadań (dziesiątki podobnych) i praktyka samych rozmów.

Uważam, że po przejściu filtra CV i praktyki LeetCode każdy przeciętny programista może realnie otrzymać ofertę w Amazon, Meta lub Google — nie trzeba być geniuszem. Wystarczy być studentem/początkującym programistą. Tak, LeetCode wymaga czasu i motywacji, ale tutaj juniorzy mają przewagę. Kiedy już się wyszkolisz, dobrze byłoby odbyć staż w jakiejkolwiek dużej firmie produktowej na Białorusi + mieć GitHub z realnymi projektami (to z jakiegoś powodu pomaga przejść filtr rekruterów, chociaż i tak nie mogą ocenić zawartości). Potem można ubiegać się o stanowiska juniorskie — L3 w Google i L4 w Amazon w Polsce. Po 2-3 latach dobrego doświadczenia można starać się o stanowiska mid-level w FAANG.

Chcesz przekazać ważne wydarzenie? Napisz do Telegram-bota

Główne wydarzenia i przydatne linki w naszym kanale Telegram