Vojtěch Biberle

Životopis

Jsem vývojář a softwarový architekt. Navrhuju a modernizuju rozsáhlé backendové systémy, API a datové platformy. PHP mě pořád baví; jazyky ale dnes beru hlavně jako nástroje.

Věnuju se agentickému vývoji, orchestraci agentů a přípravě prostředí pro jejich autonomní práci. Vedle architektury řeším vývojářskou infrastrukturu a ověřování výsledků. Vlastní nástroje a experimenty jsou v projektech.

Pracovní zkušenosti

Některé spolupráce se časově překrývají.

  1. duben 2024 – dosud

    Freelance – vývojář (PHP a další jazyky)

    V Keboole se podílím na architektuře a vývoji datové platformy. V našem týmu Connection pracuju na backendu i nových funkcích UI frontendu. Přispívám také do Control Module, interního administračního rozhraní.

    Navrhl jsem a z velké části napsal v Go Metadatastore, datovou metavrstvu pro celou Keboolu. Principem připomíná dokumentovou databázi typu MongoDB, ale se striktními, validovanými schématy.

    Pracuju na Storage API, převodu legacy kódu ze Zend Frameworku do Symfony s Doctrine a modernizaci Manage API. Při integracích se Snowflake, BigQuery a Supabase jsem si prohloubil znalosti těchto platforem. Pracuju také s PostgreSQL a na Global Search nad Elasticsearch.

    Přispívám do Keboola CLI a Keboola MCP serveru. Součástí mojí práce je i migrace CI/CD z Azure Pipelines na GitHub Actions, spolehlivost E2E testů, PHPStan a automatizované kontroly stylu.

    Velký repozitář připravuju pro vývoj s pomocí AI agentů. Píšu projektová pravidla, skills a nástroje, které agentům pomáhají orientovat se v existujícím kódu, implementovat změny a dělat code review. S kolegou vyvíjíme CLI nástroje pro tyto postupy. S pomocí AI jsem také napsal API dokumentační MCP server v Pythonu.

  2. květen 2020 – dosud

    Freelance – PHP Developer & Technical Consultant

    S Devixem spolupracuju dlouhodobě a souběžně s dalšími projekty. Přes Devix nebo na jeho doporučení jsem se dostal třeba k ShipMonku a Škoda X. Několik let jsem vedl technické pohovory s PHP vývojáři. Dnes je spolupráce spíš příležitostná a zahrnuje odborné konzultace.

  3. březen 2023 – únor 2024

    Freelance – vývojář (PHP a další jazyky)

    Začínal jsem na HoppyGO, aplikaci postavené na Symfony. Vedle běžného backendového vývoje jsem se věnoval sjednocování a zlepšování architektury aplikace. Podílel jsem se i na analýze a plánu převodu HoppyGO a ŠkodaGO na Open Mobility Platform.

    Na Open Mobility Platform jsem pak začal vyvíjet v Go, mimo jiné služby pro ceny a pronájem vozidel. Nejzajímavější pro mě byla možnost učit se Go a návrh mikroslužeb od zkušených inženýrů. Pomohlo mi to osvojit si dobré postupy a vyhnout se řadě začátečnických chyb.

  4. srpen 2020 – únor 2023

    Freelance – PHP Developer

    Pracoval jsem na skladových procesech systému pro několik velkých skladů: frontách objednávek, modulu pro velkoobchod i správě uživatelů v modulu pro roboty Locus. Přišel jsem k dospělému a dobře navrženému projektu. Některé části mi zprvu připadaly složité, ale při jeho měřítku měla řada těch rozhodnutí dobrý důvod.

    Prakticky celý systém byl PHP monolit nad přibližně 1TB databází Amazon Aurora v AWS. Utvrdilo mě to v tom, že dobře napsané PHP dokáže opravdu hodně. Naučil jsem se taky mnohem důsledněji pracovat se statickou analýzou a kontrolou typů. PHPStan používám dodnes, i v agentickém vývoji.

    V týmu developer experience jsem pracoval také na OpenAPI generátoru navazujícím na existující nástroje postavené nad PHPStanem.

  5. květen 2020 – červenec 2020

    Senior Team Lead

    Vedl jsem tým PHP vývojářů na automobilové platformě. Pracoval jsem v prostředí silně provázaných mikroslužeb, které spolu často komunikovaly a závisely na rozsáhlém centrálním Elasticsearchi.

    Z mého pohledu byla architektura zbytečně komplikovaná a obtížně se v ní orientovalo. Byla to pro mě praktická zkušenost s tím, že samotné rozdělení systému na mikroslužby jeho složitost nevyřeší.

  6. září 2019 – duben 2020

    Freelancer – PHP Developer

    Ve Footshopu jsem rozvíjel skladový systém, jeden z modulů dobře navrženého e-shopu na Symfony. Řešil jsem vyhledávání a výběr zboží ze skladových lokací i komunikaci s pokladnami na prodejnách. Pracovali jsme s DDD, CI/CD a automatizovaným testováním.

    Nejzajímavější byly provozní špičky. Běžný provoz nemusel být extrémně náročný, ale před Vánocemi nebo při vydání limitovaných tenisek se to rychle změnilo. Na výkon, úzká místa a škálování jsme museli myslet dopředu. Neoptimální řešení nechcete objevit až ve chvíli, kdy všichni chtějí právě tu novou limitovanou edici.

    Symfony 4 · Doctrine · RabbitMQ · Elasticsearch

  7. prosinec 2018 – červenec 2019

    Freelancer – PHP Developer

    Pracoval jsem na systému pro automatické generování dokumentů v Nette, na automatizovaném testování v GitLab CI a návrhu serverové infrastruktury. Při údržbě a vývoji jsem se pohyboval v architektuře s několika vlastními vrstvami abstrakce mezi frameworkem a business logikou.

    Největší výzvou bylo se v systému vyznat. Utvrdilo mě to v tom, že každá další abstrakce musí mít jasný přínos — jinak přidává práci lidem, kteří budou kód dál rozvíjet.

  8. březen 2015 – listopad 2018

    BIG Ideas Center

    Freelancer – PHP Developer

    Pro Sklizeno jsem vyvíjel e-shop, B2B aplikaci a kioskové objednávky pro restauraci MyFood na Holandské v Brně. Tři aplikace měly vlastní frontendy a backendy nad společnými daty. Pracoval jsem v Zend Frameworku 2 a na migraci na verzi 3.

    Zajímavá byla integrace s WinShopem, který uměl jen přímý přístup do databáze. Do produkční databáze e-shopu jsme ho pustit nechtěli, proto jsem navrhl a vytvořil samostatnou databázovou synchronizační vrstvu. Exportovali jsme do ní data pro WinShop a přebírali informace ze skladů. Když WinShop vytvořil chybná data, neovlivnila produkční e-shop; nanejvýš se zastavila synchronizace. Díky dobře navrženým timestampům šla napravit a obnovit.

    Řešil jsem také fronty v RabbitMQ pro EET a e-maily a údržbu aplikace pro tablety s Androidem. Tady jsem zavedl Docker jako vývojové prostředí.

    Vedle projektů pro Sklizeno jsem pracoval také na tehdejším webu cestovatelského projektu Travelove.

    Zend Framework 2/3 · Doctrine · Sass · Vue.js · Riot.js · jQuery

  9. červenec 2013 – únor 2015

    Backend PHP developer

    Moje první zaměstnání na plný úvazek. Vyvíjel jsem eBRÁNA systém, dnešní eSYSTEM: původně interní aplikaci pro e-maily, úkoly, čas, rozpočty, týmy, kalendář i tvorbu webů. Později se začala prodávat i dalším firmám. Řešil jsem integrace, ukládání souborů, statický obsah a vzdálenou instalaci modulů.

    Vývojáři tehdy pracovali na sdílených discích přes SMB. Ráno git pull, večer commit a push, často i s rozdělanou prací. Zavedl jsem Vagrant a lokální stacky s databází a webserverem. Každý tak mohl mít vlastní prostředí a Git konečně dával smysl.

    Připravil jsem CI nad GitLabem, Jenkinsem a PHING i automatizované testování, spravoval linuxové servery a školil kolegy v Gitu, návrhových vzorech, SOLID a DRY. Zažil jsem také zhruba 36hodinovou obnovu havarovaného MySQL serveru s daty celé firmy; poškozené byly i zálohy, ale data se nám podařilo obnovit.

    Vedl jsem také refaktoring částí eBRÁNA systému a organizoval pravidelná Coding Dojo setkání, na kterých jsme s kolegy společně řešili programátorské problémy.

  10. listopad 2010 – září 2013

    Server administrátor · Fakulta elektrotechniky a informatiky

    Na Fakultě elektrotechniky a informatiky jsem spravoval VMware a desítky produkčních a výukových serverů s Linuxem. Hlavní část práce tvořil Moodle: příprava prostředí, provoz, zálohování a pomoc vyučujícím s tvorbou kurzů. Vytvořil jsem také skripty, které zjednodušovaly zakládání nových linuxových virtuálních serverů.

  11. říjen 2009 – leden 2010

    Výuka praktických cvičení · Fakulta elektrotechniky a informatiky

    Vedl jsem několik praktických cvičení správy webserveru Apache a tvorby stránek v HTML a CSS, včetně PHP a práce s Oracle. Příležitostně jsem pomáhal i při výuce správy linuxových systémů.

Odbornost a technologie

Agentic Engineering

Navrhuju prostředí pro autonomní práci agentů, rozdělování úkolů a orchestraci modelů. Propojuju pravidla a nástroje s automatizovanými kontrolami, nezávislým review a lidským schválením; plně autonomní propojení jednotlivých částí dál zkouším.

Software Architecture

Navrhuju backendové systémy, API, mikroslužby a datové pipeline. Řeším rozhraní mezi systémy, DDD i postupnou modernizaci legacy aplikací.

Backend Development

PHP používám od roku 2002 a pořád mě baví. Pracuju hlavně se Symfony a Doctrine, podle úkolu i s dalšími jazyky. Vedle návrhu a implementace řeším testování i postupnou modernizaci běžících aplikací.

PHP · Go · Symfony · Doctrine · Composer · RabbitMQ

Databases & Data Platforms

Pracuju s datovými sklady i provozními databázemi. Řeším integrace, datové modely, dotazování, optimalizaci a oddělení systémů tak, aby chyba jedné integrace neohrozila celou aplikaci.

Snowflake · BigQuery · PostgreSQL · MySQL / MariaDB · Amazon Aurora · Supabase · Elasticsearch

Infrastructure & Developer Tooling

Připravuju izolovaná vývojová prostředí, Git worktrees, CLI nástroje a CI/CD. Spravuju Linux a kontejnery, řeším spolehlivost E2E testů a používám statickou analýzu i code review. Výsledek potřebuju ověřit proti zadání, ne jen podle zelených kontrol.

Linux · Docker / Podman · Git · GitHub Actions · GitLab CI · PHPStan · PHPCS · ECS

Starší technologie a zkušenosti

Zkušenosti mám také s Laravel a CakePHP, JavaScriptem, HTML a CSS, jQuery, Vue.js a Vuex, Riot.js a Sass. Pro PHP jsem používal také PHING a robo.li.

Základní znalosti SQLite a Microsoft SQL Serveru; Oracle ze čtyř semestrů studia dotazování, návrhu databází a datových skladů. Pracoval jsem také s Memcache.

OOP, MVC, návrhové vzory, SOLID a DRY; také Unified Process a UML. Vedle Gitu mám zkušenost se SVN, správou GitLabu a Jenkinse, včetně síťových repozitářů a automatizovaného nasazování.

Studium

  1. říjen 2008 – září 2012

    Informační technologie · Ing.

  2. říjen 2005 – září 2008

    Informační technologie · Bc.

  3. září 2001 – červen 2004

    Informační technologie · středoškolské studium

Komunita a organizace akcí

  1. prosinec 2012 – dosud

    Vývojářská komunita a organizace akcí

    V GUG.cz se věnuju vývojářské komunitě a organizaci akcí. Začínal jsem u GDG Pardubice, později jsem se zapojil také do GDG Brno a GDG Cloud Brno. V roce 2013 jsem organizoval DevFest v Pardubicích.

  2. srpen 2010 – březen 2011

    CareerDays 2011 IT Coordinator

    Zajišťoval jsem IT infrastrukturu konference Career Days, Wi-Fi a stream panelových diskuzí. Vytvořil jsem konferenční systém pro firemní schůzky, rezervace termínů a registrace studentů i informační servis na místě.

  3. březen 2008 – červen 2011

    Local Committee President & Vice-President Incoming Exchange

    Vedl jsem pobočku a tým, plánoval činnost a kontroloval její průběh. Reprezentoval jsem AIESEC Pardubice a získával nové partnery.

Ještě něco o mně

Angličtinu používám slovem i písmem a při čtení technické dokumentace. Čeština je můj rodný jazyk.

Mám řidičské oprávnění B a vlastní auto. Jezdím také na kole a koloběžce, na kolečkových bruslích i snowboardu; občas přijde na řadu i kotouč.

Mám rád počítače, nové technologie, sci-fi a fantasy v knížkách i ve filmu. A svou ženu, dceru a psa.

Jak to vlastně začalo

Když mi bylo asi čtrnáct, pořídil táta domů první počítač, protože jej potřeboval ke své práci projektanta. Poprvé jsem se setkal se světem, kde pokud počítač udělá chybu, znamená to, že jsi ji udělal ty. Učarovalo mi to. Začal jsem jednoduchými .bat skripty, opisoval BASIC z časopisu ABC a zkoušel psát první jednoduché hry.

Pak jsem nastoupil na Integrovanou střední školu Purkyňova v Brně, kde jsem studoval informační technologie a programování. Tam mě chytlo PHP. Postavil jsem první weby, naprogramoval pár desktopových aplikací a získal první drobné zakázky pro známé a kamarády.

Od té doby se programování věnuju prakticky nepřetržitě.