Rozhovory
17.12.2022
Tím Skillmea
Šimon Urbánek: Programovanie je pre mňa niečo ako pre maliara štetec
V dnešnom rozhovore nám šikovný programátor Šimon Urbánek prezradí, ako sa dostal k práci iOS developera pre českú aplikáciu Windy, ktorá poskytuje interaktívnu predpoveď počasia po celom svete.
Skús nám na začiatok priblížiť svoju prácu.Momentálne pracujem ako iOS developer vo Windy.com (ďalej už len Windy), kde mám na starosť celý Apple ekosystém. To zahrnuje natívne prvky aplikácie (napr. iCoud synchronizácia, lokalizácia, notifikácie), cez widgety, Apple watch aplikáciu s komplikáciami (complications) až po automatizáciu release cyklu. Keďže Windy je multiplatformová aplikácia, nezaobídem sa bez JavaScriptu, Typescript-u a znalosťou Node backendu.
Ako si sa k tejto práci dostal?Bola to celkom náhoda, zapol som si inzertný portál (myslím, že startupjobs), aby som zistil, aké sú približné požiadavky na pozíciu iOS developera a ponuka od Windy mi pripadala ako ušitá pre mňa.
Povedal som si, že sa im ozvem (reagoval som iba na túto jednu ponuku).
Pozvali ma na prvý pohovor, ktorý dopadol super (teoretické otázky z programovania), potom na druhý (úloha na programovanie), ktorý som totálne pokazil. Úloha to nebola ťažká, ale v silno typovom jazyku ako Swift to bol trochu oriešok. To ma ale neodradilo a riešenie úlohy som dopísal v Swifte a potom ešte v JavaScripte, aby som ukázal náročnosť správneho riešenia v oboch prípadoch. Riešenie som odoslal Windy a o niekoľko hodín sa mi ozvali a dohodli sme sa na polovičnom úväzku s tým, že po dokončení školy nastúpim na full time. Z toho mi vyplynulo ponaučenie, že firmám nejde o to, či dokážete za x hodín naprogramovať simulovanú úlohu, ale či máte dostatok motivácie sa vysporiadať s problémami.
Čomu si sa pred touto prácou venoval?Od strednej školy som sa venoval programovaniu webov. Mal som brigádu, kde som pracoval ako web developer a so spolužiakmi sme vyvíjali aplikáciu na písanie knižiek. Bola to éra startupov, tak sme sa snažili preraziť. Zo startupu sme sa nestali milionármi (ale so skúsenosťami na nezaplatenie), tak som pokračoval na vysokú školu ČVUT v Prahe.
Popri vysokej som pracoval ako JavaScript developer pre mobilnú SAP aplikáciu a vyskúšal som si pozíciu project manager vývoja. Pri diplomovej práci som sa venoval BlockChainu, ktorý ma neoslovil.
Čo ma ale oslovilo, bol moment, keď som si kúpil iPad s Apple pencilom. Bolo to neskutočné zariadenie, ktoré nahradilo všetky knižky, skriptá a poznámkové bloky. Teda skoro všetko. Jedinú vec, ktorý iPad nahradiť nemohol, bol môj papierový plánovač. Plánovanie perom na papier má svoje kúzlo a v Apple store nebola žiadna aplikácia, ktorá by takúto funkcionalitu poskytovala. Tak sa začala moja cesta iOS developera. Zapísal som si kurz iOS programovania (neskôr aj v pokročilej verzii), začal som pozerať kurzy na internete (aj platené) a pomaly som začal pracovať na vízii.
O tomto projekte som hovoril aj mojím dlhoročným kamarátom a skvelým programátorom Ondrejom, ktorého nápad taktiež nadchol a pustil sa do projektu so mnou (tiež predtým nemal s iOS skúsenosti). Takéto veci sa v dvojici proste lepšie tiahnu, špeciálne keď vstupujete do neznámeho.
Nám si prezradil, že máš v AppStore aj vlastnú aplikáciu. Povedz nám o nej viac..Nazýva sa Pencility, je to iPad aplikácia, ktorá mi nahrádza ručne písaný plánovač. Spája prvky tradičného plánovania perom na papier s výhodami online kalendára a to-do listu synchronizovaného medzi všetkými Apple zariadeniami. Aplikácia je platená a našla si už stovky nadšených užívateľov, ktorí stále pribúdajú. Nerobíme žiadnu reklamu, všetky stiahnutia sú priamo z Appstoru od užívateľov, ktorí majú ten istý problém, s ktorým kde Pencility začali programovať.
[Šimonova appka Pencility]
Absolvoval si už nejaké kurzy od Skillmea, ak áno aké?Áno, už na strednej škole som začínal s Webrebelom od Jablka. Bolo to úplne úžasné, hlavne v začiatkoch, keď sa problematike ešte moc nerozumiete. Pamätám si dodnes, ako som s učiteľom informatiky vybavoval zľavový kód pre stredné školy, pretože v plnej cene som si to vtedy nemohol dovoliť. To si neviete predstaviť, ako potom človek vníma každé slovo, aby z kurzu dostal maximum.
Aj v dnešnej dobe sú video kurzy pre mňa zábavná forma učenia (kto, pár dní čítal nejakú dokumentáciu, pochopí). V práci používame Svelte, takže keď som videl, že máte kurz, vedel som čo bude môj večerný program. Nasledoval kurz o vue.js a naposledy som pozeral kurz o Figme. Je to skvelý nástroj aj pre vývojára, keď si potrebujete rýchlo načrtnúť obrazovky, pred samotnou implementáciou.
Tipujem, že sám doma vlastníš nejaké to jabĺčko. Je pre teba značka Apple lovebrandom?Mám rád filozofiu Applu a technológie, ktoré poskytuje vývojárom na vytvorenie aplikácii. Uvediem konkrétny príklad synchronizácie dát medzi zariadeniami, ktorá je už štandardom. Pre synchronizáciu potrebujete server, za ktorý je nutné mesačne platiť (pri väčšom počte užívateľov to nie sú malé čiastky). To môže byť, ale problém, keď ste začínajúci vývojár, ktorý chce vydať aplikáciu zdarma, alebo s one-time purchase. V Apple ecosystéme sa dá nádherne použiť iCoud, ktorý celú logiku synchronizácie vyrieši za vás (pri použití core data, alebo document based aplikácie).
Spomeniem ešte jeden príklad a to je jeden kód “pre všetko”. Dnes už stačí napísať jednu aplikáciu povedzme na iPhone. S malými UI úpravami bude perfektne fungovať aj na iPade a keď funguje na iPade bude fungovať aj na všetkých M (1, 2) Macoch. A to nehovorím o znovupoužiteľnosti views a logiky medzi aplikáciou, widgetmi a napr. hodinkami. Proste nádhera.[Šimon Urbánek]
Aké sú tvoje ciele a čo ťa udržiava stále motivovaným?Od malička ma bavilo vytváranie nových vecí a programovanie je pre mňa niečo ako pre maliara štetec. Máte čisté plátno s nekonečnými možnosťami a je len na vás, čím ho zaplníte. A keď ešte naviac vašu aplikáciu používajú ľudia, ktorým pomáha, je to úžasný pocit.
Práca vo Windy je skvelá, pretože píšem kód pre milióny, a ten adrenalín pri releasoch je ako droga. Mám tam veľkú voľnosť (a aj zodpovednosť) viesť iOS development. Skvelé je, že keď sa firma venuje len jednej aplikácii mám možnosť si medzi prvými vyskúšať najnovšie technológie, ktoré ju posúvajú vpred.
Popri práci som ale nezanevrel na Pencility (aj keď času je podstatne menej) a mám v pláne aj ďalšiu iPad aplikáciu.[Šimon Urbánek]
Ovplyvnila pandémia covidu nejakým spôsobom tvoju prácu?Do Windy som nastupoval práve v covidovom období, takže keď som niečo potreboval, musel som si vystačiť so Slackom a videohovormi, čo je zložitejšie ako sa postaviť a kolegu sa niečo opýtať v office. Ale asi nič iného.
Na záver môžeš našim čitateľom prezradiť, čo plánuješ do budúcnosti? Chystáš sa zrealizovať aj nejaké kurzy?Myslím, že som od programátorskej komunity dostal veľa, a teraz je na čase niečo vrátiť. Preto by som chcel zrealizovať kurz, práve na vývoj nielen iOS aplikácii, ale pre celý ekosystém v SwiftUI. Byť iOS vývojárom nie je ľahká cesta, hlavne na začiatku, ale stojí za to.