Jakub Baierl: Začínal jsem zametáním frontendových podlah, teď vedu četu uklízečů
Rozhovor nejen o frontendu
Jakubu Baierlovi nikdo neřekne jinak než Bíbr. Jako vrchní webař má na starosti celý frontend tým, ale když zrovna nekódí, žije hudbou. V rozhovoru se rozpovídal o budoucnosti aplikací i své hvězdné kariéře.
Dostala jsem za úkol udělat rozhovor s teamleadrem frontenďáků – Bíbrem – můžeš mi jako nováčkovi vysvětlit, jak tahle tvoje přezdívka vůbec vznikla?
Myslím, že do kanclu to přinesl Honza Mísař, který mě tak znal ze školy. Chodili jsme spolu na ČVUT do ročníku a tenkrát mi tak říkalo 90 % fakulty. Jednak proto, že jsem měl patku jako Justin Bieber a moje iniciály jsou JB. :D Když jsem se někde podepisoval, tak to bylo jasný. Navíc mám příjmení Baierl, což se špatně vyslovuje. Často z toho byl Barel, Bíbr a plno dalších pseudonymů, ale ten Bíbr se ujal nejvíc. Byl jsem poměrně extrovertní a měl jsem podobný účes, tak se to chytlo.
Díky za objasnění. Jak ses dostal k frontendu a do Ackee?
Řekl bych, že za hlavní nakopnutí toho, že se budu věnovat jenom frontendu, považuji moji předchozí práci u Tomáše Řeháka v legendární kachlíkárně Bubenská 1. Díky němu jsem kromě Javy dělal i nějaké vedlejší frontendové projekty a začalo mě to bavit. A pak jsem přišel do Ackee, kde letos oslavím 6 let. Do Ostravy mě ale dodnes zvou na různé talky.
Vzpomeneš si, na čem jsi v Ackee začínal? A jak se tvoje práce změnila v průběhu let?
No, podle mě jsem začínal frontendovým zametáním podlah. :D
Haha, dřív to asi bylo trochu o něčem jiném než dnes, co?
Byly to různé maličkosti. Pamatuju si, že jsem dělal opravy map nebo zarovnával položky v e-shopu. Měnil jsem barvy a tak. Ale teď už vedu celý ten tým, co opravuje ty položky a barvy, což je docela fajn.
Takže teď vedeš celou četu uklízečů? :D
Přesně tak, to je docela dobrý eufemismus. Dostáváme se k o dost větším projektům, než jsme měli předtím. Tenkrát to byly menší věci, mezi kterými jsme si tolik nevybírali. V současnosti jsou to zakázky pro obří klienty jako Livesport, což je velký rozdíl. Už neděláme tak neobvyklý projekty jako dřív.
Jako co třeba?
Za zmínku stojí třeba jeden z prvních – Zubozem. Šlo o webovou hru pro žáky základních škol, která je zábavnou formou motivuje k lepší péči o vlastní chrup. Mělo to legendární znělku a namlouvali to i známé osobnosti. Všechno jsem to z původního Adobe Flash přepisoval do Javascriptu. Byla to miliarda bezesných nocích ještě ve starém kanclu Ackee.
To zní dost zajímavě!
Všichni tu znělku znali, protože v té hře nešel vypnout zvuk. Vždycky, když jsem to pustil znova, to začalo hrát na celý kancl a všichni to zpívali se mnou. :D
Tak to si budu muset dohledat. Ale zpátky k náplni tvojí práce a tomu teamleadrovství. Co všechno to obnáší?
Hlavně se starám o to, aby všichni v týmu byli spokojení. Aby všichni měli dost práce. Ale i takové práce, která je nějakým způsobem baví, jsou v ní dobří, nebo je může dál rozvíjet. Je to hodně o neustálém “přehazování” lidí na projektech. Zjišťování toho, jak se v tom cítí. Občas jsem jako taková mamka. :D Aby se sám člověk cítil dobře, musí se za určitý čas někam posunout. Proto je potřeba mu vědomě nebo podvědomě nabízet nějaké věci, ve kterých se může realizovat. A to s ním řeším. S každým jinak, ale vždycky to nějak vymyslíme.
Jak jinak vypadá takový běžný pracovní den ve frontendu?
To záleží, může se to lišit. Ale obecně by si frontenďák po příchodu měl udělat kafe nebo nějakou snídani. Čeknout kalendář, pokud to neudělal večer. Při práci na větších projektech bývá ranní stand up. Pak celé dopoledne můžeš pracovat na připravených úkolech. To probíhá i odpoledne, ale mezitím si samozřejmě zajdeš na oběd. Potom tě čeká třeba další meeting. Jednou za dva nebo tři týdny mám setkání 1:1 s každým z týmu. Tam právě probíráme tu vlastní profesní cestu v Ackee. A když je pátek, čeká tě týmový meeting frontendu. Bavíme se o tom, co kdo za ten týden dělal, na čem třeba spálil moc času nebo co zajímavého našel.
A na čem spalujete čas teď? :)
Aktuálně děláme nejvíc na Flashsportu a Flashnews. Ale kromě toho bych zmínil aplikaci pro In-Počasí, firmu, se kterou spolupracujeme už delší dobu. Je to jedna z nejstahovanějších českých appek na počasí, kterou děláme v React Nativu. A rozhodně bych neměl zapomenout taky na spoustu interních projektů – třeba našeho správce hesel Passwd, systém na správu faktur Expenses nebo náš open source. Koho by zajímalo víc, jak pracujeme, může kouknout do naší týmový kuchařky.
S čím vším se musíš v práci umět vypořádat?
Když to vezmu z toho frontenďáckého pohledu, tak je každý zajímavý a velký projekt výzva. Především dodržet ten časový odhad, který jsme si sami stanovili. To je na tom vývoji větších aplikací nejtěžší. Co se týče teamleaderovské pozice, tak je docela výzva odhadnout lidi. Je potřeba správně vytipovat, kdo se hodí na jaký projekt, aby se z toho ten člověk nezbláznil. To pak někomu můžeš zničit život na půl roku tím, že by pracoval na něčem, co ho nebaví.
A jak postupuješ ty, když ti něco náhodou něco nejde?
K tomu nedochází jen náhodou. Já googlim. Nedávno jsem si dokonce chtěl napsat nějaký skript, který by mi zjistil, kolikrát denně něco vyhledávám. Přišlo mi totiž, že se to děje fakt strašně moc. V těch lepších případech se ale nejdřív zkouším zamyslet sám. Když to nevyjde, tak rovnou pátrám na internetu, projíždím StackOverflow. A teprve potom se zamýšlím. A pokud se dlouho nemůžu dostat k nějaké odpovědi – což vždycky beru jako svou osobní prohru – tak většinou píšu ostatním z týmu. Občas se obracím i na backend, často chodím za panem Šmoldasem. Sám sebe přesvědčuju o tom, že mám nejprve zapojit vlastní hlavu. Jenže občas to nejde a dávám Command + Tab a Safari a jedu. :D
Kdo vyhledává, ten jede. Napadá tě nějaký těžko uchopitelný projekt mimo tuhle tvoji osobní challenge?
Úplně na začátku to byl snad každý, protože jsem o tom nevěděl nic. Nikdo nevěděl nic. Ani Google nevěděl, jak se to dělá. To bylo hodně bláznivý, ale povedlo se nám to.
Ze současnosti bych vypíchnul Prague Airport Taxi, což je appka napsaná v React Native. To byla výzva proto, že je to ohromná appka. Museli jsme tam integrovat spoustu funkcí a hlavně jsme se pustili do psaní v hybridní formě. Ještě ji doděláváme, ale už funguje.
Ještě mě napadá projekt – aplikace na geocaching pro Škodovku, kdy jsme museli vyvinout desktopovou appku pro palubní počítač v autě, ve kterém to funguje trochu jinak. Dělali jsme to v Angularu. V tom běžně nepíšeme, ale bylo to podobné Reactu, a v něm jsme jako doma, takže jsme se s tím poprali.
Kde ještě se kromě práce na nových projektech rozvíjíš a inspiruješ?
Nejvíc inspirace momentálně čerpám ve svém týmu. Všichni sledují různé trendy a novinky, které spolu sdílíme na meetingu jednou za týden. Já osobně čtu Medium, občas si pustím nějaké záznamy meetupů nebo talků na YouTube. Loni jsem na dvou mohl vystoupit a od té doby nasávám novinky i od frontendistů, kteří tam byli. Čas od času proklikám Twitter, když mi někdo pošle odkaz, sám od sebe tam nechodím. Nebo si dělám kurzy třeba na Eggheadu.
A co považuješ za současné trendy?
Hrozně záleží na konkrétní aplikaci. Trendů je spousta, ať už se jedná o technologie jako GraphQL nebo TypeScript. Ty už tu jsou delší dobu, ale všichni se k nim postupně dopracovávají. Pro mě je v tuhle chvíli hlavní udělat appku (a možná je to tím, že už jsem starší a dospěl jsem), která fakt funguje a byla vyvinutá za poměrně slušný čas. A především to, aby byla udržitelná a vydržela minimálně rok nebo pár let samostatně fungovat. Řekl bych, že dělat kvalitní aplikace, aniž by obsahovaly miliardu nových technologií, ale byly použitelný, teď bude největší trend.
To zní skvěle – takže udržitelnost je prostě budoucnost už snad v každém oboru.
Dost to teď řešíme v týmu a je to jeden z našich největších cílů. Udělat ty appky tak, aby si někdo nevyrval vlasy, až se k nim za rok dostane. Vývoj se sice snažíme udržovat v moderních technologiích, ale nezkoušíme tam plácat pořád něco nového a nového.
Tím se můžeme přesunout k techničtějším otázkám. Když si začínal, být webový vývojář znamenalo kódění CSS a HTML. Dneska jsou webové aplikace oddělené od backendu a komunikují přes API. Co dalšího se podle tebe takhle radikálně změnilo?
Řekl bych, že ta nejradikálnější změna je v přemýšlení o tom, jak se ta appka teď vytváří, a práce s daty. O informace, který jsi dřív mohla získat z nějaký databáze, si dneska musíš žádat právě přes API. A v tom asynchronním fungování, kdy je nechceš získat hned, musíš řešit právě to, kdy si o ně chceš zažádat – když se ta stránka refreshne, člověk na něco klikne, nebo po deseti vteřinách? Je to o nějakým logickým svazování, musíš to někam ukládat. Ať už do vlastní mezipaměti nebo do paměti toho browseru. Jde o tolik operací, které předtím šly přes backend, že to všechno je potřeba promýšlet hodně dopředu.
V malých aplikacích (třeba když si zavolám, jaký je počasí) je to v pohodě. Ale když je to aplikace, která je velká a pracuje se na ní rok, tak věcí, který se tam volají, je miliarda. A když se to udělá blbě už na začátku, tak to dříve nebo později tomu člověku spadne na hlavu. To stylování k tomu patří pořád, ale to, co předtím tvořilo třeba 90 % náplně práce, dělá teď 30 %. Všichni frontenďáci musí samozřejmě kódit a většinu to podle mě baví, jen to už není jediná část naší agendy.
Hodně lidí dneska mluví o progresivních webových aplikacích. Vnímáš je ty jako webař jako náhradu za nativní aplikace?
Ne, já to vnímám jako něco jiného, odlišný směr. Existuje hodně článků o tom, že PWA nahradí nativní aplikace, ale podle mě je to blbost a jde spíš jenom o další buzzword. Je to něco navíc, co nabízejí webové technologie, jenže to nenahradí desktopové appky. Dokážeš s tím sice udělat aplikaci, kterou si můžeš dát na svůj dashboard, ale určitě se nestane trendem to, že by všichni zahodili nativní appky a psali je najednou v Javascriptu.
Nicméně je to super věc, když jsi webový vývojář a máš v Javascriptu znalosti. Můžeš udělat aplikaci, kterou pustíš v mobilu, dostaneš ji lidem na plochu telefonu, offline – prostě tak, aby se tvářila, že je nativní. A to je super, protože to dokážeš vlastníma rukama. Předělat webovou appku do mobilní. I když to je něco, co webaři umí od začátku, protože dělají responzivní weby. Ale PWA je něco, co ti umožní přetransformovat ještě tu mobilní verzi webu tak, aby to vypadalo jako nativní appka.
Věříš v server-side render, nebo je lepší renderovat frontend na frontendu?
Já jako webař věřím určitě v obojí. Záleží na use casu, akorát DevOpsáci s tím mají problém a zakázali nám to, protože je na to potřeba moc prostředků na serveru. Ale doufám, že postupem času už se zveřejní u všech větších vyhledávačů nějaká jejich logika. Toho, jak čerpají a crawlují data z webu, protože momentálně je to pro nás u většiny vyhledávačů zatím blackbox.
Víš, k čemu slouží robots.txt?
Tuhle otázku sem protlačil Pepa, ne? :D No, samozřejmě vím, co to je. Takže bych k tomu jen rád řekl, že nikdy nesmíš mít dva weby se stejným obsahem, protože se to penalizuje. A někte ří lidi o tom třeba nevědí.
Dobrá, zpátky k lidem. Jak bys popsal typického webaře?
Hmmm.
Něco, co máte všichni aspoň trochu společného?
Nic mě nenapadá, to je hrozný škatulkování. :D
Tak alespoň co myslíš, že by nemělo chybět frontenďákovi v Ackee?
Oukej. U nás v týmu by ten člověk určitě neměl postrádat důvtip a nějaký smysl pro humor, to je jasný. :D Musí mít chuť se učit a ukázat to ostatním. Neměl by se bát sdílet s ostatními pracovní i nepracovní věci. Prostě všechno možný, co ho napadne. I kdyby to byla nějaká blbost. Určitě musí být zodpovědný. A měl by být vyznavačem Ackee kultury, kterou podle mě nasaje během pár dnů, co tam bude, protože si myslím, že je dost atypická. Pak taky chuť se zlepšovat. I nějaká menší rivalita v tom týmu může být. To, že někdo něco umí líp, není vůbec špatný, může to být naopak motivující pro ostatní.
Co ses naučil ty za tu dobu v Ackee?
Vím, co jsem se nenaučil. :D Pořád jsem se nenaučil odhadovat aplikace. Furt to není úplně ono.
V jakém smyslu?
U větších aplikací je těžké odhadnout dopředu tak, kolik času se na tom pak přibližně stráví. Odhad nějaké fíčury na 20 hodin zvládnu, ale u webu, který zabere stovky hodin, už je to problém. Nicméně myslím, že je v tomhle problém všeobecně.
A co jsem se naučil, tyjo. Ovládat spoustu nových technologií a přístup k tomu novému frontendu. Odhadnout lidi, kterým u nás bude dobře. Odhadnout, co je bude bavit v práci, teď zvládám fakt skvěle a řekl bych, že je i dokážu nadchnout k tomu, aby chtěli dělat na nějakém projektu nebo se v něčem posunout. To si myslím, že umím. Doplnil bych ještě schopnost odhadnout tu správnou technologii, co někde použít či nepoužít. Protože za ty roky jsem si jich prošel hromadu.
A máš nějakou oblíbenou?
U nás v týmu je to určitě Javascript a React, ale jsou i různý projekty, kde prostě chceš použít něco jiného. Občas jsou nějaké menší projekty, kde to chceš udělat jinak. Na to mám čuch, ale přímo ten nástroj ti teď neřeknu. :D
A co děláš, když nekódíš?
Momentálně věnuju všechen čas hudbě. Zrovna nám vyšla deska. Za tu dobu, co jsem v Praze, jsem vystřídal plno různých kapel, ale loni v březnu jsem se rozhodl, že napíšu vlastní album. Dal jsem se dohromady s Romanem, který dělá veškerý design a píše většinu textů. Takže by se dalo říct, že jsme udělali takové vršovické duo z Ackee, kde jsme se před šesti lety potkali.
Ještě jsem slyšela a viděla, že šiješ. Stále v tom pokračuješ?
Kamarádka Elenka šije spodní prádlo, takže jsem u ní byl na kurzu v rámci Dnes nekódim. Nějakou dobu jsem se tomu věnoval a šil jsem trička. Kalhotky tak jedny, možná dvoje v životě. :D Teď to trochu stagnuje, už je to třeba půl roku, co jsem nic neušil. Ale pořád máme ambice rozjet nějakou menší designérskou firmičku.
No tak držím palce! Jak zvládáš časově kombinaci pracovní i hvězdné kariéry?
Spánek je pro starý. :D
Ještě by mě zajímalo, proč sedíš mezi designéry. Je to i tím, že dnes má frontend hodně blízko k designu?
No, já jsem u toho stolu seděl první. :D Teda já a Roman, takže tam byl jen jeden designer. Tím pádem spíš – proč lidi sedí se mnou? Jinak mezi nimi mám nejlepší kámoše. Zvykl jsem si i na to, že web vzniká hlavně od designu a pro mě je to fajn v tom, že už od začátku můžeme být v kontaktu. Když se potřebuju zeptat, jak by něco mělo fungovat nebo vypadat, tak se jen otočím přes rameno a můžu s tím hned pracovat. Kdybych za nimi měl dojít, tak bych nad tím jen mávnul rukou a udělal bych si to po svém. :D
A poslední otázka: Na jakou Ackee akci rád vzpomínáš?
Smích. Jedny z nejlepších akcí byly vždycky festivaly dokumentárních filmů AFO, kterým jsme dělali festivalovou appku, z toho mám bezva zážitky. A samozřejmě taky Ackee hory, kdy jsme jezdili na chatu Pepusových rodičů. To jsme takhle třeba šli na nečekanou asi 40hodinovou túru na běžkách v totálním mrazu. Připadal jsem si jako mamut, zmrzlé prsty jsem měl ještě další tři dny. Ale je to zážitek, na který budu vzpomínat asi ještě dlouho, takže za to Pepovi moc děkuju. :D