100+ webů · 7 firem

Backendy pro weby s miliony návštěv.

Jsem Jakub Vrba, senior PHP / Symfony developer. Přes 15 let stavím backendy pro weby s miliony návštěv — Deník.cz, Dotyk.cz, Root.cz, Lupa.cz, Euro.cz.

Přes 15 let dělám backendy webových aplikací.

Postavil jsem aplikační skeleton a Symfony bundly pro vydavatelství za 70+ regionálními mutacemi Deníku a dalšími tituly, jejichž digitální verze mají dohromady přes 2 miliony návštěv — Deník.cz, Dotyk.cz a magazínové weby běží z jedné kódové základny. K tomu klient k obsahovému API redakčního systému, cachovací vrstva s tag-based invalidací přes surrogate keys a mikroslužby kolem: newsletter, feedy, doporučování obsahu, paywall a předplatné. Docker image, GitLab CI pipeline a nasazení do Kubernetes.

Předtím jsem v Nette dělal odborné tituly v Internet Info (Root.cz, Lupa.cz, Měšec.cz, Podnikatel.cz), online portfolio Mladé fronty (Euro.cz, Finance.cz, CNEWS.cz) a portál UlovDomov.cz. Ještě dřív rozšiřující moduly pro plánovací systém Planning Wizard v Logiu: SQL nad velkými objemy prodejních dat, jiný svět než média. Šest měsíců jsem v Mladé frontě vedl vývojářský tým, pak jsem se vrátil k vývoji.

Čím se zabývám

Architektura

Refaktoring monolitů i mikroslužeb. Multi-site řešení, kde nový web přidáte konfigurací, ne kopií projektu.

PHP 8, Symfony 7, Nette, Twig

Výkon a škálování

Tag-based invalidace, profilování pomalých dotazů a cache hlavičky.

Redis, Memcached, Elasticsearch, MySQL, PostgreSQL

API a integrace

Platební brány, CRM, SSO a redakční systémy třetích stran.

REST, GraphQL, RabbitMQ

Provoz

Nasazení do Kubernetes a debugging na produkci přes logy a metriky.

Docker, Kubernetes, GitLab CI/CD, Cloudflare, Graylog, Grafana

AI workflow

Dva roky denně Claude Code a Codex, doplňkově Gemini — na rutinu a scaffolding, ne na architektonická rozhodnutí. Výstup si vždy pročtu, otestuju a stojím si za ním.

Claude Code, Codex, Gemini

Píšu se strict types a PHPStanem na max levelu, testuji v PHPUnit, Cypress a Jest, zátěž v JMeteru. Na frontendu React, TypeScript, Tailwind CSS a Vite.

100+ webů, 7 firem.

Seřazené podle toho, kde vznikly. Výběr firmy ztlumí ostatní a dá se sdílet odkazem.

  1. Vltava Labe Media, od 2022
  2. Deník.cz
  3. Dotyk.cz
  4. iGlanc.cz
  5. iReceptář.cz
  6. Kafe.cz
  7. Dům a zahrada
  8. Vlasta.cz
  9. LabRulez, 2023 - 2024
  10. LabRulez
  11. GCMS.cz
  12. LCMS.cz
  13. ICPMS.cz
  14. UlovDomov, 2021
  15. UlovDomov.cz
  16. Ideální nájemce
  17. Internet Info, 2020 - 2021
  18. Root.cz
  19. Lupa.cz
  20. Měšec.cz
  21. Podnikatel.cz
  22. Vitalia.cz
  23. Slunečnice.cz
  24. Stahuj.cz
  25. SW.cz
  26. Computerworld.cz
  27. BusinessWorld.cz
  28. CFOworld.cz
  29. ChannelWorld.cz
  30. PCWorld.cz
  31. Křišťálová Lupa
  32. SmartWorld.cz
  33. HDworld.cz
  34. Tuesday.cz
  35. Mladá fronta, 2017 - 2020
  36. EURO.cz
  37. Finance.cz
  38. CNEWS.cz
  39. Zdraví.Euro.cz
  40. MF.cz
  41. Autobible
  42. Edna.cz
  43. VideaČesky.cz
  44. CoChceš.cz
  45. Rodičov.cz
  46. NašVáh.cz
  47. Eurohub.cz
  48. Europředplatné.cz
  49. Setkání Euro
  50. Sestra roku
  51. Ples pro sestry
  52. Kongres Medical
  53. Medical Services
  54. BioBridges
  55. MůjSoubor.cz
  56. Stáhnu.cz
  57. Raketka.cz
  58. HryProDivky.cz
  59. Časopis Ortopedie
  60. Časopis Puntík
  61. Kola ekonomiky
  62. SoftGate, 2009 - 2014
  63. Mindok
  64. HPI-CZ
  65. AMHK
  66. TechniStone
  67. SoftGate
  68. ePohledávky.cz
  69. Vlastní zakázky, od 2006
  70. Cestuj s námi
  71. Ušetři na pojištění
  72. SalsaHK.cz
  73. Letiště Vrchlabí
  74. Pension 443
  75. Academy of Movement
  76. Prime Family Office
  77. Oils Milan Šváb
  78. babyClinic
  79. Zacapa Bar
  80. Pension Heřman
  81. Caparti
  82. Caparti: brány a vrata
  83. Hrasimo
  84. Materasso Matrace
  85. Svět matrací
  86. Dormeo Matrace
  87. Stanislav Petr, Benecko 199
  88. SPORT Stanislav Petr
  89. Hodinová manželka
  90. Europe Tea Company
  91. Ubytování Herlíkovice
  92. Hrnčíř, autodoprava
  93. HS-Sport
  94. JJ interiér
  95. Czeplinn.eu
  96. IE-plugins
  97. Autoškola Martin Jindřišek
  98. Obuv Oáza Trutnov
  99. Plynotop
  100. Srdcem i rozumem
  101. Eshop Naturbaby.eu
  102. Chata Barka, Benecko
  103. Apartmány U Šťastných
  104. Zelenáč
  105. Avadon: Bar & Cafe
  106. Výprodej Zeber
  107. Richtrovy boudy
  108. David Vrba, finanční poradce
  109. Apartmány 61 & Horský domov
  110. ODS Vrchlabí

Invaliduje se změněný obsah, ne celá cache.

Deník.cz a 70+ regionálních mutací běží z jedné kódové základny. Stránky v cache nesou surrogate keys, takže úprava článku smaže jen stránky, kde článek je.

Smazáno stránek
0 z 288
Na backend od akce
0
Hit ratio
100,0 %
GET web-14/ekonomika/clanek-48622/
Surrogate-Key: web-14 rubrika-ekonomika clanek-48622
Cache-Control: public, s-maxage=600
X-Cache: HIT
  • v cache
  • smazaná, čeká na požadavek
  • právě smazaná

Požadavky, které došly až na PHP backend, posledních 12 sekund

Zjednodušená simulace: 72 webů, každý se čtyřmi stránkami v cache. Najetím myši nebo klepnutím na stránku uvidíte její hlavičky. Princip odpovídá cache vrstvě, kterou jsem napsal pro Deník.cz.

Kde jsem pracoval

  1. od 2022

    Vltava Labe Media

    Senior PHP Software Developer, remote

    Postavil jsem aplikační skeleton a sadu Symfony bundlů, ze kterých běží Deník.cz, Dotyk.cz a 11 magazínů; nový web se přidává konfigurací, ne kopií projektu. Multi-site architektura pro 70+ regionálních mutací, klient k API redakčního systému, cache s tag-based invalidací a mikroslužby pro newsletter, feedy, doporučování obsahu, paywall a předplatné. Docker, GitLab CI/CD, Kubernetes.

  2. 2023 - 2024

    LabRulez

    Konzultant IT

    Platforma laboratorní informatiky: odborné články, katalog přístrojů, pracovní pozice a webináře na čtyřech oborových webech nad společným jádrem. Headless CMS Strapi s React frontendem, fulltextové vyhledávání v Elasticsearch, provoz v Kubernetes na Google Cloud, monitoring v Prometheu a Grafaně.

  3. 2021

    UlovDomov.cz

    Senior PHP Software Developer, remote

    Softwarová architektura pro rozvoj portálů ulovdomov.cz a idealninajemce.cz. Nette, inzerce, vyhledávání a párování nabídek s poptávkami, asynchronní zpracování přes RabbitMQ a GraphQL API pro frontend.

  4. 2020 - 2021

    Internet Info

    Full Stack Senior Software Developer PHP, remote

    Vývoj a údržba napříč 16 tituly vydavatele, který je na trhu od roku 1998: Root.cz, Lupa.cz, Měšec.cz, Podnikatel.cz, Vitalia.cz a další. Návrh API a architektury, datové modelování, optimalizace SQL, code review a dockerizace vývoje s CI/CD.

  5. 2017 - 2020

    Mladá fronta

    Full Stack Senior Software Developer PHP, remote

    Tým, který se staral o celé online portfolio kolem týdeníku Euro: 17 webů a tři generace kódu vedle sebe (Nette, Zend, Phalcon), API mezi tituly a interními systémy, správa Linux VPS. Od září 2019 do února 2020 jsem vedl vývojářský tým divize Online, pak jsem se vrátil k vývoji.

  6. 2015 - 2016

    Logio

    Senior PHP Software Developer

    Rozšiřující a optimalizační moduly pro plánovací systém Planning Wizard: plánování prodeje, promo akce, zásoby a distribuční síť. Návrh a optimalizace SQL nad velkými objemy prodejních dat.

  7. 2009 - 2014

    SoftGate

    Full Stack Software Developer PHP, .NET, VBA

    Firemní databázové systémy, portály, e-shopy a mobilní aplikace na míru. Souběžně jsem v letech 2009 až 2011 učil kurzy Microsoft Excel, Word, Project a Access pro firmy i veřejnost.

  8. od 2006

    Na volné noze

    Software developer

    Vlastní zakázky vedle hlavního úvazku, od návrhu po provoz: Symfony, Nette a WordPress s vlastními pluginy, integrace platebních bran, QR plateb, SMS bran a rezervačních systémů. Legacy WordPress dockerizuji tak, aby lokálně běžel na PHP 8.5 a upgrade šel vyzkoušet mimo produkci.

Ing. a Bc. v oboru Aplikovaná informatika na Univerzitě Hradec Králové.

Open source

Nástroje, které řeší věci z mé každodenní práce. Kód je veřejně na GitHubu.

Profil na GitHubu
README.md, ukázka výstupu bitv0id/sitewalk
$ sitewalk https://your-site.example

[1/14] ✓ / → 200
[2/14] ✓ /events/ → 200
[3/14] → /events/archive 301 → /events/?year=2024 (skipped) "Archive"
[4/14] ✗ /events/team.html → 404 ← /events/ "Our team"

────────────────────────────────────────────────────────────────
  Summary
────────────────────────────────────────────────────────────────
  Steps taken         14/14
  Pages OK            12
  Distinct URLs       13  6 page template(s)
  Redirects           1   reported, not followed
  Errors              1
  Links skipped       off-site 104, unsafe path 26, asset 54

  Failures
    HTTP 404 (1x)
      /events/team.html ← /events/ "Our team"

  FAILED — 1 broken link(s)

Symfony, výkon, migrace staršího systému?

Napište, co potřebujete postavit, zrychlit nebo převést na novou platformu.

jakub.vrba@hotmail.cz