Intervju - MATEJ BAĆO: Razvijamo švicarsku medicinsku IoT platformu u Go jeziku

Intervju - MATEJ BAĆO: Razvijamo švicarsku medicinsku IoT platformu u Go jeziku

Mali Zagrebački ured švicarskog Medisantea u potrazi je za Go developerom, zbog čega smo odlučili popričati s njihovim lead developerom Matejom Baćom i vidjeti što bi ih moglo privući u ovu zanimljivu tvrtku.

Za početak, čime se Medisante bavi i kako je došao u Zagreb?
Medisante je švicarski IoT startup. Bavimo se Remote Patient Monitoringom, odnosno medicinskim ustanovama omogućujemo nadgledanje pacijenata dok se nalaze u svom domu. Naša IoT platforma može se spojiti na bilo koji medicinski uređaj i povezati ga s bilo kojim bolničkim sustavom i slati podatke o pacijentu koji boluje od kroničnih bolesti poput primjerice dijabetesa ili srčanih bolesti u praktički realnom vremenu.

Ja za Medisante radim od ožujka prošle godine, a kako je suradnja jako dobro funkcionirala, u jednom trenutku Švicarci su zaključili kako u Hrvatskoj ima dobrih developera i predložili mi proširenje tima. U ovom trenutku u Zagrebu smo trojica developera i tražimo četvrtoga.

Čime se bavite vas trojica koji ste u Zagrebu?
Dvojica smo orijentirani na back-end, a treći na front-end. Programer kojeg tražimo također bi bio back-end orijentiran.

Što bi moglo privući tog Go developera?
Između ostalog, prednost rada za Medisante u Zagrebu je iskustvo koje se na poslu može dobiti – radimo serverless, a većina koda se izvršava kroz AWS Lambde. Svi developeri rade i ops, tj. moglo bi se reći da živimo DevOps. Uz sve to, razine kvalitete koja je potrebna je vrlo zahtjevna. Imamo automatizirane testove za sve aspekte platforme.

Sve promjene na infrastrukturi se rade kroz kod, konkretno, koristimo Terraform prilikom izmjene nekog resursa i dodavanja novog, a naš CI alat digne kompletnu testnu infrastrukturu za tu grupu servisa koja se mijenjala u random AWS regiji i izvrši testove nad njom, nakon čega je počisti.

Radno vrijeme je fleksibilno, radimo na agilnim principima u kojima je primarni alat Jira board. Svaki dan imamo 15-minutni sastanak kako bismo znali čime se tko trenutno bavi i treba li kome pomoć. Ostatak raspodjele vremena je slobodan, ali je za vrijeme radnog vremena od 9 do 17 poželjno biti dostupan za komunikaciju ili najaviti npr. sat-dva nedostupnosti - čisto da kolege znaju. Nakon on boardinga remote rad nije problem.

Eksperimentiranje s tehnologijama je svakodnevna stvar i vodi se kao task kojeg developer sam bira s Jira boarda na kojem su taskovi posloženi od strane project ownera.

U timu smo otvoreni prema idejama i upotrebljenim tehnologijama. Radimo zajedno da rješenje i naš proces budu optimalni za kvalitetu i fleksibilnost daljnjeg razvoja. Mišljenja kolega koji vide probleme i rješenja na nove načine se cijene.

Kakav kandidat bi bio idealan za posao koji nudite?
Tražimo mid-level developera koji je koristio Go na nekom projektu i ima volju naučiti ostalo što je potrebno za posao. U idealnom slučaju, kandidat ima dosta iskustva s Go jezikom, radio je već sa AWS-om, radio je serverless, zna prednosti i mane mikroservisne arhitekture, zna kako event based sustav treba funkcionirati i ima godine pisanja automatiziranih testova iza sebe. Ali ne očekujem da ćemo pronaći idealnog kandidata jer rijetko tko ima baš taj set skillova.

Možda još neki detalj o tehničkoj strani samog posla?
Većina platforme su microservisi koji se izvršavaju kroz AWS Lambde napisane u Go programskom jeziku.  Sva funkcionalnost koja postoji u našim REACT web aplikacijama je dostupna klijentima kroz REST API. Koristimo Terraform za orkestraciju AWS infrastrukture. Uz AWS Lambdu koristimo brojne druge AWS servise, AWS S3 i AWS DynamoDB u većini situacija za pohranu podataka, AWS EC2 i AWS Faregate za dijelove sustava koji su klasičnijeg modela izvršavanja od čega su neki dijelom napisani u Elixir programskom jeziku. Veze između servisa koriste AWS SNS i SQS servise za robusnost i fleksibilnost komunikacije. S GSM strane naš partner je Vodafone i naše rješenje radi u cijelom svijetu. Iako smo startup, radimo u medicinskom polju pa sigurnost, kvaliteta i robusnost rješenja ne smiju imati kompromise. Sav kod je pokriven testovima - od onih koji testiraju ispravnost infrastrukture i unit testova aplikativnog koda, pa do komponentnih, end2end i smoke testova. Sve promjene na kodu prolaze kroz pull request proces i funkcijski test u testnoj okolini. Svaki feature platforme prolazi proces analize rizika. Kao tim konstantno poboljšavamo svoje procese i alate tako da budem fleksibilni u radu a da pritom zadovoljimo sve zahtjeve koje medicinski softver mora zadovoljiti.

I za kraj, što bi poručio onima koji čitaju rep.hr?
Biti na oštrici tehnološkog razvoja nije bez svojih izazova ali ti isti izazovi otvaraju mogućnosti za profesionalni razvoj i rješenja koja mjenjaju svijet na bolje.

UPDATE: Link na oglas za posao je uklonjen iz članka zbog pronalaska kandidata.