Znalosti

Praxe

Domény, na kterých jsem pracoval

  • E-shopy
  • Marketplace
  • Multistore
  • Sklady a logistika
  • Multi-tenant SaaS
  • Rezervace
  • HR

Backend

Vedle PHP chci pro specifické úlohy využívat:

  • Laravel
  • Python
  • FastAPI
  • Go
  • Java

Dříve používané

Frontend

  • Next.js 16+
  • React
  • TypeScript 7
  • TanStack
  • Tailwind CSS
  • Technické SEO

Vedle Next.js chci využívat:

  • React Native

Dříve používané

  • Bootstrap
  • Materialize
  • Twig
  • Smarty
  • Latte
  • jQuery

Data a integrace

  • PostgreSQL
  • Redis
  • RabbitMQ
  • Elasticsearch
  • MongoDB
  • SQLite
  • Mercure

Dříve používané

  • MySQL
  • MariaDB

Testování a kvalita kódu

  • PHPUnit 13
  • PHPStan Max
  • PHPStan Strict Rules
  • CodeSniffer
  • Slevomat Coding Standard
  • ECS
  • Deptrac
  • Playwright
  • Chrome DevTools MCP

Bezpečnost

Aplikační bezpečnost

  • SQL Injection
  • XSS
  • CSRF
  • UUID
  • Validace vstupů
  • Bezpečná práce s hesly
  • Rate limiting

Identity a přístup

  • OAuth 2.0
  • OIDC
  • JWT
  • RBAC

Webová a transportní bezpečnost

  • CSP
  • HTTPS / TLS
  • Let’s Encrypt

E-mailová infrastruktura

  • SPF
  • DKIM
  • DMARC

Principy vývoje

  • SOLID
  • KISS
  • DRY
  • YAGNI
  • PSR
  • Clean Architecture
  • DDD
  • Hexagonal Architecture
  • Dependency Injection
  • Design Patterns

Dříve používané

  • Controller → Facade → Service

AI a nástroje

AI-assisted development

  • ChatGPT
  • Codex
  • Claude
  • OpenCode
  • Ollama
  • Kimi
  • Cursor
  • Vlastní skills
  • MCP
  • Návrh agentních workflow

Vývojové nástroje

  • PhpStorm
  • DataGrip
  • Postman
  • Elasticvue
  • RedisInsight
  • CopyQ

Dříve používané

  • Visual Studio Code
  • Adminer
  • phpMyAdmin

Vývoj a nasazení

Hlavní zkušenosti

  • Linux
  • tmux
  • Docker
  • Traefik
  • nginx
  • Git
  • Git Worktrees
  • Composer
  • Make
  • SSH
  • PuTTY
  • FileZilla
  • CI/CD
  • Správa domén a DNS
  • E-mailová doručitelnost

Build a frontendové prostředí

  • Turborepo
  • npm
  • Yarn

Týmová spolupráce

  • Jira
  • Slack
  • Microsoft Teams
  • Azure DevOps

Dříve používané

  • Windows
  • WSL
  • Apache
  • .htaccess
  • XAMPP
  • WAMP
  • SVN
  • Trello
  • WinSCP
  • Total Commander

CMS a redakční systémy

  • Vlastní řešení na míru

Dříve používané

  • PHP-Fusion
  • phpBB
  • WordPress
  • Joomla
  • PrestaShop

Ostatní

Dříve používané

  • AMX Mod X
  • Pawn
  • SourceMod
  • SourcePawn

Zkušenosti

Zkušenosti s PHP

PHP je můj hlavní pracovní jazyk. Od roku 2007 v něm vyvíjím a dlouhodobě rozvíjím e-shopy, interní systémy, API a integrační služby.

  • PHP 5 → PHP 8.5+
  • Nette
  • Symfony
  • E-commerce
  • API a integrace

Stručně z praxe

Dnes: PHP 8 a Symfony

Moderní backendy, API a integrace s důrazem na udržitelnou architekturu, testování a statickou analýzu.

Amiatex v PHP 7

Spoluvytváření vlastního multistore e-commerce řešení pro více obchodů, domény, jazyky, měny a marketplace integrace.

Nette ve Sportisimu

Týmový vývoj interního systému pro zaměstnance prodejen a pohyb zboží na PDA čtečkách.

PHP 5 a vlastní řešení

Začal jsem soutěžní stránkou, vlastními weby a aplikacemi bez frameworku. Postupně jsem začal využívat knihovny a balíčky pro opakující se úlohy.

Otevřít celou zkušenost s PHP

Zkušenosti

Zkušenosti se Symfony

Symfony je můj hlavní PHP framework. Stavím na něm současné backendy, API a integrační služby, které se dají bezpečně a dlouhodobě rozvíjet.

  • Symfony 8.1
  • Symfony Console
  • Doctrine
  • Profiler
  • REST API

Stručně z praxe

Dnes: hlavní PHP framework

Symfony používám pro současné backendy, API a integrační služby s důrazem na dlouhodobou udržitelnost.

Vlastní API platforma

Při stavbě API platformy jsem už neváhal a zvolil Symfony jako přirozený základ celého řešení.

Komponenty v samostatných projektech

Symfony Console, Doctrine a další knihovny jsem začal postupně využívat i mimo PrestaShop.

Začátek v PrestaShopu

Právě PrestaShop mi dal každodenní zkušenost s nástroji Symfony ekosystému a jejich praktickým použitím.

Otevřít celou zkušenost se Symfony

Zkušenosti

Zkušenosti s Nette

Nette bylo důležitou součástí mého profesního vývoje: od prvních projektů s Dibi a Tracy přes klientské aplikace až po každodenní vývoj ve Sportisimu.

  • Nette
  • Dibi
  • Tracy
  • Latte
  • PHP

Stručně z praxe

Dnes: preference Symfony

Pro nové PHP projekty dnes volím Symfony kvůli jeho širšímu ekosystému a větší mezinárodní komunitě.

Nette jako základ práce ve Sportisimu

Ve Sportisimu bylo Nette základem aplikace i mé každodenní práce na e-commerce řešení.

Klientské aplikace

S Nette jsem se setkával při vývoji a údržbě klientských aplikací, kde jsem poznával jeho konvence v praxi.

Dibi a Tracy ve vlastních projektech

Ještě před větším zapojením do Nette jsem pro vlastní projekty používal jeho známé nástroje pro práci s databází a ladění.

Otevřít celou zkušenost s Nette

Způsob práce

Architektura aplikací

Architekturu nevolím podle názvu vzoru, ale podle složitosti problému. Cílem jsou čitelné hranice, bezpečné změny a řešení přiměřené velikosti aplikace.

  • Clean Architecture
  • DDD
  • Hexagonal Architecture
  • Dependency Injection
  • SOLID

Jak o architektuře přemýšlím

Hranice UI, Application, Domain a Infrastructure

U složitějších částí odděluji vstupy, use cases, obchodní pravidla a technické detaily, aby změna neprotékala celým systémem.

Porty a adaptéry pro vnější svět

Aplikační logika závisí na vlastním rozhraní; databáze, fronta nebo externí API jsou jeho konkrétní adaptéry.

Transakce u use case

Transakční hranici držím tam, kde aplikace provádí jednu související obchodní operaci, ne náhodně uvnitř infrastrukturního detailu.

Pragmatičnost před dogmatem

Když složitost neospravedlňuje více vrstev, zůstávám u jednoduššího Controller → Service → Doctrine řešení.

Otevřít celý detail architektury

Zkušenosti

API a integrace

API integraci nevnímám jako několik endpointů. Je to spolehlivý tok dat mezi systémy — od obchodního požadavku přes chybové stavy až po dohledatelnost provozu.

  • REST API
  • OpenAPI / Swagger
  • Marketplace
  • Import a export
  • RabbitMQ

Stručně z praxe

Celý datový tok, ne jen endpoint

Při návrhu řeším obchodní význam dat, odpovědnosti systémů, selhání i možnost zpětného dohledání každého kroku.

E-commerce a marketplace integrace

Objednávky, sklady, produkty a napojení externích prodejních kanálů potřebují konzistentní a opakovatelné zpracování.

Odolnost vůči chybám

Pracuji se stránkováním, rate limitingem, idempotencí, retry mechanismy a srozumitelnými chybovými stavy.

Kontrakt a provoz

REST a OpenAPI doplňuji o autentizaci externích API, logování a monitoring neúspěšných synchronizací.

Otevřít celý detail API a integrací

Zkušenosti

Testování a kvalita kódu

Kvalitu kódu neberu jako poslední krok před odevzdáním. Testy, statická analýza a architektonické kontroly mi dávají rychlou zpětnou vazbu už během vývoje.

  • PHPUnit 13
  • PHPStan Max
  • PHPStan Strict Rules
  • ECS
  • Deptrac

Stručně z praxe

Unit testy pro pravidla a hraniční stavy

Používám je tam, kde chci rychle a izolovaně ověřit doménovou logiku, value objects nebo rozhodování aplikace.

Integrační testy na skutečných hranicích

Doplňují unit testy tam, kde záleží na spolupráci s databází, Redisem, frontou nebo HTTP vrstvou.

Statická a architektonická kontrola

PHPStan, coding standards a Deptrac chrání typy, čitelnost i zamýšlené hranice mezi částmi aplikace.

Kontroly odpovídající změně

Před mergem nebo nasazením má projít sada relevantní pro konkrétní změnu — nejde o bezmyšlenkovité spouštění všeho.

Otevřít celý detail testování a kvality

Zkušenosti

Databáze a datový návrh

Databázi nevnímám jen jako úložiště aplikace. Dobře navržené schéma, integrita dat a předvídatelné dotazy jsou základem stabilního systému.

  • PostgreSQL
  • Doctrine
  • MySQL
  • MariaDB
  • SQLite

Stručně z praxe

Relační návrh a integrita dat

Vztahy, constrainty a transakce řeším přímo v návrhu, aby aplikace nestála jen na předpokladech v kódu.

PostgreSQL dnes, MySQL a MariaDB dříve

Aktuálně nejčastěji používám PostgreSQL; zkušenost s MySQL a MariaDB mi pomáhá lépe vnímat praktické rozdíly databázových platforem.

ORM i cílené SQL

Doctrine používám tam, kde zjednodušuje práci s modelem. Pro specifické nebo výkonnostně citlivé dotazy volím přímočařejší SQL.

Výkon a velké objemy dat

Řeším indexy, N+1 dotazy, stránkování, dávkové zpracování a migrace tak, aby aplikace zůstala čitelná i provozně zvládnutelná.

Otevřít celý detail databází

Doménová expertiza

E-commerce a marketplace

E-commerce není jen katalog a košík. Dlouhodobě rozvíjím řešení, kde se potkávají produkty, ceny, sklady, objednávky, více prodejních kanálů a každodenní provoz.

  • E-shopy
  • Marketplace
  • Multistore
  • Sklady a logistika
  • Integrace

Zkušenost z praxe

Produkty, varianty, ceny a měny

Katalog musí unést různé varianty, pravidla cen i více měn a přitom zůstat srozumitelný pro administraci i prodejní kanály.

Sklady, rezervace a dostupnost

Dostupnost není jen číslo u produktu: promítá se do rezervací, objednávek, výdeje i synchronizace s dalšími systémy.

Multistore a marketplace

Jedna administrace může obsluhovat více obchodů, domén, jazyků, měn a externích marketplace kanálů.

Dlouhodobý provoz

Řešení musí umět pracovat i s vratkami, reklamacemi, párováním externích stavů a chybami, které se projeví až v provozu.

Otevřít celý detail e-commerce

Způsob práce

AI-assisted development

AI mi urychluje průzkum, návrh i dobře vymezenou implementaci. Odpovědnost za zadání, architekturu, bezpečnost a výsledek ale zůstává vždy na mně.

  • Vlastní skills
  • MCP
  • Agentní workflow
  • PHPStan
  • CI

Jak s AI pracuji

Kontext před generováním

Agent dostává cíl, hranice změny, pravidla projektu, existující konvence a konkrétní způsob ověření.

Práce rozdělená na ověřitelné kroky

Nechávám odděleně prozkoumat problém, navrhnout postup, implementovat dílčí část a nakonec ověřit výsledek.

Vlastní instrukce, skills a MCP

Opakované postupy a bezpečné napojení na nástroje popisuji explicitně, aby byl výsledek konzistentní a dohledatelný.

Review a automatické kontroly

Generovaný kód čtu, porovnávám se zadáním a ověřuji testy, PHPStanem, standardy i CI — AI výsledek nepřebírám naslepo.

Otevřít celý detail AI-assisted development

Zavolejte mi

Zavolám vám následující pracovní den mezi 9:00 a 17:00.

Můžete mi také zavolat rovnou.

+420 605 181 728

Nechte mi telefonní číslo a pošlete žádost o zpětné zavolání.

Odesláním souhlasíte se zpracováním údajů pro vyřízení žádosti.