Jezgra najpoznatije hrvatske aplikacije: Ovo je Photomathov tim o kojem ovise svi drugi

Jezgra najpoznatije hrvatske aplikacije: Ovo je Photomathov tim o kojem ovise svi drugi

Baš kao što Photomath aplikacija računa i rješava matematičke zadatke za korisnike, njen Core tim računa i rješava zadatke vezane za brzinu, stabilnost i točnost aplikacije. Kako rade inženjeri u tom timu saznali smo od čovjeka koji ih vodi, a koji je ujedno drugi zaposlenik Photomatha.

Od prvog dana do danas, sedam godina kasnije, Matija KorparPrincipal Engineer u Photomathu i drugi zaposlenik firme, kaže kako se u ovom hrvatskom startupu promijenilo skoro sve – od komunikacije, organizacije, tehnologije, brojnosti zaposlenika – osim težnje da se napravi odličan proizvod koja je ostala konstanta.

Core tim zadužen je da temeljni elementi Photomath aplikacije – cloud sustav za serviranje matematičkog sadržaja te sustav za automatizirano generiranje korak-po-korak objašnjenja – funkcioniraju baš kako treba.

Što čini temelje Photomatha?

Razvoj Photomatha može se odvojiti u tri ključna segmenta: razvoj mobilne aplikacije za iOS i Android, razvoj web platformi, sistema i servisa te razvoj core (temeljnih) komponenti. U slučaju potonjeg, to podrazumijeva:

  • usavršavanje automatiziranog sustava za rješavanje matematičkih zadataka (solver engine)
  • razvoj i održavanje cloud sustava za serviranje matematičkog sadržaja te
  • razvoj i održavanje sustava za spajanje knjiga iz baze s korisničkom slikom.

Matija pojašnjava kako je core tim nastao iz potrebe unificirane tehnologije, odnosno kako bi razvojni tim tu tehnologiju mogao koristiti na svim platformama za koju je Photomath tada pružao podršku (Windows Phone, Android, iOS).

Trenutno, pod core tehnologije se svrstava apsolutno sve što je potrebno da automatizirani procesi u pozadini rade čim bolje. Konkretno, za dio vezan uz solver engine to znači stabilniji sustav i više sadržaja, a za servise da rade čim brže uz što manje resursa.

Prvi član core tima

Matija Korpar, ističe kako su u timu posebno ponosni na automatizirani solver, koji je već godinama okosnica Photomatha, ekosustav razvijen oko solvera te tranziciju core komponenti s uređaja na cloud. Foto: Mario Poje

Matija otkriva kako je core tim nastao kad i Photomath, a on je bio njegov prvi član:

Moj posao bi se kolokvijalno mogao opisati kao ‘Katica za sve’, tj. što god treba u datom trenutku. No, moja pozicija podrazumijeva i obaveze izvan samog tima. To su konzultacije oko arhitekture raznih sustava, konzultacije oko tehnologije…

Ukratko, tu sam da pomognem gdje mogu te da promičem kulturu tehnološke izvrsnosti koja je prisutna u Photomathu od početaka. Dodatno, core tim održava i povezuje gotovu svu cloud infrastrukturu koja se koristi od strane korisnika Photomatha.

Što se tiče zadataka core tima u pogledu solver enginea, Matija otkriva da je tu tipični izazov dodavanje novog sadržaja u automatizirano rješavanje bez da se pokvare već prisutni postupci rješavanja.

Selidba temeljnih dijelova aplikacije iz uređaja u cloud

Zanimljivo je spomenuti da su se na početku sve core komponente vrtile na mobilnom uređaju, odnosno sustav za prepoznavanje i rješavanje zadataka prevodio bi slike u tekst i računao rješenja na mobitelu/tabletu. Ipak, radi postepenog povećanja brzine i dostupnosti bežičnog interneta Photomath je prebacio sve te komponente, osim naravno samih mobilnih aplikacija, u cloud, što je bio i jedan od najvećih izazova s kojima su se inženjeri iz core tima susreli.

Aplikacija se tako danas vrti na jednom od popularnih cloud hostinga u mikroservisnoj arhitekturi, potpomognuta modernim container sustavima containerd i Kubernetes.

Matija otkriva da je selidba na cloud obavljena unutar par mjeseci, ali da iteracije poboljšanja protoka podataka još uvijek traju. Također, napominje kako im je izazov u ovom dijelu bio posložiti samu mikroservisnu arhitekturu i napisati sve potrebne potporne bibiloteke za istu:

Ekosustav C++-a je škrt pa i nema puno kvalitetnih frameworkova, pogotovo u području networkinga.

Štedljiva cloud arhitektura: Matija ističe kako mu je nakon tranzicije bilo zanimljivo vidjeti koliko im je malo kompjuterskih resursa potrebno kako bi poslužili sve korisnike aplikacije. Foto: Mario Poje

Stari, ali pouzdani C++ kao jezgra enginea za rješavanje matematičkih problema

C++ čini jezgru Photomathove magije od samih početaka. Naime, kako je aplikacija prvotno radila samo na mobilnim uređajima, inženjeri su morali raditi s high-performance jezikom kako bi aplikacija mogla raditi brzo i točno, čak i na slabijim mobilnim uređajima.

I danas se u produkciji core tim služi gotovo isključivo sa C++-om. Međutim, za neke sitnije komponente napisali su par servisa u Node.js-u, a za razvoj automatiziranog solvera osmislili su specifičan matematički jezik iz kojeg se generira C++ kod koji koriste u produkciji. Matija objašnjava kako se dio core tima koji se bavi solverom “može provući i bez znanja C++-a” iako znanje C++-a uvelike olakšava situaciju.

S druge strane, Matija upravo ističe korištenje C++-a kao jednu od posebnosti core tima, uz specifični programski jezik za matematiku koji su sami razvili:

Nestandardna je i posvećenost visokim performansama naših proizvoda. Nema puno kompanija koje imaju core tim ili neki njegov ekvivalent kao na primjer engine team u kompanijama koje se bave igricama. Posao je vrlo nestandardan. Nekad je to nedostatak zbog korištenja vrlo usko specijaliziranih ili vlastitih tehnologija, no s druge strane, prednosti su sloboda u izboru arhitekture i veće mogućnosti nadogradnje tehnologija s kojima radimo.

Matija kaže da su inženjeri orijentirani na nesvakidašnje tehnologije dobrodošli u core tim, koji nakon nedavnih reorganizacija, broji četvero ljudi. Naime, oko projekata koji su bili djelomično ili potpuno u nadležnosti core tima razvili su se novi specijalizirani timovi te je nekoliko članova core tima završilo u tim novim timovima. Tim više im je prijeko potrebno pojačanje.

Suradnja u timu i s drugim timovima

Ovisno o projektu, rad može biti samostalan ili timski. Matija navodi da su manji i specijaliziraniji projekti nerijetko solo posao, dok je solver engine projekt na kojem je kroz godine radilo puno ljudi te se zasniva na unutartimskoj i međutimskoj komunikaciji.

Dinamika posla se stalno mijenja pa tako nekad rade na održavanju postojećih sustava, a nekad rade na sasvim novim projektima.

Produktivnost u core timu ne mjeri se na kraju dana nego kvalitetom svake od novih značajki koje tim producira. Foto: Mario Poje

Što se tiče rada od kuće, Matija govori kako su po tom pitanju u firmi vrlo fleksibilni, ali također ističe kako je njegovo osobno mišljenje da je rad iz ureda, iz perspektive core tima, produktivniji od rada od kuće:

Razlog tome su tehnološka ograničenja međuljudske komunikacije na daljinu. Još uvijek nije moguće na remote način komunicirati dovoljno jednostavno s većim brojem ljudi. Možda mi se idealnim čini neki oblik hibridnog sustava gdje se jedan ili dva dana u tjednu radi od kuće. Također je važno naglasiti da nemaju svi uvjete za rad od kuće pa je time teško generalizirati pravila na sve zaposlenike. Trenutno svi iz [core] tima radimo cijelo vrijeme iz našeg ureda u kojem je samo nas četvero, jer nam svima tako odgovara.

Inženjeri u core timu uz programiranje NE moraju znati kako poučavati matematiku

Od suradnje s ostalim timovima u Photomathu, Matija kaže da je suradnja solverskog dijela core tima s matematičkim razvojnim timom jedna od najdužih i najuređenijih. Ovdje valja istaknuti da, iako se o solver engineu brine core tim, objašnjenja zadataka u potpunosti pripadaju domeni Photomathovih instruktora matematike.

Štoviše, jedna od najvećih zabluda koje ljudi imaju kada im Matija priča o core timu jest da misle kako inženjeri u core timu uz programiranje moraju znati i kako poučavati matematiku te ne očekuju podjelu posla između core tima i matematičkog razvojnog tima.

Matija dodaje da su za potrebu te suradnje čak razvili specijalizirani alat:

Matematički tim napiše postupke u alat, solverski tim ih vidi i implementira u solver. Sustav se zatim automatski osvježi sa novim sadržajem koji matematički tim pogleda. Ako nisu zadovoljni tada se proces ponavlja.

Skoro svi tehnološki timovi u Photomathu “konzumiraju” proizvode core tima

Uz Damira Sabola (CEO), Marko Mihovilić (Chief Architect) i Matija Korpar (Principal Engineer) praktički su podignuli Photomath.

Općenito, u core timu se trude suradnju bazirati na alatima, od kojih su neki generalni dok su neki potpuno interno razvijeni specijalizirani alati. Isto tako, core tim je odgovoran za razvoj navedenih alata.

Matija dodaje da, s obzirom na to da je core (jezgra) u imenu njihovog tima, gotovo svi tehnološki timovi u Photomathu konzumiraju njihove proizvode, a oni se trude jednostavnošću API-ja svima olakšati život. Matija naglašava da je nova cloud infrastruktura ovdje odigrala veliku ulogu jer manje-više sve svoje proizvode pakiraju kao web servise, što olakšava integraciju s ostalim projektima.

Razvoj core tima se temelji na optimizaciji trenutnih procesa, što višem stupnju automatizacije posla te po potrebi uskakanju u nova razvojna istraživanja pa, upitan o potencijalnim novim budućim poslovima, tehnologijama i izazovima, Matija odgovara kako će se oni s vremenom nametnuti sami od sebe.

Ako se vidite u ulozi izvrsnog stručnjaka koji bi mogao doprinijeti usavršavanju temelja Photomatha, svakako provjerite Photomathove stranice karijera. A ako vas zanima više kako rade drugi Photomath timovi, pogledajte što smo dosad pisali. 🙂

Molimo da prihvatite sve kolačiće kako biste mogli vidjeti ovaj sadržaj

Photomath je početkom ove godine pokrenuo “Photomath Talks”, seriju virtualnih meetupova za tech zajednicu, na kojem su predavači njihovi najiskusniji inženjeri. Na snimci gore Marko i Matija razgovaraju na temu: “Sve o razvoju softvera u Photomathu: od C++-a do Reacta i natrag”. Ako želite da vas obavijeste o budućim sličnim događajima, prijavite se u njihov Tech Community.

Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.

Pravila ponašanja

Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:

  • Ne budite 💩: Nema vrijeđanja, diskriminiranja, ni psovanja (osim ako nije osobni izričaj, ali onda neka psovka bude općenita, a ne usmjerena prema nekome). Također, upoznajte se sa stavkom 2. članka 94. Zakona o elektroničkim medijima prije no što ostavite komentar.
  • Samo kvalitetna rasprava, manje trolanja: Ne morate se ni sa kim slagati, ali budite konstruktivni i doprinesite raspravi! Svako trolanje, flameanje, koliko god "plesalo" na granici, leti van.
  • Imenom i prezimenom, nismo Anonymous 👤: Autor sadržaja stoji iza svog sadržaja, stoga stojite i vi iza svog komentara. Koristimo ime i prezime te pravu email adresu.

Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.

Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Startupi

4 milijuna dolara za domaći startup koji je napravio “prvog pravog AI developera”

U otprilike godinu dana ekipa iza Pythagore prošla je program prestižnog Y Combinatora, skupila 30.000 aktivnih korisnika i prikupila investiciju. Među investitorima je i Damir Sabol.

Analiza

Kad im USB-om procure podaci milijun građana – javne institucije mogu proći bez sankcija?!

Sa stručnjacima raspravljamo o nedavnom curenju podataka vlasnika svih registriranih vozila u Hrvatskoj i zašto je ono problematično na više razina. Može li ovaj slučaj biti poruka javnim institucijama za ubuduće?

Obrazovanje

Maturanti, pazite koje AI alate koristite za pripremu mature, nisu svi pouzdani…

Jeste primijetili kako je sve više raznih AI alata koji obećavaju uspjeh u školi i pomoć na maturi? Iako imamo pozitivne primjere, nisu svi od povjerenja.

Što ste propustili

DevDev

Leapwiseovih 5 savjeta za razvoj enterprise softvera – i besplatan backend priručnik

Zagrebačka kompanija Leapwise svoje stečeno osmogodišnje iskustvo u product buildingu i system integrationu (u domenama BSS/OSS-a, cybersecurity inženjeringa, automatizacije i IOT-a) sada želi podijeliti i sa širom zajednicom - dio tog znanja skupljen je i u besplatan backend priručnik.

Programiranje

S Tech Leadom o Pimcoreu, open-source platformi za digitalizaciju poslovanja

U razvoju rješenja za upravljanje informacijama o proizvodu (PIM), digitalnom imovinom (DAM), web sadržajem (CMS) i e-trgovinom - virovitički Factory odabrao je Pimcore - saznajemo što ih je osvojilo kao inženjere i koje su mu specifičnosti?

Netokracija Podcast

AI smanjio odjel marketinga poznate tvrtke i uštedio im 10 milijuna dolara

Počela su prva hvaljenja kako je AI zamijenio radnike i tako napravio uštedu od 10 milijuna dolara. Sva sreća, to se nikome nije svidjelo...

Digitalni mediji

Hrvate od EU izbora više zanimaju Vučić, Međugorje i invazija dabrova!

Ove nedjelje izlazimo na druge po redu izbore u ovoj superizbornoj godini, ali sudeći po pretraživanjima online, Hrvati bi ovog vikenda mogli prije otići na kavu nego na birališta.

Tvrtke i poslovanje

Otvoren Deloitteov natječaj 50 najbrže rastućih tehnoloških kompanija Srednje Europe za 2024. godinu

Ovo regionalno natjecanje održava se već 25. godinu za redom, a rangira najbrže rastuće kompanije u tehnološkom sektoru te pruža etabliranim i novim tehnološkim kompanijama platformu za predstavljanje svoje vodeće pozicije u tehnološkoj industriji.

Veliki intervjui

Novo vodstvo CISExa: U krizi najbolje prolaze oni koji rade s velikim tvrtkama – i državom!

CISEx, hrvatska udruga nezavisnih izvoznika softvera, odnedavno ima novu upravu. U razgovoru s Ivanom Bešlićem i Svenom Marušićem otkrivamo u kojoj su trenutno poziciji hrvatski izvoznici softvera, tko će lakše prebroditi ova vremena i gdje su nove prilike.