Kariera

Kulisy pracy w IT: proces rekrutacji Java Developera

Zdjęcie Anny Król

Programiści Java są dziś cenionymi specjalistami, a zapotrzebowanie na reprezentantów tej technologii stale rośnie. Każdy, kto rozważa pracę na tym stanowisku, powinien wcześniej dokładnie się do tego przygotować. Z pomocą przychodzi Anna Król – Senior IT Recruitment Specialist w Britenet, która postanowiła podzielić się swoją wiedzą o procesie rekrutacji Java Developerów.

Jak przebiega proces rekrutacyjny na stanowisko Java Developera?

Proces rekrutacyjny na stanowisko Java Developera wygląda bardzo podobnie do innych procesów rekrutacyjnych w firmie Britenet. Składa się on z następujących etapów:

Rozmowy z działem HR – cały proces rozpoczyna się od spotkania lub rozmowy online ze specjalistą HR. Taka rozmowa nazywana jest rozmową „miękką”. W jej trakcie sprawdzane są kompetencje miękkie oraz cechy osobowościowe danego kandydata, analizowane jest doświadczenie zawodowe aplikującego, motywacje związane ze zmianą pracy, czy też preferencje projektowe.

Ważnym punktem takiej rozmowy jest także poznanie używanych przez kandydata narzędzi, technologii i stylu pracy w dotychczasowym doświadczeniu zawodowym.

Sprawdzane są również kwestie związane ze znajomością języków obcych.

Podczas rozmowy miękkiej weryfikujemy oczekiwania finansowe kandydata oraz jego dostępność.

Na wstępnym etapie rozmowa z działem HR stanowi dla organizacji idealny czas na dopasowanie kandydata do aktualnego zapotrzebowania firmy.

Weryfikacja techniczna to drugi etap naszego procesu. Rozmowy prowadzone są przez doświadczonych specjalistów z firmy Britenet. Podczas takiego spotkania sprawdza się poziom umiejętności technicznych i weryfikuje deklarowane przez kandydata w CV doświadczenie. Ważne jest, aby kandydat aplikujący na stanowisko programisty przygotował się z zagadnień dotyczących języka Java oraz nastawił się na rozwiązywanie zadań praktycznych.

Rozmowa techniczna to również szansa na poznanie przyszłego przełożonego lub lidera technologicznego.

Rozmowa z klientem – po uzyskaniu pozytywnej opinii i rekomendacji technicznej, kandydata od nawiązania współpracy dzieli zaledwie jeden krok.

Osoba z działu HR, koordynująca cały proces, wysyła dedykowany formularz CV osoby ubiegającej się o zatrudnienie do działu odpowiedzialnego za kontakt z klientem końcowym. Dział ten umawia spotkanie kandydata z konkretnym klientem, dla którego prowadzony jest dany projekt.

Klient weryfikuje wiedzę kandydata, jego doświadczenie projektowe oraz kompetencje miękkie, które ułatwią mu nawiązywanie relacji w środowisku biznesowym.
Po pozytywnym przejściu procesu rekrutacyjnego u klienta, danej osobie składana jest oferta współpracy. Po jej zaakceptowaniu następuje procedura onboardingu i podpisanie umowy.

Zdarzają się sytuacje, kiedy na podstawie rozmowy z działem HR i rozmowy technicznej, przyszły przełożony, bądź dyrektor działu technologicznego, ze względu na dostrzeżony potencjał kandydata, podejmuje decyzję o jego zatrudnieniu. Programista rozpoczyna karierę w firmie jeszcze przed rozmową z potencjalnym klientem końcowym. 

W celu zapewnienia najwyższego poziomu i komfortu procesu rekrutacyjnego, potencjalny pracownik na każdym etapie otrzymuje informacje zwrotne o jego przebiegu.

Warto również zaznaczyć, że w dobie pandemii koronawirusa cały proces rekrutacyjny odbywa się zdalnie (online). Rozmowy na każdym z wyżej wymienionych etapów odbywają się za pomocą telekonferencji lub wideokonferencji przy użyciu dostępnych narzędzi do komunikacji online (np. Google Meet, Microsoft Teams i inne).

Jakie wykształcenie/kierunki studiów są pomocne w pracy Java Developera?

Młode osoby interesujące się branżą IT, już na etapie wyboru edukacji po szkole podstawowej, mogą liczyć na szeroką ofertę techników o profilu technik-informatyk czy liceów ogólnokształcących z klasą o profilu matematyczno-informatycznym.

Marząc o pracy programisty Java, większość osób wybiera studia na kierunku Informatyka. Zakres specjalizacji oferowanych na polskich uczelniach jest dziś naprawdę duży. Warto również zainteresować się kierunkami informatyczno-ekonometrycznymi czy inżynierią procesową. Wskazane specjalizacje studiów to m.in.: inżynieria oprogramowania, systemy informacyjne czy aplikacje internetowe. Odpowiednie będą również inne pokrewne specjalności dla programisty np. bazy danych.

Specjalistów z branży IT utożsamiamy z wysokiej klasy profesjonalistami, posiadającymi spory zasób wiedzy technologicznej – powinni oni jednak zdawać sobie sprawę z tego, że decydując się na karierę w tej branży, będą musieli stale rozwijać swoje kompetencje.

Jakie kompetencje kandydata są brane pod uwagę?

Zarówno kompetencje techniczne, jak i miękkie są bardzo istotne na stanowisku Java Developera. 

Wiedza techniczna związana z językiem Java jest tak szeroka, jak jej zastosowanie, ale oprócz znajomości samej Javy absolutnym minimum będzie z pewnością umiejętność wykorzystywania poniższych narzędzi:

- frameworki do tworzenia aplikacji klasy Enterprise, np.: Spring lub Jakarta EE (kiedyś Java EE)
- znajomość interfejsów sieciowych, standardów i protokołów komunikacji sieciowej, np.: HTTP, REST, SOAP 
- znajomość baz danych – relacyjnych, np.: Oracle, Postgres i języka SQL oraz nierelacyjnych, np.: MongoDB, Redis
- narzędzia mapowania obiektowo-relacyjnego (ORM), np.: JPA/Hibernate
- umiejętność pisania testów z wykorzystaniem bibliotek, np.: JUnit, AssertJ, Mockito, Spock, Test Containers
- systemów kontroli wersji, np.: GIT
- umiejętność korzystania z wirtualizacji i konteneryzacji, np.: Docker
- znajomość CI (Continuous integration) /CD (Continuous Delivery)
- narzędzi zarządzania projektem, np.: JIRA
- znajomość zagadnień inżynierii programowania, projektowania architektury aplikacji, wzorców projektowych, znajomość zasad KISS, DRY, SOLID
- wiedza na temat działania JVM
- znajomość kolejek komunikatów, np.: Kafka, RabbitMQ
- znajomość metodologii pracy i zarządzania projektem, np.: Scrum
- mile widziana jest również znajomość takich zagadnień jak TDD, DDD, BDD oraz dodatkowych języków JVM, jak Scala, Kotlin, Groovy.

W pracy każdego programisty, również Java Developera, istotne są kompetencję miękkie, m.in.:

- logiczne myślenie
- rozwiązywanie złożonych problemów technicznych oraz biznesowych 
- wychodzenie naprzeciw potrzebom klienta
- umiejętność pracy w zespole, komunikatywność i łatwość nawiązywania kontaktów
- umiejętność wyszukiwania informacji
- świadomość stosowanych technologii, ich zalet, ale również i ograniczeń 
- otwartość na nowe rozwiązania
- chęć ciągłego ulepszania projektu 
- świadomość ciążących terminów i potrzeb klienta.

Co z kandydatami, którzy chcą się przekwalifikować lub tymi, dla których byłaby to pierwsza praca na tym stanowisku – czy brak doświadczenia dyskwalifikuje?

Ofert pracy dla programistów Java jest dużo, jednak takich, które są skierowane dla osób bez doświadczenia zawodowego lub z minimalnym doświadczeniem (juniorów) nie spotyka się tak często. W niektórych firmach IT zdarzają się rekrutacje na tego typu stanowisko wymagające minimalnego doświadczenia, które pozwala na przeszkolenie pracownika w danym projekcie.

Nie jest to jednak częste, a olbrzymia większość prowadzonych rekrutacji to stanowiska dla osób z co najmniej 2- lub 3-letnim doświadczeniem zawodowym. 

Britenet jest jednak otwarty na współpracę z osobami na poziomie nowicjuszy, dając im możliwość rozwoju swoich umiejętności. Od kilku lat tworzymy program StepOne.

Jest to program dla studentów, jak i osób chcących się przekwalifikować, które mogą w naszej firmie poszerzyć horyzonty zawodowe. Edycje Programu StepOne odbywają się cyklicznie w wybranych oddziałach firmy. Uczestnicy spotkania mają za zadanie rozwiązanie testu lub zadania z podstaw preferowanego języka programowania (np.: Java, JavaScript). Osoby, które pozytywnie przejdą ten etap, zapraszane są na rozmowę z Team Leaderem, a najlepsi zostają zatrudnieni.

Młodsi i mniej doświadczeni programiści pracując pod okiem bardziej doświadczonych kolegów, zawsze mogą liczyć na ich pomoc i czerpać od nich wiedzę. Dzięki temu nieustannie się rozwijają i zdobywają niezbędne kompetencje.

Prowadzimy cykliczne wewnętrzne meetingi technologiczne, mające na celu dotrzymanie kroku ciągle rozwijającej się technologii, poprzez poznawanie branżowych nowinek, ale również uczenie się dobrych praktyk oraz utrwalanie zdobytej wiedzy. 

Co roku, wraz z innymi działami technicznymi naszej firmy, organizujemy firmową konferencję technologiczną, która jest okazją do dzielenia się zdobytym doświadczeniem i wiedzą. Nie zapominamy też o ciągłym rozwoju kompetencji naszych programistów,  wspierając ich rozwój osobisty i poszerzanie wiedzy poprzez dostęp do materiałów szkoleniowych, umożliwienie udziału w konferencjach tematycznych, w których nasi pracownicy jako profesjonaliści często sami dzielą się wiedzą i doświadczeniem z całą społecznością programistów języka Java.

Co mogę doradzić? Osobiście uważam, iż najważniejszym aspektem w znalezieniu pracy jako Junior Java Developer są pasja oraz praktyka, które stanowią aż 90% sukcesu.

Aby wyróżnić się na tle innych kandydatów, warto mieć swoje portfolio projektowe, chociażby w postaci konta na GitHubie. Im więcej zrealizowanych projektów (nawet tych niekomercyjnych), tym większe szanse na wzbudzenie zainteresowania rekruterów.

Decydując się na pierwszą pracę w IT lub przebranżowienie się, warto również na bieżąco przeglądać ogłoszenia – już na początku można dowiedzieć się, jakie są najczęstsze wymagania potencjalnego pracodawcy i od czego zacząć naukę.

W jakich inicjatywach/aktywnościach warto brać udział, aby zdobyć cenne dla tego stanowiska doświadczenie? Czy są certyfikaty, w które warto zainwestować?

Aby zdobyć cenne doświadczenie na stanowisku Java Developera, należy interesować się tym, co dzieje się w branży w kraju, jaki i na świecie.

Warto wziąć udział w przynajmniej jednej konferencji dedykowanej dla programistów Java np.: Confitura, Java Developers Day (JDD), Geecon, DevCrowd, Devoxx Poland. Wstęp na nie kosztuje najczęściej kilkaset złotych, ale patrząc na mnogość tematów, często zagranicznych mówców i sam poziom organizacji, warto zainwestować.

Coraz więcej backendowej społeczności interesuje się Java User Groups tzw. JUG’ami, czyli spotkaniami programistów Java, organizowanymi przez lokalne grupy w dużych miastach. Niektóre JUGi posiadają swoje strony internetowe, inne można znaleźć na grupach Google, jednak obecnie widać pozytywny trend polegający na przechodzeniu wszystkich na jedną platformę, jaką jest Meetup. Na spotkaniach często omawiane są różne (czasami mało znane) technologie z prezentacjami na podstawie doświadczeń z konkretnych projektów, co jest szczególnie ciekawe, bo jest to wiedza, której nie znajdziemy ani w książkach, ani w sieci. Spotkania są bezpłatne.

Na rynku dostępna jest również bardzo ciekawa literatura branżowa, która pomaga odkryć język w teorii oraz dobre praktyki. Polecane przez doświadczonych programistów książki to np.: twórczość Roberta C. Martina m.in. „Czysty Kod”, „Czysta architektura”, Joshua Bloch i jego „Java. Efektywne programowanie”, twórczość Martina Fowlera, wzorce projektowe wg. Gangu Czworga czy też Bruce Eckel – „Thinking in Java”

Warto zaglądać na strony większych firm z sektora IT, ponieważ w związku z ciągłym poszukiwaniem nowych pracowników, decydują się one podzielić swoją wiedzą w trakcie różnych eventów branżowych. Takie wydarzenia organizowane są czasami we współpracy z dużymi uczelniami, polecam więc zaglądać również do sekcji newsów swojego uniwersytetu, czy politechniki. 

Blogi i tutoriale również pozwalają na zdobycie technicznych umiejętności związanych z programowaniem w języku Java. Obecnie najbardziej popularnym blogiem (platformą) jest baeldung.com prowadzony przez Eugena Paraschiva oraz blog adam-bien.com.

Stack Overflow to jeden z najpopularniejszych serwisów społecznościowych, na którym programiści mogą zadawać pytania dotyczące szeroko pojętego wytwarzania oprogramowania. 

Wiele firm technologicznych posiada własne programy certyfikacyjne, mające sprawdzać wiedzę i gwarantować, że posiadacz certyfikatu dysponuje umiejętnościami na odpowiednim poziomie. Najbardziej popularnym certyfikatem, jeśli chodzi o język Java, są certyfikaty firmy Oracle. Wraz z kolejnymi wersjami Java pojawiają się również kolejne wersje certyfikatów na różnych poziomach, na przykład OCPJP (Oracle Certified Professional, Java SE Programmer), SCJP (Sun Java Certified Programmer).

Trzeba jednak pamiętać, iż certyfikaty dla programistów Javy nie mają znaczenia formalnego. Nie dają, jak dyplom inżyniera czy magistra, wyższego wykształcenia. Nie gwarantują też żadnych uprawnień zawodowych wymaganych przepisami prawa. Certyfikat jest po prostu obiektywnym potwierdzeniem, że dana osoba zna język Java i potrafi w nim programować na określonym poziomie. Niemniej posiadanie takiego certyfikatu wiąże się z pewnym prestiżem.

W jakich projektach biorą udział Java Developerzy zatrudnieni w Britenet?

Britenet ma do zaoferowania szeroki wachlarz projektowy dla Java Developera, dlatego każdy znajdzie tu coś dla siebie. Technologia Java już od kilkunastu lat utrzymuje się w ścisłej czołówce rankingu TIOBEX Index, dlatego też nasze zespoły javowe są tak liczne i tworzą największy dział techniczny w firmie.

W zależności od wymagań klienta pracujemy z różnymi technologiami opartymi o JVM. Tworzymy rozwiązania integracyjne oparte o architekturę ESB. Wykonujemy moduły systemów klasy enterprise, systemy rozproszone oparte o architekturę mikroserwisów, elementy frontend z wykorzystaniem zarówno sprawdzonych technologii Java, jak i Angular lub React. Nasze rozwiązania wykorzystywane są głównie do tworzenia relacyjnych baz danych. Nie mniej jednak nie jest nam obce stosowanie nierelacyjnych i dokumentowych systemów składowania.

Projekty, nad jakimi pracują nasi specjaliści, obejmują wiele różnych branż i obszarów biznesowych, takich jak:

- bankowość i finanse
- ubezpieczenia
- projekty rządowe związane z cyfryzacją państwa
- sprzedaż, obsługa klienta
- call center
- rozrywka
- media
- e-commerce

Nasze rozwiązania są wdrażane i funkcjonują nie tylko na terenie Polski, ale również u naszych Klientów na całym świecie.