Menjanje posla je jedan od stresnijih događaja u životu, pogotovo ako imate malo dete kod kuće i prelazite u firmu koja postoji svega nekoliko godina. Tada, kao senior inženjer i novopečeni tata, napustio sam stabilnu i uspešnu firmu i pridružio se mladim ljudima sa vizijom i željom da zajedno rastemo. Danas, sa gotovo 10 puta većim timom i 25 puta većim prihodima, FishingBooker je izrastao u mesto koje je prevazišlo sva moja očekivanja.
Tako je Čedo ukratko opisao svoje iskustvo u FishingBooker-u, od šestomesečnog otkaznog roka pre dolaska, do više od pet godina sa nama i Lead Engineer role.
Sa željom da vam približimo kako je to biti inženjer u FishingBooker-u, razgovarali smo sa gotovo najiskusnijim članom koji nam se pridružio 2016. i značajno doprineo izgradnji softvera koji danas koristi desetine miliona korisnika.
Kako i zašto si odlučio da dođeš u FishingBooker?
Moram priznati da nisam imao visoka očekivanja pred sam intervju. Malo sam pogledao sajt, video neke fotografije i pomislio to je samo još jedna američka firma sa development centrom u Beogradu. Iskreno, nisam ljubitelj outsource-a i ako bih prelazio u drugu firmu, to je morala da bude neka sa svojim proizvodom. Nisam imao šta da izgubim, pa sam ipak došao da se bolje upoznamo. Kada sam došao, bila je to potpuno druga priča.
Firma ima svoj proizvod, a što je još zanimljivije, ljudi mlađi od mene su ga stvorili, i to bez investicije. Tu sam shvatio da je energija ljudi na drugom nivou, ali i da ako se pridružim timu, moći ću lično i profesionalno da rastem, i na sve to, imam direktan uticaj na dalji rast firme.
FishingBooker je bio sušta suprotnost okruženju u kojem sam bio. Tamo sam se osećao, ne kao programer, već kao prevodilac. Na prethodnom poslu sam dobijao polu-definisana biznis rešenja, a nekad i polu-definisana tehnička rešenja od biznis osobe, dok je moj posao bio da praktično prekucam izdiktirano i to ne kvalitetno, već što brže. Sa druge strane, u FishingBooker-u mi je postavljeno očekivanje da zapravo ja budem taj koji će predlagati kvalitetna rešenja, učestovati u donošenju odluka i definisati tehinčke, a ponekad i biznis zahteve.
Iako sada nemam mnogo vremena da se bavim biznisom, tada mi je proširilo vidike i omogućilo da se dalje razvijam. Danas se biznisom više bave product manager-i i to mi pruža šansu da se značajnije posvetim tehničkom planiranju.
Pomenuo si da ti je lični i profesionalni razvoj bio važan faktor pri prelasku u FishingBooker. Kako si znao da će ti FishingBooker to pružiti?
Na intervjuu smo poprilično vremena posvetili upravo tome kako funkcioniše učenje, a zatim sam i u praksi imao šta da vidim.
Učenje se provlači kako kroz očekivanja i ciljeve, tako i kroz svakodnevno ponašanje. Nije kao da se kreiraju ciljevi zarad ispunjenja forme, već to učenje suštinski ima uticaj na tvoj razvoj. Npr. sa svojim tim liderom imaš definisan karijerni put, kao i predložene resurse koji će ti pomoći da ga ostvariš. Nekada se radi o kursevima, nekada o knjigama, ili uživo treninzima. Taj plan se onda razbije po kvartalima, a na tebi je da učiš i ispuniš te ciljeve. To mi je u samom startu bilo zanimljivo (i ozbiljno) jer su firmu vodili momci koji su do juče bili na faksu.
Mimo postavljanja ciljeva, postoji i ta kultura učenja kada rešavamo određene probleme. U prethodnim firmama nisam imao prilike da vidim taj pristup. Jednostavno, relativno bazično se pristupalo analizi rešenja problema na koje nisu postojali laki odgovori.
U FishingBooker-u mi je oduvek bilo zanimljivo da vidim Vukana ili Dina kako preko vikenda pročitaju koju knjigu, ili pogledaju kurseve i generalno se informišu na temu problema koji pokušavamo da rešimo, dođu sa par konkretnih opcija, a zatim i izmerimo uticaj onog rešenja za koje smo se opredelili. Tako je bilo gotovo od prvih par nedelja kada sam došao (2016.) pa do danas.
Taj pristup mi uliva poverenje jer se donošenje odluka ne bazira na ličnim stavovima i mišljenjima, već na podacima i znanju. Takav pristup vas gura da i sami preispitujete svoje odluke i postupke, ali i da se stalno razvijate, kako lično, tako i profesionalno.
Kako se firma promenila u prethodnih pet godina?
Malo je nezgodno da sagledaš promenu kada si deo nje, jer se dešava postepeno. Izvan rasta u broju zaposlenih, prihoda i profita, struktura razvojnih timova je potpuno drugačija, kao i odgovornosti.
Počeli smo od malog tima bez mnogo organizacije. Platforma je bila značajno siromašnija i bilo je neophodno što pre napraviti neke osnovne funkcionalnosti. Jednostavno, kvalitet nije bio presudan, bilo je bitno da radi.
Sada, kada firma broji gotovo 100 ljudi, a razvojni tim se bliži 40, imamo strukturu i organizaciju, a ne anarhiju. 🙂
Inženjerski timovi su podeljeni na Backend, Frontend i Mobile, kvalitet je imperativ, a produkt i dizajnerski timovi obezbeđuju da su rešenja izuzetno dobro istražena i usaglašena sa biznis potrebama. Na kraju, QA tim obezbeđuje kroz automatske testove i manuelne provere da ne pustimo na produkciju nešto što ne bi trebalo. 🙂
Jednostavno, sve je na mnogo ozbiljnijem nivou, valjda zato što i svaka greška ima mnogo veće posledice po biznis. Ne gajimo osuđivačku kulturu, ali ne volimo da pravimo greške koje su se lako mogle izbeći.
Infrastruktura nam je rasla vremenom, pa smo osnovali i odvojeni DevOps tim.
Trenutno je u toku reorganizacija na krosfunkcionalne timove za reševanje problema po tipovima korisnika, a ne samo tehnologiji koju koriste. Da bismo to ostvarili, širimo tim, uskoro ulazimo u nove, ambiciozne projekte, a zatim i, nadam se, u mikroservise.
Pošto pretežno radiš u PHP-u, a kolege/koleginice i u React-u i ReactNative-u, koliko podržavaš sveopšti stav da su to pomalo dosadne tehnologije?
Programiranje je mnogo više od programskog jezika. Principi programiranja su univerzalni i ne zavise od programskog jezika. Mnogo je važnije kako rešavaš problem i da li primenjuješ neke dobre prakse i dizajn šablone koji omogućavaju da sistem koji praviš bude brz, stabilan i lak za nadogradnju od toga da li koristiš, u datom mementu, najpopularaniji jezik.
Odlično je kombinovati programske jezike sa tipom problema koji rešavaš jer su određeni jezici podobniji za određene skupove problema, ali svakako smatram da nijedan od pomenutih jezika/biblioteka ne ograničava kvalitetan razvoj i dobra rešenja u kojima će krajnji korisnici uživati.
PHP je u zadnje vreme dosta napredovao, prati strogo tipiziranje (što neki ne vole, meni se lično sviđa taj pravac), standardizuje stvari i aktivno se razvija u skladu sa zahtevima tržišta. Ima veliki community što je jako bitno za razvoj i ima odličan ekosistem za biblioteke.
Sa druge strane, iza React-a i React Native-a stoji Facebook, što dovoljno govori samo za sebe. Mi smo ih dosta rano primenili, i u startu se možda malo namučili, ali sada kada su biblioteke sazrele ima sve više dobrih open source paketa koje ljudi održavaju i olakšavaju nam svima da ne pišemo stvari od nule.
Samo bih napomenuo da mimo ovih jezika koristimo i Python, NodeJS i druge, jer se trudimo da različite probleme rešavamo koristeći najkompatibilnije tehnologije. Sa prelaskom na mikroservise, siguran sam da će nam se fleksibilnost povećati i da ćemo po potrebi uvećati broj tehnologija koje koristimo, a time možda i malo začiniti stvari u FishingBooker-u.
Čime se to bavi Lead Engineer u FishingBooker-u? Kako izgleda tvoj prosečan dan?
Lead Engineers imaju jako važnu ulogu u planiranju tehničkih stvari. Način na koji nešto implementiraš će ti ili pomoći, ili odmoći (tehnički dug). Moj zadatak je da obezbedim da je kvalitet koda na odličnom nivou i da se primenjuju što bolje (ili najbolje) prakse u razvoju softvera, kao i da dam svoj doprinos tehničkom roadmap-u.
Lead Engineer rola je individual contributor rola i to je pravac koji mi više prija od upravljanja. Mimo tehničkog roadmap-a, učestvujem i u planiranju šestonedeljnih ciklusa, ali izvan toga, trudim se da je moj doprinos direktan, što kroz rešavanje konkretnih problema koje korisnici imaju, tako i kroz code reviews koje radim i mentorisanje nešto manje iskusnih kolega i koleginica.
Jedan od skorijih projekata koji mi je bio jako zanimljiv je prelazak na MySQL Enterprise klaster. Imao sam izazov pred sobom da obezbedim neometan i brz rad sajta uz iznenadna otkazivanja serverske infrastrukture i konstantan rast količine podataka koje procesiramo i smeštamo u bazu podataka. Pre toga, rešavao sam pitanje ranking algoritma koji obezbeđuje da se najbolji listinzi prikazuju korisnicima u zavisnosti od relevatnih faktora, a da uz sve to, obratim pažnju da je brzina sajta na visokom nivou pogotovo što ponuda svakodnevno raste, baš kao i broj posetilaca.
Ne mogu da kažem da imam neku 100% predvidivu rutinu, ali kada se jednom uđe u šestonedeljni ciklus, tada sam u fokusu i trudim se da moja rešenja, saveti ili predlozi, budu na odličnom nivou.
U više navrata si pomenuo kvalitet. Kako izgleda balans između razvoja novih funkcionalnosti i unapređivanja infrastrukture?
Slagao bih ako bih rekao da je oduvek bilo ovako. Prethodno sam pomenuo da smo imali sajt sa manjim brojem funkcionalnosti i da ih je bilo neophodno razviti po svaku cenu, jer su te stvari garantovale rast, a rast je bio jedini način da izgradimo uspešan biznis bez spoljnih investitora. Iako sada imam ovakvo mišljenje, znam da je svojevremeno bilo jako izazovno razumeti prioritizaciju i da sam teška srca prihvatao tu realnost.
Danas smo otprilike na 30:70 u korist funkcionalnosti (feature-a), sa čime sam jako zadovoljan. Svest je oduvek postojala jer je Vukan inženjer koji veruje u kvalitet, međutim, realnost biznisa je bila drugačija. Smatram da smo sada značajno zreliji i da se i sam pristup u radu pobošljava sa svakim novim razvojnim ciklusom.
Sa nama si već pet godina. Šta te i dalje motiviše da daješ svoj maksimum?
U FishingBooker-u volim fleksibilnost i što ne postoji lažni pritisak. Niko ti ne stoji nad glavom. Ciljeve dogovorimo i dajemo svoj maksimum da ih ispunimo, međutim, ako smo se precenili, ne znači da treba svi da radimo prekovremeno da bi cilj bio ispunjen po svaku cenu. Jednostavno, postoji taj zdravi balans između cimanja za firmu i privatnog života.
Mimo toga, zvuči kao kliše, ali ljudi su super i oni te na neki način guraju napred. Uvek znaš da imaš nekoga sa kim možeš da se posavetuješ kako oko tehničkih, biznis, pa i privatnih problema. Dopada mi se što smo relativno mlada ekipa i to sa sobom nosi neku pozitivnu energiju i zdravu ambiciju. Ponekad odemo na pivo svi skupa. Ima par ekipa koje i putuju zajedno. Bukvalno su obišli pola sveta zajedno. Ja imam porodicu i sa njima najviše provodim vremena, tako da se ne mogu pohvaliti tim pustolovinama, ali mi ovako prija i drago mi je što nema usiljenog druženja, već ko kada želi i može.
Izdvojio bih opcije na akcije (stock options) kao jednu stvar koja nije karakteristična za srpske firme, ali je možda i najbolji pokazatelj mog rada i rasta firme i nešto što me dodatno motiviše. Za 5 godina je vrednost mojih opcija porasla više od 30 puta. Nisam previše vešt sa finansijama, ali to vidim kao jedan izvor koji ne mogu da potrošim jer nije unovčen, a mogu direktno da utičem da mu vrednost stalno raste.
Naravno, nije sve u mojim rukama, međutim, daje jednu posebnu notu i osećaj vlasništva nad delom firme. Ja firmu posmatram kao jedan brod koji plovi i konstantno se gradi, sa ciljem da uplovi u neku manju ili veću luku (uspešno posluje ili se proda). Verujem da imamo dobrog kapetana i posadu i cimam se zajedno sa njima da luka u koju uplovimo bude što veća i da se iskrcamo srećni i zadovoljni. 🙂
Na samom kraju, podstiče me i činjenica da radim na opipljivom proizvodu i rešavam realne probleme korisnika i vidim uticaj mojih rešenja. U prethodnoj firmi je znalo da me demotiviše što sam radio na projektima koji su znali da traju dugo, a da rešenja ne odu na produkciju i više od godinu dana. Meni je bitno da ili učim, ili da rešavam tehnički zahtevne probleme. Za sada sam u FishingBooker-u imao jedno, drugo ili oba i to mi je sjajno.
Šta misliš o remote postavci? Šta ona znači za tebe i privatni život?
Za mene je ona presudna. Ja sam mimo korone planirao da se selim iz Beograda u toku 2020. jer mi kvalitet života nije bio onakav kakav sam želeo da bude. Tu mi je izuzetan stres stvarao saobraćaj i problem sa parkingom kada dođem nazad kući. Srećom pa sam u kancelariji makar imao obezbeđen parking.
Izvan toga, odlična je povoljnost jer ti odmor više nije 20 dana godišnje, već ti možeš otići 40-50 dana godisnje bilo gde i raditi deo remote, a deo uzeti odmor i uživati sa svojim bližnjima. Ne mora čak ni da to bude neko daleko putovanje, ali sam beg iz grada i gužve u neko okolno selo ili na planinu, je dovoljno dobro za mozak.
Izvan remote-a, rekao bih da mi je fleksibilnost generalno jedan od značajnijih faktora u firmi. Činjenica da ne moram da sedim od 9 do 5 je olakšavajuća. Sve institucije rade u tako neko doba, pa kada iskrsne neki lični problem ili potreba, olakšavajuće je što možeš da završiš šta god treba i nastaviš nesmetano da radiš.
Nešto za kraj?
Radujem se poduhvatima i projektima koji predstoje, širenju tima i svemu što budućnost nosi. Slobodno me cimnite preko Linkedin-a, rado ću odgovoriti na pitanja.
Ako vam je Čedina priča bila zanimljiva i razmišljate da se priključite FishingBooker-u, pogledajte otvorene pozicije u Engineering i Product timovima.