Skip to content

Instantly share code, notes, and snippets.

@eddycek
Created March 20, 2026 11:01
Show Gist options
  • Select an option

  • Save eddycek/77dc1f001abc3efa4a36ff16b0463daa to your computer and use it in GitHub Desktop.

Select an option

Save eddycek/77dc1f001abc3efa4a36ff16b0463daa to your computer and use it in GitHub Desktop.
Keboola Engineering Performance Analysis (Sep 2025 - Mar 2026)

Engineering Performance Analysis — Keboola (6 měsíců: září 2025 – březen 2026)

1. Executive Summary

Engineering organizace Keboola vykazuje vysoký celkový výstup (~5 500+ merged PRs za 6 měsíců) s výraznými rozdíly v distribuci zátěže mezi týmy i uvnitř nich. SRE tým má nejrychlejší review cyklus (medián <30 min), ale zátěž je extrémně koncentrovaná na dva členy. Review turnaround v go-monorepo a ai-chat repozitářích je řádově pomalejší (desítky hodin až dny), což vytváří bottleneck pro PSGO a AI swimlane. Počet revertů v kbc-stacks naznačuje třecí plochy v deploy procesu, nikoli systémový problém s kvalitou kódu — hotfixů je minimálně (6 za půl roku).


2. Raw Data — PRs, Reviews, Commits (6 months)

PAT Team

Jméno GitHub PRs Authored PR Reviews Commits
Honza Vaníček (Lead) janvanicek 48 23 169
Pepa Martinec pepamartinec 284 200+ 1174
Roman Braciník romanbracinik 234 162 944
Roman Pištěk romantmb 123 131 631

UI Team

Jméno GitHub PRs Authored PR Reviews Commits
Ilona Andrijašyn (Lead) ilonaandrijasyn 99 328 484
Honza Čuma natocTo 275 200+ 1189
Jakub Smagin cjayyy N/A* N/A* N/A*
Jan Havlík jhvlk-keb 25 30 191
Jozef Bíroš jbiros-keboola 69 200+ 562

* cjayyy — GitHub Search API vrací "user cannot be searched"

Connection / DMD Team

Jméno GitHub PRs Authored PR Reviews Commits
Jiří Semmler (Lead) jirkasemmler 105 200+ 778
Martin Zajíc zajca 201 200+ 1602
Martin Šifra martinsifra 44 83 158
Vojta Biberle vojtabiberle 166 256 1267

PSGO Team — Platform Services Go

Jméno GitHub PRs Authored PR Reviews Commits
Maťo Vaško (Lead) Matovidlo 202 340 769
Adam Výborný AdamVyborny 92 167 483
Jachym Tousek jachym-tousek-keboola 105 192 613
Petr Hošek hosekpeter 116 281 625
Tomáš Fejfar tomasfejfar 117 244 755

AJDA Team — Automations, Jobs, Data Apps

Jméno GitHub PRs Authored PR Reviews Commits
Miro Čillík (Lead) MiroCillik 27 109 184
Erik Žigo ErikZigo 109 153 378
Jakub Kotek Jeniczech 61 148 263
Jiří Sýkora sykora-ji 74 75 74
Odin Popelka odinuv 158 199 662
Ondřej Jodas ondrajodas 114 132 510

Component Factory

Jméno GitHub PRs Authored PR Reviews Commits
Pepa Kudera (Lead) kudj 70 99 456
Matyáš Jirát matyas-jirat-keboola 36 69 372
Soustruh Stružský soustruh 39 125 280

SRE Team

Jméno GitHub PRs Authored PR Reviews Commits
Václav Eder (Lead) eddycek 184 231 151
Martin Halamíček Halama 524 1538 2050
Michal Kozák wokoman 264 485 697
Najloš Hlaváček ondrejhlavacek 277 187 888
Tomáš Kačur kacurez 561 961 1904

3. Review Turnaround Times (by repo, sampled)

keboola/infrastructure (SRE) — Median ~25min ✅

PR# Author Reviewer Turnaround
3498 Halama kacurez ~46min
3494 Halama eddycek ~55min
3493 ondrejhlavacek kacurez ~25min
3492 ondrejhlavacek Halama ~41min
3491 ondrejhlavacek kacurez ~2min
3490 Halama eddycek ~6min
3489 wokoman Halama ~26min
3488 ondrejhlavacek eddycek ~38min
3487 Halama eddycek ~3h10min
3486 ondrejhlavacek kacurez ~2min

keboola/connection (DMD) — Median ~1h

PR# Author Reviewer Turnaround
6861 vojtabiberle zajca ~45min
6860 vojtabiberle romanbracinik ~12h
6853 vojtabiberle zajca ~2h
6852 vojtabiberle jirkasemmler ~11h
6847 vojtabiberle zajca ~24min
6845 zajca vojtabiberle ~1min
6841 vojtabiberle zajca ~26min
6838 vojtabiberle zajca ~1h16min
6825 vojtabiberle zajca ~4h
6820 cjayyy zajca ~13min

keboola/ui — Median ~17h (overnight pattern)

PR# Author Reviewer Turnaround
4836 natocTo ilonaandrijasyn ~19h
4828 cjayyy Mystypix ~14h
4827 cjayyy Mystypix ~17h
4826 cjayyy Mystypix ~13h
4825 cjayyy ilonaandrijasyn ~1h
4824 cjayyy Mystypix ~19h
4822 jbiros-keboola Jeniczech ~26h
4820 jhvlk-keb cjayyy ~5min
4818 Jeniczech cjayyy ~2h
4817 jhvlk-keb ilonaandrijasyn ~27h

keboola/go-monorepo (PSGO) — Median ~25h ⚠️

PR# Author Reviewer Turnaround
434 bot jachym-tousek-keboola ~19h
433 jachym-tousek-keboola hosekpeter ~5min
432 jachym-tousek-keboola hosekpeter ~2h24min
431 jachym-tousek-keboola Matovidlo ~1h22min
430 bot jachym-tousek-keboola ~28h
429 Matovidlo hosekpeter ~2h
428 jachym-tousek-keboola Matovidlo ~66h
427 Matovidlo jachym-tousek-keboola ~70h
426 Matovidlo hosekpeter ~25h
424 jachym-tousek-keboola Matovidlo ~64h

keboola/platform-libraries (AJDA/PAT) — Variable, 2min–120h ⚠️

PR# Author Reviewer Turnaround
475 pepamartinec sykora-ji ~2min
474 sykora-ji odinuv ~2h22min
473 pepamartinec romantmb ~94h
472 odinuv ondrajodas ~3min
471 odinuv ondrajodas ~2h14min
468 romantmb odinuv ~4h22min
467 romantmb pepamartinec ~13h
466 romantmb pepamartinec ~20h
465 odinuv ondrajodas ~120h
462 ondrajodas odinuv ~116h

keboola/sandboxes-service (AJDA) — Median ~16h

PR# Author Reviewer Turnaround
516 odinuv ErikZigo ~3h
515 odinuv natocTo ~13min
513 odinuv sykora-ji ~26h
512 odinuv ErikZigo ~39h
510 romantmb pepamartinec ~18h
509 pepamartinec odinuv ~76h
508 romantmb pepamartinec ~1h
507 odinuv ErikZigo ~16h
506 odinuv ErikZigo ~12h
505 sykora-ji odinuv ~39min

keboola/ai-chat — Median ~93h 🔴

PR# Author Reviewer Turnaround
229 davidesner mariankrotil ~21h
228 mariankrotil vita-stejskal ~260h
227 cjayyy vita-stejskal ~93h
226 mariankrotil vita-stejskal ~112h
225 mariankrotil vita-stejskal ~142h
224 mariankrotil vita-stejskal ~127h
223 jordanrburger vita-stejskal ~13h
220 dependabot cjayyy ~16h
217 cjayyy AdamVyborny ~33min
215 Matovidlo AdamVyborny ~24h

keboola/job-runner (PAT) — Median ~43h ⚠️

PR# Author Reviewer Turnaround
400 romantmb Halama ~298h
399 romantmb Halama ~27min
398 romantmb pepamartinec ~73h
396 romantmb pepamartinec ~43h
395 odinuv ondrajodas ~19h
394 pepamartinec janvanicek ~43h
392 ondrejhlavacek odinuv ~20h
391 bot MiroCillik ~23h
390 odinuv ondrejhlavacek ~3h
389 odinuv ondrejhlavacek ~53min

4. Reverts (6 months, ~33 total)

Notable revert patterns:

  • kbc-stacks has the most reverts — deployment configuration, not application code
  • "Revert of revert of revert" chains observed in kbc-stacks (deploy friction)
  • Connection had CSRF-related double revert (DMD-971)
  • AJDA had sandboxes-service reverts around AJDA-2288 refactor

Hotfixes — Only 6 in 6 months ✅

Very low hotfix count signals good production stability.


5. Silné stránky

Efektivita

  • PSGO tým má nejrovnoměrnější rozložení výstupu — všech 5 členů v rozmezí 92–202 merged PRs, žádný extrémní výkyv
  • PAT tým má dva vysoce produktivní kontributory (284 a 234 PRs), kteří táhnou platformní infrastrukturu
  • AJDA tým má 6 členů s celkovým výstupem ~543 PRs a diverzifikovaným záběrem

Týmovost

  • SRE má nejlepší review kulturu v celé organizaci — medián ~25 min, vzájemné review distribuované across celý tým
  • Connection/DMD má rychlý review cyklus (medián ~1h)
  • UI team lead vykazuje 3.3× více reviews než vlastních PRs (328 vs 99) — správný leadership pattern

Zdraví týmu

  • Nízký počet hotfixů (6 za 6 měsíců) = dobrá stabilita produkce
  • Nikdo nepushuje bez review
  • AI boty (Claude, Copilot, Devin) jsou aktivně využívány jako doplněk k lidskému review

Kvalita kódu

  • Reverty koncentrované do kbc-stacks (deploy config), nikoli do aplikačního kódu
  • AJDA konzistentně taguje PR na Linear issues — dobrá traceability
  • Component Factory má čistý pattern malých, fokusovaných PRs

6. Rizika a slabá místa

Efektivita

  • Pomalé review v go-monorepo (medián ~25h, outliers 64–70h) a platform-libraries (až 120h)
  • ai-chat repo je review bottleneck — medián 93h, worst case 260h, jeden aktivní reviewer
  • job-runner review delays — medián ~43h, one PR at 298h

Týmovost

  • Connection/DMD — silná závislost na páru zajca↔vojtabiberle, třetí člen výrazně nižší výstup
  • AJDA — jeden člen dominuje jako autor v sandboxes-service, jednosměrný review pattern
  • Cross-team review je minimální — týmy reviewují téměř výhradně uvnitř sebe

Zdraví týmu

  • SRE — extrémní koncentrace zátěže: dva členové produkují ~65% veškerého výstupu (524+561 PRs, 1538+961 reviews). I s konfigurační povahou kbc-stacks je tohle na hranici udržitelnosti.
  • Component Factory — malý tým (3 lidé) po změně vedení (16.3.2026)

Kvalita kódu

  • Revert chains v kbc-stacks — pattern "revert → revert revertu → revert revertu revertu" naznačuje nedostatečnou pre-merge validaci
  • CSRF revert chain v connection (DMD-971)

7. Doporučení

1. Zavést review SLA pro go-monorepo a platform-libraries

Cíl: první review do 4h v pracovní době. Zvážit rozšíření review pool o členy z jiných Go-znalých týmů.

2. Adresovat ai-chat review bottleneck

Jeden reviewer pro celé repo je neudržitelný. Přidat druhého stálého reviewera nebo zavést rotaci z AI swimlane.

3. Zavést canary/dry-run validaci pro kbc-stacks

Pre-merge validace (schema check + dry-run na dev stacku) by eliminovala většinu revertů.

4. Monitorovat zatížení dvou nejvytíženějších SRE členů

500+ PRs a 1000+ reviews za 6 měsíců — rozhovor o workload distribution, automatizace rutinních deploymentů.

5. Posílit Connection/DMD review triangle

Rozšířit review zapojení třetího člena. Pair programming sessions nebo code walkthrough.


8. Signály k dalšímu sledování

  • Component Factory po změně vedení — sledovat stabilizaci výstupu v příštích 4–6 týdnech
  • sykora-ji commit:PR ratio 1:1 (74:74) — neobvyklé, ověřit work pattern
  • AI bot reviews — sledovat impact na review quality
  • Cross-team knowledge sharing — aktuálně minimální, bus factor riziko
  • martinsifra v Connection/DMD — výrazně nižší výstup (44 vs 166–201 PRs), ověřit roli

Metodologie: Data z GitHub Search API (limit 200 výsledků — u 12 uživatelů překročen). Commit counts mohou zahrnovat merge commity. Issues trackované v Linear, ne GitHub. Uživatel cjayyy nedohledatelný přes GH Search API. Období: 2025-09-20 až 2026-03-20.

Generováno: 2026-03-20

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment