Hyperák Marek Mihalčin: Nový človek musí do tímu zapadnúť. Nie sme žiadni sólisti, nekopeme len za seba

Ľudia dnes na Instagrame „stalkujú“ kadekoho, no Marek Mihalčin nesledoval len tak hocijaký profil. Po skončení školy sa v jeho hľadáčiku ocitla @hyperialife. A dobre spravil – teda dobre „stalkoval“. Dnes je u nás už tretí rok, aktuálne na pozícii Head of Frontend.

V rozhovore sme sa porozprávali o web develop tíme, o tom, akých ľudí medzi seba hľadajú a tiež o technológiách, ktoré pri práci využívajú. Vrátili sme sa k jeho programátorským začiatkom a prebrali sme, či je pre frontend developerov potrebné vysokoškolské vzdelanie. Na záver odporučil aj niekoľko užitočných IT kurzov.

Koľko členov má web develop tím a ako máte rozdelené úlohy?

Web develop tím má v súčasnosti osem členov a ďalších usilovne hľadáme. Každý z developerov sa primárne špecializuje na jeden z našich troch projektov – LeadGeneration, Kimbino, Tastelist – a podľa toho sú rozdelení do troch tímov. Vo výsledku máme teda tri frontend developerské tímy. V rámci nich sa už mierne odlišuje to, akým štýlom tímy pracujú, alebo aké technológie používajú.

Pozrime sa bližšie na tie technológie. Aké používate v jednotlivých projektoch?

Tých technológií je veľa, takže prierezovo: pri Kimbine a Tasteliste sa na frontende primárne spoliehame na Vue.js, ale popri tom sa v nich človek stretne aj s technológiami ako Nuxt, Node, občas aj nejaké to PHP. V rámci projektu LeadGeneration momentálne využívame vlastné CMS alebo napríklad microframework Slim (tiež PHP).

Jednoznačne najväčšou výzvou bol v poslednej dobe prechod na Vue.js. Predchádzala tomu analýza, kde sme sa najprv rozhodovali, kto z trojice React, Angular a Vue bude naším šampiónom. Vyhralo Vue a postupne sme do neho prepísali náš projekt Kimbino. Zároveň sme vo Vue začali vyvíjať aj náš najnovší projekt Tastelist.

Aké výhody priniesol prechod na túto technológiu?

Hlavnou výhodou prechodu na Vue z pohľadu nášho developu je rozdelenie vývoja na backend a frontend. Backend sa môže plne sústrediť na svoje úlohy a frontend zas na tie svoje. Z pohľadu frontendu je to rýchlejší vývoj, práca s modernou technológiou a aj samotná rýchlosť webov.

Aké nové výzvy čakajú web develop tím tento rok? Na čo sa plánujete v najbližších mesiacoch zamerať?

Čo sa týka výziev, Kimbino je momentálne vo fáze prechodu na Vue3. Tastelist sa ako nový projekt stále rozvíja, takže tu vznikajú nové funkcionality, čo je samo o sebe výzvou. Pri LeadGeneration prechádzajú viaceré z našich projektov redizajnom, prípadne ich prerábame do našeho CMS. Skrz všetky projekty prakticky stále pracujeme aj na optimalizácii rýchlosti našich webov, ktorá ešte nie je úplne podľa našich predstáv.

Keď už sme pri optimalizácii rýchlosti, aké metriky sú dôležité?

Momentálne najdôležitejšie sú pre nás tzv. Core Web Vitals. Tieto metriky sledujú vykreslenie najväčšieho prvku, ďalej čas odkedy je web schopný reagovať na interakciu, ako aj to, ako stabilný je web počas načítavania, či teda „neskáče“.

Core Web Vitals prišli od Googlu a vychádzajú z analýz správania používateľov na weboch. Dá sa povedať, že pokiaľ tieto metriky web spĺňa, tak je viac user friendly. Pokiaľ však web tieto metriky nespĺňa, dôsledkom nie je len menšia „spokojnosť používateľa“, ale aj horšie čísla z pohľadu SEO, či východisková pozícia pre PPC. V konečnom dôsledku to teda môže ovplyvniť úspešnosť biznisu.

Aké ďalšie nástroje používate na meranie výkonnosti webov?

Na meranie využívame hlavne SpeedCurve. Je to software, ktorý kombinuje merania viacerými spôsobmi, umožňuje analýzy a po úpravách či zapracovaní nových funkcionalít nám pomáha porovnať parametre predtým a potom. Celkovo, v rámci zlepšovania performance našich projektov je pre nás veľkou pomôckou.

Pri optimalizácii performance sledujeme napríklad objem dát, ktoré potrebuje prehliadač spracovať, veľkosti a formát obrázkov. Snažíme sa pri úvodnom načítavaní minimalizovať množstvo JavaScriptu, to, čo nie je nevyhnutné, odsúvame v poradí načítavania na neskôr. Využívame critical CSS, čiže primárne načítavame CSS, ktoré potrebujeme vo viditeľnej časti webu …

Čiže medzi základné odborné predpoklady frontend developera by sme mohli zaradiť práve JavaScript a CSS. Čo ďalšie by mal človek na tejto pozícii vedieť?

Základom je znalosť HTML, CSS, JavaScript. Potom prichádzajú na rad technológie ako Typescript, Webpack, Git, NPM,… Z JS frameworkov preferujeme Vue, avšak pokiaľ kandidát pozná iný JS framework, napríklad React, určite ho to u nás nediskvalifikuje. Výhodou je, pokiaľ má frontenďák aspoň teoretické znalosti backendu. Ak znalosti nie sú len teoretické a vyzná sa povedzme v Node, je to viac než vítaný bonus :-).

Samozrejme, nároky na developera stúpajú, pokiaľ sa bavíme o seniornejších developeroch. Očakáva sa väčší presah do iných technológií, väčšia prax, schopnosť prichádzať s riešeniami. Podstatné je napríklad aj analytické myslenie či zodpovednosť a dochvíľnosť.

Zároveň, hoci je to technický job a človek trávi veľa času za počítačom, aj tu sú potrebné nejaké soft skills. Predsa len, súčasťou práce je komunikácia s kolegami, zadávateľmi a podobne.

Ako prebiehajú pohovory, čo ťa na uchádzačovi zaujíma?

Nevyhnutné sú spomínané znalosti, ktoré pri kandidátovi zohľadňujem. Ďalej ma pri pohovoroch zaujímajú odpovede na otázky, ktoré vychádzajú z toho, s čím sa na frontende v danej dobe stretávame. Momentálne sa často uchádzačov pýtam napríklad na spomínaný performance, ako zabezpečia, že web bude svižný s ohľadom na Core Web Vitals.

V neposlednom rade ma zaujíma aj povaha kandidáta. Technológie sa totiž dajú naučiť, no s osobnosťou človeka sa pracuje ťažšie. Okrem technického skillu je pre mňa totiž veľmi dôležité, aby nový človek zapadol do súčasného kolektívu. Sme totiž tím, nie sme žiadni sólisti, nekopeme len za seba.

Veľmi oceňujem, keď je človek na pohovore úprimný a nehrá sa na vševedka. Páči sa mi, keď vie triezvo zhodnotiť, v čom je dobrý a čo naopak nevie. Naopak nepáči sa mi, keď uchádzač príde na pohovor a pomaly ani netuší, ako sa firma, kam prišiel na pohovor, volá. To na mňa pôsobí veľmi neprofesionálne.

Kedy si vlastne prišiel do Hyperie ty a čo ťa na firme zaujalo natoľko, že si sa tu rozhodol pracovať?

Do firmy som prišiel približne pred tromi rokmi. Tých dôvodov, prečo práve Hyperia bolo viac. Jednak som vedel, že chcem prácu v Žiline. Druhým kritériom bola technologická firma, ktorá sa zaoberá webovými technológiami. Tretím kritériom bolo, aby to bola moderná firma, kde nezakrpatiem, ale budem sa môcť rozvíjať v tom, čo ma baví. Hyperia bola teda jednou z firiem, ktoré som sledoval. Dosť mi to uľahčoval napríklad Instagram, cez ktorý som mohol firmu „stalkovať“ aj v časoch, keď som tu ešte nepracoval. Keď potom jedného dňa vypísali pozíciu Web Developera, prihlásil som sa. Odvtedy som teda tu a momentálne som na pozícii Head of Frontend.

Čo je aktuálne tvojou náplňou práce?

Zastrešujem frontend vývoj v Hyperii. Pre mňa to znamená, že teamleadujem našich frontend developerov a starám sa, aby všetko klapalo či už po technickej ale aj po ľudskej stránke. Čo sa týka programovania, mám na starosti frontend vývoj v rámci projektu LeadGeneration.

Kedy si začal s programovaním?

S programovaním som začal počas vysokoškolského štúdia. Zameranie môjho študijného programu sa týkalo programovania menej ako som si pôvodne myslel, takže väčšinu znalostí som získaval samoštúdiom po večeroch. Môj internátny život sa teda odohrával väčšinou za počítačom :-D.

Je podľa teba dôležité, aby mal frontend developer vysokoškolské vzdelanie alebo sa dá kvalitne naučiť frontend napríklad cez IT kurzy?

Pokiaľ má frontend developer vyštudovanú vysokú školu so zameraním na IT, má často lepšie základy, teoretické znalosti a rozumie veciam v širšom kontexte. To je niečo, čo sa človek bez školy, samozrejme, dokáže naučit tiež, ale vyžaduje to čas a prax. Na druhej strane, technológie sa v dnešnej dobe veľmi rýchlo vyvíjajú a pre školy je náročné tak rýchlo reagovať na trendy. Vždy je teda potrebné nejaké to samoštúdium, stáž či prax.

Tých zdrojov na učenie sa je v dnešnej dobe toľko, že kto chce, dokáže sa vypracovať na viac než solídnu úroveň aj cez kurzy, bez vysokej školy. Mne samému IT kurzy rozšírili obzory a mnohé veci ma naučili. Koniec-koncov, v Hyperii je takýchto prípadov veľa. Nemáme tu len „kockáčov s titulmi“, ale aj kopu ľudí, čo sa naučili programovať sami a ten rozdiel nie je vždy viditeľný. Takže titul pred menom nie je nevyhnutný, nie je to patent na rozum, no určite to nie je ani na škodu.

Ako sa vzdelávaš, čo ťa posúva dopredu? Aké zdroje by si odporúčal frontend developerom?

Snažím sa kombinovať zdroje. Aj vďaka firme mám prístup k IT kurzom, čo ma posúva po technickej stránke. Počúvam podcasty, často zamerané na skúsenosti iných ľudí z praxe, case studies a podobne. Keď mám čas, siahnem aj po knihách – tie sú obvykle zamerané na manažment, business, či prácu s ľuďmi.

Ak mám niečo odporučiť, pokiaľ sa človek chce zdokonaliť v programovaní, tak Learn2code alebo Udemy je cesta, kde sa dá toho nájsť kopec. Na Learn2Code je to napríklad kurz WebRebel. Na Udemy mám dobré skúsenosti s kurzami od Andrei Neagoie, mimo Udemy jeho kurzy môžeš nájsť na zerotomastery.io. Dobré ohlasy sú aj na kurzy od Maximiliana Schwarzmullera. Ak sa developer špecializuje na Vue, osvedčilo sa nám aj Vue Mastery. Hlavne začínajúcim programátorom odporúčam jednoducho programovať. Nestačí len pozerať videá, treba si to „ošahať“, jedine tak sa v tom človek zdokonalí.