praca netflix

Praca Netflix – jak zostałem programistą w USA. Historia Karola Stępniewskiego

– Cześć wszystkim, jestem Karol i od ponad 6 miesięcy pracuję w Netfliksie jako programista. Tworzę aplikacje, które wspomagają pracę studia filmowego – tak zaczął się nasz pierwszy livestream z nowej serii. Tym razem rozmawialiśmy z Karolem Stępniewskim, dziś Senior Software Engineer w Netflix, a wcześniej Staff Engineer w VMware. Dowiedzcie się, dlaczego Karol zmienił pracę i dlaczego wybrał właśnie Netfliksa.

Od studiowania dwóch kierunkach do Senior Software Engineera

Skąd wzięła się Twoja zajawka na programowanie i kiedy zdałeś sobie sprawę z tego, że przed komputerem spędzisz większość swojego życia?

Zacznę od tego, że jestem troszeczkę uwarunkowany rodzinnie. Mój tata pracował i jako programista, i jako nauczyciel akademicki. Ukończył doktorat z fizyki, a potem zajmował się szeroko pojętą informatyką. Moi bracia również poszli w tę stronę, więc byłem bardzo dobrze zmotywowany, żeby też się tym zająć.

Początkowo myślałem, że może rozwinę się w czymś innym, jednak programowanie gdzieś tam – może w genach – miałem. Już w szkole średniej wiedziałem, że będę to robił. Bardzo szybko zweryfikowałem, że chyba mi to dobrze wychodzi, bo na początku studiów znalazłem pracę i to mi pasowało. Miałem poczucie, że to jest dobra droga.

Gdzie studiowałeś?

Studiowałem na Politechnice Warszawskiej i w Szkole Głównej Gospodarstwa Wiejskiego w Warszawie. Studiowałem równolegle, dlatego że nastąpiło przesunięcie semestrów – na jednej uczelni semestr zaczynał się od lutego, a nie chciało mi się przez pół roku nic nie robić, więc zacząłem studia na drugiej uczelni. Okazało się, że tam też jest fajnie, nie chciałem ich przerywać, więc uznałem, że uda mi się ukończyć je jednocześnie.

Było ciężko. Studiowałem informatykę na Politechnice i Informatykę i ekonometrię na SGGW. Obydwa kierunki prezentowały zupełnie różne spojrzenia na tę dziedzinę.

Mimo tego, że na obu uczelniach była to informatyka?

Tak. Politechnika to, jak wiadomo, szkoła inżynierska. SGGW dało mi perspektywę od strony ekonomii, od strony zastosowania informatyki w finansach, troszeczkę też od strony zarządzania itp. Na pewno było trochę pokrycia w materiale. To nie było tak, że chciałem dowiedzieć się czegoś innego na jednej, a czegoś jeszcze innego na drugiej uczelni. Przyznaję jednak, że obie uczelnie dały mi inne spojrzenie.

Które spojrzenie było Tobie bliższe?

Z perspektywy czasu, wydaje mi się, że nie doceniłem SGGW, tego kierunku związanego z finansami. Bardzo często w późniejszej karierze w pewien sposób odnajdywałem zastosowania rzeczy, które wtedy, jak się uczyłem na SGGW, wydawały mi się niepotrzebne. Czułem się jak dziecko wracające ze szkoły, które mówi rodzicom: „Ale po co ja się tego uczę? To jest mi w ogóle niepotrzebne”. Miałem momentami takie podejście na studiach. Oczywiście tylko momentami. Później następowała refleksja: „Kurczę no, jest to przydatne”.

Kontynuowałeś przez cały okres studiów te dwa kierunki?

Kontynuowałem. Miałem drobne przerwy, chyba jeden semestr. Końcówka tych studiów była dosyć dziwna, dlatego że zacząłem pracę wcześnie. Tak jak wspominałem, już na pierwszym roku studiów pracowałem na pół etatu, a od drugiego roku już prawie na pełen etat. A nadal studiowałem dwa kierunki.

To, co było punktem kulminacyjnym, to jak przeszedłem na pracę pełnoetatową pod koniec studiów i zarówno na jednej, jak i na drugiej uczelni, nie podszedłem do obrony pracy magisterskiej (na politechnice – inżynierskiej). Dyplom wtedy wydawał mi się zupełnie niepotrzebny. Pracowałem i zarabiałem, całkiem niezłe – po co więc mi ten dyplom? Doszedłem do końca studiów i nie obroniłem się.

Rozumiem, że Tata był dumny?

No, na początku nie był, ale to się wszystko dobrze zakończyło, bo ten dyplom w końcu zrobiłem. Ale to już przy okazji wyjazdu do Stanów, kilka lat później.

Co sprawiło, że stwierdziłeś, że tych dyplomów nie robisz? Czy to ze względu na to, że dużego nakładu pracy wymagało napisanie takiej pracy magisterskiej?

Zacząłem dosyć dużo pracować, realizować swoje miniprojekty (właściwie z żadnymi sukcesami, tworzyłem je bardziej dla siebie), nie czułem potrzeby tych dyplomów. Zawsze mi się wydawało, że są one potrzebne do zdobycia pracy, a ja tę pracę już miałem.

To było trochę – patrząc z perspektywy czasu – dziwne, bo dokończyłem studia, zaliczyłem wszystko, co trzeba było, ale nie obroniłem pracy. Być może powodem było zbyt perfekcjonistyczne podejście, że ta praca musi być idealna. Nawet dzisiaj, czasami muszę walczyć z tym moim podejściem perfekcjonisty w programowaniu, bo działa to przeciwko mnie. Powoduje, że mam tzw. „analysis paralysis” – próbujesz tak długo analizować problem i dopinać wszystkie brakujące elementy, że właściwie nie posuwasz się do przodu.

Czy aby zostać programistą w USA trzeba mieć studia?

Czyli dyplomy jednak dla Taty obronione? Jeśli nie dla pracy…

Dla Taty na pewno też, ale głównym motywatorem był właśnie wyjazd do Stanów. Okazało się, że żeby było troszeczkę łatwiej z wizą i zieloną kartą, to dyplom zwiększa twoje szanse. Po prostu jest im łatwiej uzasadnić, dlaczego właśnie Ty możesz zostać. Co więcej, miałem obronę dzień czy dwa dni przed wylotem do Stanów, miałem więc jedną szansę, że tak powiem, żeby się obronić.

Jakbyś się nie obronił, to nie byłoby sensu lecieć do Stanów?

Byłby sens, tylko później miałbym większe problemy z wizami, z tym, żeby tu zostać i żeby uzyskać zieloną kartę. Nie byłoby tak, że musiałbym natychmiast wracać i to wszystko by runęło w gruzach, ale na pewno byłby z tym większy problem.

Czyli dreszczyk emocji – praca obroniona na piątkę, Karol wychodzi na pewniaka, przebiera garnitur w dresy, wskakuje do samolotu?

W dużym przybliżeniu. Ale nie miałem tak dużo czasu już po obronie na to, żeby się nią nacieszyć.

Programista w USA

W jakim celu po raz pierwszy wyjechałeś do USA?

Wyjechałem, bo dostałem pracę w VMware. To była firma, dla której początkowo przyjechałem do Stanów. Pracowałem w niej ponad 4 lata, prawie 4,5. Wydaje mi się, że to dosyć długo.

praca w vmware i netflix, programista w USA

Wtedy też wyjechałeś bezpośrednio do Kalifornii?

Bezpośrednio do Kalifornii, tak. Na początku zaproponowali mi pracę w Seattle, ale ponieważ proces wizowy jest bardzo długi (głównie dlatego, że wcześnie tę rozmowę z VMWarem miałem), to wylądowałem w Kalifornii. Jest też jeden termin, w którym możesz zacząć pracę na wizie (miałem H1B), a moja rozmowa odbywała się w grudniu. Musiałem zatem czekać od grudnia do października, żeby przyjechać do Stanów.

Dużo się może wydarzyć w tym czasie, szczególnie jeśli to byłaby mała firma – słyszałem historię kolegi, któremu firma zdążyła upaść, zanim do tych Stanów dojechał. Musiał szukać innej pracy. Jak to mówią to było najgorsze pół godziny jego życia.

Najgorsze pół godziny życia programisty, to kiedy szuka pracy?

Dokładnie, bo programiści nie mają z tym większego problemu. Szczególnie ludzie z doświadczeniem. To jest problem dla ludzi, którzy są świeżo po studiach, a w dodatku nie ukończyli super renomowanej uczelni. To jest może większy problem.

Praca VMware

Powiedz, czym zajmowałeś się w VMware.

W VMwarze pracowałem jako programista. Tworzyłem oprogramowanie infrastruktury, dla firm, które chcą stawiać własną chmurę, własne data center itd., i potrzebują w tym celu oprogramowania. Na początku zajmowałem się projektem OpenStack, gdzie byłem programistą Pythona. Potem przez pół roku pracowałem przy Kubernetesie od strony jego wewnętrznej dystrybucji.

Następnie przez rok udzielałem się przy projekcie Serverless, który był bardzo eksperymentalny. Pracowałem nad nim w małym zespole. To wszystko cały czas w ramach VMware’a. Na końcu zajmowałem się czymś, co się nazywa Pivotal Container Service. To jest produkt Pivotala, ale robiony we współpracy z VMwarem i właśnie mój zespół, przy tym pracował. I to też jest związane z Kubernetesem.

Jak prezentuje się twój cały stack technologiczny? Bo mówisz o Pythonie, ja tu widzę jeszcze Ruby, Java, Go…

Tak, to się bardzo zmieniało. Zostałem zatrudniony jako programista Ruby, na początku, w VMwarze. Dokładniej, kiedy byłem w Polsce, miałem być programistą Ruby. Miałem pracować w Seattle, przy zupełnie innym projekcie, ale przez ten prawie rok, gdy czekałem na wizę, wszystko się zmieniło. Tamten projekt się przeniósł, został przydzielony do Pivotala.

Zostałem zapytany, czy nie chciałbym zmienić stanowiska, bo bardzo mnie potrzebują w Palo Alto, gdzie VMware ma swoją główną siedzibę i żebym pracował przy OpenStacku właśnie, jako programista Pythona. Czyli Ruby, zaraz Python, zmieniło się też miejsce, język i projekt. Także pracowałem na początku w Pythonie. A potem było Go – Kubernetes, był ten projekt Serverlessowy Dispatch, i to też było Go. Później było trochę Go, trochę Rubiego, który się znowu pojawił, no a teraz w Netfliksie piszę w Ruby’m i Javie.

Ruby, Python, Go, Java – nieźle. Jak się w tym odnajdowałeś? Już w Polsce miałeś background związany z tymi technologiami?

Python towarzyszył mi od zawsze, bo był to taki język, który wykorzystywałem do swoich projektów. Jednak nie miałem komercyjnego doświadczenia w Pythonie. Jest tak, że jeżeli masz przyswojone podstawy programowania, masz doświadczenie w dostarczaniu oprogramowania, we wzorcach, dobrych praktykach, to zmiana języka to nie jest już taki wielki kłopot. Wymaga to oczywiście trochę czasu, ale prawda jest taka, że każda firma ma wypracowane dobre praktyki, które są związane z językiem.

Nawet jeśli przechodzisz z firmy, gdzie robisz Ruby, do innej firmy, gdzie też robisz Ruby, to to Ruby może wyglądać zupełnie inaczej. Wynika to także ze sposobu, w jaki ten język jest wykorzystywany. Zależy to od ludzi, którzy są w tym zespole i tego, co preferują, więc i tak trzeba się przystosować przy zmianie firmy. To zależy też od języka. Gdybym zmieniał język z Go na Haskella to miałbym świat wywrócony do góry nogami. To istotne, jaki paradygmat programowania dany język wykorzystuje.

Jak znaleźć pracę w USA jako programista?

Na pewno za chwilę będzie okazja, żeby się nad tym mocniej pochylić, natomiast jeden z widzów zadał pytanie na YouTube. W jaki sposób znaleźć tą pierwszą pracę w USA? Czy zrobiłeś to samodzielnie, czy znalazł to za ciebie rekruter? Jak to wyglądało?

LinkedIn to jedyna platforma, z której korzystałem. Nie szukałem aktywnie pracy, w ogóle nie wyobrażałem sobie wtedy, że wyjadę do Stanów Zjednoczonych. Dostałem wiadomość na LinkedInie od rekruterki z VMware’a. Firma robiła wtedy dużą akcję rekrutacyjną w Europie. W Warszawie odbywały się rozmowy bezpośrednio, a wcześniej wysyłali zadanie, które musiałem zrobić online. Wykonanie tego zadania pozwoliło mi tą wizytę już na miejscu w Warszawie, w hotelu, wraz z przynajmniej 100 innymi kandydatami (oczywiście na cały tydzień, nie jednego dnia).

Stworzono grupy po 15 osób, do każdego stanowiska – 15 inżynierów, managerów z VMware’a i przez tydzień codziennie pytali po kilkunastu kandydatów. To było dosyć intensywne. Przyszedłem tam na 10, wyszedłem o 17, czyli praktycznie cały dzień pracy – rozmowy i pytania. Ale to było super, bo właściwie na koniec tego dnia dostałem ofertę. Od razu powiedzieli mi, że mnie chcą. Uprzedzili, że będę musiał wyjechać do Stanów.

Czułeś, że dobrze wypadłeś na tych rozmowach? Pamiętasz w ogóle, jak to wyglądało w praktyce? Dostałeś zadanie – ile miałeś czasu na wykonanie go?

Takie rozmowy to już standard w większych firmach. Masz ileś spotkań z różnymi ludźmi. Każda osoba ma inne pytanie lub jakieś pytania pomocnicze. Trafią się zadania, algorytm do napisania, polecenie związane z programowaniem, typu „jak byś do tego podszedł”. Miałem pytanie, gdzie musiałem wymyślić, jaki algorytm zastosować i rozwiązać łamigłówkę programistyczną, ale trafiłem też na zadanie typu „zaprojektuj kawałek kodu”.

W moim przypadku było to: „Napisz kawałek kodu, który będzie weryfikował złożoność hasła”. To takie zadania, w których można zacząć od kilku linijek, które mogą rozrosnąć, bo pojawiają się dodatkowe, pomocnicze pytania, itd. Takich rozmów i zadanek miałem chyba z pięć czy sześć, gdzieś po drodze miałem rozmowę z managerem, taką bardziej behawioralną. Na temat tego, jak się odnajduję w różnych warunkach, jakbym postąpił w różnych sytuacjach itd.

Odbyłem te pięć czy sześć rozmów, poprosili mnie później do pokoju na pół godziny, po tym czasie przyszła delegacja. Wyglądało to dosyć poważnie. Na początku zastanawiałem się, czy to nie jest komunikat, żebym sobie wymyślił inną ścieżkę kariery, bo nic z tego nie będzie, ale okazało się, że było inaczej. Zapytali mnie, w całkiem ciekawy sposób, nie „czy chcę jechać?”, tylko „czy jest coś, co przeszkodziłoby mi w wyjeździe do Stanów?”. I to ja musiałem wymyślać argumenty, żebym tam nie mógł jechać i oczywiście takich argumentów nie miałem. Bardzo mnie zaskoczyli.

Praca Netflix

Jak wyglądało twoje interview do Netfliksa i w ogóle jak się tam znalazłeś

Znowu LinkedIn – znowu dostałem wiadomość od rekrutera. Nie ma teraz chyba innej opcji w Stanach, jeśli chodzi o szukanie pracy w IT, niż LinkedIn. Albo oczywiście kontakty. Bo ludzie się polecają, i jest to jednak dla pracodawcy dużo bezpieczniejsza droga zatrudniania, jeżeli poleca cię ktoś, kto cię zna i z tobą pracował.

Dla rekrutera, czy dyrektora, czy managera w jakiejś firmie, jest to dużo lepszy kandydat niż ktoś, kto ma super referencje, ale przychodzi bez żadnego polecenia. Jest to bardzo ważna kwestia. Czasami dostaję pytanie od ludzi, których poznaję, czy mógłbym ich polecić. Bardzo chętnie polecam, tylko od razu mówię: „Jeśli z Tobą nie pracowałem, to powiem, że jesteś zainteresowany, ale nie powiem że jesteś świetnym kandydatem, bo to później wyjdzie w praniu”. Jeśli powiem, że jest świetny, a nie jest, to automatycznie odwróci się to przeciwko mnie, więc to bardzo istotne, żeby polecać ludzi, których faktycznie się zna.

Rekrutacja do Netflixa

W jaki sposób rekruterzy „zagadują” potencjalnych kandydatów? Czy Netflix to praca marzeń?

To wiadomość na zasadzie: „Cześć, jak ci w twojej obecnej firmie? Pracuję dla Netfliksa i szukamy doświadczonych inżynierów do takich a takich zespołów”. Rozmawiałem z kilkoma rekruterami w Netfliksie, jedna rekruterka wspomniała mi o kilku zespołach, jednak nie dostałem żadnych konkretów. Informacja była taka, że szukają ludzi do pracy i czy chciałbym porozmawiać, żeby dowiedzieć się więcej. A ja akurat wtedy byłem na takim etapie, że myślałem sobie: „Jestem już tyle czasu w VMwarze, może by warto porozmawiać”.

Najpierw porozmawiałem z rekruterką przez telefon. Żeby ustalić, jak to ma wyglądać, zdzwoniliśmy się, ona miała już wiedzę na temat mojego doświadczenia z LinkedIna, ja też miałem już swoje preferencje. To była taka kalibracyjna rozmowa, po to, żebyśmy ustalili, czego szukam, co mnie interesuje i co ona może mi zaproponować. Wydaje mi się, że jest to taka standardowa rozmowa rekrutacyjna, która odbywa się na początku procesu.

Jak już to ustaliliśmy, rekruterka połączyła mnie z managerami konkretnych zespołów w Netfliksie, z którymi rozmawiałem. Potem umówiliśmy się na rozmowę „on-site”, czyli na miejscu, w biurze firmy. Ta rozmowa też była całodzienna. Miałem chyba 6 czy 7 rozmów, łącznie z lunchem, podczas którego rozmawiałem z moim potencjalnym managerem.

Różnica między Netfliksem a innymi firmami jest taka, że Netflix kładzie duży nacisk na kulturę. Tak jak przy mojej rozmowie w VMwarze czy rekrutacji do Google’a to były rozmowy stricte techniczne (poza jedną behawioralną), tak w Netfliksie miałem 4 rozmowy behawioralne na temat kultury i tego, jak się odnajduje w różnych sytuacjach.

Rozmowa była bardziej o kulturze. Jak padło pytanie o twoje technologie, to były z boku podczas rekrutacji?

Nie do końca. Kiedy rozmawiałem z rekruterką, to wspomniałem, co mnie interesuje – głównie Go. Rubiego, którego lubiłem kiedyś w VMwarze, za dużo nie było. Trochę go liznąłem pod koniec i stwierdziłem, że fajnie byłoby do tego wrócić. Okazało się, że był zespół, który w Ruby pracował.

Netflix na początku nie miał swojego studia, tylko licencjonował produkcje innych firm. Dopiero potem, siedem lat temu, zaczął tworzyć własne seriale i filmy. Na początku był to trochę taki startup, studio w firmie, która nie robiło własnych produkcji, więc wszystko powstawało od podstaw. I na początku wszystko ze studia netfliksowego było napisane w Rubym.

praca jako programista w USA

Historia Netflixa

Z tego co rzuciłem okiem na Wikipedię, to korzenie Netfliksa sięgają 1997 roku. Czy oni nie zajmowali się wypożyczaniem filmów?

Tak. Netflix przejął stronę dvd.com i jak najbardziej ona cały czas działa. Możesz wypożyczyć DVD pocztą.

Rzeczywiście! Od 1998 roku DVD Netflix był pierwszym serwisem do wypożyczania DVD pocztą.

Dokładnie. I jest za tym taka historia, że nasz CEO, Reed, postanowił to zrobić, bo dostał nakaz opłaty za spóźnienie się z oddaniem filmu w Blockbusterze. Blockbuster to firma, która była potęgą w latach 90. i jeszcze na początku lat 2000, wśród firm zajmujących się wypożyczaniem filmów. Nie pamiętam czy Reed to potwierdził, czy to tylko taka anegdota, ale ta sytuacja sprawiła, że założył Netfliksa, gdzie mogłeś trzymać materiał, ile chcesz, płaciłeś subskrypcję, a motywacją do oddania szybciej było to, że jak odesłałeś DVD, to mogłeś wypożyczyć następne.

Przejdźmy z powrotem do rekrutacji. Jeszcze w naszym poprzednim livestreamie mówiłeś, że programiści często skupiają się na umiejętnościach technicznych, natomiast zapominają o kompetencjach miękkich. Już wtedy podkreślałeś, żeby na to zwracać uwagę. Co teraz o tym myślisz? Czy stało się to w tych czasach jeszcze ważniejsze?

Nie uważam, że to jest jeszcze ważniejsze, to było zawsze ważne i moim zdaniem cały czas jest. Jedyne, co mogę powiedzieć, to że teraz bardziej to dostrzegam. To jest bardzo ważne w Netfliksie, jeżeli chodzi o takie podejście pozatechniczne. Firma ma wyjątkową kulturę, może nie zupełnie, bo też powstało wiele biznesów, które się na niej wzorują. Każdy może sobie znaleźć te informacje, istnieje tak zwane “culture memo” netfliksowe, gdzie jest opisane, jakie mamy zasady.

Podstawową zasadą w Netfliksie jest brak zasad. Uściślając – jest jedna zasada – freedom and responsibility. Jeżeli uważasz, że coś jest dobre dla firmy, to nie ma żadnych zasad co do tego, jak masz to zrobić. Masz użyć swojego zdrowego rozsądku, żeby podjąć decyzję. Po pierwsze jest tak dlatego, że Netflix zatrudnia tylko doświadczonych ludzi. Nie znajdziesz tutaj juniorów czy midów, tylko seniorów. Jeżeli chodzi o inżynierów, Netflix zatrudnia tylko i wyłącznie doświadczonych programistów, doświadczonych inżynierów.

Po drugie, w Netfliksie nie ma drabinki rozwojowej dla inżynierów. Masz płaską strukturę, i ponieważ wszyscy są doświadczeni, to nie uświadczysz jakichś principal engineer itd. Jest drabinka rozwojowa dla ścieżki managerskiej, ale nie dla inżynierów i myślę, że to bardzo pomaga. Nie muszę myśleć nad tym, jak sobie załatwić awans, nie muszę się zastanawiać, czy to jest ważne, czy nie. Rozwijam się cały czas, uczę się nowych rzeczy, do podejmowania decyzji wykorzystuję też to, co wiem.

Jeżeli się pomylę – a ludzie się mylą – to nie jest nic nadzwyczajnego. Firma nie stawia na nieomylnych ludzi, bo każdy popełnia błędy. Pamiętam, jak podczas rozmowy rekrutacyjnej miałem zadanie do domu, małe, zanim mnie zaprosili na wizytę „on sight”. Jego treść brzmiała: „Podczas twojej wizyty u nas w biurze będziesz odpowiadał na pytania. Opisz jedną z rzeczy w swojej karierze, która ci nie poszła i jak sobie z tym poradziłeś”. Ważne, żeby się tym nie przejmować. Masa ludzi w firmie spowodowała, że streaming był niedostępny. No i to jest sugestia, że błędy się zdarzają. Ważne jest to, jak sobie z nimi radzisz, czy się z nich uczysz, wyciągasz wnioski i jakie będziesz podejmował kroki, żeby temu zapobiec w przyszłości. I to jest chyba kluczowe w kulturze Netfliksa.


Przeczytałeś właśnie pierwszą część live streamu z Karolem (część drugą znajdziesz tutaj). Jeśli nie możesz się jej doczekać, polecamy obejrzeć cały zapis naszej rozmowy.

Przy okazji, w najbliższą sobotę 4.01 odbędzie się livestream z Jakubem Jędryszkiem, Software Engineerem Facebooka. Więcej na ten temat dowiesz się z tej strony.

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Projektowanie systemu. Różnice pomiędzy grafową oraz relacyjną bazą danych