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 Korpar, Principal 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

Mobilne aplikacije

ZET-ov štrajk iznjedrio nova digitalna rješenja za prijevoz po Zagrebu

Zagreb je jutros ostao bez redovitog tramvajskog i autobusnog prometa, no građani su brzo počeli tražiti alternativna rješenja. Uz organiziranje zajedničkih vožnji, pojavilo se i nekoliko digitalnih projekata koji pokušavaju povezati vozače i putnike.

Vodič

Imate pretplatu na AI alate? Evo što računovođe kažu o ispravnom evidentiranju

U novoj kolumni Bruno Cvitanović, direktor računovodstvenog i konzultantskog servisa Brojevi objašnjava kako računovodstveno tretirati AI alate, što vrijedi za poduzetnike izvan sustava PDV-a i na koje pogreške treba paziti.

Programiranje

Tim od šest developera, dva QA-a i jednog Product Ownera postaje prošlost

Florian Krause ima trideset godina iskustva u razvoju softvera, jedan propali startup i čvrsto mišljenje: tim od šest developera, dva QA-a i jednog product ownera postaje prošlost. Na The Geek Gatheringu u Osijeku objasnio je čime se takva postava zamjenjuje.

Što ste propustili

Pametni automobili

Napokon smo se provozali Verneovim robotaksijem!

Nakon što smo u Zagrebu bezuspješno pokušali uhvatiti Verneov robotaksi putem Uberove aplikacije, zvijezde su se posložile i mi smo dobili poziv koji se ne odbija.

Umjetna inteligencija

Tko zbog AI-ja i dalje ulaže u ljude, a tko otpušta 50% radne snage?

Dok neke tvrtke nastavljaju i zapošljavati i ulagati u AI, druge su odabrale samo potonje. Kako različite tvrtke pristupaju promjenama na tržištu, doznali smo na Automation Summitu.

Novost

Gamepires najavio otpuštanja, smanjuje tim koji radi na SCUM-u

Gamepires, koji stoji iza igre SCUM, smanjuje broj zaposlenih zbog zahtjevnih tržišnih uvjeta. Objava dolazi nekoliko mjeseci nakon što je studio preuzeo britanski Splash Damage.

Vodič

Imate pretplatu na AI alate? Evo što računovođe kažu o ispravnom evidentiranju

U novoj kolumni Bruno Cvitanović, direktor računovodstvenog i konzultantskog servisa Brojevi objašnjava kako računovodstveno tretirati AI alate, što vrijedi za poduzetnike izvan sustava PDV-a i na koje pogreške treba paziti.

Veliki intervjui

Ako AI može napraviti film ili igru, što ostaje kreativcima? Odgovara CEO Nanobita

Može li umjetna inteligencija promijeniti način na koji nastaju filmovi i igre, a da pritom ne žrtvujemo kvalitetu priče i kreativnu viziju? Nanobit već testira odgovor na to pitanje, razvijajući AI produkcijske procese koji otvaraju mogućnost stvaranja sadržaja velikom brzinom.

Netokracija Podcast

Dekan FER-a: AI ne može zamijeniti temeljno znanje inženjera

Umjetna inteligencija mijenja način na koji radimo, ali bez temeljnih znanja nema ni kvalitetnih inženjera ni ozbiljnog tehnološkog napretka. U razgovoru s dekanom FER-a otkrivamo zašto je važno ulagati u istraživanje i razvoj, kako povezati fakultete i industriju te gdje se otvaraju nove prilike za Hrvatsku – od robotike i fizičke umjetne inteligencije do razvoja visokotehnoloških proizvoda.