Wpis z mikrobloga

Zawsze myślałem, że zadanie rekrutacyjne ma sprawdzić wiedzę kandydata, a nie pracowników. Otóż nie tym razem XD

W procesie rekrutacyjnym pewnej firmy IT z Krakowa dostałem zadanie rekrutacyjne "na max 4h". Trochę dużo, ale w rozmowie z leadem wyszło, że "no tak 2-3h powinno ci to max zająć". Nigdy zadań nie robiłem, ale skoro ma to być 2h, a teraz gorzej z otrzymaniem oferty, no nic, poduczę się może czegoś.
Scope zadania prosty - napisz scenariusze i zautomatyzuj jeden endpoint podanego api, pokryj testami wszystkie statusy odpowiedzi. Brzmi spoko.
Zadanie nie zajęło ani 2, ani 3, ani 4 godziny, ale skoro już zaakceptowałem wyzwanie, to czemu by tego nie skończyć. Zadanie umieściłem na repo, wysłałem link na maila no i czekam na odpowiedź.

Dwa dni później dostaję feedback:
- Testów w ogóle nie da się odpalić, nie działają, nie potrafią wykryć kroków
- Kroki świecą się jako niezaimplementowane
Myślę co jest k*rwa, przecież przy oddawaniu wszystko sprawdziłem i działało, no nic odpale jeszcze raz - nadal wszystko śmiga.
A drugi punkt - od 5 lat jest błąd w pluginie, który podświetla kroki jako niezrobione w przypadku mapowania zmiennych na obiekty (w kodzie wszystko działa) - ale to ich też przerosło ( ͡° ͜ʖ ͡°)

- brak runnera testów, brak readme, brak pliku konfiguracyjnego, brak tworzenia branchy i commitów
No tak, projekt na dwie godzinki będzie miał 10 pull requestów sam ze sobą, a najlepiej to jakby jenkinsfile i dockerfile był zrobiony ( ͡° ͜ʖ ͡°) Nie było w scope to nie robim.
Myślę sobie, no dobra może oni ten generyczny runner sklepali w 2 minuty i odpalili, może tam testy nie działały - doklepałem runner, wszystko śmiga elegancko.

- za mało przypadków testowych
Spisałem kilkanaście scenariuszy, pokryłem wszystkie przypadki statusów, wszystkie możliwe kombinacje parametrów wejściowych jak i zabezpieczenia tego endpointa (zadanie na 4h). Liczy się pokrycie, a nie ilość testów XD
No fakt, w przypadku zwrotki z danymi mogłem przecież wygenerować wszystkie możliwe kombinacje 150 danych, które przychodzą, wtedy testy liczylibyśmy w tysiącach

- Kod statusu X nie był w dokumentacji, a kod statusu Y nie był uwzględniony w tasku
XD patrzę na zadanie, a kod X został podany w tasku, a kod Y nie był w ogóle uwzględniony w testach, ktoś po pijaku to czytał

- Stworzyłeś w klasach settery/gettery, których nie używasz
Specjaliści używający Lomboka myślą, że skoro wrzucą adnotacje getter/setter, to tych setterów i getterów nie ma, same się generują jak potrzebujesz. ( ͡° ͜ʖ ͡°)

- Brak klas POJO, działania na JSONie
POJO oczywiście były użyte - przecież żeście wyżej stwierdzili, że settery i gettery mam nieużywane, a jedyne settery nieużywane były w tych klasach. Ale widocznie za daleko było, żeby sprawdzić xD

- Requesty wysyłasz RestAssured, a asercje sprawdzasz JUnitem
Dzięki za info, że requesty wysyła się frameworkiem do restów, a frameworkiem testowym robi się asercje ( ͡° ͜ʖ ͡°)

Ale tym dzbanom nawet nie chciało się projektu odpalić, nawet nie spojrzeli co w nim jest. Zmarnowane kilkanaście godzin na rekrutację do takiej firmy i nauczka, żeby nigdy więcej nie brać już zadań rekrutacyjnych.

#programista15k #programista25k #it #pracait
  • 47
  • 3
@rolling_stone_with_no_hope: Nie no mowa tu bardziej o podejściu różnych parserów, Gson używa refleksji do deserializacji obiektów, a Jackson po setterach - więc w przypadku użycia Jacksona musi być ustawiony setter, żeby w ogóle szło deserializować obiekt. Ja tam nic nie grzebałem, kodu tam jest może ze 100 linijek. Gdybym użył Jacksona i dostałbym tą wrzutę o setterach, to zaśmiałbym się jeszcze bardziej
Zmarnowane kilkanaście godzin na rekrutację do takiej firmy i nauczka, żeby nigdy więcej nie brać już zadań rekrutacyjnych.


@nugla3371: jak byłem mega poczatkujacy tak półtorej roku temu to była bardzo częsta praktyka dać jakiegoś cruda + testy+trochę logiki i tak człowiek siedział czasem 5/10h czasem i nawet 40 jak front był do zrobienia i zamiast popychać swój pet project to robiłem kolejnego cruda od początku, ale człowiek się łudził, że się
@rolling_stone_with_no_hope @nugla3371 @odysjestem @afuera @SharkyShark @razdwatrzy55

w rozmowie z leadem wyszło, że "no tak 2-3h powinno ci to max zająć".


To już jest red-flag, bo w pracy tak samo Ci będzie gadał. A Ty się dopiero co będziesz wdrażać i będzie Cię to stresować i bedziesz robił nadgodziny darmowe by dowieźć, bo on powiedział że coś zajmie 3h max.
@nugla3371: dlatego prosta sprawa. Jak w rekrutacji chcą, żebyś im klepał frameworki to się mówi, dziękuje za rekrutacje.

Ja wiem, że przy rekrutacji na testera automatyzującego chcieliby Cię sprawdzić jak najlepiej, ale co to jest za feedback i co to jest za wycena zadania?

Generalnie to już wolę żeby zrobili mi drugi etap typowo techniczny i przepytali z zadań w jakimś pseudo kodzie albo zwyczajnie kazali poprawić coś w swom specjalnie