Wpis z mikrobloga

Elo mirasy, trochę #chwalesie bo dostałem właśnie pierwszą #pracait jako Frontend Developer - dzisiaj podpisałem umowę #programista10k!

Jak zaczynałem rozsyłać CV to dużo szperałem w necie i na Wykopie szukając informacji o tym jak wyglądają procesy rekrutacyjne, jak powinienem ocenić i wycenić własne umiejętności itd., i nie znalazłem zbyt wiele. Może komuś się to przyda - ostrzegam, że będzie ściana tekstu.

Krótko o mnie - 28 lvl, brak doświadczenia komercyjnego, brak studiów, nie mam też żadnych certyfikatów ani bootcampów, nie mam portfolio. Z plusów to dobrze ogarniam frontend bo siedzę w tym od paru lat półprofesjonalnie, a programowaniem hobbystycznie zajmuję się od bardzo dawna. Mieszkam w Warszawie i szukałem raczej ofert lokalnych.

Cały proces szukania pracy - od pierwszego wysłanego CV do otrzymania oferty, na którą się zdecydowałem - zajął mi prawie dokładnie miesiąc, natomiast proces rekrutacyjny w firmie, na którą się ostatecznie zdecydowałem zajął trochę ponad 2 tygodnie. Pierwszą ofertę otrzymałem jeszcze w czerwcu, 3 tygodnie po wysłaniu pierwszego CV. Cała komunikacja i wszystkie rozmowy odbywały się zdalnie.

W sumie wysłałem ok. 40 CV i dostałem 6 ofert: dwie na juniora i cztery na mida.

Tutaj ciekawostka - pierwszą ofertę na juniora otrzymałem bez zadania ani rozmowy technicznej, wyłącznie na podstawie rozmowy ogólnej projektowo-HRowej. Mało tego, miałem być jedynym frontendowcem na projekcie. Nikt nie spojrzał na jedną linijkę kodu ani nie zadał mi jednego pytania technicznego.

Spośród wszystkich wysłanych CV jakąkolwiek odpowiedź dostałem z mniej więcej połowy. Aplikowałem na pozycje juniora i mida - z mida dostałem dużo więcej odpowiedzi, w paru przypadkach od razu zaproszenia na rozmowy techniczne, więc z czasem przestałem wysyłać CV na pozycje juniorskie. Wybierając oferty nie zwracałem w ogóle uwagi na wymagania dot. doświadczenia komercyjnego oraz studiów.

Mniej więcej połowa odpowiedzi była odmowami na etapie CV. Props dla jednego warszawskiego startupu medycznego, który jako jedyny wysłał mi spersonalizowaną odmowę, w której napisali, że zdecydowanie chcą kogoś z doświadczeniem komercyjnym i tak dalej; pozostałe odmowy były wklejkami.

Pozytywne odpowiedzi na CV miały różne formy:
- telefon od rekrutera (tzw. screen)
- zadanie domowe
- test online do wypełnienia
- zaproszenie na rozmowę
- dowolną kombinację powyższych

Jak można się spodziewać, korporacje mają bardziej sformalizowane (i często zautomatyzowane) podejście do kandydatów, natomiast w mniejszych firmach zwykle od razu był kontakt z człowiekiem. W rekrutacjach na juniora byłem czasem traktowany trochę olewczo - tutaj karny #!$%@? dla jednego warszawskiego software house'u, który wysłał mi od razu po przesłaniu CV zadanie na 5h, odesłałem w tym samym dniu, a patafiany nie raczyły nawet odpisać, że mnie nie chcą. Mimo to w większości firm było bardzo przyjemnie.

W większości firm proces składał się ze screenu i rozmowy technicznej, w niektórych przed rozmową techniczną było jeszcze zadanie, w innych zadanie albo test online był pierwszym krokiem i tak dalej. Tylko w jednej firmie miałem osobną rozmowę HRową (więc w sumie 3 rozmowy bo screen + techniczna + HR), zwykle ktoś z HR był obecny na rozmowie technicznej i wplatał jakieś pytanie dotyczące kompetencji miękkich. W sumie byłem na 6 rozmowach technicznych.

Z rzeczy, których się nie spodziewałem pytano mnie mniędzy innymi o: ogólne programistyczne design patterns (np. factory, builder, singleton), architekturę Flux, znajomość jQuery, parę wyjątkowo nietypowych kruczków CSS. Na jednej rozmowie wypytywali mnie o różne kwestie devopsowe, na których oczywiście poległem totalnie (np. czym się różni kontener od VMki - pytanie proste, teraz już wiem, ale nie spodziewałem się go w rekrutacji na front). Poza tym bardzo dużo typowych pytań z listy "100 JavaScript/Front-end Interview Questions" - ES6, Promises, hoisting, strict mode, czym się różni == od ===, co wyprintuje ten kod i tak dalej.

Jeśli chodzi o zadania to wszystkie były podobne. Aplikowałem głównie na stanowiska z Reactem jako główną technologią frontendową więc większość zadań opierała się na schemacie: pobierz dane z tego API, wyświetl je jakoś, dodaj jakąś funkcjonalność. Niektóre miały bardzo jasno określone wymagania, inne były bardzo ogólne i ciężko było mi zdecydować kiedy zakończyć pracę. Jedno nietypowe zadanie skupiało się na stworzeniu funkcjonalności logicznej (opracowaniu algorytmu) i wpięciu jej w prosty istniejący front napisany w czystym JS. Na większość zadań dostawałem deadline od paru dni do tygodnia. Z jednej firmy dostałem zadanie, którego nie zrobiłem bo miało dość wyżyłowane wymagania (długą listę wymaganych technologii i bibliotek, z których paru jeszcze nie używałem) i limit czasowy 24h.

Ogólnie poziom zadań (w większości z rekrutacji na mida) był w mojej ocenie dość niski, tzn. były raczej proste. Oczywiście mimo to spektrum jakości rozwiązań może być bardzo szerokie i pewnie na tym opierają się przy ocenie kandydatów.

Kwestia czasu odpowiedzi - zwykle odpowiedź na CV dostawałem w ciągu maksymalnie paru dni (czasem nawet w tym samym albo kolejnym dniu z samego rana) albo wcale. Były jakieś małe wyjątki, jedna firma odezwała się po 2 tygodniach i od razu zaprosili na rozmowę. Same procesy rekrutacyjne również przebiegały dość sprawnie, zwykle do tygodnia od ostatniego etapu otrzymywałem odpowiedź. Żaden proces nie trwał dłużej niż ~2 tygodnie.

Z rzeczy, o które martwiłem się zanim zacząłem szukać pracy - brak doświadczenia komercyjnego pewnie wyeliminował mnie ze sporej części rekrutacji na etapie CV, ale jeśli jakaś firma już się odzywała to nikt mnie o to nie pytał i nie było to problemem. Podczas rozmów technicznych szybko pokazywałem, że wiem o czym mówię i temat braku doświadczenia nie pojawił się chyba w żadnej rozmowie. Podobnie z brakiem studiów - tylko raz mnie o to zapytali, opowiedziałem dlaczego ich nie mam (bo zajmowałem się ciekawszymi rzeczami) i w toku rozmowy wyszedł z tego atut.

Tylko z jednej firmy dostałem odmowę po rozmowie technicznej (ogłoszenie na frontend mida a szukali bardziej seniora fullstacka). Z wszystkich pozostałych dostałem oferty.

Spośród ofert, które otrzymałem, w ogłoszeniach na wszystkie z wyjątkiem jednej wymagane było doświadczenie komercyjne, w przypadku dwóch z nich 2 do 3 lat, a w jednej z tych również wyższe wykształcenie techniczne. Myślę więc, że takie wymagania można z zasady traktować z przymrużeniem oka.

Nie posiadam publicznego portfolio ale mam parę małych i średnich projektów. Mimo, że pisałem o nich w CV to tylko na jednej rozmowie chcieli je oglądać, natomiast kilka razy pojawiło się typowe pytanie "opowiedz o projekcie nad którym ostatnio pracowałeś/z którego jesteś dumny".

Ostatecznie dostałem pracę jako mid - wcześniej nie wiedziałem, czy w ogóle możliwym jest całkowite przeskoczenie juniora. Jak widać - tak, jest możliwe, w moim przypadku było mi paradoksalnie dużo łatwiej uzyskać ofertę na mida niż na juniora (z CV wysyłanych na juniora dostawałem bardzo niewiele odpowiedzi). Spodziewam się, że to kwestia znacznie większej konkurencji na stanowiska juniorskie.

Wynagrodzenie. Oferty, które otrzymałem były w przedziale od 7 do 12k (net B2B). Prawdopodobnie mógłbym wykręcić więcej (te wyższe oferty były raczej dolnymi granicami widełek), ale oryginalnie obawiałem się czy w ogóle dostanę jakąś pracę (nie wspominając nawet o midzie) więc nie chciałem wyjeżdżać z wywindowanymi wymaganiami finansowymi. Zdecydowałem się na ofertę za 10k bo była to zdecydowanie najfajniejsza firma (spory polski software house z zachęcającą - przynajmniej w teorii - kulturą) i w mojej ocenie najlepsze możliwości rozwoju.

Jeśli o czymś zapomniałem to pytajcie, PW też mam otwarte i chętnie pomogę jeśli będę potrafił.

#programowanie #programista15k #rekrutacja #praca #pracbaza
  • 27
  • Odpowiedz
@cecidimus: Ciężko mi w sumie powiedzieć bo to nie było tak, że usiadłem któregoś dnia i postanowiłem się nauczyć. Programuje hobbystycznie od jakichś 10 lat, więc takie podstawy miałem od dawna. Zacząłem się wgryzać we front jakieś 5 lat temu, ale cały czas prowadziłem też firmę więc poświęcałem na to może parę godzin w tygodniu, i to z bardzo dużymi przerwami (np. rok nie dotykałem kodu). Uczyłem się tyle ile potrzebowałem
  • Odpowiedz
@cecidimus: Nawet odwrotnie, właściwie wszystkie oferty były na pracę zdalną, tylko w jednej firmie chcieli, żebym pracował z biura. Także gdybym teraz zaczynał szukać to wysyłałbym CV na oferty z całej Polski zamiast samej Wawy.
  • Odpowiedz
@confessio: Jeśli chodzi o zadania to tak jak pisałem były w mojej ocenie bardzo proste - praktycznie wszystkie opierały się na formule pobrania danych z API i ich wyświetlenia w jakiś sposób. Jest np. taki serwis jak JsonPlaceholder i w paru zadaniach miałem wykorzystać dane z tego API. Na większość zadań dostawałem dużo czasu, parę dni do tygodnia, więc jest też czas na szybkie douczenie się jakichś drobiazgów.

Na rozmowach były
  • Odpowiedz
@cppguy: Większość rozmów i zadań to jednak bardziej głębszy JS i React. Poza tym głupie odpytanie API w Reakcie można zrobić na 100 sposobów (stan zapytania na state'ach, reducerach, custom hook, react-async, react-query etc) które też oddzielą początkujących od nie-początkujących
  • Odpowiedz
@vincentooo: Tylko jedną rozmowę miałem w całości po angielsku bo akurat PM nie mówił po polsku, w pozostałych rekrutacjach tylko podczas screena rekruterka zadawała jakieś 1-2 proste pytania po angielsku (czego się ostatnio nauczyłeś, opowiedz o jakimś projekcie itd)
  • Odpowiedz
Uczyłem się tyle ile potrzebowałem do pisania sobie prostych appek ułatwiających pracę w firmie.

@WewnetrznySpokoj i to jest powód dla którego Cię zatrudnili, masz praktyczne doświadczenie w robieniu projektów, które mają sens. Nie jesteś juniorem, który może się pochwalić kursem na udemy i aplikacja todo list.
Zresztą sam podobnie zaczynałem, od tworzenia narzędzi, które ułatwiały mi pracę w innej branży.
To sprowadza rozmowę rekrutacyjna na zupełnie inny poziom.
Gratulacje.
  • Odpowiedz