Deset let si píšeme, známe se v online světě a až nyní mě napadlo položit jednoduchou otázku „co vlastně děláš?“ Odpověď na tuto otázku si můžete přečíst na následujících řádcích a musím říct, že mě každá jedna odpověď Cyrila bavila a byl jsem nadšený z toho, kam až to lze jako mladý vývojář z ČR dotáhnout.
Cyrile my se známe už asi 10 let přes LsA, kde čas od času promuješ svoji aplikaci. Až před časem jsem však zjistil, že tvá hlavní práce spočívá v něčem, co by mohlo zajímat naše čtenáře. Můžeš se krátce představit, a hlavně představit čemu se věnuješ?
Určitě moc rád, uvidíme tedy jestli to čtenáře bude zajímat… Jmenuji se Cyril, je mi 33 let, a už se cca 14 let věnuji programování a to primárně pro iOS. Momentálně pracuji už šestým rokem pro Porsche AG u našich sousedů v Německu, přímo v centrále ve Stuttgartu, kde mám na starost především vývoj aplikace My Porsche na které pracuji jako iOS System Architect.
Pro Porsche jsem začal pracovat krátce po té co jsem se po dvou letech vrátil ze Sydney, kde jsem také pracoval jako iOS Engineer pro platform freelancer.com, kde jsme měli tenkrát cca 40 milionů uživatelů, takže to bylo také opravdu zábavné, hlavně tedy co se Data Science týče, byla to pro mě tenkrát první zkušenost s Data Science / Data Driven Development.
Jak jsi již zmínil, mimo tedy ještě hlavní pracovní činnosti se věnuji také vývoji svých projektů a programování pro menší klienty, rukama mi již prošlo mnoho projektů různých technologii, na kterých se vždy dál jako programátor rozvíjím. Z mé dílny je to ale především tedy Achieve Me, motivační aplikaci, kterou dost možná čtenáři už znají, dále také poslední 3 roky se věnuji webové aplikaci pro analýzu App Store / Play Store aplikací, také jsem nedávno vydal jako open-source knížku o modulárním vývoji na iOS a macOS a v neposlední řadě se věnuji poslední 3 roky konferencím kde dělám většinou live demo z bezpečnosti a reverzního inženýrství na iOSu pro vývojáře. Loni se mi podařilo dostat i na konferenci v Soulu, sponzorovanou ministerstvem rozvoje ICT pro Jižní Koreu, to bylo opravdu záživné. To by bylo asi tak ve zkratce o mě.

Říkáš, že se vývoji pro iOS věnuješ 14 let. Pro co si vyvíjel předtím a čím si tě Apple a jeho iOS získal?
Haha to je super otázka, bohužel na to nejde odpovědět krátce. Apple mě zaujal když mi bylo myslím 9 let, táta domů přinesl Macintosh Quadra 630 na kterém tenkrát běžel Macintosh OS 7. Samozřejmě to byla doba kdy v Čechách bylo možná tak pár desítek Apple počítačů a žádný internet, všichni kamarádi měli PCčka a sdíleli si hry, zatímco já jsem zůstal na ocet s Prince of Persia.
Nicméně, už tenkrát jsem zaujal velice silný postoj a vždy jsem říkal jak je Macintosh lepší než PC. Jelikož jakákoli SW oprava Macu stála tenkrát neskutečný peníze, tak poté co jsem to celé asi 4krát zbořil, jsem se v tom začal hrabat více a více až jsem se toho přestal bát a začal radit tátovi a pak i pár známým co a jak na Macu, to bylo tenkrát pořád někde okolo Macintosh OS 9.2, pak samozřejmě s příchodem OS X už jsem měl doma PowerPC G3, a svůj první iPod shuffle první generace který mi pak ve skateparku ukradli. To už jsem byl naprosto propadlý Applu.
S citem pro Macy jsem se vydal pak studovat na střední elektrotechniku, poté klasika na ČVUT, kde mě hned první semestr vyhodili na matematice, díky čemu jsem ale začal pracovat pro Macwell, kde do dneška děkuji panu Keslovi že mě tenkrát sebral z ulice a nechal mě u něj pracovat. Tam jsem se učil správě serverů, počítačovým sítím, práci u filmu a posléze také trochu programování. Po 3 letech jsem si našetřil peníze, opustil Macwell a šel jsem znovu studovat vysokou a tentokrát Softwarové Inženýrství, kde jsme tenkrát začali asi 60 lidí a 2 jsme to dokončili dle plánu. Tam už jsem se opět směroval k programování pro iOS, kde pak už od druháku jsem pracoval na part time jako junior programátor pro iOS. Jedna z aplikací na kterém jsem tenkrát jako junior také pracoval byla Škoda One App.
Vraťme se k tomu, čemu se věnuješ aktuálně, práce pro Porsche je asi pro mnoho lidí splněným snem. Kolik lidí se vývoji aplikace aktivně věnuje a co je přímo tvá práce na tomto projektu?
Je to přesně jak říkáš, mám spoustu kolegů kteří jsou velcí fanoušci Porsche a pro ně ja ta práce splněným snem, i mi to spoustu kolegů potvrdilo. Já jsem zase vždy chtěl dělat na velikých a komplexních projektech, což se mi u Porsche také splnilo. Před 6ti lety Porsche nemělo žádný interní mobilní vývoj, vše bylo outsourcované externím firmám, a to samozřejmě mělo do budoucna spoustu neřešitelných problémů a tak jsem byl najat jako interní iOS Tech Lead ještě s třemi dalšími iOS kolegy a také samozřejmě kolegy kteří jsou na Androidu a pár projekťáků a manažerů k tomu. Náš úkol byl uskutečnit nativní mobilní vývoj v rámci Porsche, začali jsem tedy úplně na čisté louce, což se opravdu jen tak nevidí.

Takto jsme tedy zformovali 2 týmy které měli různé úkoly. Já jsem se nejvíce věnoval architektuře, infrastruktuře a návrhu softwaru ještě se svým kolegou a druhý tým mezi tím se již zabýval integrováním různých funkcionalit. Toto období trvalo asi necelé dva roky, poté už jsme měli dostatečně silné základy na to abychom mohli dále škálovat týmy pro vývoj funkcionalit. Ze dvou týmů se stalo 8, krátce poté 12, pak jsme byli dlouho 19 týmů a nyní jsme 29 týmů kteří pracují na vývoji My Porsche aplikace. Těžko říci, kolik lidí je do toho projektu přesně zainteresováno, ale na denní bázi bych řekl něco okolo 500 lidí. Máme vývojová centra různě po světě, hodně v Evropě (díký mě včetně ČR), v Číně, a v Americe, náš projekt tedy nikdy nespí.
Já jsem se po asi 3 letech dostal na pozici iOS System Architect, což vlastně dělám do dneška. Nyní při 29 týmech máme už vlastní tým architektů, kde podporujeme ve vývoji zbylých 28 týmů a dále se staráme o rozvoj architektury, infrastruktury, DevOps, kyber bezpečnosti, CI/CD, releasů, produktivity týmů a tak dále. Práce máme určitě dost. Pro pobavení, můj kolega, úplně první iOS vývojář v Porsche dostal na programování Toshiba laptop. Taková byla znalost mobilního vývoje v Porsche před 6ti lety, dnes je to opravdu na úplně jiné úrovni, a z toho mám ohromnou radost.
Teď to prosím neber nějak nezdvořile, ale upřímně řečeno, fakt je potřeba 500 lidí abych si mohl na dálko odemknout auto nebo se podívat na spotřebu? Programování jde zcela mimo mě, ale kolikrát vidím neuvěřitelné aplikace, které umí spoustu lidí a pracoval na nich jeden, dva lidé. Co je tedy na My Porsche tak složité, že to vyžaduje tolik lidí?
No na to se takhle úplně nedá dívat z pohledu jedné funkcionality uživatele. Porsche je obrovský korporát který má, pokud se nepletu okolo 40tis zaměstnanců, návaznost na Volkswagen a 75ti letou historii. To co pro Tebe jako uživatele je jedno kliknutí tlačítka, po kterém se například odemkne auto, z pohledu aplikace znamená podpora veškerých aut které mají danou funkcionalitu, bohužel pro nás programátory, různé modely aut můžou mít také různé systémy, které mají různé chování, to se bavíme také o systémech které byly do aut dodány před mnoha a mnoha lety, tudíž nenesou žádné moderní technologické prvky a podobně. To vše přidává na komplexitě.
Myslím si ale že to platí obecně o vývoji jakéhokoli SW pro větší firmy. Vždy je tam nějaký “legacy” který prochází různou transformací nebo se musí podporovat a udržovat z různých důvodů. My Porsche má také spoustu rozšíření, jako například Apple Watch, Car Play, nebo třeba Apple Maps EV routing – kde Apple Maps komunikuje přes My Porsche appku s autem, myslím si že Car Play z kterého se přímo dají ovládat funkcionality auta jako osvětlení, rádio, vyhřívání a Apple Maps EV routing, jsem měli nebo možná dodnes ještě máme jako první automobilka. Informace o zajímavých aktualizacích najdou čtenáři například zde newsroom.porsche.com/porscheextensive-update-my-porsche-app, nebo zde newsroom.porsche.com/en/2023/products/porsche-my-porsche-app-provides-new-features-within-apple-carplay a za přečtení stojí také tento článek newsroom.porsche.com/en/2023/products/porsche-support-for-apple-maps-ev-routing.
Aplikace není jen o konektivitě auta, obecně s ústupem webu se jedná o zákazníkův touch point s Porsche, i když žádné auto ještě třeba nevlastní. Zároveň, aplikace je dostupná ve všech zemích kde Porsche působí, včetně například Číny, kde je funkcionalita a celkový design dramaticky odlišný od například evropského nebo amerického. Funkcionality aplikace se také mohou lišit dle země, kde se uživatel nachází. Země / kontinenty mají také různé systémy co se například nabíjecích stanic nebo elektromobility týče.

Každá země má také různé legislativy kterým pak aplikace podléhá, například u nás známá GDPR, nebo Digital Service Act. V červnu také přichází nová regulace European Accessibility Act, kde každá aplikace musí splňovat povinné normy pro lidi s postižením, už jen splnit veškeré tyto požadavky vyžaduje neskutečné úsilí. Jen pro srovnání Spotify má 6tis inženýrů, kliknu na skladbu a začne se přehrávat…, díky tomu že mám pár přátel mezi nimi tak mám (omezenou) představu o tom co za tím vše stojí…
Všechny aplikace, které mají v názvu My ”car” mi připadají v podstatě stejné z hlediska designu i funkcionalit. Je to nějaký jednotný standard nebo proč někdo nepřijde s nějakým vlastním řešením?
Připadá ti stejný Spotify a Apple Music? Na iOSu, mě určitě ano, je to stejná doména, stejně tak je to v automotivu. Nevím jak ostatní značky co používají “My”, ale my máme co se designu a UX týče vše vlastní.
Co bylo pro vás jako vývojářský tým nejtěžší v případě My Porsche? Myslím jaká funkce byla nejtěžší na programování?
Nás je momentálně 29 vývojářských týmů, každý se zabývá jinou doménou a problematikou v aplikaci, takže je těžké to nějak kategorizovat. Nicméně, téměř na úplném začátku, kdy jsme byli ještě jenom 2 týmy jsem programovali příkazy autu, jako například odemknutí, zamknutí, vyhřívání, klimatizování atd. To nám dalo tenkrát opravdu zabrat. Tuto funkcionalitu jsme dělali přibližně rok, než jsme ji mohli releasnout alespoň interně pro všechny auta, a jak jsme se více a více seznamovali s chováním různých aut tak jsem tuto funkcionalitu z pohledu kódu také stále vylepšovali. Dodnes tam ten původní návrh softwaru je, ale stále se vylepšuje a vylepšuje.
Z nějakých posledních věcí bych řekl například Apple Maps EV Routing byla také pěkný oříšek. Jelikož jsme byli jako první, kdo tuto funkcionalitu integroval ve spolupráci s Applem, odladit to tak aby vše fungovalo jak má jak na straně naší tak na straně Applu dalo dost zabrat… Vtipné bylo že po updatu myslím iOS 18.0.1 Apple releasnul bug, kde tato funkcionality přestala fungovat úplně, naštěstí to rychle opravili.

Jsou nějaké funkce, které byste chtěli přidat, ale omezuje vás iOS? Nebo vše co dokážete na straně vozu, tak není problém udělat ani na straně iOS?
Dobrá otázka, iOS je určitě hodně restriktivní, nicméně, co se vývoje týče tak Apple umožňuje vývojářům přistupovat k různým zabezpečeným částím iOSu pomocí takzvaných Entitlements, které některé jsou obecně dostupné, jako třeba Push Notifikace, ale některé jsou na vyžádání, jako třeba již výše zmíněný Car Play.
Momentálně bych neřekl, že je vývoj co se uživatelských vlastností limitován iOS, co se obecně programování týče, určitě si tam ale nemůžete dovolit tolik co naši Android kolegové. Konkrétně mě třeba teď napadá limitace iOSu v Siri, kde Siri momentálně neumožňuje vzít na vstup libovolný text. Siri funguje na předdefinovaném vstupu kterému můžete změnit pár parametrů. V dnešní době GPT, mi tohle přijde jako velká limitace, ale myslím že to je zrovna něco na čem Apple už pracuje a brzy to Siri také bude umět.
Mám na mysli Siri rozšíření aplikace, kde například naprogramujete funkcionalitu kde Siri spustí něco ve vaší aplikaci. Jako například můžete říci “Hej Siri, zahřej mi auto na 22 stupňů.”, kde těch 22 je volitelný parametr, ale už nemůžete říci “Hej Siri, je mi extrémní zima, zatop auto.” To je něco čemu by GPT rozumělo a mohlo by automaticky odhadnout teplotu na kterou auto předehřeje atd. Nicméně, jak jsem již řekl myslím si že těchto funkcionalit se také brzy dočkáme.
Když seš u toho zahřívání auta, tak už před třemi lety Apple ukázal světu CarPlay Nové Generace. Od té doby se však vlastně v žádném voze neukázal. Jedním z prvních vozů na světě s ním měly být právě SUV od Porsche. Nevíš kde to vázne a jak na tom vývoj je? Případně podílíte se na vývoji společně s Applem?
Haha jasně, vím kde to vázne, ale o tom bohužel nemůžu mluvit. Ano je to tak, první auta která by měli mít Car Play Nové Generace je Porsche a Aston Martin. Myslím ale že s čistým svědomím z toho co víme z veřejně dostupných informací si můžeme říci že Apple těžce podcenil integraci Car Playe do například displayů které ukazují rychlost a další kritické funkcionality k řízení, jako třeba hlášení chyb auta, stav nádrže a tak dále.

Co se vývoje týče, tak bych opět poukázal na Car Play s ovládáním auta, který jsme integrovali, který bych řekl byl vlastně prvním krokem pro Car Play Nové Generace. Jedná se konkrétně o funkcionality, kde skrze Car Play a tudíž tvůj iPhone se dají ovládat funkce auta, jako třeba masážní sedačky, osvětlení a tak dále. Teď vlastně Applu a automobilkám chybí už “jen” rozšíření do dalších obrazovek aut.
Chápu, že o některých věcech nemůžeš mluvit, ale prozradíš nám co byste rádi do budoucna do své aplikace přidali? Případně co je takový sen vývojářů, jak by měla vypadat aplikace My Porsche v roce 2030 například?
Bohužel to je také za hranicí, myslím že můžu ale říci že máme spoustu skvělých funkcionalit naplánované v následujících letech jak v autech tak v appce, kterých se už i já osobně nemůžu dočkat. Takže je rozhodně na co se těšit. Pro novinky ze světa Porsche doporučuji pak sledovat newsroom.porsche.com. Tam jsou veškeré novinky prezentovány včetně těch o My Porsche app.
Ještě by mě celkem zajímalo, zda ty osobně nebo někdo z vašeho týmu spolupracuje také přímo s vývojáři software pro auta jako taková nebo se to v podstatě řeší separátně. Tlačítko Pit-Stop do GT3 RS si třeba nevymyslel ty? :)
Haha, musím si nejdřív progooglit co to je. Ne, ne tlačítko jsem určitě nevymyslel já. Ano, co se pak vývoje týče, tam určitě spolupráce je, ostatně aplikace pak musí uživatelsky zpřístupnit funkcionality které auto má, takže bez spolupráce by to nešlo. :)

Dostaneš se také k řízení a testování nových aut? Nebo jak to potom funguje?
Musím říci, že je to celkem privilegium v Porsche aby jsi mohl řídit auta, a brát si je například na víkendové testovací jízdy a tak podobně, naštěstí ale tím že pracuji přímo u vývoje funkcionalit s auty tak naše oddělení toto privilegium má. Máme asi celkem 12 aut, které se nám dost často rotují, případně když potřebujeme nějaké speciální tak nám ho ostatní oddělení dodají.
Závěrem se tedy ještě zeptám, jaké je tvé nejoblíbenější Porsche?
Jelikož jsem už řídil všechny auta a to i na závodním okruhu tak bych řekl že každé má něco a je těžké vybrat oblíbence. Na okruhu my přišel asi nejzábavnější Cayman, protože tam Ti řve motor přímo do hlavy, ale jednou jsem s ním jel někam asi 600km a to už mi zas tak super nepřišlo, protože tlačítko na ztlumení řvu spalovacího motoru ještě nikdo nevymyslel a málem mi pukla hlava.
911, je samozřejmě fantastická, vyladěná pro řidiče do nejposlednějších detailů, to je bez debaty. Nicméně, dnes je pro mě asi nejoblíbenější Taycan, mám ho rád kvůli designu a přijde mi to momentálně nejhezčí auto na silnicích vůbec, kromě teda mé vlastní Škody Octavie 3 po faceliftu s černými doplňky, na tuhle krásku ani Taycan nemá.
Hele za mě je to asi GT3 RS, my jsme chvilku zvažovali Panameru, ale je to strašně nízké na nakládání kočárku a takové záležitosti. Moc děkuji za rozhovor a až bude zase nějaká větší aktualizace My Porsche, tak se budu těšit, že nám o tom bude vyprávět sám, ten nejpovolanější, tedy ty. Necháš nám ještě na Tebe nějaký kontakt v případě zájmu čtenáře?
Jasně, nejlépe tedy asi přes LinkedIn: linkedin.com/in/cyril-cermak nebo popřípadě skrze můj web: www.cyrilcermak.com.
Super rozhovor, ďakujem!!!