Kdo jsem

My face

Začal jsem programovat ve třetí třídě v QBASICu podle návodů v časopise ABC a pořád mě to baví.

Jsem softwarový vývojář z Brna. V IT a SW vývoji jsem zaměstnaný od roku 2008.

Působím na částečný úvazek na Masarykově univerzitě jako vývojář a systémový administrátor zaměřený na oblast Facility managementu a inteligentní budovy. Zároveň působím jako vývojář na volné noze. Díky spolupráci s firmou Microton jsem se dostal i k práci na projektech pro zahraniční klienty (USA, Austrálie) prostřednictvím platformy Upwork (můj profil je viditlený pouze pro příhlášené uživatele).

Proč si vybrat právě mě?


  • ...
    Znám všechny aspekty vývoje: od analýzy přes návrh včetně datového modelu přes implementaci až po dlouhodobý provoz systémů.
  • ...
    Znám nejenom programovací jazyky, ale i infrastrukturu, ve které kód běží: běhová prostředí (JRE, CLR), cloudová prostředí (AWS), aplikační servery (Tomcat, IIS, HTTPD), databáze (T-SQL, MySQL, DynamoDB), sítě, operační systémy (Windows, Linux).
  • ...
    Vždy věnuji čas tomu, abych pochopil a přizpůsobil se filozofii produktů, se kterými pracuji. Nepochopení základních konceptů je často zdrojem nespolehlivých, nevýkonných a neflexibilních řešení.
  • ...
    Znám široké spektrum dostupných platforem, jazyků a nástrojů. Na některé věci je nejlepší Java, na jiné .NET, někdy je nejlepší Python a jindy stačí PowerShell. Cílem je nalézt nástroj, který je nejvhodnější na řešení daného problému, ne snažit se za každou cenu přizpůsobit problém známé technologii.
  • ...
    Věřím, že je důležité nevynalézat znovu kolo a do nejvyšší možné míry používat již existující projekty. Tím šetřím vaše peníze.
  • ...
    Pokud je to aspoň trochu možné, respektuji váš výběr technologií. Pokud máte vše na vlastních serverech na flatformě .NET. nebud vám cpát serverless řešení v Amazon cloudu. Pokud chcete napsat plugin do vašeho hepldesk software, nebudu vás převědčovat, že ho máte změnit, protože se v něm pluginy píší příliš složitě. Snažím se řešit existující problémy, ne vytvářet nové.
  • ...
    Chápu, že nejdůležitější jsou požadavky uživatele. Aplikaci, která je pro uživatele nepřehledná nebo nepohodlná, nebudou používat. To samé platí ve chvíli, kdy její vývoj trvá příliš dlouho. Dokonalý produkt doručený ve chvíli, kdy už není potřeba, je stejně špatný jako nepohodlná a chybami zamořená aplikace, která se navíc nedá udržovat. Požadavky uživatelů a maximální užitek pro ně je pro mě stejně důležitý jako kvalita návrhu a samotného kódu. Tyto věci musí být v rovnováze.
  • ...
    Uvědomuji si, že zdaleka nevím všechno, a neustále se učím a posouvám dál - ať už úplně nové technologie, nebo vhodné best practices.

Jsem full stack developer, ale návrhy a implementace UI nejsou můj šálek kávy, zvlášť v situaci, kdy vaše UX je klíčové pro váš úspěch. I když s nimi mám určité zkušenosti, specializovaný UI/UX designér a webkodér vám v této oblasti poskytnou lepší služby. Vytvářím aplikace, ne prezentace. Nemá tedy smysl u mě poptávat jednoduchou firemní prezentaci - dobrý specialista vám vyrobí web na základě šablony rychleji, levněji a lépe než já.

Co nabízím

V současné době mám kapacitu na menší jednorázové projekty jako například:

Zároveň jsem otevřený kontraktům na udržování a rozvoj existujícího systému, které sice jsou dlouhodobé, ale vyžadují pouze menší množství času.

Co umím

Konkrétním technologiím nepřikládám zas tak velkou důležitost, přizpůsobuji se konkrétnímu projektu. Samozřejmě ale neznám všechno (i když se rád něco nového naučím). V tabulce najdete seznam technologií, se kterými mám zkušenosti. Pro úplnost také uvádím, které volím, když si můžu vybrat.

KategorieMám rádZnám
JazykyJavascriptJavaC#CPython
FrontendVuetify.jsBootstrapVue.jsAngularJSjQueryJavascript.NET Framework
BackendNode.jsExpressSpringJava.NET Framework
SkriptováníNode.jsPowerShellPythonBash
DatabázeMicrosoft SQL ServerAWS DynamoDBSOLRMySQL
OS, servery, platformyWindowsAWSLinuxOpenStackTomcatDocker
Vývojová prostředíEclipseVisual Studio CodeNetBeans
Správa kódu a závislostíWebpackMavenGitSubversion

Jak vypadá můj kód

Na ukázky kódu se můžete nejpohodlněji podívat do následujících veřejných Git repozitářů:

Bzukot

V IT jsou poměrně oblíbená tzv. buzzwords. Jasně, jsou to jenom takové nálepky, pod kterými si každý představuje něco jiného a které samy o sobě žádnou zvláštní informaci nenesou. Ale přesto - rád bych zde zmínil pár trendů a technologií, které mi přijdou zajímavé, užitečné, použitelné, a se kterými již mám zkušenosti. Klikejte na termíny pro více informací.

MicroservicesSOAJAMstackHeadlessSPARESTnoSQLResponsivenessMobile-firstMaterial designSaaSPaaSServelessAgileCI/CD

Dr. Kompjůtr

Kromě práce jsem úspěšně dokončil Ph.D. studium na FI MU. I když jsou požadavky na software vyvíjený v akademické sféře odlišné od těch, které se objevují v komerční, jsem přesvědčen, že tato zkušenost přináší výhody i při "klasickém" vývoji:

Jak mě kontaktovat

Co za to

Moje aktuální hodinová sazba je 800 Kč/hod. Nejsem plátcem DPH. Pro dlouhodobé projekty jsem ochotný poskytovat slevu z hodinové sazby.

Pokud se domluvíme na úkolovém ocenění, budu cenu zakládat na svém časovém odhadu a této hodinové sazbě, ale chápu, že pro mnoho zákazníků je to preferovaná varianta. Moje nabídkové ceny za kompletní projekty vždy počítají (kromě času na vývoj) iss dostatečným časem na analýzu a návrh řešení, dostatečné testování, zapracování připomínek uživatele a finální nasazení. Pokud se neobjeví zásadní neočekávatelné problémy, cena je konečná. Nebudu z vás tahat vícepráce za to, že chcete dát tlačítko na opačnou stranu, než kam jsem ho původně umístil.

Zde bych jen rád doplnil drobnou poznámku – chápu, že Vám tato sazba může přijít vysoká, nicméně mám pro následující argumenty:

  • ...
    Za hodinu své práce po deseti letech praxe a neustálému sebezdokonalování za hodinu stihnu více, než je průměr.
  • ...
    Neplatíte mi pronájem kancelář a energie, počítač, software, telefon, stravenky, ani dovolenou nebo nemocenskou. Neplatíte mi zdravotní ani sociální pojištění. Toto jsou náklady, které musím pokrýt ze své hodinové sazby. Mnohem podrobněji je tato argumentace rozvinuta v přednášce Petra "Jezevce" Pouchlého z Court of Moravia.
  • ...
    Již ve chvíli, kdy se na práci dohodneme, jsem na Vašem projektu určitý čas strávil – psaním nabídky, naceňováním, zkoumáním specifických technologií, které používáte.
  • ...
    Platíte si profesionála, ovládajícícho technologie, které nabízí. Učení se nové technologii nefakturuji (pokud opravdu není specifická jen pro váš projekt). Nemusíte mě zaučovat.
  • ...
    Nacenění zakázky vždy obnáší určitou míru rizika, ale já se vždy snažím, aby moje nabídková cena byla dodržena. Neočekávané problémy se téměř vždy objeví. Vyšší hodinová sazba mi sazba umožňuje pokrýt určitou míru neočekávatelných vícenákladů bez zvyšování celkové ceny.
  • Reference

    screenshot
    Mapa poštovních schránek
    2019

    Mapa poštovních schránek - služba zobrazující schránky na území ČR v mapě. Využívá datasetu zveřejňovaného Českou Poštou a API Mapy.cz. Služba běží v AWS (frontend S3+CloudFront, backend Lambda + ECS), pro ukládání dat je využívána noSQL databáze DynamoDB.

    Vuetify.jsVue.jsMapy.cz APIWebpackNode.jsExpressAWS LambdaDockerAWS DynamoDB
    screenshot
    Maják
    2018

    Hra na letní tábor. Webový server běžící na Rasperry PI, ke kterému se přes WiFi připojují hráči a plní úkoly. Raspberry zajišťuje funkce wiFi AP, DHCP, DNS a web serveru s Node.

    Vue.jsWebpackBootstrapNode.jsRaspberry PI
    screenshot
    Nastojte.cz
    2019

    Tyto stránky. Serverless prezentace s využitím Amazon AWS, změny jsou publikovány pomocí CI/CD služeb AWS CodePipeline a CodeBuild.

    Vue.jsWebpackBootstrapAWS Route 53AWS CloudFrontAWS S3
    screenshot
    Joolca troubleshooting (AUS)
    2018

    Rozšíření pro systém zákaznické podpory Zendesk. Interaktivní rozhovací strom pro základní zákaznickou podporu - odhalování typických potíží s prodávanými výrobky. Místo databáze byl na backendu použit Google Spreadsheet rozšířený o REST API, aby bylo možné snadno upravovat rozhodovací stromy.

    ZendeskjQueryRESTGoogle Aps ScriptGoogle GSuite
    screenshot
    Dropair (USA)
    od 2017

    Aplikace pro podporu dropshipping firmy. Údržba již existující aplikace, vývoj nových crawlerů, scraperů a parserů.

    AngularJSJavaSpringNode.jsSOLRMySQLHibernate
    screenshot
    Giftcard Checker (USA)
    2018

    Nástroj pro automatické ověřování zůstatků na dárkových poukazech obchodního řetězce. Backend využívá nástro Puppeteer pro automatizaci prohlížeče, frontend je vytvořený jako plugin do Google Spreadsheet.

    Google GSuiteGoogle Aps ScriptNode.jsExpressGoogle ChromeREST
    screenshot
    Bookování letenek (USA)
    2018

    Plugin do Chrome, který sleduje nabídku letů na stránkách jednoho z dopravců. Prohlížeč běží ve VPS. Když se objeví nový let ze zadaných letišť, započne rezervaci rezervaci a odešle mailovou zprávu uživateli, aby v případě zájmu mohl v rezervaci pokračovat.

    JavascriptGoogle Chrome
    screenshot
    Coffee to Home
    2014

    Jednoduchá landing page pro (tehdy) začínající předplatné kávových balíčků. Cílem bylo s co nejnižším množstvím vynaloženého času na vývoj umožnit zákazníkům objednat produkt, aby mohla firma začít co nejdříve fungovat. Výsledné řešení bylo hotové za méně jak 20 hodin a umožnilo úspěšné fungování firmy v jejích začátcích.

    JavascriptBootstrapPHP
    screenshot
    BMS Sentinel
    2010

    Dohledový systém pro automatizační protokol BACnet.

    .NET FrameworkC#BACnet
    screenshot
    Semantic BMS
    2017

    Sémantický model pro data z inteligentních budov.

    JavaRESTApache JenajQueryApache TomcatWeb Ontology Language
    screenshot
    EsserNet-BACnet Gateway
    2014

    Převodník mezi protokolem EsserNet požárního systému a obecným automatizačním protokolem BACnet. V projektu jsem měl na starost BACnet část brány.

    JavaBACnet
    screenshot
    Mapa cen stavebních pozemků
    2019

    Mapa cen stavebních pozemků. Technologické demo, uznávám, není příliš funkční.

    Vue.jsMapy.cz APIWebpackBootstrapNode.jsExpressAWS LambdaApify

    Přiznání autorství (CC Atributions)

    Při vývoji využívám množství volně dostupných knihoven, nástrojů, multimédií a dalších autorských děl. Některá z nich požadují, aby byl autor zřetelně uveden, pokud používáme jeho dílo.

    Na těchto stránkách se toto týká symbolu použitého v odrážkových seznamech, které vytvořil Dave Gandy a publikoval jej na portále www.flaticon.com a licencoval jako CC 3.0 BY. Tento symbol původně pochází z projektu Font Awesome.

    Ikony programovacíh jazyků a dalších IT nástrojů jsou většinou stahovány z projektu SVG Porn.

    Nakonec, o obrázku z favicon a hlavičky si víc můžete přečíst tady.