Článek, který není o politice.

Omlouvám se za delší prodlevu mezi články, ale mé poslední týdny byly poněkud hektické… Nicméně jak jsem zaznamenal v českých médiích a na sociálních sítích, nemohl jsem pokles své spisovatelské aktivity načasovat lépe! Během právě probíhající politické estrády u nás, se stejně potenciální statisíce mých čtenářů, zabývaly něčím podstatnějším, než co jsem měl k obědu 🙂 A co se tedy za dobu mojí mlčenlivosti událo ?

Nový kolega Dva týdny zpátky se náš squad rozrostl o dalšího člena – připojil se k nám Brit Matthew. Kdo by si snad myslel, že už tedy nejsem největším amatérem v týmu, pak ho zklamu – Matt už má za sebou několik štací s podobným technologickým stackem 🙂 Zároveň je to rovněž táta od dvou synů – 6 letého a 6 týdenního. Aspoň nějaké zkušenosti mu mohu předávat 🙂

Opuštěný hotel 3. týden byl zároveň můj poslední v hotelu na Liverpool Street, od těch dalších již bydlím po AirBnB bytech. Pozornějším čtenářům možná neuniklo, že na adresu hotelu mi mělo přijít national insurance number. Po dvou týdnech napětí již mohu s úsměvem na tváři napsat, že zde konečně mohu bez problémů platit sociální a zdravotní pojištění. Co bych si bez toho také počal? 🙂

Relocation komplikace Aby těch starostí nebylo málo, pak na konci 3. týdne jsme při probírání podmínek čerpání relocation allowance s Rachel, narazili na potenciální legislativní problém mé pravidelné jednodenní práce z domova (resp. z jiné země). Skyscanner si pro jistotu nechal udělat studii od Ernst & Young co to znamená a jak postupovat. S odstupem dvou týdnů mohu rovněž s úsměvem na tváři prozradit, že jsme nalezli řešení k oboustranné spokojenosti (kdo by také nechtěl mít od července/srpna trvale volné pondělí, že? :)).

První prezentace Už jsem zde prozrazoval, že každý pátek máme synchronizační Data Tribe Show & Tell. Byl jsem demokraticky zvolen jako prezentující našeho týmové snažení dostat aplikaci Roces do produkce a přípravu na 24/7 podporu produkce. Konkrétně téma monitoring, alerty a jak používáme nástroj VictorOps (budiž to spoiler alert mého prvního úkolu). No dobře to dopadlo 🙂

Setkání s Garethem (CEO) Příští týden letím do Edinburghu na Global Induction – dvou denní hlubší představení oboru a Skyscanneru pro nováčky. Na závěr mě čeká cca hodinové setkání s Garethem Williamsem – jedním ze tří zakladatelů a zároveň současným CEO. Gareth ale minulý týden přiletěl na chvilku do Londýna, a naše první setkání a představení proběhlo poměrně spontánně ve výtahu (mělo podobu slavného elevator pitche) a bylo super 🙂 Druhý den pro něj všechny squady, včetně toho našeho, dělaly demo. Tedy běhěm hodinové schůzky cca 40 minut kratičkých „prezentacíL co daný squad v poslední době dělal, jak to pomáha Skyscanneru, … a pak cca 20 minut Q & A. Musím říct, že na mě udělal poměrně velký dojem, jak evidentní znalostí technologií, přehledem v oboru, tak i naprostou otevřeností.

První 1:1 Měl jsem rovněž první „one-on-one“ schůzku se svým šéfem Chrisem. Cca půl hodinový pokec, kde jsme probírali hlavně komplikace s relocation, ale zeptal jsem se rovněž na svou performance. Zatím je prý spokojen 🙂 V rychlosti jsme stihli probrat i strategii na co se mám zaměřit příštích pár týdnů a měsíců. Zatím si pořád ještě trošku zvykám na ten obrovský stupeň důvěry, který má Skyscanner vůči všem svým lidem. Je hrozně zajímavé na sobě pozorovat, jak člověk v takovém prostředí funguje. Je to velmi motivující a rovněž velmi zavazující, když Vás vlastně nikdo nekontroluje!

Thirsty Lightning Talks Jednou měsíčně ve čtvrtek, se v Londýnském officu konají tzv. Thirsty Lightning Talks. Jedná se o sérii krátkých max 5 minutových prezentací na různá témata. Prezentovat může naprosto kdokoliv, zajímavé bylo že pár prezentujících bylo zrovna na návštěvě z jiných officů, takže se evidentně rozhodli prezentovat zrovna ten den. Asi nejblíže má svým průběhem tato událost k TEDx talkům. Kromě prvního velmi vtipného příspěvku jak péci chleba, byly vesměs všechny technického ražení. Pochopitelně se k tomu podávalo pivo a různé pochutiny.

V hospodě s Clivem Porušil jsem všechny doporučované letiští bezpečnostní zásady, a stal se poslíčkem pro našeho rodinného kamaráda Petra. Převezl jsem cca 3 kila vážící předmět v dárkovém balení (na omak to vypadalo jako kniha 🙂 ), jeho švagrovi do Londýna. S Clivem – tedy vyznamenaným (OBE) zaměstnancem ministerstva obrany – jsem pak v rámci předání strávil několik hodin v místním pubu, velmi poutavým rozhovorem o historii Londýna, politice a vůbec všem možném. Na závěr večera mi od něj přišel uklidňující email, že jsem se opravdu žádného trestného činu nedopustil, a že v balíčku byla opravdu pouze kniha 🙂

Co tady vlastně děláme

Varování: následující článek obsahuje řadu technických pojmů a je psán pro specifické publikum. Pokud si nejste jistí, zda byste měli být jeho čtenáři, zkuste si prosím provést následující krátký test 🙂 Pokračování bez zvládnutí testu alespoň na 50%, je pouze na vlastní nebezpečí.

Pár lidí mě už upozorňovalo, ať si dám při psaní článků bacha na mlčenlivost. Už jim prý některé příspěvky připadaly za hranou. Vzhledem k tomu, co všechno píšeme na www.codevoyagers.com, mi ani nepřišlo, že bych se k nějaké hraně vůbec blížil. Pro jistotu jsem se na to dnes zeptal Bryana. Říkal ať si s tím nelámu hlavu 🙂 Pro něj je ta hranice platná až pro unikátní business záležitosti (tam zatím ani nemám co prozrazovat 🙂 ). Technologické záležitosti, náš přístup k řešení problémů, které může mít i někdo další, … to vše je prý v pohodě.

Ještě než budu psát o mém prvním úkolu, dovolím si odbočku směrem k high level architektuře. Ono také psát rovnou o parciálních úkolech, by bez toho nemuselo dávat smysl. Už jsem zmiňoval dříve, že náš kmen má za cíl poskytovat data as a service. Směrem ke zbytku organizace to funguje tak, že budujeme SDK pro snadné logování čehokoliv. Ukládají se business eventy, metriky služeb, chování uživatelů v produktu, tak i prosté aplikační logy. Prostě cokoliv kdo chce zaznamenat, je mu to umožněno přes poměrně sofistikovanou architekturu.

Vstupním rozhraním pro zbytek Skyscanneru je Grappler SDK (Python a Java), které odstiňuje většinu producentů dat od čistě HTTP API. Skrz toto HTTP API protékala historicky všechna data, a přes Apache Kafka se ukládala do AWS S3, OpenTSDB (time series databáze) a elasticsearch databáze. AWS S3 je něco jako primární úložiště dat. Nad OpenTSDB probíhá dotazování a reporting přes Bosun (zejména sledování různých veličin v čase, vyhazování alertů při překročení kritických hranic a podobně). Pro monitoring služeb a zobrazování dashboardů pak používáme ještě Grafanu. Elasticsearch se v našem kmeni primárně používá jako zdroj dat pro různé experimenty v Kibaně.

Část KPI našeho data tribe jsou dostupnost dat 99.99% max do 2 minut od zalogování (ještě tam nejsme). Historicky zde došlo k nějakým problémům se ztrátou dat v Apache Kafka, a tak se rozhodli vybudovat novou, spolehlivější větev. V podstatě data putují z rozhraní přes AWS Kinesis Firehose jako datové soubory přímo do AWS S3. Tam jsou „jen“ nějaké AWS Lambda funkce pro konverzi / manipulaci s datovými soubory. Tato větev je zatím v pilotním provozu pro první business event topic. Hlavní výhodou je naprostá bezpečnost uložení dat – jelikož data jdou dvěma službami od Amazonu rovnou do AWS S3. A i nízká chybovost – v podstatě se tam nemá co pos***, jelikož kromě konfigurace AWS CloudFormation (Infrastructure as a code) to neobsahuje žádný custom kód 🙂 AWS cloudové služby monitorujeme pomocí AWS CloudWatch.

Původní větěv se zatím stále používá, výhledově se asi bude i nadále využívat pro non-business metriky. Nad Apache Kafka jsou provozovány téměř real-time výpočty business metric, např. pro potřeby následného fakturování provizí od leteckých společností. Nová trasa Grappler SDK – AWS Kinesis Firehose – AWS S3 je sice bezpečnější, akorát tyto real-time výpočty neobsahuje. No a proč je psát znovu zde, když už existují nad Kafkou. Poměrně správně (z toho co mohu se svými “dvěma týdny znalostí i s cestou” soudit 🙂 ) se tedy rozhodli, že po tom co jsou data bezpečně uložena, je možné zahájit jejich přehrání do původní trasy pro potřeby real-time reportingu. No a tím se pomalu dostávám k jednomu z cílů, co si dali kluci na minulý sprint – přehrání dat z AWS S3 do Apache Kafka

Po zápisu dat do AWS S3 je s využitím AWS SNS uložena informace o novém datovém souboru do AWS SQS. Nad touto frontou pak poslouchá přehrávací aplikace Roces. Ta postupně z fronty vyzvedává informace o nově uložených datových souborech, stahuje je z AWS S3 a jednotlivé zprávy pak přes původní rozhraní posílá do Apache Kafka. Jelikož KPI jsou rovněž na nulovou ztrátu dat, musí se korektně zapsat všechny zprávy z datového souboru, než dojde k potvrzení do AWS SQS. Zní to poměrně jednoduše, jen si to představte s terabyty dat a s průměrným počtem cca 80k zpráv za sekundu. No a nesmíte zapomenout na 2 minuty na end-to-end zpracování – ale jak jsem říkal, ještě tam nejsme 🙂

Protože obrázek vydá za tisíc slov, přiložím nákres od Randyho. Jedná se o druhou verzi, konkrétně takto reagoval na připomínku od Alexe, že by dokumentace mohla být „a bit more jazzy“.

No trošku jsem se rozepsal, abych Vás nezahlcoval informacemi, a zároveň z důvodů vlastní ješitnosti, jsem se rozhodl mému prvnímu reálnému úkolu věnovat vlastní příspěvek. 🙂

Proč „RoadRunners“ a 1. herní večer

Druhý týden za mnou a musím říct, že se cítím o poznání rozkoukaněji! Pracovní týden jsem, stejně jako většina normálních lidí, začal až v úterý. Tím pádem jsem si mohl částečně vyzkoušet svůj 4-denní cyklus v Londýně. Od příštího týdne mi přibudou ještě pondělní home-officy, proto tedy píšu jen částečně. Nicméně mám dojem, že do budoucna sem budu lítat jen na tři dny, a nikomu to vadit nebude. Nebo to budu ob týden střídat 🙂

Chvilku jsem dnes přemýšlel, o čem z toho týdne se vlastně chystám psát. Zatím jsem to vždycky dělal trochu jako hrdina mého oblíbeného seriálu Office (US verze) – Michael Scott. Tedy začnu něco psát, a nemám ani ponětí jak to skončí. Jen tak nějak doufám, že na to po cestě přijdu 🙂 Nicméně moje maminka si stěžovala, že tomu pak nerozumí. Tak jsem se i kvůli ní rozhodl napsat články dva. Jeden pro „normální“ lidi a druhý trochu techničtější / odbornější / cokoliv chcete. Jsem zvědav jestli se mi to povede a také na případné reakce uražených lidí, kteří rozuměli oběma článkům, a i přesto se považují za normální.

Roadrunners Už konečně vím, proč se náš squad jmenuje roadrunners. Ostatně každý squad ve Skyscanneru si musí vybrat jméno, které nesmí obsahovat v názvu projekt, na kterém pracují. Jakkoliv se to může zdát nelogické, je za tím poměrně jednoduché vysvětlení. Komponenty a projekty zde vznikají tak rychle, že občas dochází k vznikům, zánikům či dělení (násobení, …) týmů. Proto si tedy většina squadů zvolila název podle kreslených seriálů. No a náš data squad si zvolil RoadRunners. Kdo by to náhodou neznal, pak se koukněte na nějaká youtube videa.

No a proč kluci zvolili právě tohle? Podle Steva je v tom hluboce ukrytá metafora, jelikož ten pták (předpokládám, že to je pštros), by neměl být nikdy kojotem dohoněn. Tedy ať se v daném díle stane cokoliv, můžete se spolehnout, že mu uteče. No a to má být velmi podobné s cílem našeho týmu. Tedy dostat data na správné místo se spolehlivostí 99.99%, ať se po cestě stane cokoliv. No nevím, v jeho podání to znělo lépe, ale to možná tou angličtinou 🙂

Jelikož tohle je článek pro „normální“ lidi, nebudu zde psát o mém prvním reálném úkolu – to si nechám až do toho dalšího. Už jsem určitě psal, že se tady každý den „něco“ děje. Občas je pro mě velmi těžko rozlišitelné, zda jsou to akce pořádané někým ze Skyscanneru, či zda se jedná o akci centra WeWork. Nicméně tento čtvrtek jsem byl na první interní Board Games Night. Tu pořádají každé 3 týdny lidé ze Skyscanneru. Konkrétně to pořádá Čech Jakub. Jestli teda, příbuzenstvo z východu promine, ještě lze někoho až ze Slezska stále považovat za Čecha. 🙂

Kdo nikdy nebyl na herním večeru, pak to probíhá asi tak, že se dopředu na místním slack kanálu „london-social“ hlasuje jaké deskové hry se budou hrát. Pak se sejdou a překvapivě je hrají a k tomu popíjí místní pivo / cidre. Tenhle čtvrtek jsme hráli karetní verzi hry Sushi Go. Pak jsme se až na místě rozhodovali mezi třema hrama co dostaly stejný počet hlasů. Nakonec byla zvolena hra Evolution jako nejjednodušší (pro znalce je to age 12+/community 10+). No opravdu netuším jak by to dopadlo s těmi těžšími… Nicméně jsem skončil, s naprostým přehledem a tak říkajíc „v suchém triku“, předposlední 🙂 Každopádně je to super způsob jak poznat další lidi z jiných týmů, a jsem zvědav jaké akce podobného typu se tu ještě konají.

No a aby té socializace nebylo málo, pokračoval jsem pak ještě s Alexem z mého týmu na večeři. Ze tří míst co mi nabízel nakonec vybral Nandos, prý je to nejméně „romantické“. Cítil jsem, že má evidentně nějaké trauma a nakonec se mi (po chvilce naléhání) přiznal. Prý jednou vzal kamarádku / spolubydlící na večeři naprosto omylem do romantické restaurace, a pak musel ze stolu odstraňovat svíčky a další dekorace, aby nebylo jejich další společné bydlení ohroženo. 🙂 Kuře ale skvělé!

Week #1 – část druhá

Tenhle článek asi nebude moc populární, ale mám nutkavou potřebu se s Vámi podělit i o pár technicko-organizačních věcí. Pokud dočtete až nakonec, podělím se s Vámi o recept na vynikající oběd 🙂

Organizační odbočka

Pochopitelně to znám zatím pouze z vyprávění, ale jak mi Chris, Bryan, a další popisovali způsob organizace práce, tak to zatím dává velký smysl. Celý náš data tribe má definovanou a jasně popsanou strategii. Je to přibližně 12 stránkový dokument, definující co to znamená poskytovat data as a service, a z jakých high level kroků se to skládá.

Dlouhodobou misí je naplnit následující motto (zatím tomu tak není): Every decision in Skyscanner is driven by complete, timely and accurate data. Na každých cca 6 až 8 týdnů, jsou popsané krátkodobé cíle, které se dále rozsekají do jednotlivých sprintů. Sprinty jsou vždy jeden týden dlouhé, kdy se každý týden dodává business value.

Celé je to značně zjednodušené tím, že tady nedělají odhady pracnosti… “Assumptions will change anyway, so why we should bother with that” 🙂 Naprostá pravda… měří se tedy ve “squado-týdnech”, a měří se dodaná hodnota 🙂 Je k tomu potřeba velký stupeň důvěry, že všichni dělají to nejlepší, co mohou. Ono také asi jednotýdenní sprinty jsou dostatečně krátké, aby se poznalo pokud by tomu tak nebylo. Nemůžu se dočkat až si pár sprintů zažiju, zatím je to spíš rychlý pohled z okna.

Každý den probíhají krátké “stand-upy”. Uvozovky jsem použil proto, že se konají videokonferenčně. Ano, vždy se najde někdo, kdo pracuje vzdáleně a videokonference je tu naprosto běžný způsob pořádání schůzek. Dokonce to mají tak vychytané, že v zasedací místnosti stačí přiložit zaměstnaneckou kartu, a vše automaticky naběhne samo. Kromě toho probíhá každý den krátký “Data Tribe Ops Stand Up”. To je pro většinu kmene nepovinná schůzka, na které se v rychlosti řeší stav KPI na produkci.

Jednou týdně vždy v pátek se koná “Data Tribe – Show & Tell”. Max 30 minutová videokonference, na které squady z data tribe prezentují, co za ten týden udělaly. Data tribe je distribuován v Edinburghu, Glasgow a Londýně (ve dvou patrech). Každý squad má cca 3 – 5 minut na rychlou neformální prezentaci – v podstatě si ukazujou hotové řešení (zdrojáky, verzi na produkci, …). Dnes jsem měl šanci to vidět, a překvapilo mě, jak efektivní a věcné to bylo. Pouze jeden squad leadů se trošku rozpovídal, ale byl během 20 vteřin usměrněn 🙂

Technologická odbočka Když jsem před nástupem telefonoval s Richardem, což je data tribe lead, ptal jsem se ho na technologie a nástroje které používají, a na které bych se měl podívat. Ze spousty názvů, co mi v rychlosti pověděl, jsem alespoň z rychlíku znal elasticsearch a Apache Kafka (== projel jsem si jeden dva tutoriály) 🙂 Abyste si mohli sami udělat představu, kolik učení mě čeká, pak hrubý seznam vypadá následovně:

  • AWS cloud služby – obecně (management console, self-service portál, auto-scaling, …)
  • docker
  • Drone.io docker-based CI nástroj
  • Slingshot (interní nástroj pro deploy do AWS clouds)
  • AWS Route53 (distribuovaný DNS)
  • AWS Elastic Load Balancer
  • AWS C2
  • AWS ECS
  • AWS S3
  • AWS Kinesis Firehose
  • Apache Kafka
  • AWS Lambda
  • AWS SNS a SQS
  • OpenTSDB
  • Redshift
  • Elasticsearch stack (Logstash, Kibana, Elastic)
  • Grafana
  • Bosun

Oběd ve Vital Ve čtvrtek mě kluci vzali na oběd do restaurace Vital. To je místo, ve kterém si můžete poskládat svůj vlastní salát. Nejdřív si ze samooblužného boxu vyberete základ – v mém případě vaječné těstoviny. Dále pak pokračujete k obsluze, kde si vyberete si 1 z 12 druhů masa, 5 z 20 vegan příloh, 2 omáčky… na vše máte asi 10 sekund jelikož tam jsou velké fronty a obsluha pospíchá. No kluci ze mě měli trošku srandu, jelikož jsem absolutně netušil co jsem si objednal. Společnými silami se nám recept částečně povedlo zrekonstruovat… určitě tam byly tortilla nachos, red beans, chilli omáčka, kokosové pesto… a dále netuším. Ale kupodivu to bylo docela dobré 🙂

Velikonoční párty V tom co-workingovém centru WeWork je téměř každý den nějaká akce nebo párty. Už jsem zmiňoval, že free beer je tam každý den od 2pm, ale poměrně často se tam dá i najíst 🙂 Ve čtvrtek v předvečer velikonoc, tam na mě, kromě vtipně vyhlížejících lidí v maskách velikonočních zajíčků, čekaly vynikající hot dogy. No asi to tady nějakou dobu vydržím 🙂

Week #1 – část první

Sedím právě v odletové hale na Stanstedu, a přemýšlím o vtipném a originálním názvu pro tenhle článek. Asi jste si všimli, že jsem nebyl příliš úspěšný 🙂 Každopádně… v dnešní sváteční den se Londýn proměnil v město duchů. Snad s výjimkou okolí nádraží na Liverpool Street, jsem na ulici téměř nikoho nepotkal. V práci to bylo o pár jednotlivců lepší – Skyscanner má totiž v oblasti dovolené poměrně flexibilní politiku. V UK nabízí 32 dnů dovolené, a jestli se rozhodnete vzít volno na tzv. bank holidays je zcela na Vás. Tady si dovolím malou radu pro všechny, kdo by někam pracovně letěli. Je dobrý nápad, si ještě před zakoupením letenek zjistit, kdy jsou v dané zemi svátky. Mně se samozřejmě nic takového nestalo (ehm), a i o té politice jsem dopředu věděl, ale někomu jinému by se to možná hodilo vědět 🙂

Ten týden utekl strašně rychle a pochopitelně se toho stalo docela dost. Bohužel jsem si již 3. den přestal dělat poznámky, ale zkusím to nějak dát dohromady.

2. den V noci jsem pořádně nemohl spát… po prvním dni jsem vůbec nevěděl, s čím mám v tom kvantu úkolů začít. Dokonce jsem si ve 4 ráno musel rozsvítit, a napsat alespoň hrubé poznámky, co mi přijde na další den důležité. Možná trošku profesní deformace, ale usnout mi to rozhodně pomohlo 🙂 Asi největší strašák pro mě bylo získání national insurance number. To je jakési osobní číslo, pod kterým se zapisují platya všech daní na úřady. Na středu jsem měl již přes web domluvenou schůzku na příslušném job office centru, nicméně stále nemám trvalou adresu, bez které ho nelze získat. Email s dotazem co v mé situaci dělat (zatím bydlím na hotelu, něco trvalého si seženu nejspíš až po zkušebce), zůstal až do pozdního odpoledne bez odpovědi. Mých 17 pokusů o navázání telefonického kontaktu, se jim také dařilo poměrně úspěšně ignorovat 🙂 Naštěstí jsem byl ve Skyscanneru odkázán na Rachel, která jako Business Partner pro UK ví co a jak. Na druhý den mi připravila potvrzující dopis že u nich pracuji, kde bydlím atp. Zbytek dne jsem strávil prokousáváním se technickým onboarding tutoriálem od Chrise… a pochopitelně poznáváním dalších a dalších kolegů. Přijde mi až neskutečné, jak jsou všichni milí 🙂

3. den Ráno se konečně osobně potkávám s Chrisem, tedy mým line manažerem. Jdeme rovnou na kafe, kde zjištuji, že má stejně starého syna, jako je můj Eda. No myslím že si budem rozumět 🙂 Po chvilce mi vysvětluje, jak typicky probíhá onboarding nováčků. Proces je v podstatě následující:

  • První týden se zkus prokousat tím, co jsem ti poslal (technický tutoriál pro vytvoření a deploy prvních microservice na AWS cloud), a kdybys cokoliv potřeboval tak se ozvi.
  • Příští týden se pak s někým „spáruješ“ a budeš řešit věci s ním.
  • Každý čtvrtek v 10:15 je ProdOps meeting, tam se řeší co se posr*** na produkci. Je dobré se toho od začátku účastnit, aspoň si zvykneš na pojmy co se tu používaj.
  • Během cca tří týdnů bys takto měl mít high level představu o tom, co dělá tvůj tým.
  • Během pár měsíců bys měl mít představu o tom, co dělá celý tribe.

Pak už mířím na domluvenou schůzku v job office centre, kde jsou všichni, navzdory tomu co se můžete dočíst v některých českých médiích kvůli brexitu, strašně příjemní. National insurance number bych měl dostat poštou, v rozmezí 2 až 4 týdnů na adresu hotelu, kde jsem příští dva týdny ubytován. Prý se jedná o jediný způsob, jakým se své NIN mohu dozvědět. No, stresovat se tím nebudu. Pevně věřím v rychlost místních služeb úřednických, i v rychlost služeb poštovních poslíčků jejího veličenstva. A v nejhorším podplatím recepční, aby mi dopis doručila, i když už tam nebudu bydlet 🙂

V podvečer si všimnu, že kousek ode mě v kanclu sedí Bryan (CTO), se kterým jsem měl zajímavý cca 30 minutových telefonát. Jdu se s ním osobně seznámit, ale nevšimnu si nepřipevněného Apple Ipadu u zasedačky vedle jeho místa. Ipad spadne displejem na zem… no jak lépe zahájit seznamování že. Nicméně on se na mě s úsměve otočí ať si nedělám starosti, že jemu se to stane tak maximálně pětkrát za den. Pak se mě zeptá jestli už jsem měl pivo… 🙂 Ano, nemají pouze Beer Fridays, ale pivo je tam k dispozici každý den po druhé odpoledne. Dáme si spolu dvě piva, a bavíme se o všem možném. Později přijde řeč na Prahu, kterou má prý moc rád a nápadu na pobočku v Praze se vůbec nebrání (dokonce s tím přišel sám). Prý se snaží mít co nejmenší počet poboček ve světě, nicméně pokud se bude otevírat další, pak je Praha na řadě 🙂 Přidávám mu pár pochopitelných a pádných argumentů proč je to skvělý nápad… No a kdo znáte moji tvrdohlavost, pak už jistě víte, že se cca za 2 – 3 roky můžete v Praze těšit na zajímavou pracovní příležitost 🙂

Po dvou pivech už nemá smysl pokračovat ve čtení tutoriálů, a tak raději pokračuji v socializaci. Narazím na Davida, se kterým jsem se potkal na pohovoru. Velmi mě potěšil, že si mě jednak pamatoval (včetně jména) a že se ke mně sám tak nadšeně přihlásil. Začínám chápat, proč je pro ně cultural search během pohovorů tak důležitý, a zjevně se to vyplácí.

Slíbil jsem Vám, že Vám prozradím, z čeho jsem měl kulturní šok. Pochopitelně jsem měl na mysli spíše šok ve smyslu firemního fungování. Přijde mi až neuvěřitelné, jak vysoký stupeň důvěry Skyscanner vůči svým lidem má. Nikdo tady nikoho nekontroluje, nikdo nikam nevykazuje strávený čas. Nikdo neřeší, jestli jste v práci 4 hodiny, nebo 10. Klidně můžete libovolné množství času týdně strávit studiem kurzů na interní Skyscanner University nebo děláním čehokoliv jiného. S nikým to nemusíte ani konzultovat. Vy jste ten, kdo o těchto věcech rozhoduje… jsem z té odpovědnosti upřímně trochu nesvůj 🙂 Celé je to postavené na vysokých nárocích během pohovorů, najímáním motivovaných lidí a udržování jejich motivace tím, že jim dávají hodně challenging úkoly. Např. v mém případě jde z 90% o věci, které jsem v životě neviděl 🙂

No ve stoje na gate se nepíše úplně nejlépe, zbytek týdne tedy v dalším článku. Těšit se můžete na high level popis organizování vývoje našeho kmene.

Day #1

Tak nějak nevím, kde mám začít 🙂 Zkusím to tedy vzít pěkně po pořadě. Podle posledních emailových instrukcí, jsem se měl v pondělí dostavit na 9h ráno na recepci budovy WeWork na Moorgate. Tam jsem se měl potkat s Yasmin, jejíž vizitka zní „Exec PA / Office Manager“ (whatever that means 🙂 ). Trochu mě zaskočila svým výrazně delším účesem, než jaký jsem očekával podle jejího LinkedInu. Vzpomněl jsem si na svůj první den v Profinitu, kdy mi něco podobného provedl Martin Z. 🙂 Hotel mám naštěstí pouhých 15 minut příjemné ranní procházky odsud – idylka – no posudťe podle fotek sami. Jak to teď píšu, vzpomněl jsem si na příběh pražáka o odhazování sněhu 🙂 .

Přiznám se, že mě zde trošku zaskočilo počasí. Popravdě jsem v Londýně po čtvrté, a téměř jsem zde nezažil déšť. Britští kolegové jsou z toho viditelně trochu rozhození. Co jsem stihl vypozorovat, moc rádi si na počasí postěžují, a vyhnou se tím vážnějším tématům (jako je zde např. brexit). No tento týden je to pro ně jedna velká čára přes rozpočet. Nicméně… 🙂 Včera nás nastupovalo hned několik. 3 nováčci tady v Londýně a 1 nový kolega v Barceloně. Hned na úvod jsme absolvovali cca hodinové vzájemné představení přes videokonferenci po trase Sofia – Londýn – Barcelona. Evidentně jsou na vzdálenou práci naprosto zvyklí, což je pro mě velmi dobrá zpráva. Už tohle úvodní povídání mě naplňuje pocitem, že pohovory (a vše co jsem si dosud myslel), nebyla jen „předvolební kampaň“.

Další schůzka už byla onsite s Alexem z „Developers Enablement Tribe“. V rychlosti nám představil poslání jeho kmene, architekturu a vůbec základní inženýrské hodnoty. Líbila se mi hlavně jeho očividná upřímnost a otevřenost o aktuálním stavu věcí. Jedna z věcí, na kterou člověk při dodávání software na zakázku, navíc v multi-vendor prostředí, moc nenarazí 🙂

Po této schůzce už jsem byl odveden na místo a představen kolegům z týmu. Jsem aktuálně v „Data Tribe“, konkrétně v „clan B“. Ano, „Data Tribe“ má místo squadů klany, ale o tom až někdy příště. A ano, ptal jsem se, je to čistě rozlišovací opatření. Nicméně i tak bychom to měli nechat změnit 🙂 Cílem „Data Tribe“ je v podstatě vybudovat „Data-as-a-Service“, zejména pro interní zákazníky (primárně marketingové a businessové buňky). Podle dat, které tým loguje, se vyplácí provize celé firmy, takže to jsou „poměrně“ kritická data. Ostatně na post-mortem nebo chcete-li lessons-learned schůzkách (prostě tzv. „what have we fuc**-up meetingy“ 🙂 ), byly poslední tři příspěvky právě z mého týmu.

První koho jsem z týmu poznal, byl Lotyš Randy. Opět potěšující zpráva – už třetím rokem provozuje stejný způsob práce (tedy 4 dny onsite, 1 den z domova), s jakým sem přicházím já. A to jsem si myslel, že budu „weird czech guy“ 🙂 Dále jsem zatím stihl poznat Portuglce Andrého, Itala Domenica (čti „do-mééé-ny-ko“), Angličany Alexe a Chrise, a „řekl bych že Skota“ Steva. Chris je můj line manager, nicméně jsem se s ním potka pouze přes videokonferenci. V pondělí a úterý potřeboval home-office – opět, za mě v pohodě 🙂 No velké potěšení, pro mě bylo pracovní prostředí – jak si můžete všimnout na fotkách, „mám“ okno (v sedmém patře) i s opravdovým výhledem ven 🙂

No a co je pro mě v tuhle chvíli největší kulturní šok? To Vám povím příště 😉

Cesta do Skyscanneru – část čtvrtá – nabídka

Pokud podle názvu příspěvku čekáte, že bude obsahovat všechny detaily nabídky, pak Vás hned na úvod musím zklamat. Místo toho Vám ale řeknu, jak to bylo dál 🙂 Hned v pondělí ráno mi volal Alan s poměrně dobrou zprávou. Feedback ze všech pohovorů byl prý pozitivní, a chystají pro mě nabídku. Dokonce i angličtina byla na místě více méně bez problémů. Nicméně by preferovali, abychom se kvůli dvěma oblastem z pohovorů, drželi již domluveného scénáře (tedy že začnu jako senior software engineer, a po absolvování jejich 4 měsíčního manažerského kurzu, bych se posunul dále, pokud bych chtěl). První z oblastí, byly moje nulové zkušenosti z „fast paced environment“. Druhou, pak moje pouze teoretické zkušenosti s architekturou distribuovaných aplikací. No za mě asi dobrý myslím si 🙂 Přes pohovor na senior software engineera, bych po letech hands-off role asi jen tak neprošel. Domluvili jsme si telefonát na konec týdne, až budu mít nabídku v mailu a byl jsem velmi zvědav co pošlou…

Ve čtvrtek jsme s Marťou, po asi 5 letech, vyrazili na hory do Špindlu, a pohovory jsem na chvíli pustil z hlavy. V pátek odpoledne mi volal Alan, zrovna když jsem se oddával polednímu klidu (ano drželi jsme ho poctivě i když jsme jeli bez dětí 🙂 ). Snažil jsem se ve dvě odpoledne neznít moc rozespale. On na mě rovnou začal chrlit klíčové body nabídky, kterou se mi chystal právě poslat mailem. Bylo to hodně informací, a to, čemu jsem ve svém aktuálním rozpoložení rozuměl, to znělo velmi rozumně. Nicméně díky mojí rozespalosti jsem nezněl příliš nadšeně, což je v této situaci vždycky dobrá varianta pro vyjednávání. Poprosil jsem ho, ať mi to pošle, a že si zavoláme v úterý 🙂 Na pondělí jsem totiž měl ještě domluvený pohovor v Zurychu s firmou Centralway, a chtěl jsem mít spolu s výsledkem z Amazonu všechny vstupy k rozhodování.

Pohovoru v Zurychu se tady moc věnovat nebudu – pouze popíšu jak jeho výsledek vstoupil do mého rozhodování. „Bohužel“ jsem od této firmy dostal nabídku. Slovo bohužel jsem použil proto, že kromě finanční stránky (kdo má představu o švýcarských platech a nízkých daních pak mi asi rozumí) a krásného zázemí s restaurací a posilovnou, na ní nebylo vůbec nic zajímavého. Naopak firma měla zvláštní firemní kulturu – v dnešní době vůbec nedovolovali home officy. Nicméně nabídli mi flexibilní pracovní dobu – mimo „core hours“, kdy chtějí mít všechny v práci, bych mohl chodit jak bych chtěl. Jo a core hours jsou prý 9 – 17 monday to friday (bez pr***) 🙂 Pravda že tam měli krásný kinosál, kde se prý společně koukají třeba na fotbalové mistrovství. Jo a taky v něm mají pravidelně každý pátek nejdůležitější firemní schůzku týdne. V pátek v 17:00… No ale ty peníze prostě člověka nutily přemýšlet 🙂 Víc už psát raději nebudu, podepsal jsem poměrně brutální NDA s pokutou cca 100k CHF tak to odmítám riskovat. 🙂

O víkendu jsem se na nabídku od Skyscanneru podíval podrobněji a sepsal Alanovi návrh na vylepšení. V tuhle chvíli mi šlo hlavně o dojednání toho speciálního režimu – tedy buď 4 dny „long hours“ práce v Londýně a 3 dny volna, nebo alespoň 4 dny v Londýně a 1 den home office. Finanční stránka byla velmi rozumná, řekl jsem si u nich o rozmezí x – y a nabídli mi jako základní plat rovnou y a k tomu 10% bonusu. Tedy netřeba nic dalšího vyjednávat 🙂

V úterý jsme si s Alanem volali a probírali moje návrhy. Řekl mi, že on občas pracuje z domova i dva dny týdně, a že v tom nevidí problém. Pochopitelně v časech nějakých větších releasů je dobré být poblíž, ale rozhodně nevidí důvod, proč by to nemělo fungovat. Dokonce mi navrhl pátek, jako můj home office day, se zdůvodněním, že ne že by v pátek nepracovali, ale je to přeci jen pátek 🙂 Při porovnání s curyšskou pracovnou moje srdce, i přes značný finanční rozdíl (hlavně kvůli daním ve Šwajcu), vědělo kam nejspíš patří.

Alan mi jěště nabídl, že mi domluví call s mým budoucím nadřízeným, ještě než dám svoje finální rozhodnutí. Dokonce mi nabídl i call se CTO firmy Bryanem, který mi prý může vysvětlit rozdíl mezi Skyscannerem a Amazonem, jelikož tam několik let vedl odděleni inženýrů. Oba cally jsě nadšeně přijal, a musím říct, že na mě oba pánově udělali velmi dobrý dojem. Zejména Bryan, který mi cca 30 minut vysvětloval na příkladech, jak jim funguje jejich squad & tribe struktura, jaké mají cíle, jak vypadá delivery process, atp. Prostě velmi příjemných 30 minut, po kterých jsem okamžitě poslal mail, že akceptuji jejich nabídku 🙂

O Skyscanneru – Follow up & next steps…

Po prvním skypovém kole s recruiterkou Lorraine mi přišel email s „pár“ informacema o firmě 🙂 Jsou to všechno veřejně dostupné informace, ale stejně se o ně podělím, je pěkné je dostat všechny pěkně pohromadě. Obzvlášť zajímavý je squad & tribe model, který původně vymysleli ve Spotify. Řeší to škálování agile a zachování start-up kultury i při raketovém růstu firmy. Koho zajímá devops a continuous delivery, doporučuji sérii článků From 20 to 2 million releases a year.

Some recent blog/tech updates include:

Our jobs pages also have a few videos on our key engineering positions – you’ll find one here at the bottom of the page – which really describes very well what our teams are working on and the complex technical problems we’re solving every day.

There are also several videos on our Skyscanner consumer and Skyscanner Engineering YouTube channels if you’re interested in more content however we recently launched our new Engineering Blog at http://codevoyagers.com

Some good blogs we’ve produced to discuss our ‘tech stack’ and engineering approach: not-all-the-technologies

No jsem velmi zvědav až to uvidím aplikované v praxi, a pochopitelně se o to rád podělím 🙂

Cesta do Skyscanneru – část třetí – onsite pohovor

Po zkušenosti z minulého týdne z Amazonu, kdy jsem na hotel dorazil až v 11 a šel rovnou spát, a ráno jsem vstával v 7, jsem se rozhodl si to tentokrát více užít… Domluvil jsem si dřívější let a večer před pohovorem jsem si v hotelu zašel na pivo (resp. dvě) a burger. Pohovory začínaly až v 10 a na ráno mi Skyscanner zařídil klasickou anglickou snídani formou švédského stolu… no s náladou a psychickým rozpoložením jsem na tom už nemohl být lépe:)

Pohovory byly tentokrát „jen“ čtyři, a začínal jsem „cultural searchem“. Hodinový pokec s jedním ze seniorních lidí z Londýna, který se snažil hlavně zjistit, jestli nejsem kretén a jestli tam zapadnu. Docela jsme si padli do noty a kecali o tom, jak se dělají a jak by měly vypadat dobré produkty… co bych v práci chtěl dělat, co mě v práci baví a nebaví, proč by mě měli přijmout atp. Na závěr se mě ptal, co by měl Skyscanner na svém produktu zlepšit. Jelikož jsem to očekával, tak jsem si udělal domácí úkol a vyprávěl mu, že by to měli integrovat na Uber API a jak by to celé mohlo fungovat. Trošku se mu rozzářily oči, možná proto, že už na tom prý chvilku pracovali:) Každopádně jsem z tohoto kola odcházel s ještě lepší náladou než po snídani.

Druhý pohovor byl nazvaný „hard technical problem“. Na tohle kolo jsem se poctivě připravoval s profinitíma klukama ze spořky – ať už debatama v hospodě u piva (tedy na našem tzv. „software community meetingu“) či během poobědových diskuzí u kávy v kuchyňce. Tedy jak by se měl dělat software s API, microservicama atp. Měl jsem za úkol navrhnout ochranu proti 3rd party robotům zneužívajícím jejich produkt, nejprve přes GUI a pak přes API. Dobré znamení bylo, že po 35 minutách pohovorující řekl že už mu došly připravené otázky:) Horší bylo, že mu přišlo blbé to takto v předstihu ukončit, tak se začal vyptávat na další (a těžší) improvizované otázky evidentně ze své denní práce. Když už sám cítil že to přehání, tak jsme se bavili jak to vlastně celé řeší oni 🙂 Opět jsem z tohohle kola měl dobrý pocit.

Po obědě jsem měl třetí pohovor – „depth of experience“. Trošku jsem očekával, že se můžeme bavit o „mých“ projektech, a tak jsem se večer předtím (u piva) připravil o čem bych mohl mluvit. Nakreslil jsem mu architekturu internet bankingu ze spořky, povyprávěl o našem delivery procesu… pak jsme se dostali k tomu, jak se to teď staví po novu. Tedy k widgetům, microservicám, API, … Šli jsme poměrně do velkého detailu, u každé komponenty jsme se ponořili do toho, jak je to řešené, jaké jsou použité technologie, … Např. otázky kdy bych použil relační a kdy nosql DB, proč jsme se rozhodli takhle, … jak máme řešeny transakce, jak nám funguje vyhledávání nad elasticem, … Zvláštní že to bylo spíš velmi příjemné povídání s podobně uvažujícím člověkěm o technologiích a postupech, než pohovor 🙂

Poslední pohovor byl tzv. „bar raiser“. Tedy nejtěžší kolo, jehož pohovorující má právo veta v následném decision making procesu. Tohle kolo jsem absolvoval onsite s Davidem a přes skype připojenou holčinou z Edinburghu. S Davidem jsem (aniž bych tušil co mě s ním čeká dál) během oběda vedl zajímavou diskuzi, jak se liší delivery process při vývoji produktu jako je Skyscanner, od dodávky software pro banky se vší zodpovědností, nutností zabezpečení atp. On předtím rovněž několik let pracoval pro banku a ve Skyscanneru má na starosti devops, takže diskuze to byla velmi zajímavá. I z tohohle posledního kola jsem tedy odcházel s relativně dobrým pocitem.

Na závěr pohovorů přišel Alan s tím, že jelikož je pátek a oni drží tradiční „beer fridays“, máme si dát všichni před odjezdem aspoň pivo na baru. Pochopitelně jsem ho jako potenciálního budoucího kolegu nemohl zklamat a pivo si s ním dal 🙂

Jelikož mi letadlo letělo až cca za 4 hodiny, s dobrou náladou (a po dvou pivech) jsem se vyrazil podívat na Oxford Street. Ponořen do nakupování dárků pro ženu a děti jsem trošku pozapomněl na čas (a na fakt že jsem ještě neudělal check-in) a letadlo mi málem uletělo. No upřímně jsem tam měl ještě trošku rezervu… na gate jsem doběhl až celých 5 minut před jeho uzavřením, a za mnou ještě přiběhl jeden Ir takže no stress:) Koho by potkalo něco podobného, tak místo hloupé rady, ať nezapomenete množství potřebného času na cestu vynásobit dvěma, Vám poradím, že na Picadilly Line v metru po cestě na Heathrow, je možné občas chytit signál. Trpělivějším jedincům se občas povede načíst stránku. No a těm opravdu odolným, se může povést i online check-in, který jim může zachránit místo v letadle. K mému překvapení i obrovská fronta lidí na security checku může mít pochopení (a dokonce Vám bude i fandit ať to stihnete 🙂 ), pokud vypadáte opravdu hodně zoufale…