Kako je raditi kao Java Developer?

Intervju 6. sep. 2022

Već godinama unazad Java se kotira visoko na lestvici najtraženijih programskih jezika, onih koji su omiljeni među developerima, kao i onih koje bi programeri želeli da nauče.

Uz široku primenu (sa Javom možeš kreirati gotovo sve - od business apps, mobilnih igrica, automatizovanih testova i sl.), potražnja za Java poslovima svuda u svetu kontinuirano raste. Otud odluka da ovladaš ovim programskim jezikom i napreduješ kroz nivoe senioriteta, otvara brojne prilike za napredak u karijeri.

Ako si odlučan da svoju karijeru dalje usmeravaš u ovom pravcu, biće ti korisno da iz prve ruke čuješ kako izgleda svakodnevnica Java developera, o raznovrsnosti projekata, koje tehnologije preovlađuju, kako se biraju i kakva može biti tvoja uloga u tome. Svoje iskustvo i pogled na rad na ovoj roli sa nama deli Boban Petković, Java Team Lead i Head of Architecture u kompaniji Endava. Pre nego što je pre osam godina počeo da vodi ceo tim javaša, Boban je i sam šest godina radio kao Java Developer u Endavi.

Bobane, približi nam za početak kako izgleda jedan dan Java Developera na određenom projektu?

Specificnost samog projekata kao i senioritet Java inženjera u nekoj meri utiču na dnevnu rutinu. Jedan uobičajen radni dan kreće kraćim sastankom sa timom, gde svaki od članova tima podeli informacije o tome na čemu je radio, na čemu će raditi i da li postoji neki problem koji ga blokira u radu. Većina projekata koristi Scrum ili Kanban i samim tim standardni sastanci/ceremonije su svakako deo rutine svakog Java inženjera. Većina njih ostatak dana provede u kodiranju i implementaciji svojih dnevnih zadataka, povremenim sastancima sa ostalim članovima tima, kao i sastancima sa klijentom kada je to potrebno.

Inženjeri većeg senioriteta takođe deo svog vremena posvećuju mlađim kolegama, kroz proces code review-a i prenosa znanja i dobrih praksi. Jedan primer toga su i povremene tehničke diskusije u našoj kompaniji, kao što su na primer SOLID principi, dizajn paterni, kreiranje resilent aplikacija, dobre prakse u dizajniranju API-ja, itd. Neretko, Java inženjeri učestvuju i u kreiranju dizajna neke nove funkcionalnosti ili procene nekih novih tehnologija, kao i mogućnosti njihove primene.

Kada govorimo o tehnologijama, šta su po tvom mišljenju prednosti novih, a šta starijih tehnologija na projektu? I koje su opcije u situacijama kada na projektu ima puno legacy koda?

Svakako su nove tehnologije nešto što privlači većinu inženjera, jer donosi nove izazove i prilike za učenje novih stvari. Takođe, nove tehnologije donose novine i poboljšanja koja olakšavaju svakodnevni rad inženjera.

Sa druge strane, nove stvari često donose i nove izazove. Nove tehnologije često još nisu prošle proces dokazivanja na velikom broju produkcionih sistema i samim tim odluka da se pređe na njih može dovesti do poteškoća na projektu. Iz ovog razloga, klijenti velikih sistema kao što su na primer bankarski sistemi, ne odlučuju se lako na prelazak na nove tehnologije, i samim tim se ponekad završavaju sa legacy kodom.

Veliki i ozbiljni sistemi se naime, godinama razvijaju i svakako ne mogu da isprate tempo pojave novih tehnologija, tako da je neizbežno da u nekom trenutku postanu legacy. Najbolji pristup ovom problemu je držati legacy kod na nekom optimalnom nivou kroz kontinuirani proces modernizacije. Većina projekata koja je zasnovana na legacy kodu ne posvećuje puno pažnje praćenju technical debt-a i kontinuiranom procesu review-a arhitekture sistema. Kontinuiran, inkrementalni i kontrolisan proces refaktorisanja i modernizacije manjih delova sistema je krucijalan.

Kao senioru, u kojoj meri su fleksibilnost u radu i zanimljivi projekti značajni za senior Java developere?

Svakako je fleksibilnost u radu bitan aspekt svakom inženjeru. Mislim da je danas nezamislivo raditi u bilo kojoj IT kompaniji gde ne postoji mogućnost fleksibilnog radnog vremena ili rada od kuće. Ono što je svakako seniorima najbitnije je mogućnost donošenja odluka kada su u pitanju tehnologije koje se na projektu koriste.

Svaki iskusan senior inženjer dobro razume da nije uvek moguće veliki sistem jednostavno prepisati, ali je jako bitno da postoji kontinuirani proces refaktorisanja i prebacivanja na novije tehnologije. Iako rad sa legacy kodom na prvu deluje kao nešto loše, zapravo je jedan od najboljih načina za sticanje iskustva sa novim tehnologijama. Ono što je bitno jeste da u celom ovom procesu modernizacije, senior inženjeri imaju mogućnost donošenja odluka na osnovu stečenog iskustva. Projekti koji donose neke nove i zanimljive tehnologije su tako, svakako jedna od bitnih stvari. Rad na ovakvim projektima seniorima pruža nove izazove i daje im mogućnost za širenje svoje ekspertize i daljeg usavršavanja.

Šta bi još izdvojio kao bitan faktor pri zadržavanju iskusnih seniora u kompaniji?

Mislim da su međuljudski odnosi bitan faktor. Postojanje zdravog okruženja je jako bitna stvar za normalno funkcionisanje svakog pojedinca. Senior inženjeri rade u timovima gde je za uspeh projekta bitna saradnja sa različitim ljudima koji zajedno teže istom cilju. Okruženje u kome svaki član tima zna i ispunjava svoj deo posla, spreman je da zatraži i pruži pomoć, kao i okruženje u kome se uvažava mišljenje i postoji fer sistem vrednovanja je bitan faktor koji motiviše svakog.

Šta su prednosti kompanije u kojoj radiš? Koliko raznovrsnost i veliki broj projekata na kojima se traže Java developeri, utiče na prihvatanje posla u Endavi? I u kojoj meri mogu da se biraju projekti kako bi se našao perfect match?

Endava pruža mogućnost rada na velikom broju projekata gde je Java i čitav Java ekosistem primarna tehnologija. Projekti su raznovrsni, pokrivaju različite domene i samim tim pružaju priliku svakom Java inženjeru da pronađe projekat koji mu odgovara.

Činjenica da Endava klijenti dolaze iz različitih sfera poslovanja kreira priliku za primenu Java tehnologija u različitim oblastima, od standardnih web aplikacija, mobilinih, embedded, streaming aplikacija, pa sve do sistema za mašinsko učenje i cloud automatizacije. Uz to, koncept rotacije  koji postoji u Endavi inženjerima pruža mogućnost da posle nekog vremena rada na jednom projektu promene projekat, i samim tim probaju nešto što im u tom trenutku deluje zanimljivije.

Da li i tebi rola Java developera sada deluje još zanimljivije nakon ovih saznanja? Nesumnjivo je reč o dinamičnoj poziciji sa prilikama za učenje, napredak i razvoj, pa ako te dodatno zainteresovalo da se oprobaš u njoj ili saznaš više o radu u Endava timu, čekiraj njihov profil na Joberty plaftformi kao i otvorene pozicije koje nude. Među njima su i role za Java inženjere

Tagovi

Endava

Koristeći najnovije tehnologije, zajedno osmišljavamo I isporučujemo inovativna rešenja koja pomažu našim klijentima u procesu stalne digitalne transformacije poslovnih procesa.

Tvoja prijava je uspešno sačuvana!
Odlično! Da bi imao pristup kompletnom sadržaju bloga potrebno je da završiš proces plaćanja.
Tvoja prijava je uspešna!
Tvoj nalog je aktiviran, sada imaš pristup kompletnom sadržaju bloga.