Michal Špaček z Report URI o smyslu práce, potenciálu i prokrastinaci


Michal Špaček vyvíjí webové aplikace a soustředí se na jejich bezpečnost. O této problematice poskytuje veřejná a firemní školení, i publikuje. S Michalem jsme se kromě vývojové bezpečnosti bavili zejména o smyslu práce, potenciálu i prokrastinaci. 

 

Jakému projektu se aktuálně věnuješ?
Pracuji na Report URI – službě, která agreguje bezpečnostní reporty z prohlížečů a poštovních serverů a umožňuje v nich přehledně vyhledávat. Makáme na tom se Scottem Helmem a Troy Huntem, oba dva jsou těžkými váhami na poli bezpečnosti na webu.

Používáním téhle služby provozovatel webu získá přehled třeba nad tím, co se děje v prohlížečích návštěvníků poté, co načtou jeho stránku a jestli se tam třeba po cestě nepřidala nějaká reklama či zákeřný JavaScript. Nebo jestli třeba Google nepřijímá zfalšované e-maily odeslané jeho jménem.

V létě jsem napsal článek o tom, jak jsem hned pár dní po začátku spolupráce smazal 1,5 milionu řádků kódu. Kromě toho se stále věnuji školení bezpečnosti, jejímu zvyšování a osvětě na stejné téma. Moc bych si totiž přál, aby internet byl o něco bezpečnějším místem na Zemi, používám ho rád.

 

Zmiň tvou největší pracovní chybu a jak ses s ní vypořádal. Plyne ti z ní nějaké poučení?
Myslíš tu, kterou jsem udělal v roce 2010 a která onu firmu stála €300k na ušlém zisku? Ale naštěstí jsem nic neplatil a ta částka se ke mně nedostala oficiálně. Byla to "týmová chyba", selhaly 3 stupně kontroly: zadavatelé si nevzpomněli, s týmovým parťákem jsme to nenaprogramovali, testeři neměli co testovat, a tak to neotestovali.

Ve finále z toho vyplynulo hodně ponaučení, ale myslím, že jsme je ten večer všechny tak nějak zapomněli. Pamatuju si asi jen jedno: kdo nic nedělá, nic nezkazí. A asi by bylo dobré dodat, že je fajn mít záchytnou síť, když se to náhodou zapomene udělat nebo se to neudělá dobře. Platí to i v bezpečnosti, a to i mimo Internet.

Nebo snad myslíš tamtu, jak...

 

Jak moc je pro tebe důležité, aby práce, kterou děláš, měla smysl? Jak dlouho ti trvalo najít takový job?
Práce musí mít smysl, jinak nemá smysl (ano, hádáte správně, ve škole jsem měl z tautologie jedničku z hvězdičkou). S dobrými kolegy a kamarády se dá navíc zvládnout i džob, kde ten smysl není na první pohled úplně zas tak dobře vidět. Smysl samozřejmě měla každá práce, kterou jsem dělal, ale sluší se dodat, že u některé jsem ho zatím nenašel. No nic, budu hledat dál.

 

Potýkáš se při své práci s prokrastinací? Jak proti ní bojuješ?
Potýkám, jasně. Ale asi ne s takovou úplně klasickou. Někdy, místo toho, abych dělal, co zrovna potřebuju, tak dělám to, co jsem měl udělat už dávno, ale odprokrastinoval jsem to na později (třeba odpovídám na e-maily). Nebo hledám chyby na Internetu a píšu lidem, aby je opravili. Nebo se začtu na Wikipedii do něčeho děsně zajímavýho a pak s tím oblbuju lidi kolem. No, ještě, že jich kolem mě často moc nebývá. Od té doby, co jim ukazuji jak důležité je třeba HTTPS za pomoci útoků na Wi-Fi na (jejich) vlastní kůži (a počítače), se mi nějak vyhýbají. Nevíte proč?

 

Jakou bys dal radu člověku bez větších zkušeností, který se chce prosadit v konkurenčním světě IT? Věděl bys třeba i o “radách”, na které si má dát pozor?
Zaručeně dobrou radu bych měl: měl by ty zkušenosti získat. Firmy sice často chtějí lidi se zkušenostmi, ale kde je získat, když se do té firmy nedostanou? Naštěstí některé už přijímají i bez zkušeností a do nováčků je dostanou pod tlakem, obrazně řečeno. Reálné problémy (a reálná možnost tu firmu přivést na pokraj bankrotu), do toho bych šel hned, tam se toho naučíte asi nejvíc. Jen prosím neberte neplacené stáže, pokud vám to někdo nabízí, tak nohy na ramena a šup tam, kde si vás budou vážit o něco víc.

Zkušenosti se dají získat ale i jinde: slyšeli jste třeba o open source? To je takový model vývoje programů, do kterého se může zapojit kdokoliv. Ono to teda moc nefunguje, protože zapojit se moc lidí nečekaně nechce. A tady je právě třeba ta šance, během které se dá naučit spousta věcí nejen o programování, ale i lidech a firmách.

Další možnost je třeba hledání bezpečnostních chyb: existují firmy, které za nalezené chyby zaplatí a navíc vaše jméno zveřejní na tzv. zdi slávy. Na hledání takových chyb už sice musíte mít nějaké zkušenosti, ale každému je jedno, kde jste je vzali.

 

Jaký je tvůj názor na vývoj z hlediska efektivity a zároveň bezpečnosti, tj. jak vyvíjet bezpečně a zároveň efektivně?
Můj názor? Jde to! Je to ta správná odpověď? Dobře, tak znovu. Efektivita není jin a bezpečnost není jang. Když to rovnou udělám bezpečně, tak pak ty problémy nemusím efektivně vůbec řešit, protože je co? Protože je nemám.

Psát alespoň základně bezpečně neznamená psát víc kódu nebo něco takového, často stačí prostě jen napsat pár písmenek jinak. Jasně, musím vědět jak, ale přesně proto vyvíjí vývojáři, a ne třeba zubaři. Ačkoliv zubaři také lepí díry, ale tak snad chápete, jak to myslím.

 

Jaké jsou pro tebe, a zároveň obecně pro programátora, hlavní podněty ke změně práce?
Pro mě osobně je to, když smysl práce přestává být vidět a mě začne zajímat něco jiného a musím na to pořád myslet. I při práci. To pak většinou nedopadá dobře, makám na tom "svým" do noci, pak chodím pozdě a nezbývá mi čas na to si uvědomit, že takhle to dál nejde a že je potřeba s tím něco udělat dřív, než se vyskytne fakt velkej pracovní problém.

Za ostatní programátory nemůžu mluvit, ale pokud bych to měl zkusit, tak obecně je to asi skoro všechno. Prachy, smysly, nesmysly, kolegové, kolegyně, vedení. Ale asi to dnes už fakt nebudou stravenky.

 

Co děláš, když se cítíš přetažený nebo nesoustředěný?
Přečtu si motivační citát. Nejraději mám ten, který zní nějak takhle: "Oh yeah, don't stop". Myslím, že ho řekla Jenna Jameson.

Kecám, pustím si empétrojku nebo deset, otevřu Gmail a odpovím na tři e-maily, na které jsem nedokázal předtím vymyslet odpověď (pozn. red.: Michal nám e-mail s odpověďmi poslal ve 3:07 ráno). A pak jdu spát. Někdy to udělám obráceně, protože půl druhé odpoledne moudřejší večera.

 

Které knihy nejvíce ovlivnily tvůj pracovní život a proč?
Kromě slabikáře a Rozumu do kapsy, nejlepší tehdy dostupné knize pro malé hackery, to určitě byla první kniha o PHP na světě vůbec. Napsal ji Jirka Kosek, dnes v ní mám jeho podpis, ale musel jsem ho vyměnit za několik přednášek na jeho kurzu o vývoji webových aplikací. Pak něco o JavaScriptu, něco o SQL a z poslední doby osmisetstránková bichle Learning PHP, MySQL & JavaScript: With jQuery, CSS & HTML5 od Robina Nixona, protože jsem mu dělal "tech review" částí o bezpečnosti. Nesmím zapomenout na PoC||GTFO ("Proof of Concept or Get The Fuck Out", překlad raději necháme čtenářům za domácí úkol), protože se takovou filozofií snažím taky řídit. A už několik let mám rozečtenou jednu knihu, kterou doufám, že snad brzy už dočtu: Getting Things Done.

 

Autor: Jakub Zahurský