Poradniki

Jak szukałem pracy w Warszawie jako programista JavaScript

Google+ Pinterest LinkedIn Tumblr

Dzisiejszy wpis, to pewnego rodzaju ukłon dla rekruterów z którymi miałem kontakt w ostatnim czasie. W tym wpisie przedstawię swoje odczucia po zakończonym procesie szukania pracy w Warszawie jako programista JavaScript. Będzie o moich wymaganiach, rozmowach i ciekawych sytuacjach jakie mnie spotkały.

Od razu zaznaczę, że nie padną tutaj nazwy żadnych firm oraz nie będzie o pieniądzach (po za jednym wyjątkiem).

Zanim przejdziemy dalej, zacznijmy od podstawowego pytania:

Dlaczego postanowiłem szukać pracy w Warszawie?

Odpowiedź jest prosta. Projekt w którym siedziałem prawie siedem lat skończył się. Jednocześnie była to odpowiedź na pierwsze pytanie gdy kwalifikowałem do pierwszego etapu rozmów (zazwyczaj z kimś z działu HR).

Moje skromne wymagania – praca zdalna i React

Jak się później okazało, wymagałem trochę za dużo. Po pierwsze, musiała to być praca zdalna. Z dużym naciskiem na zdalna. I nie chodzi mi tutaj o możliwość pracy raz w tygodniu z domu. Wiadomo, że w przypadku zmiany pracy trzeba być na miejscu przez jakiś czas, by poznać ludzi oraz projekt. Jak się później okazało, było to zbyt dużo dla większości firm.

Odniosłem wrażenie, że większość firm nie jest gotowa na współpracę z kimś zdalnie. Nie wiem czy problemem jest brak doświadczenia czy procedur. A może chodzi o samo myślenie? No bo jak to, gość jest w tym samym mieście i chce pracować zdalnie? Nienormalny czy co? 🙂

Drugie wymaganie, to React. Nie Angular, nie Vue, tylko React. Nie chciałem tracić czasu na wdrożenie się w nowy framework i poznawać ekosystemu. Celem było mocne wejście w projekt.

Nie spodziewałem się, że ograniczenie się tylko do jednego ekosystemu będzie mocno ograniczało ilość ofert. Jak się potem okazało, mniej więcej 70% ofert na jakie trafiałem stało mocno na Angularze (niektóre w wersji 1.2!).

Proces rekrutacji jak i etapy zależały od tego gdzie trafiałem. Zazwyczaj była to firma outsourcingowa lub bezpośrednio do firmy.

Bez względu na firmę docelową, pierwsza linia frontu to rozmowa z kimś z działu rekrutacji (HR). Prawie zawsze schemat wygląda tak samo czyli pytania o:

  • powód zmiany pracy/projektu;
  • weryfikacja tego co napisałem w CV (czyżby uważali, że kłamałem :));
  • weryfikacja terminów zawartych w CV (np. praca w scrum, praca w zespołach itp.);

Bardzo często byłem proszony o krótkie podsumowanie projektów w których pracowałem (technologie, ciekawe rzeczy które tworzyłem itp.). Była też weryfikacja języka angielskiego w postaci krótkiego dialogu (pytania o projekty lub hobby).

Jeśli chodzi o rekruterów czy też „head hunterów”, to ich poziom znajomości branży IT (i wiedzy) był zróżnicowany.

  • Zdarzały się osoby, które myliły oferty pracy dla programisty JavaScriptu z Java (sic!). Poważnie! Myślałem, że opowieści o takich rekruterach to jakieś żarty czy „urban legends”. Niestety…
  • Największą grupą byli rekruterzy którzy wiedzieli o co chodzi, kojarzyli terminy (czy też słowa kluczowe) i zadawali pytania na temat. Sprawiali kompetentnych i znających branżę.
  • Najlepiej rozmawiało mi się z rekruterami, którzy posiadali wiedzę techniczną i nie bali zadawać szczegółowych pytań o projekty w jakich brałem udział! Cieszę się, że niektórym zależy bardziej i chcą wiedzieć więcej. Szkoda, że ich jest stosunkowo mało.

Rozmowy i zadania techniczne…

Jeżeli przechodziło się pierwszy etap (z HR), który był formalnością, to był następny. Już bardziej konkretny. I tutaj w zależności od firmy docelowej proces był krótszy lub dłuższy. I tak:

W przypadku firmy outsourcingowej był dodatkowy etap w postaci weryfikacji wewnętrznej. Taka firma chciał zweryfikować czy kandydat ma potrzebną wiedzę i „pasuje” do projektu. Ta weryfikacja techniczna przypominała teleturniej „1 z 10” i pytania z kategorii „Internet”. Pytali o wszystko. Dosłownie. CSS (soczyste różnice pomiędzy stylami), JS, jQuery, Angular, React, proxy, NodeJS, algorytmy, bazy danych, bezpieczeństwo czy nawet o pisanie testów. Na jednej takiej rozmowie była matematyka, wzory i wykresy!! Z odpowiedziami było różnie, tak jak we wspomnianym teleturnieju. Nie na wszystkie udzielałem poprawnych lub satysfakcjonujących odpowiedzi.

Rozumiem, że taka firma outsourcingowa nie chce wyjść na mało profesjonalną firmę. W moim odczuciu niektóre pytania były zbędne przez co wielu kandydatów (w tym ja) może odpadać z powodu braku odpowiedzi na proste pytania. Notorycznie oblewałem pytania związane ze stylami CSS. Dlaczego? W ostatnim czasie bardzo mało pisałem stylów, bo używałem gotowym komponentów, które stworzył i przetestował ktoś inny.

W opcji bez pośrednika rozmowy były już bardziej konkretne. Pytania o JavaScript, subtelne różnice pomiędzy funkcjami, React, ES6, rozmowy na temat konkretnych problemów itp. Nie było testów czy też zbędnego pierdololo „pierdu-pierdu”.

Zadania testowe. Też zdarzały się takie formy weryfikacji technicznej. Miałem konkretne zadanie do rozwiązania z użyciem Reacta. Był jeden przypadek w którym musiałem pisać w vanillaJS :). Z jednego zadania musiałem zrezygnować, bo było bardzo czasochłonne i ciężko było mi znaleźć czas po godzinach (jeszcze normalnie pracowałem). Za dużo „ficzerów” wymagali do zrobienia. Po wykonaniu zadania była rozmowa techniczna, która przypominała code review. Musiałem bronić swoich pomysłów lub tłumaczyć swój tok rozumowania.

Finalizacja. Negocjacje. Obietnice.

Gdy udawało się przejść wszystkie etapy następował ten ostatni. Konkretny. I tutaj też bywało różnie. Różnie w tym sensie, że:

  • dostawałem obietnice, że jestem faworytem i to tylko kwestia klepnięcia przez kogoś wyżej;
  • przedstawimy ofertę i się odezwiemy (i się nie odezwali);

Ciekawe jest to, że przez te wszystkie etapy nikt nie podejmował próby negocjacji stawek. Padało pytanie o stawkę i wszyscy przyjmowali to do wiadomości. Tylko jeden rekruter pytał o możliwość negocjacji.

W kilku przypadkach (tak podejrzewam) brak próby negocjacji był powodem odrzucenia mojej kandydatury do danej firmy (za dużo chciałem?). Powiedzmy sobie szczerze, jeżeli projekt jest ciekawy i ambitny, to byłbym skłonny do ustępstw (w zamian za możliwość zdobycia bezcennego doświadczenia).

Byłem bardzo miło zaskoczony faktem, że pomimo odrzucania mojej kandydatury dostawałem konkretną informację zwrotną od rekrutera. Na przykład, że słabo wypadłem podczas rozmowy technicznej (odpowiedzi, które były kluczowe) albo, że firma zdecydowała się na kogoś tańszego (znowu wraca temat braku negocjacji stawek).

Dlaczego nikt nie próbuje negocjować stawek z kandydatem?

Długo się nad tym zastanawiałem i do dzisiaj nie znalazłem konkretnej odpowiedzi. Czyżby to był efekt tego magicznego „rynku pracownika”? Nie chce mi się wierzyć, że jeżeli jakaś firma zleca znalezienie specjalisty to przyjmuje jego stawkę bez żadnych negocjacji.

W prawie wszystkich ogłoszeniach pojawiają się tzw. „widełki”, kandydat określa swoją stawkę i… to koniec? A co jeśli zawsze podawałem większą stawkę za godzinę wkalkulowując w to ewentualne negocjacje by i tak wyjść na swoje?

A może trafiałem na klientów, którzy musieli znaleźć kogoś „na już”?

Ciekawostki podczas szukania pracy jako programista JavaScript

  1. Podczas jednej rekrutacji musiałem rozwiązać test osobowościowy. Przypominał on trochę test na inteligencję.
  2. Jedna firma odrzuciła moją kandydaturę argumentującym tym, że jestem za spokojną osobą xD (¯\_(ツ)_/¯?).
  3. Fajnie było poznać osobę o tym samym imieniu i nazwisku z branży. Już wiem, kto mi zabrał lepszy login w poczcie Google.
  4. Pamiętam jedną rozmowę techniczną w której ta druga osoba była kompletnie nieprzygotowana do rozmowy i wyglądało to tak, że ja ją przepytywałem.
  5. Była też ciekawa rozmowa (trwała około 10 minut) na temat tego czy rozumiem, że czasami trzeba przyjść do firmy i załatwić kilka spraw w cztery oczy. Myśleli, że nie jestem elastyczny i chcę pracować tylko z domu.
  6. Podczas jednej z rozmów w firmie outsourcingowej byłem mocno poirytowany tematyką pytań i na pytanie o ciasteczka (cookies) odpaliłem, że są dobre i słodkie xD. Zmieniło to bardzo sposób prowadzenia rozmowy i rozluźniło atmosferę.
  7. Podczas kilku rozmów z HR (w siedzibie firmy) odczułem wrażenie, że zaprosili mnie tylko by odbyć taką rozmowę „dla sportu”. Dlaczego? Ze starszym rekruterem był junior i wszystko notował. Cieszę się, że mogłem pomóc w zdobyciu doświadczenia :).
  8. W przypadku odrzucenia mojej kandydatury po rozmowie z HR pytałem o powody. Prawie zawsze dostawałem informację zwrotną.
  9. Rozglądanie się za nowym projektem zmotywowało mnie do zaprogramowania drona Tello w Javascript. Okazał się to strzał w dziesiątkę, bo miałem o czym opowiadać podczas rozmów z HR i tych technicznych.

Aby uporządkować sobie proces i etap rekrutacji stworzyłem sobie prostą tablicę kanbanową w Trello. Miałem ją podzieloną na kilka etapów. W zależności od postępu przenosiłem firmę do konkretnej rubryki. Do każdej z nich dodawałem komentarze i uwagi. Podział procesu wyglądał mniej więcej tak:

  1. CV wysłane.
  2. Rozmowa z HR.
  3. Rozmowa techniczna (lub zadanie testowe).
  4. Oczekiwanie na decyzję „tak” lub „nie”.
  5. Konkrety.

LinkedIn wygrywa ze wszystkimi portalami z ofertami pracy. I to nawet z tymi, które mają oferty z branży IT.

Powodów jest kilka:

  1. Bardzo szybki kontakt z rekruterami.
  2. Bardzo duża liczba ofert.
  3. Praca szuka człowieka.
  4. Portale z ofertami pracy mają dwie wady.
    1. Nie wiesz czy ktoś odczytał Twoje zgłoszenie lub na jakim etapie jest rekrutacja. Wyjątkiem jest pracuj.pl, gdzie dostawałem powiadomienia mailowe, że ktoś otworzył moje CV,  rozważa a nawet odrzucił.
    2. Czas odpowiedzi na takie ogłoszenie jest bardzo długi. W przypadku rekrutera z LinkedIn było to maksymalnie do 24 godzin (zazwyczaj kilku). W pozostałych przypadkach trzeba było czekać kilka dni. Jedna firma odezwała się po dwóch tygodniach. Do dzisiaj nie dostałem odpowiedzi na kilka innych, wysłanych CV.

Jak widzicie, branża jest jaka jest. Nie jest też tak, że programista szuka pracy tak jak w tym dowcipie (lub memie) – dwie godziny. W sumie w jednej firmie mogłem złapać projekt praktycznie z dnia na dzień, ale weryfikacja techniczna z stylu pytań „1 z 10” zrobiła swoje i ukazała mnie jako mało doświadczonego.

Nowego projektu w sumie szukałem miesiąc. Czy dało by się znaleść coś szybciej? Może gdybym rozważał wszystkie oferty.

Ostatecznie pracuję więcej zdalnie niż w biurze. Do biura przyjeżdżam na planingi kolejnego sprintu, retra. Czasami sam wychodzę z inicjatywą przyjechania na miejsce by omówić problemy, rozwiązania. Szybciej jest omówić jakiś problem w cztery oczy niż czekać na odpowiedź na Slacku. Tak, jestem elastyczny.

Mam nadzieję, że tym wpisem pokazałem trochę jak wygląda proces rekrutacji od tej drugiej strony. Może komuś z działu HR przydadzą się te informacje by coś zmienić lub polepszyć. Liczę też na to, że osoby które myślą, że programiści są rozchwytywani i dostają pracę od razu zejdą trochę na ziemię.

Uwielbiam nowe technologie oraz wszelkiego rodzaju gadżety (ale tylko te użyteczne). Pochłaniam nowości i ciekawostki związane z technologią. Uważam, że technologia może nam bardzo pomóc (o ile będzie używana z rozwagą). Na etacie programuję w JavaScript, w wolnej chwili cykam zdjęcia.

5 komentarzy

  1. Świetny wpis, dzięki za podzielenie się swoimi doświadczeniami i spostrzeżeniami! 🙂 Widzę, że nie tylko ja dostrzegam problem braku negocjacji wynagrodzenia z kandydatami 😉

  2. Pracuję w Anglii jako soft developer. Nie zdarzyło mi się szukać tutaj pracy dłużej niż dwa dni. Mit dwóch godzin nadal tu funkcjonuje. Miałem kilka przypadków że odpowiedź o przyjęciu dostawałem podczas jazdy do domu, po rozmowie.
    Nie miałem nigdy żadnych testów osobowości, testów na inteligencję i innych pierdół. Zawsze były konkretne pytania o projekty, pomysły, wiedzę.
    Czasami gadałem z rekruterem, zawsze była to rozmowa przez telefon, do 30 min. Potem szybko spotkanie z ludźmi z firmy która szukała pracownika.
    Pytanie o wynagrodzenie jest jednym wśród wielu innych. To nie jest temat tabu na rozmowie.

    Ach no i na każdą moją odpowiedź na ogłoszenie pracy dostawałem od rekrutera kilka innych ofert.

    Jakoś to wszystko tutaj inne.

  3. „Nie spodziewałem się, że ograniczenie się tylko do jednego ekosystemu będzie mocno ograniczało ilość ofert. Jak się potem okazało, mniej więcej 70% ofert na jakie trafiałem stało mocno na Angularze (niektóre w wersji 1.2!).”

    Ciekawa uwaga. Wydaje się, że hype na Angulara za nami ale co raz zostało w nim napisane już się nie odnapisze (bo zapewne działa dobrze).

    Fajny post – mały tip, przed opublikowaniem postaraj się usuwać literówki bo jedną czy dwie znalazłem.

    • Piotr Cichosz Reply

      Przed opublikowaniem czytałem tekst 2-3 razy … ;/.
      Co do Angulara, to wydaje mi się, że to wynika tylko z tego że ten framework jest znacznie starszy niż React.

  4. Ciekawe. Jak kiedyś dostałem zapytanie o możliwość współpracy, poprosiłem o krótkie zadanie, które będzie zgodne z tym, co robi firma. Wyjaśniłem, że chcę się najpierw przekonać, czy jestem w stanie podjąć się takiej współpracy. To zadanie okazało się być jedynym etapem kwalifikacji, koniecznym do zatrudnienia. Innym razem musiałem tylko opowiedzieć co i przy jakich projektach oraz jakimi narzędziami robiłem. Też wystarczyło.

    Chyba celowałeś w firmy oferujące bardzo wysokie stawki. Opisane przez Ciebie procesy rekrutacji są wtedy naprawdę konieczne. Sam, dla jednej z firm, miałem okazję „rozpoznawać” praktycznie kandydatów, więc teraz już zdaję sobie sprawę, że najpiękniejsze CV z tytułami i osiągnięciami bywa zwodne. Kandydat dostaje pustą salę bez nadzoru, dowolną ilość czasu, komputer z dostępem do internetu (więc wiedzy) oraz proste zadanie z określonym założeniem, które da się napisać w 20 wierszach. Na 10 kandydatów jeden wykonuje je w miarę dobrze, połowa w jakimś stopniu, bo działa, ale niezgodnie z założeniem, reszta się poddaje.

    Ale wracając do tematu – to, co Ty opisujesz, to zaprzeczenie zdrowego rozsądku. Rekrutacja w niektórych specjalnościach powinna być prowadzona przez osobę, która potem będzie zarządzać pracą kandydata. Dział rekrutacji niech wyszuka i umówi kandydatów, ale jakie ma kompetencje do ich oceny? To zwykła biurokracja i nie ma sensu.

Skomentuj