Naziv pozicije: Robotics Engineer (C++ )
Naziv poslodavca: Gideon Brothers
Godina diplomiranja: 2019.
Mentor: izv. prof. dr. sc. Igor Čavrak
Smjer studija: Računalno inženjerstvo
Pozdrav svim čitateljima! Moje ime je Marko. Nakon završene V. gimnazije u Zagrebu, započeo sam studij Računarstva na FER-u. Studentskih se dana rado sjetim – neprospavanih noći zbog kolokvija i labosa malo manje, ali kava i partija bele u E zgradi malo više 🙂 Studij sam završio prije nepune dvije godine i trenutno radim kao Robotics Engineer (C++) u tvrtki Gideon Brothers u Zagrebu. U slobodno vrijeme volim igrati nogomet i košarku, svirati violinu i gitaru te pročitati kakvu povijesnu ili zemljopisnu zanimljivost.
Koje su tvoje odgovornosti na trenutnom radnom mjestu, čime se baviš?
Gideon Brothers razvija autonomne mobilne robote za automatizaciju skladišta, a ja se bavim razvojem dijagnostičkog i upravljačkog enginea za ta vozila. Zadatak tog enginea je izvršavanje misija kao što su primjerice prijevoz paleta ili praćenje čovjeka, pri čemu se usklađuje rad svih komponenata sustava, a mora se osigurati njegova robusnost i mogućnost oporavka iz nepredviđenih situacija. Odatle i ime samom engineu – brain engine, a po njemu je nazvan naš tim. Brain tim se osim toga još bavi i sigurnošću, konfiguriranjem i verzioniranjem sustava, razvijanjem i održavanjem naših servera te još ponekim DevOps aktivnostima.
Kako izgleda tvoj tipični radni dan?
Dan obavezno započinjem kavom i razgovorom s kolegama. Svaki se put pretrese druga tema: sport, politika, pročitana knjiga, novi blog post na modernescpp ili fluentcpp, a uvijek se zbije i dobra šala. Ovo je odličan način da se dobije “food for thought” za taj radni dan. Nakon toga se kreće s radnim planom za taj dan, koji si pripremim dan ranije, a sastoji se najviše od kodiranja, ali i od drugih zadataka, kao što su sastanci s kolegama kada se planiraju novi featurei i usklađuje raspored s drugim timovima.
Koji su izazovi s kojima se susrećeš na radnom mjestu?
Mislim da se izazovi bitno mijenjaju ovisno o vremenu koje se provede na radnom mjestu. U početku mi je najveći izazov bio pohvatati postojeći i pisati dobar novi kod, upoznati se s drugim komponentama sustava, što one rade, steći znanja iz domene te naučiti surađivati s drugim timovima kada se razvija novi feature. Kako sam se sa svime time sve više upoznavao, postajalo mi je puno jednostavnije kodirati i planirati, jer sam već unaprijed mogao naslutiti što bi mogao biti problem u razvoju koda. Međutim, sada kada sam odgovoran i za dvojicu mlađih kolega, pojavili su se novi izazovi. Trebam znati dobro isplanirati, rasporediti te rastumačiti poslove kolegama tako da nemaju ni prejednostavan ni pretežak zadatak, biti u toku kako bih ih znao usmjeriti i ne manje bitno, znati podučiti mlađe kolege, ali od njih i naučiti.
Kako je izgledao tvoj karijerni put? Na koji način si mijenjao radna mjesta i poslodavce?
Moj prvi studentski posao bio je u administraciji u tvrtki Etranet Grupa, a tamo sam odradio tri ljeta, nakon svake godine preddiplomskog studija. Kada sam stekao više znanja iz računarstva, odradio sam ljetni posao u tvrtki CS Computer Systems, nakon prve godine diplomskog studija. Tamo sam se podrobnije upoznao s razvojem koda za iOS te tehnikama efikasnijeg upravljanja bazom podataka. Kako sam postao stipendist Nuklearne Elektrane Krško, nisam imao dovoljno vremena za studentski posao jer sam se fokusirao na što bolji prosjek. Nakon studija došla je dilema hoću li nastaviti karijeru u znanosti kao doktorand na Institutu Ruđer Bošković kod dr.sc. Šmuca i dr.sc. Lipića ili otići raditi u industriju. Naposljetku sam se odlučio za posao u Gideon Brothersu jer je posao vrlo izazovan, koriste se “cuttingedge” tehnologije, projekti su jako zanimljivi i može se učiti od 10-ak doktora znanosti i 50-ak inženjera. Mislim da je to savršeno okruženje za mladog inženjera računarstva.
Kada se razvio interes za područje kojim se trenutno baviš?
Rekao bih da se taj interes indirektno razvija od početka studija. Odlučio sam se za profil Računalnog inženjerstva, u sklopu kojeg se izučava puno različitih stvari – od programiranja ugradbenih računala, preko učenja oblikovnih obrazaca i objektnog oblikovanja, sustava za rad u stvarnom vremenu, neuroračunarstva pa do razvoja podrške za web aplikacije i mnogih drugih područja. Zbog toga su me interesirale različite stvari. Tijekom preddiplomskog studija najviše sam proučavao algoritme koordinacije i raspodijeljene sustave, kasnije sam razvio interes za razvoj koda za platformu iOS, pred kraj studija sam se više bavio dubokim učenjem, osobito na podacima strukturiranima u obliku grafova. Ta svestranost mi je naposljetku dobro došla na ovom poslu – robotika obuhvaća znanja iz elektrotehnike i raznih područja računarstva, a za razvoj dobrog integracijskog enginea u robotima potrebno je dobro razumjeti vrlo široku domenu, kakva je baš u robotici.
Koje vještine i znanja koristiš u svom poslu? Što si od toga naučio tijekom studija, a što neovisno o studiju ili naknadno?
Gotovo se isključivo koristim programskim jezikom C++, nešto manje Pythonom, kako bih napisao što bolji kod koji je siguran i omogućuje oporavak iz grešaka. Potrebno je dobro znati teoriju računarstva, kako rade sustavi u stvarnom vremenu, razumjeti način rada svih komponenti sustava, od lokalizacije, navigacije, semantike pa sve do drivera na robotima. Kao i u svakom poslu koji uključuje programiranje, vrlo je bitno znanje oblikovnih obrazaca i oblikovanja arhitekture koda. Ne manje bitno, potrebno je poznavati i operacijski sustav Linux te neke DevOps stvari koje uvelike olakšavaju konfiguriranje sustava te proces buildanja i deploymenta koda. Studij mi je ponudio odlične temelje iz matematike i razumijevanje raznih područja računarstva, koji su u tim područjima glavni problemi i osnovne metodologije njihovih rješavanja. Mislim da je to najbitnije što se na faksu nauči, nije poanta da nam se objašnjava konkretni framework. To se radi neovisno o studiju, kao i detaljnije izučavanje programskih jezika te ostalih metodologija s kojima se ne susretne na faksu. Sve ostale stvari dolaze samim radom i iskustvom.
Koji savjet bi dao studentima koji su u potrazi za poslom?
Glavni savjet jest taj da se nemate čega bojati. Tvrtke koje zapošljavaju studente i juniore ne očekuju da sve odmah znate, bitniji je pristup poslu i želja za učenjem. Primjerice, kada sam dobio posao u Gideon Brothersu, nisam znao ni ROS ni Gazebo, a C++ sam koristio jako malo, na završnom radu i u par projekata. Ono što je poslodavcu bitno kada vas zapošljava kao juniora jest da imate dobar način razmišljanja, da vas uistinu zanima to što želite raditi i da imate volje svakoga dana naučiti nešto novo i raditi na sebi kao inženjeru. Naposljetku, velik je blagoslov da imate mogućnost raditi posao u kojem uživate, tako da to posebno cijenite!