Zavirite u svijet developmenta SofaScorea

SofaScore priča započela je sad već davne 2010. godine, kao live-score aplikacija iz “male” Hrvatske. Danas to nisu samo rezultati uživo već i detaljne statistike i sportski sadržaj za više od 20 sportova i preko 30 jezika. Svakodnevno, njihovi zaposlenici rade na poboljšanju samog proizvoda što potvrđuje i ocjena od 4.8 na Google Playu i 4.9 na App Storeu.

Jedan od njih je i Nenad Mijatović, Frontend Developer, koji je za .debug podijelio svoje iskustvo. Prije gotovo osam godina, Nenad se pridružio SofaScoreu. Unatoč tome što nije zagriženi sportski zaljubljenik, vrijeme je brzo proletjelo. Svoju karijeru u SofaScoreu započeo je kao UI/UX dizajner. Vladao je osnovama HTML-a i CSS-a. Rad u SofaScoreu koji je tada brojao tek 15-ak kolega, pružio mu je mnogo prilika za upoznavanje devlopment znanja i vještina. Ubrzo mu je postalo jasno da mu je ipak zanimljivije znati kako stvari funkcioniraju i kako ih implementirati. Ispitivao je developere mnoga tehnička pitanja i ostajao učiti nakon posla. Naposlijetku, kada se pružila prilika za to, prestao je sjediti na dva proverbijalna stolca i prebacio se u potpunosti na development.

“U SofaScoreu održavamo “klijent” aplikacije na mnogobrojnim platformama: Android, iOS, web — čak i KaiOS — i iza svake stoji tim specijaliziran za native tehnološki stack za pojedinu platformu. Svaki od navedenih timova oslanja se na podatke za su čije sakupljanje i slanje zaduženi timovi za backend/infrastrukturu.”

Što manje sastanaka

Od developera se očekuje fokus na kvalitetu te se dugoročno pokazalo boljim inzistirati na dubinskom ulaženju u problematiku i razradi dobrog rješenja, čak i ako to znači da će se na problemu raditi i nešto dulje od estimacije. Stoga svaki developer koristi znatnu količinu vremena na code review, a to je ujedno i dobra prilika za transfer znanja između novijih i iskusnijih developera. Da bi se mogli posvetiti rješavanju problema, svi procesi koje je moguće automatizirati bivaju automatizirani, a broj sastanaka svodi se na minimum i delegira Product Ownerima i voditeljima timova, iako sa izuzetno brzim rastom broja zaposlenika svakako raste i taj dio posla. Svejedno, postoji tendencija da se izbacuju oni sastanci koji se mogu efikasno odraditi kao e-mail ili Slack poruka.

U Frontend timu, čiji je Nenad član, koristi se prvenstveno TypeScript zbog svih prednosti koje static typing provjera pruža za ovako kompleksnu aplikaciju. Također, React se pokazao izuzetno pogodnim rješenjem s obzirom na problematiku naše domene: prikaz velikog broja sportskih podataka uživo na efikasan način. Što se tiče organizacije radnih zadataka, koristi se Scrum radi koordinacije posla među mnogobrojnim timovima, od dizajna do testiranja i QA-a.

“Dakako, još nisam upoznao osobu koja je izjavila “da, koristimo Scrum”, bez da je tu izjavu popratila obaveznim disclaimerom: “ali prilagođen našim specifičnim zahtjevima. Ne robujemo procesima koji nam ne odgovaraju.”, pa dopustite da tu kvalifikaciju primijenim i na nas.”

Frontend se razvija, to moraju činiti i developeri

Domena frontend developmenta je prilično opsežna i zahtijeva poznavanje mnogobrojnih tehnologija i alata te interakcije među njima. Od poznavanja browser API-ja i zamrđenosti rada pojedinih Javascript enginea do osnova dizajna i korisničkog iskustva, od korištenja alata za kompilaciju raznovrsnih programskih jezika u JavaScript do konfiguracije containera, servera ili Linux okruženja, nemoguće je posvetiti se podjednako svim aspektima posla. Brzina promjena u ovom polju vodi do toga da je frontend development danas drugačiji nego prije samo pet godina: neke tehnologije koje su tada bile popularne danas su rijetko viđene, druge, koje su tada bile u povojima, danas su gotovo univerzalne.

Hoće li se ovaj tempo nastaviti i u bližoj budućnosti ili ćemo doživjeti stabilizaciju i dozrijevanje tehnoloških rješenja teško je predvidjeti, ali jedna stvar je sigurna: frontend developer ima nebrojeno puno prilika za učenje i istraživanje.

“Za mojeg vremena ovdje imao sam priliku doživjeti transformaciju SofaScorea iz malene kompanije s neformalnom organizacijom — u kojoj se svejedno ozbiljno radilo — u prilično veliku firmu sa 150+ zaposlenih. Mislim da se SofaScore dobro snašao u izazovima koji dolaze s takvim rastom i kompleksnošću menadžmenta toliko velikog broja ljudi, a da je svejedno zadržao stanovite elemente opuštene i ugodne radne atmosfere koja je bila tu od početka. Interno postoji mnogo načina za adresiranje bilo kakvih problema koji se mogu pojaviti i dobar track record rješavanja istih. Također, ravnoteža između posla i privatnog života je odlično pogođena i od nikoga se ne očekuje ostanak na poslu prekovremeno — uz dobru organizaciju posla, to zaista nije niti potrebno.”

Svi zaposlenici imaju godišnji budžet za konferencije po vlastitom izboru, a petkom development tim ima priliku 10% tjednog radnog vremena za rad na vlastitim projektima, što je dobra prilika za sakupljanje praktičnog znanja ili upoznavanje s novim tehnologijama.

Senioriteti u SofaScoreu

Za svaki od stupnjeva senioriteta definirana je lista kompetencija vezanih za konkretne tehnologije razvrstane po domeni. Od juniora se očekuje dobro poznavanje osnova, mid-level developeri su kompetentni rješavati kompleksnije probleme samostalno, a od seniora se očekuju dobre komunikacijske vještine i suradnja s drugim timovima, sposobnost rješavanja kompleksnih, dugotrajnih zadataka i inicijativa u pronalaženju problema. Osim voditelja timova, u evaluaciji sudjeluju i ostali kolege iz tima — time se osigurava potpunija i točnija slika o vještinama pojedinog developera.

“Vjerujem da rad na SofaScore aplikaciji predstavlja jedinstven tehnički izazov. Zbog toga što se bavimo prikazom velikih količina podataka uživo za velik broj korisnika, developer u SofaScoreu ima priliku dobro se upoznati sa specifičnim problemima vezanima za caching, web sockete i real-time update DOM-a na performantan način, kao i sinkronizacijom tih podataka između pojedinih uređaja i browser tabova. Vjerujem da ne postoji mnogo firmi koje mogu ponuditi rad na toliko kompleksnim problemima, uz podršku ljudi toliko verziranih na rješavanju istih. Vjerujem da nešto dobro radimo u frontendu, obzirom da imamo jako nizak turnover i mnogo seniora koji su već dugo u timu. 🙂  Dobro se slažemo i ponosan sam sto sve kolege mogu nazvati i prijateljima.”

Trenutačno otvorene pozicije u SofaScoreu možete pronaći na ovom mjestu.