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. 🙂

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.

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 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)
  • 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 (Hrvoje Lončar) ili barem ime i inicijala (Hrvoje L.) te pravu email adresu. Kako koristimo podatke koje tamo 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

Digitalni marketing

Gdje griješimo u zapošljavanju generacije Z?

Zbog toga što je odrasla u posve novim okolnostima modernog društva, kao i u mnogo slučajeva dosad - stariji naraštaji sve slabije razumiju novu generaciju. Kako pristupiti "genzijevcima"?

Digitalni mediji

Influenceri i marketing imaju problema. Možemo li ih riješiti “otkazivanjem” Maje Šuput?

Profesionalno i etički dvojbeni sponzorski angažmani, korištenje djeteta za promociju brendova, skupljanje lajkova na najintimnijim životnim situacijama, licemjerje i umiveni aktivizam - samo su neki od grijeha domaćih influencera. Kako i zašto je jednoj angažiranoj ekipi prekipjelo baš na kampanji poznate pjevačice?

Sponzorirano

Što developeri žele? Dobru plaću i organizirani posao. Što ne žele? Više team buildinga.

Zanimljivo, sve ono što oglasi za posao i regruteri stavljaju u vrh kao povlastice kojima žele privući developere - team building, Play Station i slično - developerima zapravo uopće nije bitno, ističe se u komentarima na rezultate istraživanja "Što developeri žele" zagrebačke tech tvrtke Leapbit.

Što ste propustili

Istraživanje

Za povećanu online kupnju u 2021. najviše su zaslužni – pripadnici “Boomer” generacije!

Mogli smo očekivati kako će online kupnja rasti, ali koja kategorija proizvoda bilježi najveću kupnju, kolika je prosječna vrijednost kupnje i koje generacije dominiraju u online shoppingu?

Startupi i poslovanje

Što lokalizaciju igara čini uspješnom? Ekipa iz Nanobita podijelila je svoja iskustva s nama

Prilagodba casual igara za drugo tržište na prvi pogled možda djeluje banalno, ali riječ je o multidisciplinarnom procesu o kojem uvelike ovisi koliko će igra biti uspješna bez obzira izašla ona u Čileu, Rusiji ili Australiji.

Startupi i poslovanje

Microsoft preuzima Activision Blizzard za 68,7 milijardi dolara!

Svjetski tech gigant preuzeo je svjetskog gaming giganta. Što slijedi?

Startupi i poslovanje

Evo kako Tacta u Belgiji dokazuje da IT projekti u javnom sektoru ne moraju biti spori i dosadni

Nomen est omen, kaže dobro poznata latinska poslovica. A znate li što znači ime Tacta? The Art of Complexity Taming, a označava upravo ono što Tacta tim s užitkom radi – rješava operativne kompleksnosti klijenata i čini njihov posao učinkovitim i lakšim. A to im polazi za rukom čak i kada su u pitanju klijenti iz javnog sektora!

Digitalni marketing

Je li Google Analytics ilegalan? Jest, ako se pogrešno implementira!

Je li korištenje Google Analyticsa (i svih drugih digitalnih servisa koji podatke spremaju u SAD) preko noći postalo ilegalno objašnjavaju stručnjak za digitalnu analitiku Robert Petković i pravnica Ana Bačić.

Društvene mreže

Napokon sam našao jednu, brzu aplikaciju za sve privatne poruke, od WhatsAppa do Slacka – TEXTS!

"Texts" Amerima znači "SMS" odnosno "poruka" što je - koliko god nepraktično - odlično ime za aplikaciju koja vam daje jedno sučelje za privatne poruke na iMessages, WhatsAppu, Telegramu, Signalu, Messengeru, ali i Instagram, LinkedIn, Twitter, Slack i Discord DM-ovima.