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

Vodič

Morate podnijeti zahtjev za novu osobnu iskaznicu? Evo kako izbjeći gužvu na šalteru

Završetkom pandemije došao je službeni kraj maskama, ali i mnogim identifikacijskim dokumentima pa tako i osobnim iskaznicama bez kojih ne možete boraviti u Hrvatskoj. Ovo znači samo jedno... ogromni redovi na šalterima.

Najava

Belma Gutlić: “Fokus s cijena kriptovaluta treba prebaciti na tehnologiju koja kriptovalute omogućava”

Danas se možemo pohvaliti da na našoj maloj sceni ne nedostaje konferencija vezanih uz blockchain i kriptovalute. Ipak, postoji jedan krovni naziv kojem se nitko dosad nije posvetio na jednak način, a koji možda zaslužuje i najviše pažnje.

Karijere

Tim McKeoun: “Ako želimo da se developeri razvijaju, moramo se pomiriti da će nekad biti manje produktivni”

"Developer Advocate" može postati svatko, ali uspjeh u tome će pronaći mali broj ljudi. Savjete kako općenito postati bolja podrška developerima, na ovogodišnjem QED-u podijelio je IBM-ov Tim McKeoun.

Što ste propustili

Sponzorirano

Studenti RIT Croatia kroz kolegij kreiraju stvarne projekte za Rimac Technology, INA-u, Async Labs… 

Domaće obrazovne institucije često se fokusiraju na teoriju, dok praksa ostaje na poslodavcima. RIT Croatia to mijenja svojim primjerom.

Tvrtke i poslovanje

Potvrđeno: Google preuzeo hrvatski Photomath

Hrvatska aplikacija Photomath postaja je i službeno dio Googleovog portfelja. Tehnološki gigant godišnje akvizira desetak tvrtki, a ove je godine u akvizicijski plan ušao upravo hrvatski Photomath.

Web 3

Web3 Tales: Trenutno u web3 sferi ima prilika za sve, ali to ne znači da je web3 za svakoga!

Zašto ući u web3? Kako radi i razmišlja web3 stručnjak/inja? Koji kadrovi su traženi? Je li web3 karijera dugoročno sigurna? Što kad je bear, što kad je bull? Samo su neka od pitanja na koje su se tražili odgovori na prvoj Web3 Tales konferenciji u Muzeju suvremenih umjetnosti u Zagrebu.

Intervju

Iza scene: O dizajniranju evenata poput Porina i Future Tensea uz hrvatski 21 Productions

Dizajnirati velike događaje, konferencije ili televizijske emisije nije lak zadatak. Cijeli posao obuhvaća detaljne razgovore s klijentom i ljudima koji su specijalizirani za snimanje, zvuk ili rasvjetu. Tom procesu uvelike može pomoći jedna stvar, a to je 3D vizualizacija produkcijskog dizajna.

Novost

Google predstavio program za startupe: AI for Health, na koji se mogu prijaviti i Hrvati!

Ovaj hibridni program prvi je u nizu akademija Google for Startups Growth Academy koji je fokusiran na olakšavanje i skalabilnost startupima u inovacijama i rješavanju društvenih izazova pomoću umjetne inteligencije.

Intervju

Končar D&ST nakon revizije prema Mamforce standardu učvrstio zdravu i inkluzivnu organizacijsku kulturu

Glavne korporativne vrijednosti u tvrtki Končar D&ST su kontinuirana briga o zaposlenicima, uključivost, društvena odgovornost i ekološka održivost, a sada im se polaže sve sustavnija i promišljenija pažnja.