Zbog prirode posla, OptimoRouteovi programeri u 4 godine nauče stvari koje neki ne vide u čitavoj karijeri - Android

Get it on Google Play

Zbog prirode posla, OptimoRouteovi programeri u 4 godine nauče stvari koje neki ne vide u čitavoj karijeri - Android

Umjesto vojske inženjera, oni osvajaju svijet uz malen tim i odličnu arhitekturu i dizajn. Na čemu radi i kako radi tim iza jednog od najboljih sustava za optimizaciju ruta, saznali smo od osnivača Frane Šarića.

The post Zbog prirode posla, OptimoRouteovi programeri u 4 godine nauče stvari koje neki ne vide u čitavoj karijeri appeared first on Netokracija.

Nije tajna kako je konkurencija za svakog pojedinog developera izuzetna. Kada danas završite FER ili neki od srodnih fakulteta gotovo sigurno već imate barem jednu ponudu za posao od neke agencije ili tvrtke. Dilema često kreće od toga je li bolje otići u veliku tvrtku, agenciju, ili u manji tim. Danas ćemo vam uz Franu Šarića, suosnivača hrvatskog OptimoRoutea pojasniti zašto bi razvoj digitalnog proizvoda mogla biti vaša karijerna opcija.

Pronalazak sličnosti u najrazličitijim industrijama

Ako ste programer koji želi isprobati velik broj različitih tehnologija i vjerujete da biste se u svakoj našli kao kod kuće – sigurno vas zanima kako radi tim koji okuplja bivše Googleove, Facebookove, IBM-ove i Yelpove inženjere. Najvažnija stvar kod OptimoRoutea je posve in-house razvijen algoritam koji je fleksibilan, prilagodljiv i rješava zadatke koji inače mogu biti izuzetno kompleksni kada imate 1000 klijenata.

OptimoRouteova rješenja omogućavaju tvrtkama svih veličina da što je moguće bolje ispoliraju rute svojih zaposlenika, i u tome su jedni od najboljih na svijetu. Frane:

Naš napredni algoritam uzima u obzir cijelu cestovnu mrežu, vrijeme putovanja, radno vrijeme, plaće vozača ili dostavljača, potrebne vještine, troškove goriva i vozila i još mnoge druge varijable koje utječu na konačnu cijenu odnosno trošak u stvarnom svijetu. Više od tisuću poduzeća za dostavu i terenske usluge u mnogim različitim industrijama danas koriste OptimoRoute za izradu najboljih mogućih rasporeda i ruta.

Medvedgrad
OptimoRoute surađuje s klijentima iz svijeta, ali i s domaćim Medvedgradom.

Ideja za OptimoRoute nastala je kada je suosnivač Goran Kukolj razvijao sustav za praćenje vozila i tako shvatio da postoji izuzetna potreba tvrtki za ovakvim rješenjima. Danas njihov sustav koristi više od 1000 klijenata iz raznih industrija:

Koriste nas tvrtke i obrti za dostavu hrane ili robe, ali i čistači bazena. Isto tako među našim klijentima imamo i Fortune 500 tvrtku i najjaču tvrtku za zbrinjavanje industrijskog otpada u EU. Na prvi pogled izgledaju neusporedivo: različite industrije, različiti klijenti, no njihov radni dan informatičar na kraju predstavlja s identičnim strukturama podataka, grafovima, matricama, itd. i rješava problem istim algoritmima.

Zanimljivo je kako je tehnika raspoređivanja rute kroz više dana koju je OptimoRoute razvio za protupožarne inspektore na kraju našla svoj put do prodavača i dostavljača mesa. Klijenti, jasno, teško vide kako je to moguće, ali za OptimoRoute (i njihove developere) je povezivanje nepovezivog postalo svojevrstan način poslovanja.

Algoritmi su dovoljno “pametni” da slažu sve

Zanimljivo kako se tisuću klijenata iz desetaka različitih industrija koordinira uz pomoć malo više od dvadesetak zaposlenika. Na pitanje kako se ne ‘ubijaju’ od posla s obzirom da su malen tim, Frane mi odgovara:

Ili ćete utrošiti vrijeme u arhitekturu i dizajn ili ćete imati vojsku inženjera koja će za gotovo svaku novu situaciju ići pisati novu stvar, ali tada više nemate eksponencijalno rastući startup, nego sporo rastuću konzultantsku kompaniju koja će se urušiti pod nepreglednom količinom koda za održavanje.

Ovo je zapravo jedini mogući način, pojašnjavaju iz OptimoRoutea. Kada ne bi imali sustav u oblaku koji je otporan na probleme i razrađenu arhitekturu, morali bi upregnuti čitave timove koji ne bi mogli spavati od notifikacija i alarma, što nikako ne bi bilo smisleno – a ni previše skalabilno, dodaje Frane.

Možemo se pohvaliti da danas imamo dostupnost veću od 99,99% u svim vremenskim zonama zahvaljujući silnom trudu uloženom u dizajniranje robusnog high availability cloud sustava. Na primjer, imamo otpornost na prekid rada mreže, pad računala, razno raznih vanjskih servisa, itd. To je pogotovo važno jer nas tvrtke koriste 24/7 od SAD-a i Kanade do Australije i Novog Zelanda.
Što je zajedničko dostavi mesa, protupožarnoj inspekciji ili servisu bojlera? Svi moraju voziti do klijenata, a iako su poslovi različiti – optimizacija njihovih ruta je djelo zagrebačkog OptimoRoutea.

Odlična poveznica tu je Microsoft Word, objašnjava mi Frane. Svi ga koristimo za neke svoje ideje i projekte, to je jedno rješenje koje je prilagodljivo svima. Ne postoji Word za pravnike ili Word za pisce. Osim toga, ni Word u svojoj prvoj inačici nije imao sve značajke koje su dostupne danas, ali se došlo i do njih jer su postojale osobe kojima su trebale. Tako i OptimoRoute svakodnevno širi svoju ponudu značajki kako bi sustav prilagodili još većem broju industrija te tako njima pomogli u skaliranju poslovanja:

Tvrtka Telgian za protupožarne inspekcije je silno željela da OptimoRoute može napraviti planove za nekoliko tjedana unaprijed. Bacili smo se na to jer smo prepoznali da će to koristiti i brojne druge tvrtke koje s nama surađuju. Telgian je bio presretan, realizirali su ogromne uštede, a mi smo s vremenom dobili još troznamenkasti broj klijenata koji su tražili isto rješenje.

OptimoRoute je dizajniran za rad s Googleom, Bingom, AWSom, Azureom i golim serverima te tako da je dijelove moguće prebacivati na Rust, Go, C++ ili gdje god paše. Algoritmi su dovoljno “pametni” da slažu sve – od kamiona s namještajem do ruta servisera plinskih postrojenja diljem svijeta.

Nešto ne znate? Naučit ćete.

Naravno, ove modifikacije i prilagodljivost znače da su developeri koji u OptimoRouteu rade motivirani kontinuirano nadograđivati svoje znanje. Ipak, ne moraju nužno imati široko predznanje u startu. Iz OptimoRoutea mi kažu kako će kod njih u prvom mjesecu novi programer pisati u Javascriptu, Pythonu, C++u i Typescriptu, čak i ako nikada nije radio u većini tih jezika. A cilj ovoga?

Cilj nam je da inženjeri preuzmu veći dio OptimoRoute sustava, usavršavaju ga i nadograđuju što je više moguće i onda prelaze na nove stvari. Dakle, nakon početnog širenja znanja svi više idu u dubinu u nekom dijelu sustava i nakon nekog vremena prebacuju se dalje na nove izazove.

Ključ rada u OptimoRouteu tako postaje način razmišljanja i primjena znanja na gotovo sve moguće probleme. Tako od inženjera žele stvoriti osobu koja se može uhvatiti bilo kakvog teškog problema u računarstvu. Frane mi kaže da žele da vas, nakon što radite nekoliko godina, kolege pitaju kako je to što radite uopće moguće napraviti:

Najiskusniji inženjeri brzo uđu u desetke ili stotine tisuća linija tuđeg koda, te ubrzo naprave kirurški precizne promjene kojima dodaju neko poboljšanje ili isprave kritični bug.

Prekaljeni programeri kroz nekoliko mjeseci dubinski usvoje novi programski jezik i lako se prilagođavaju novim bibliotekama. Ne znate neki algoritam? Pročitat ćete o njemu znanstveni rad i sintetizirati vlastito rješenje, ponekad iz nule. Otići ćete i korak dalje i primijetiti da se za neki naš slučaj taj algoritam može pojednostaviti i unaprijediti.

Velik dio malog tima, a ne obrnuto

Ako ste pročitali do ovog dijela, vjerojatno znate da se u OptimoRouteu neće raditi o tome da se od jutra do sutra bavite samo jednim dijelom jednog velikog sustava, kao u nekim drugim tvrtkama:

U OptimoRouteu u kratkom vremenu radite na backendu, frontendu, distribuiranim sustavima, hvatate se u koštac s algoritamski zahtjevnim kodom i slično. Da ne pričamo o programskim jezicima: ako se niste susreli s najnovijim idiomima u C++-17 – koga briga, naučit ćete kroz par mjeseci.

Novi OptimoRoute programeri tako se već u nekoliko mjeseci uvlače u rasprave o distribuiranim sustavima, jezicima, bibliotekama i obrascima softverskog dizajna. Nakon nekoliko godina tako dobijete ljude koji znaju puno, ali najviše od svega znaju rješavati probleme na kreativan način:

Što se postiže nakon nekoliko godina? Sve je manje stvari koje izgledaju kao čarolija. Novi programski jezik podsjeća na 3-4 koja ste već susreli. Nove biblioteke recikliraju stare ideje, počinjete čak biti amaterski softverski arheolog i govoriti stvari kao što su: “Pa OK, ovo je Microsoft pokušao u 1990-ima sa CORBA-om”.

Polako, ali sigurno postajete autoritet drugim inženjerima koji spontano prilaze i oslanjaju se na vaše iskustvo i znanje. Često kažemo da zbog naše prirode posla vidite u 3-4 godine ono što mnogi ne vide kroz cijeli radni vijek.

Čak i gamedev iskustvo dobro dođe

OptimoRoute specifičnosti ne staju samo na širokom znanju. Frane mi kaže da, budući da ih koriste stotine tvrtki istovremeno naglasak mora biti na performansama same aplikacije. Optimizacijski engine pisan je u C++-u, backend u Python, frontend uglavnom u JavaScriptu a mobilna aplikacija u Typescriptu s nešto Objective-C i Java-e:

Za vizualizaciju više tisuća narudžbi ne možemo se osloniti na klasičan prikaz u internetskom pregledniku pomoću DOM-a jer je to iritirajuće sporo. Umjesto toga koristimo Canvas i WebGL, a to su tehnologije puno bliže nekome tko je pisao 2D/3D engine za računalne igre.

Ako želimo postići glatke animacije ogromnih GANTT dijagrama servisa i dostava, brzo skrolanje i rad na slabijim računalima (kakve naši korisnici često imaju), pazit ćete da GPU preuzima maksimalnu količinu posla i znat ćete i pokoju stvar o shaderima, font atlasima, itd. a slične vještine imat će i netko tko je radio svoj 3D engine iz nule.

Za kraj, Frane mi kaže kako je OptimoRoute tijekom pandemije surađivao s velikim brojem tvrtki koje su nastojale prilagoditi svoje poslovanje novonastaloj krizi, dapače tijekom krize ostvaruju rekordne stope rasta. Kao primjer izdvajaju Local Roots iz New Yorka koji je pokrenuo dostavu i povećao flotu dostavnih vozila za četiri puta u samo 48 sati, a broj dostava im je narastao s 50 tjedno na gotovo 400 dnevno.

Sustav koji im omogućava glatke dostave je, jasno, djelo male tvrtke iz Zagreba u kojoj se prije svega ponose na svoje programere i činjenicu da oni mogu riješiti gotovo svaki problem koji postoji u poslu. Želite li biti dio tima, znate adresu.

The post Zbog prirode posla, OptimoRouteovi programeri u 4 godine nauče stvari koje neki ne vide u čitavoj karijeri appeared first on Netokracija.

14/10/2020 09:05 AM