BETA
My accountGet started
May 262023
CodeCon
7 min read

Rozhovor s Marcelom Galovičom (Sensoneo) nielen o CodeCon-e 2023

S našim kolegom a developerom Marcelom Galovičom, ktorý v Sensoneo zastáva pozíciu tech leadera sme pokecali o tom, ako sa mu na konferencii páčilo, ale aj technológiách a nástrojoch, ktoré využívajú developeri v spoločnosti, ktorá je globálnym lídrom v smart manažovaní odpadu.

Rozhovor s Marcelom Galovičom (Sensoneo) nielen o CodeCon-e 2023

Partnerom tohtoročného CodeCon bolo aj Sensoneo a okrem prezentácie nášho CEO na hlavnom stagi sme v Starej Tržnici priniesli aj veľa kvalitného vínka pre všetkých zúčastnených vývojárov. S našim kolegom a developerom Marcelom Galovičom, ktorý v Sensoneo zastáva pozíciu tech leadera sme pokecali o tom, ako sa mu na konferencii páčilo, ale aj technológiách a nástrojoch, ktoré využívajú developeri v spoločnosti, ktorá je globálnym lídrom v smart manažovaní odpadu. Zároveň sme sa porozprávali o tom, ako sa v tíme vývojárov vytvára priestor pre kreativitu a inovácie.

DSC06611-Enhanced-NR.jpg

Páčilo sa ti na tohtoročnom CodeCone?

CodeConu som sa zúčastnil prvýkrát. Za mňa osobne boli prednášky na hlavnom pódiu trochu viac biznisovejšie a aj ľudia, ktorí sa prišli networkovať boli skôr projekťáci alebo analytici. CodeCon je určite miesto, kde developeri sú, ale ich možno až tak biznis nezaujíma a plynie to aj z ich introvertnejšej povahy, že neprídu do stánku sami od seba networkovať. Takže vyslovene technickejšie prezentácie, ktoré pre mňa ako developera boli zaujímavé sa nachádzali až na hornom poschodí, kde bol podľa mňa aj medzi návštevníkmi väčší počet samotných vývojárov. Na našom stánku s vínom sme však mali možnosť spoznať veľa zaujímavých ľudí, aj takých ktorý o našej firme ešte nepočuli a tak určite hodnotím pozitívne, že sme sa tohto eventu zúčastnili.

Z hľadiska R&D - ako sa vyvíjalo Sensoneo počas posledného obdobia a aké zmeny ste zaznamenali?

Ja môžem hovoriť najmä za našu divíziu, ktorá robí systémy pre zálohovanie a reverznú logistiku. Čo je však spoločné pre obe divízie je určite, že sa aktuálne snažíme upratať infraštruktúru v Azure. V minulosti to bolo tak trochu nahádzané na jednej kope a nebolo napríklad jasné, z akých Azure resourcov projekt pozostáva. Každý projekt si žil vlastným životom bez synchronizácie či harmonizácie, takže sa to snažíme spraviť prehľadnejšie. Okrem toho sme v našej divízii začali riešiť aj prenášanie viac zodpovedností na support, posilnenie support tímu a jeho toolov. Väčšina projektov fungovala tak, že otázky od zákazníka išli priamo na projekťáka alebo developerov, čím sa obchádzal first-level support, čo zbytočne uberalo našu kapacitu a spomaľovalo vývoj pre samotného klienta, tak sme si povedali že s tým musíme tiež niečo robiť.

Čo sa týka nových projektov, tak aktuálne máme v plnom prúde najmä DRS (deposit refund system) pre dve krajiny (jedna v západnej a jedna v strednej Európe). Na tých je teraz nasadených najviac developerov, sú tam najkritickejšie termíny a aj vysoké požiadavky na security. Len tak pre zaujímavosť tak kým príde request z nášho frontendu na backend service tak musí prejsť cez dva gateway-e a dva firewally a to je len „dev“ protredie 😊

V poslednej dobe sa nám darilo zamestnávať skúsených, seniorných a kvalifikovaných developerov. Čo bolo kľúčové pre ich rozhodnutie pridať sa do nášho tímu?

Určite hlavne tá naša doména, že robíme green projekty, ktoré reálne pomáhajú životnému prostrediu. To má určitý cveng a keď niekomu poviete, že robíte softvér pre zálohovacie systémy alebo optimalizáciu zberu odpadu, tak to je zaujímavé aj pre netechnických ľudí. No a mimo toho môžu byť pre developerov určite aj technológie, ktoré používame.

DSC04487.JPG

Aké to teda sú a prečo sú pre vás dôležité?

Snažíme sa používať technológie ktoré čo najúčinnejšie riešia problémy ktoré naše systémy riešia. Napríklad čo sa týka Azure, tak skoro všetko, čo sa tam dá používať - AKS (Azure Kubernetes Service), Azure Container apps, Azure functions, ServiceBus, Api management service v súčinnosti s Azure DevOps. Z nástrojov napríklad JetBrains Rider alebo Github Copilot – to je taký šikovný AI autocomplete, vďaka ktorému vieš byť efektívnejší. Nie vždy to je stopercentné a sú tam aj chyby, ale vie ti to poradiť a trochu ti to ušetrí tú mentálnu kapacitu, ktorú možeš neskôr minúť na scrollovanie sociálnych sieti 😊

Čo sa týka technológii, používame najnovší .Net 7, PostgreSQL aj MSSQL najnovší React a typescript.

Ďalej sú to automatizované build a release pipeliny, to sú už také štandardné veci, ktoré tu na niektorých projektoch možno ešte neboli úplne zavedené, ale na tých nových je to už nevyhnutná súčasť.

Na jednom projekte máme aj event sourcing, čo je trocha iný prístup k ukladania dát – to znamená že nepoužívaš relačné databázy, ale vychádzaš z udalostí, ktoré sa stali v minulosti a ich projekciou vieš učiť aktuálny stav. Používa sa to napríklad keď chceš mať históriu zmien nejakého objektu.

Aké sú hlavné výzvy, ktorým musí tvoj tím čeliť pri vývoji softvéru a ako sa im venujete?

Momentálne sú to hlavne tesné deadliny a zároveň dodržiavanie kvality kódu tak aby nás to neskôr nedobehlo. Pre mňa je absolútne dôležité, že verifikujeme funkčnosť kódu automatizovanými testami pri integrácii kódu pomocou pipelines a že si tiež robíme vzájomne code review. Potom máme prostredia, na ktorých testeri overujú či nové featuri fungujú tak ako majú, a zároveň či sa nenašla nejaká chyba ktorá nie je pokrytá automatizovanými testami.

Na niektorých starších projektoch nemáme takéto testy. Čo je problém je že nemôžeš si tak byť istý, že keď niečo pridáš, tak nebreakneš niečo iné čo predtým fungovalo. Aj mne osobne sa stáva, že spravím nejakú zmenu a možno niečo nedomyslím, a vtedy je veľká šanca že nejaký test mi to hneď signalizuje a nedozviem sa ta až od testera alebo v horšom prípade zákazníka. Preto hovorím že testy majú svoj zmysel aj keď zaberú nejaký čas, tak z dlhodobého hľadiska je investícia do nich hodná.

DSC04451.jpg

Aký je váš prístup k inováciám a ako podporujete kreativitu v tvojom tíme?

Dá sa povedať, že u nás majú developeri dosť voľné ruky, aké technológie použijú na vyriešenie funkcionality daného projektu. Snažíme sa používať rovnaké technológie cross projekty, ale keď chce niekto skúsiť niečo exotickejšie tak má voľné ruky ale je to potom ich zodpovednosť aby to nedopadlo zle.

Napríklad, teraz sa na jednom DRS projekte ide robiť iný modernejší spôsob API definície. Nepoužívajú sa api controllery, ktoré sú robustnejšie ale pomalšie lebo pri spustení aplikácie sa registruje veľa .NET frameworkových vecí, ktoré sa potom ani nemusia používať. Používame novší spôsob, keď developer definuje pri spustení aplikácie, čo všetko sa má nakonfigurovať, typy autorizácie, middlewary a podobne. Takto tam nebude niečo, čo vôbec nepoužívame. Niekto by povedal že minimal api sú prehľadnejšie, ale ja som skôr klasik 😊

Ako sa vám darí udržiavať a rozvíjať technické zručnosti tímu?

Nehovorím, že nemáme edukačné nástroje a podobné aktivity, ale v tomto časovom období toho veľa nie je, lebo nás tlačia deadliny. Mávame však developerské tech guildy – meetingy. Tam si zdieľame best practices alebo odprezentujeme, s čím sme mali problém a ako sme ho vyriešili. Naposledy napríklad kolega zhrnul Dependency injection alebo spravil intro do terraformu.

Aké sú plány do budúcnosti v oblasti používania technológii?

Z noviniek napríklad React Native na mobilné aplikácie alebo Terraform. React native sme začali používať preto, aby sme urýchlili a zjednotili vývoj frontend-ov a mobilných aplikácií ktoré riešia podobné problémy. Terraform používame na projektoch kde je zložitejšia infraštruktúra, a sposobovalo by veľa chýb keby sa o takýchto viac systémov súčasne musí niekto starať priamo cez azure.

Veľa sa teraz rozpráva o AI, ako som už spomínal používame GitHub Copilot. Osobne by som nepovedal, že AI niekedy úplne nahradí developerov, možno niektorých juniornejších áno. Ale niekoho kto rozumie celému systému, ako má fungovať a aby to celé vyšpecifikoval, tak stále za tým bude musieť byť veľmi technický človek. Nikdy to nebude také, že chceš aplikáciu na optimalizáciu zberu smetí a tá AI to urobí celé za teba, pretože musíš vedieť nadefinovať aj nefunkcionálne požiadavky. Celé to však ide dosť dopredu, každý deň je nejaký nový update alebo nová aplikácia takže sám som zvedavý kam to zájde.

Prečo si myslíš, že Sensoneo je top miesto pre vývojárov na prácu?

Myslím, že sa tu naučia extrémne veľa moderných vecí a zručností. Sú tu šikovní ľudia, od ktorých sa môžu veľa naučiť. Aktuálne zavádzame buddy onboarding systém, kde bude k novej posile do tímu priradený jeden skúsený developer. Práce je dosť a termíny sú dosť nabité, takže noví kolegovci musia byť občas hodený do vody a rýchlo sa naučiť plávať – to však k tomu patrí, a podľa mňa sa takto najlepšie naučíš veci, keď sa ich snažíš sám vyriešiť. Ale určite tu máme ochotných a priateľských ľudí, ktorí si vedia nájsť čas a pomôcť.