„Náš DOT, ktorý umožňuje overenie osôb na diaľku primárne prostredníctvom tvárovej biometrie, nie je konkrétna aplikácia, ktorá by sa nasadila u zákazníka a hneď by ju dokázal používať. Je to súbor viacerých nástrojov, teda mikroservisov a mobilných knižníc, ktoré môže koncový klient, napr. banka, používať po integrovaní do svojej vlastnej aplikácie. V poslednej dobe je moderné používať tvárovú biometriu aj v internetbankingu. Z technologického pohľadu sa zaoberáme dvomi hlavnými smermi, a to rozpoznávaním tváre a textu na identifikačných dokladoch.“
„Umožňujeme týmto spôsobom zákazníkom komplexný zber dát ohľadom totožnosti ich klientov. Vyhnú sa aj chybám či preklepom, ktoré sa často vyskytujú pri vypisovaní tlačiva. Takže tým zvyšujeme aj presnosť a zrýchľujeme celý proces. No a v neposlednom rade je to pre používateľa omnoho komfortnejšie, keďže nemusí vypisovať ďalšie tlačivá. Takže odbúravame aj byrokraciu.”
„Určite. Zameriavame sa teraz na test živosti človeka. Cieľom je zamedziť falšovaniu identity napríklad použitím niekoho fotografie namiesto živej osoby, ktorá by mala byť pred kamerou. Toto sa využíva napríklad pri vytváraní nových bankových účtov online. Pre klienta je to komfortnejšie. Pre banku zase lacnejšie a to napríklad aj z dôvodu, že predchádza podvodom. V prípade, že sa spoja tieto funkcionality – tvárová biometria s testom živosti a rozpoznávanie textu, môže si byť banka istejšia, že osoba je naozaj tou, za ktorú sa vydáva. Vieme napríklad určiť aj to, či naozaj môže mať osoba taký vek, aký je deklarovaný na dokladoch.“
„Technológia by mala fungovať pri klasifikácii človeka podobne ako ľudský mozog. Ak človek niekoho vidí a dokáže odhadnúť, či ide o štyridsiatnika, alebo dôchodcu, tak to dokáže aj algoritmus. Samozrejme aj technológia si môže byť istá viac alebo menej, rovnako ako človek.“
„Zlepšujeme jeho presnosť a rýchlosť a pridávame stále nové funkcionality. Počúvame zákazníkov, aké majú problémy a čo by uvítali, aby bolo v produkte. Je toho veľa. DOT je stále mladý produkt, má okolo 2,5 roka a je stále veľa vecí, ktoré sa doň dajú pridávať.“
„Práve rozpoznávanie textov trpí menším neduhom. Klienti bánk sú cez appku vyzvaní, aby si odfotili ID kartu. Mnohí to však robia zle. Fotky sú malé, rozmazané, tmavé, nekvalitné. Teraz vyvíjame mobilný komponent, ktorý inštruuje klienta, aby ID kartu správne nasmeroval, odfotil ju z požadovanej vzdialenosti, v dobrom svetle tak, aby bolo zaostrené na kartičku. Chystáme sa riešiť problém s lesklosťou identifikačných kariet, keďže sú zaliate v obale. Nový komponent sám urobí a vyberie najlepšiu fotku.“
„Momentálne máme v tíme šiestich ľudí, z toho sme piati vývojári a jeden DevOps špecialista. Úzko spolupracujeme aj s produktovým manažérom. Väčšinou robia viacerí na tom istom probléme. Robotu si delíme na izolovanejšie úlohy a potom ich spájame dokopy ako skladačku.
„Stále ideme podľa plánu, ktorý voláme road mapa. Máme naplánovaný krátkodobý a strednodobý rozsah prác. V hrubých kontúrach plánujeme až na rok dopredu. Popri tom robíme aj údržbu, keďže sem-tam klienti reportujú chyby, ktoré musíme opraviť. Každé dva týždne máme prioritizačný míting. Na ňom sa naplánuje práca na ďalšie dva týždne. Pomedzi to je grooming míting, kde sa vyšpecifikuje funkcionalita, ktorú chceme robiť v blízkej budúcnosti.“
„Jedna ucelená funkcionalita môže trvať dva – tri mesiace. My ju však rozdelíme na storky, ktoré trvajú 2,5 až 5 dní. Uzavrie sa síce úspešne do želaného stavu, ale my máme stále vízie ako ju zlepšovať. :-)“
„Hnacím motorom sú požiadavky od klientov. My ako vývojári s nimi síce nekomunikujeme, ale máme tím konzultantov a obchodníkov. Niekedy prídu od klientov podnety na zlepšenia, ak im niečo nefunguje, niekedy sú to ucelené požiadavky na pridanie konkrétnej funkcionality. Produktový manažment povie, čo je naozaj dôležité a už keď je to jasné, konzultujú to s nami. Často je problém príliš technologický a ani produktový manažér nemusí úplne vedieť, ako by sa dal riešiť. Preto je dobré, že sa aj my developeri podieľame na tom, ako bude produkt vyzerať.“
„DOT je síce mladý produkt, ale už ho používa množstvo zákazníkov u nás aj vo svete. A tak sa aj rýchlo vyvíja. Produkt rapídne vylepšujeme a dopĺňame o nové funkcionality. To je ale do istej miery limitované počtom developerov, preto tím rozširujeme a hľadáme k nám Senior Java Developera.“
„Robíme hlavne v programovacom jazyku Java, Kotlin, Swift a okrem toho na mikroservisy používame Spring Boot. Čo sa týka nášho interného deploymentu, používame aplikačný kontajner Docker. Mobilné knižnice pre Android píšeme v Java a pre iOS v jazyku Swift. Pre každú platformu sú napísané nezávislé knižnice. Posledný približne rok sa snažíme všetky nové komponenty robiť v programovacom jazyku Kotlin. Ako úložisko pre zdrojové kódy používame GitLab. Používame ho aj na continuous integration a continuous deployment.“
„Snažíme sa byť čo najzastupiteľnejší. Ideálny cieľ by bol, keby každý vedel robiť všetko :-). Ale samozrejme to v praxi nie je úplne tak. Každý sa špecializuje na niečo iné, takže niektorí sú lepší v programovaní pre mobilný svet a iní zase pre serverové komponenty. Samotnú technológiu na rozpoznávanie tváre a textu však robia iní kolegovia z našeho R&D. My používame ich výstup a softvérové knižnice integrujeme k nám do produktu. Dávame ich do mobilných knižníc, robíme mikroservisy, s ktorými sa dá komunikovať. Toto je dôležitý aspekt v architektúre produktu.“
„Je to veľmi zaujímavé pre ľudí, ktorí nechcú pracovať na monotónnej činnosti a baví ich neustála zmena. Nemusí to každému vyhovovať, ale pre veľa ľudí je to atraktívne. Je to kreatívne a stále niečo nové. Čo je skvelé, a nie je to tak v každej technologickej firme, aj my developeri sa do veľkej miery podieľame na tom, ako produkt v konečnom dôsledku vyzerá a funguje.“
Android mobilné knižnice:
– programovacie jazyky: Java, Kotlin
iOS mobilné knižnice:
– programovacie jazyky: Swift, Objective-C
Microservices:
– programovacie jazyky: Java, Kotlin
– frameworky: Spring Boot, JNA
Všeobecne:
– testovacie frameworky: JUnit, Mockito, MockK, Jacoco
– statická analýza: SpotBugs, ktlint, Android lint
– ostatné: Git (Feature Branch Workflow), Gitlab (používame ako Git
Repository a tiež ako DevOps lifecycle tool), Docker, Swagger pre
dokumentáciu REST API, Opentracing
Na organizáciu práce používame metodiku Kanban.