O mně
Ahoj! Jmenuji se Honza (přezdívka Bedla) a jsem SW developer.
Mezi moje specializace patří JavaEE, Apache Camel, Spring Boot, Quarkus a integrace včetně designu řešení.
Umím být součástí celého vývojového cyklu, od quickscanu, nabídky, analýzy, detail designu, přes vývoj, testing, profiling a ladění, CI/CD až po release a i následný L3 support.
Dokáži pracovat v týmu i sám, agilem i waterfallem.
Hledám pouze kreativní projekty, které mi budou dávat smysl. Nehledám teplé místečko na údržbě legacy aplikací. Hledám projekty na IČO. Nehledám práci na HPP.
Jsem Apache member a ❤ Open Source.
Projekty v rámci CGI
Stream cloud processing IPTV
Byl jsem součástí agilního týmu, který vyvíjel IPTV stream processing platformu postavenou na mikroservisní architektuře v Microsoft Azure. Na projektu jsem byl v rolích Team Leadera, programátora a architekta. Aplikace využívá Apache Kafka, Azure Data Explorer, Azure Kubernetes, Quarkus, PostgreSQL, Eclipse Vert.X, SmallRye Reactive Messaging, Grafana, Azure AD. Provozní monitoring zajišťuje Eclipse Microprofile Metrics, který vystavuje Prometheus metriky pro Azure Monitor. CI/CD proces je zajištěný přes Azure DevOPS.
Stream processing pro BI a Service Assurance
Byl jsem součástí agilního týmu, který vyvíjel IPTV stream processing platformu postavenou na mikroservisní architektuře v on-prem prostředí. Na projektu jsem byl v rolích Team Leadera a programátora. Ekosystém využívá Apache Kafka, Python3, Numpy, Pandas, Kafka Connect a Debezium CDC pro akvizici, normalizaci, transformaci a agregaci dat. Výstupem jsou data v ElasticSearch, MySQL a InfluxDB. Aplikace je nasazená v on-prem pomocí Docker Compose. Build je přes Gitlab CI Pipelines. Prezentační logiku pro Service Assurance zajišťují dashboardy v Grafana. Prezentační logiku pro BI zajišťuje existující Data Warehouse, kterému aplikace poskytuje na SFTP pravidelné extrakty.
PDS
Vyvinul jsem aplikaci pro správu a distribuci firmware a balíčků CPE zařízení. Na projektu jsem provedl analýzu řešení, včetně zmapování existujícího komunikačního protokolu a následného vývoje. Aplikace je nasazena v on-prem na Payara AS a skládá se z backendu a frontendu. Backend vystavuje HTTP endpointy pro CPE a zároveň REST rozhranní pro frontend za využití Spring Boot, Apache Camel, EclipseLink, Hazelcast, MySQL NDB Cluster. Frontend vystavující uživatelské a administrátorské rozhranní jsem naprogramoval v AngularJS. Aplikaci jsem následně podle požadavků rozšířil i pro nové typy CPE s odlišným komunikačním rozhranním.
MAS
Vyvinul jsem aplikaci pro řízení video enkodéru. Aplikace slouží k přípravě a transkódování video obsahu před nasazením do VOD katalogu. Aplikace má AngularJS frontend, obsahující Shaka Player a komunikuje se Spring Boot backendem pro správu metadat o video souboru. Metadata o jednotlivých stopách a náhledy generuje Apache Camel za využití FFMpeg.
PerfTool
Vyvinul jsem pro IPTV platformu aplikaci pro reálné generování zátěže. Toto usnadnilo projekt stabilizace platformy, protože to umožnilo nasimulovat chování platformy z předchozích výpadků na izolovaném prostředí, nebo mimo televizní špičku. Aplikace pomocí grok patternů parsuje access logy a zákaznické extrakty do MongoDB. Následně spouští nad daty transformační vrstvy, které upravují jednotlivé parametry HTTP volání tak, aby byl dodržený požadovaný histogram a délka zátěže, validita volání s ohledem na zadané testovací účty. Technické řešení je pomocí Apache Camel, Spring Boot a OKHttp.
Validátor VOD obsahu
Vyvinul jsem nástroj pro automatickou validaci úplnosti nasazení VOD obsahu u IPTV operátora. Aplikace využívá Spring Boot a MySQL. Generuje report v případě, že nasazení nebylo kompletní, případně chybí některé díly seriálu. Toto ušetřilo nejméně dva dny týdně manuální kontroly, zrychlilo reakční čas a zamezilo pokutám od dodavatele obsahu.
ActiveMQ Artemis
Pro Telco operátora jsem ladil JMS Stomp broker ActiveMQ Artemis, který slouží pro vzdálené ovládání CPE. JMS Cluster jsem optimalizoval jak na úrovni konfigurace a JVM, tak na úrovni OS a TCP IP stacku. Pro stejného operátora jsem vyvinul OAuth plugin do ActiveMQ Artemis
CRM
Byl jsem součástí týmu, který pro telco operátora vyvíjel backendovou část pro Liferay CRM. Technologie Spring, Wildfly, Oracle
Billing
Byl jsem několik let součástí týmu, který pracoval na velkém transformačním projektu billingu. Navrhli jsme a vyvinuli distribuovanou integrační vrstvu mezi provisioningem a billingem, umožňující vykonávání dekompozičních pravidel nad produkty podle logických celků a pluginů na základě BPMN diagramů v Enterprise Architect. Technologie Wildfly, Apache Camel, Hibernate, Infinispan, Oracle, JavaFX, SOAP, JMS. Aplikace je nasazená ve Wildfly clusteru v doménovém módu. K této aplikaci jsme vyvinuli i několik obslužných aplikací pro správu konfigurací a trasování požadavků.
Operativní reporting
Vyvinuli jsme aplikaci pro uživatelsky přívětivé generování ad-hoc reportů, pomocí drag&drop skládání jednotlivých entit a vazeb. Aplikace je vyvinuta pomocí PHP a JQuery. Aplikační logika validuje a skládá uživatelské modely reportů a následně je dransformuje v SQL dotazy do existujícího datového skladu.
Vlastní projekty
Vyvinul jsem Android aplikaci pro evidenci EET tržeb. Aplikace používá SQLite a GreenDAO pro ukládání tržeb, SOAP pro komunikaci s API finanční správy, ACRA pro error reporting. Komunikace s tiskárnou probíhá přímou komunikací POS příkazů přes bluetooth socket. K aplikaci jsem vyvinul i Spring Boot REST API backend pro správu licencí, aktualizací a monitoring.
Od roku 2019 jsem členem Apache týmu a podílím se na rozvoji Open Source frameworku Apache Camel, který implementuje EIP (Enterprise Integration Patterns)
Vyvinul jsem a udržuji repositář Google Fonts pro NPM, který pravidelně stahuje Google Fonty s otevřenou licencí jako NPM moduly. Využívá NodeJS a Lerna.
Vyvinul jsem typescript NPM modul pro SHA-512, protože jsem potřeboval knihovnu typescript pro Unifi Reset Password kompatibilní s mkpasswd implementací.
Vyvinul jsem AngularJS aplikaci pro reset administrátorského hesla UniFi controlleru.
Pracovní zkušenosti
CGI IT Czech Republic
Analyst/programmer → System Designer → System Architect
Březen 2015 - Prosinec 2021
https://www.cgi.com/ceska-republika/cs
V CGI jsem pracoval převážně na projektech v telco sektoru, ale také ve finančním sektoru. Podílel jsem se na návrhu řešení, nabídkách, implementaci, technologickém rozvoji a L3 supportu. V CGI jsem byl v průběhu času podle potřeby v roli analytika, programátora, architekta a team leadera. V posledních letech jsem participoval i přípravám nabídek, cenových odhadů a v menší míře i business developmentu. Podílel jsem se na inovacích a adopci nových technologí.
Pracoval jsem na vývoji Android aplikace pro ČMI s JavaEE Backendem. Spolupracoval jsem na vývoji samoobsluhy pro virtuálního operátora. Zautomatizoval jsem uživatelské testy samoobsluhy, včetně automatizace SMS OTP kódů, pomoci GSM brány. Vyvíjel jsem SPA aplikace pro SMS soutěže, včetně integrace na SMS bránu. Vyvíjel jsem Perl monitorovací scripty pro Nagios a Icinga.
Vzdělání
Univerzita Hradec Králové
Aplikovaná Informatika - Ing.
2013 - 2016
Univerzita Hradec Králové
Aplikovaná Informatika - Bc.
2010 - 2013
Něco navíc
Aplikační bezpečnost
Orientuji se ve webových útocích a aplikační bezpečnosti. Ve volném čase jsem bug hunter a etický hacker.
TCP přenosy a stabilita sítě
Vím, co je TCP retransmission, SYN Flood, socket TIME_WAIT,… Nebojím se použít Wireshark a Tcpdump.
Open Source
Fandím Open Source. Když najdu chybu ve veřejném projektu, tak namísto stěžování vytvořím Pull Request.
Unit testy
Každý dělá chyby, proto je můj kód krytý unit testy.