diff --git a/src/content/kamil.js b/src/content/kamil.js index 0edcc48..8f18727 100644 --- a/src/content/kamil.js +++ b/src/content/kamil.js @@ -59,7 +59,7 @@ export const content_pl = [ title: "Aptiv PLC - DevOps Engineer - od 11.02.2025", description: "Utrzymuję i rozwijam pipeline'y CI/CD (Jenkins, Wind River Studio, Github Actions) wspierające systemy oparte na mikroserwisach. Automatyzuję powtarzalne zadania inżynierskie w Pythonie i Bashu, ograniczając pracę manualną i zwiększając niezawodność wdrożeń. Pracuję z konteneryzacją (Docker, Kubernetes), zarządzaniem artefaktami (JFrog) oraz migracją repozytoriów i procesów CI/CD do środowiska Enterprise (Github).", image: WorkAptivLogo, - branchBorderColor: "#000000", + branchBorderColor: "#f84019", mainBorderColor: "#0464a8", content: [ "Konserwacja & Ulepszanie pipeline'ów & job'ów CI/CD (Jenkins / Wind River Studio / Github Actions / Python / Bash / GitGerrit / Github)", @@ -69,11 +69,17 @@ export const content_pl = [ "Migracja repozytoriów Git (GitGerrit -> Github)", "Migracja procesów CI/CD do środowiska Enterprise (Wind River Studio -> Github Actions)" ], + contentGoals: [ + "Przygotowanie skryptu cron do utrzymania JFrog Artifactory & Registry (Usuwanie przestarzałych pakietów, releaseów, synchronizacja pakietów, itp.)", + "Przygotowanie pipeline'ów utrzymaniowych do czyszczenia storage'ów w Wind River Studio (Likwidacja problemów z przepełnieniem storage'u)", + "Przygotowanie skryptów opartych na regex do automatycznej zamiany zasobów we wszystkich taskach pipeline'u w pojedynczym pipeline'ie (Likwidacja problemów z right-sizingiem w Wind River Studio)", + "Przygotowanie przydatnych modułów Python (auto-instalacja pakietów podczas wykonywania skryptu, operacje git (pull z submodułami), itp.)" + ], }, { type: "mergeBranchSegment", tabs: 1, - branchBorderColor: "#000000", + branchBorderColor: "#f84019", mainBorderColor: "#0464a8", }, { @@ -97,6 +103,12 @@ export const content_pl = [ "Automatyzacja konfiguracji serwerów (Ansible / Kubespray / Bash / Python)", "Ulepszanie / konserwacja job'ów (Jenkins)", ], + contentGoals: [ + "Przygotowanie skryptów automatyzacji na Jenkinsie do utrzymania baz danych — czyszczenie, tworzenie, usuwanie baz zabezpieczonych hasłem admina (Jenkins + Bash & Python -> MariaDB & PostgreSQL)", + "Ulepszanie skryptów Ansible do auto-integracji Linuxa dla gotowego środowiska (Linux dot files + Ansible)", + "Przygotowanie manifestów Terraform dla infrastruktury jako kodu (Terraform + Azure)", + "Utrzymanie klastra Kubernetes na serwerach bare metal (Azure + Kubespray) — aktualizacja certyfikatów kubefile itp.", + ], }, { type: "mergeBranchSegment", @@ -126,6 +138,10 @@ export const content_pl = [ "Automatyzacja Analizy & Rutynowych Zadań (Bash / Python)", "Analiza Zachowania Infrastruktury & Serwisów (Kubernetes / Linux / AEM)", ], + contentGoals: [ + "Przygotowanie skryptu Python do filtrowania thread dumpów z wielu plików w celu lepszej analizy (Likwidacja problemów z analizą thread dumpów — thread dumpy grupowane i zliczane wg czasu / typów / statusów / nazw / itp. — na podstawie wielu plików thread dumpów w pojedynczym środowisku klienta)", + "Przygotowanie dashboardów Splunk do monitorowania zachowania infrastruktury i serwisów (Splunk)", + ], }, { type: "mergeBranchSegment", @@ -143,7 +159,7 @@ export const content_pl = [ type: "workSubSegment", tabs: 1, title: "Techem GmbH - DevOps Engineer - od 30.05.2023 do 30.11.2023", - description: "Projektowałem i automatyzowałem workflow CI/CD dla testów powiązanych ze sprzętem, w tym procesy regresji i walidacji urządzeń IrDA. Budowałem pipeline'y do dostarczania reużywalnych pakietów Pythona wraz z prywatną dystrybucją paczek. Automatyzowałem raportowanie testów i walidację jakości kodu, zwiększając spójność wydań i ograniczając problemy integracyjne w procesie developmentu.", + description: "Projektowałem i automatyzowałem workflow CI/CD dla testów powiązanych ze sprzętem, w tym procesy regresji i walidacji urządzeń IrDA. Budowałem pipeline'y do dostarczania reużywalnych pakietów Pythona wraz z prywatną dystrybucją paczek. Automatyzowałem raportowanie testów i walidację jakości kodu, zwiększając spójność wydań i ograniczając problemy integracyjne w procesie developmentu. Przygotowanie aplikacji frontendowej do łatwiejszej kontroli Jenkinsa przez REST backdoor.", image: WorkTechemLogo, branchBorderColor: "#f87479", mainBorderColor: "#0464a8", @@ -151,10 +167,19 @@ export const content_pl = [ "Utrzymywanie Infrastruktury mikroserwisów (Docker / Docker Compose)", "Utrzymywanie Infrastruktury serwerów (Jenkins Agent - Windows / Jenkins Master - Linux)", "Automatyzacja konfiguracji serwerów (Ansible / Bash / Powershell)", - "Automatyzacja uruchamiania testów urządzeń IrDA na środowisku CI/CD (Regresja, Merge Request, Commit) (Jenkins CI/CD / Bash / Powershell / Python - TOX)", - "Automatyzacja bodwania i kolekcjonowania reużywalnych pakietów języka python (Jenkins CI/CD / Private PyPI / Python)", + "Automatyzacja uruchamiania testów urządzeń IrDA na środowisku CI/CD (Regresja, Merge Request, Commit) (Jenkins CI/CD / Bash / Powershell / Python - TOX -> https://tox.wiki/)", + "Automatyzacja budowania i kolekcjonowania reużywalnych pakietów języka Python (Jenkins CI/CD / Private PyPI / Python)", "Automatyzacja raportowania testów (Jenkins CI/CD / Test-Result-Analyzer / Jira Xray)", - "Automatyzacja procesów walidujących kod (Pre-commit / Black Formatter / Flake8 / MyPY / etc.)" + "Automatyzacja procesów walidujących kod (Pre-commit / Black Formatter / Flake8 / MyPY / etc.)", + "Pair programming przy przygotowaniu aplikacji frontendowej (Python + pakiet Dash -> https://dash.plotly.com)" + ], + contentGoals: [ + "Przygotowanie pipeline'ów do testowania urządzeń IrDA podłączonych do grupy zdalnych serwerów Windows przez C++ SDK (Jenkins CI/CD + Jenkins Agents + Powershell & Python)", + "Przygotowanie pipeline'ów do lintowania kodu Python w testach jednostkowych i integracyjnych (Jenkins CI/CD + Python + Black Formatter / Flake8 / MyPY / etc.)", + "Przygotowanie REST backdoor w Jenkinsie (Generic Webhook Trigger) do wywoływania jobów Jenkins przez API z niestandardowej aplikacji frontendowej (Jenkins + Python)", + "Pair programming z developerem przy przygotowaniu aplikacji frontendowej (pakiet Dash -> https://dash.plotly.com) — moja część to przygotowanie modułu callbacków (Python + pakiet Dash) do integracji z REST backdoor Jenkinsa", + "Odpowiedzialność za część dostosowań UI w tej aplikacji", + "Dostarczenie w pełni przygotowanej aplikacji dla klienta Techem GmbH w 5 miesięcy pracy" ], }, { @@ -184,6 +209,12 @@ export const content_pl = [ "Ulepszanie / Utrzymywanie procesów zautomatyzowanych (Gitlab-CI)", "Automatyzacja raportowania przebiegu wdrożenia CI/CD (Gitlab-CI / SonarQube)", ], + contentGoals: [ + "Przygotowanie skryptów Ansible do auto-integracji Linuxa dla gotowego środowiska (Linux dot files + Ansible)", + "Przygotowanie klastra Kubernetes na serwerach bare metal (Hetzner + Kubespray)", + "Wdrażanie i utrzymanie manifestów definiujących bazy danych i aplikacje (Jenkins, SonarQube, Gitea, Gitlab-CI itp.) na klastrze Kubernetes (Helm / Kubectl)", + "Przygotowanie Gitlab Runner i pipeline'ów CI do testowania i budowania aplikacji embedded (Gitlab-CI / Bash / Python)", + ], }, { type: "mergeBranchSegment", @@ -257,6 +288,15 @@ export const content_pl = [ "Programowanie narzędzi MerchTech (Python / Django / Django REST Framework)", "Implementacja, konfiguracja oraz administracja baz danych do obsługi narzędzi MerchTech (Big Data) (MongoDb / Elasticsearch / MariaDb / MySQL / Redis / AWS SQS)" ], + contentGoals: [ + "Przygotowanie aplikacji mikroserwisowej do monitorowania feedów Google (integracja DataForSEO API) do śledzenia konkurencji na rynku", + "Migracja Elasticsearch z AWS na OVH na serwery bare metal hostujące Elasticsearch jako klaster węzłów (oparty na kontenerach Docker — zarządzany przez Docker Compose) w ramach reimplementacji wzorca CQRS — klaster utrzymywany przez zadania cron (sprawdzanie statusu węzłów — automatyczny restart w przypadku awarii). Remigracja przeprowadzona pomyślnie — koszty zredukowane", + "Przygotowanie monitoringu wspomnianego klastra Elasticsearch (przy użyciu Netdata) i jego utrzymanie", + "Przygotowanie aplikacji Wordpress do użytku wewnętrznego (niestandardowe oprogramowanie) — aplikacje hostowane na serwerach bare metal (Linux) i utrzymywane przez zadania cron", + "Unikanie blacklistowania IP serwerów używanych do usług SMTP (e-mail) przy użyciu konfiguracji IPv6 — rozwiązanie wyeliminowało możliwość wysyłania spamu z naszej strony", + "Przygotowanie poprawnej konfiguracji DNS i FQDN dla naszych domen (SPF / DKIM / DMARC / rekordy MX) dla lepszego dostarczania e-maili", + "Przygotowanie niestandardowych skryptów do auto-aktualizacji certyfikatów dla naszych domen (Let's Encrypt) wywoływanych przez zadania cron", + ], }, { type: "mergeBranchSegment", @@ -311,7 +351,6 @@ export const content_pl = [ title: "Zespół Szkół Elektronicznych w Rzeszowie / Technikum nr 6 - Technik Informatyk - od 2013 do 2017", image: WorkZSELogo, branchBorderColor: "#2e8cb1", - firstElement: true, noElements: true, content: [], }, @@ -325,6 +364,7 @@ export const content_pl = [ title: "DevOps", image: "", branchBorderColor: "#04009b", + mainBorderColor: null, firstElement: true, content: [], }, @@ -430,7 +470,7 @@ export const content_pl = [ "Frontend oparty na ReactJS i frameworku Gatsby", "Konteneryzacja oparta na manifestach Docker (lokalnie)", "Konteneryzacja oparta na manifestach K8S (serwery Bare Metal - Hetzner) (Ingress / Cert-Manager / Deployments / PV & PVC / etc.)", - "Praca z narzędziami AI Agents (Cursor AI / Claude)", + "Praca z narzędziami AI Agents (Cursor AI / Copilot)", ], }, { @@ -486,7 +526,6 @@ export const content_pl = [ title: "DevOps", image: "", branchBorderColor: "#04009b", - mainBorderColor: null, firstElement: true, content: [], }, @@ -650,7 +689,7 @@ export const content_pl = [ { type: "workSubSegment", tabs: 1, - title: "Monitoring", + title: "Niezawodność & Monitoring", image: "", branchBorderColor: "#000000", mainBorderColor: "#2e8cb1", @@ -676,7 +715,7 @@ export const content_pl = [ tabs: 0, title: "Konfiguracja i administracja bazami danych", image: "", //SkillsDatabasesLogo, - mainBorderColor: null, + branchBorderColor: "#1038a7", content: [], }, { @@ -718,15 +757,15 @@ export const content_pl = [ branchBorderColor: "#047900", mainBorderColor: "#1038a7", }, - { - type: "workSubSegment", - tabs: 0, - title: "Angielski - Poziom B2", - image: "", //SkillsEnglishLogo, - mainBorderColor: null, - lastElement: true, - content: [], - }, + //{ + // type: "workSubSegment", + // tabs: 0, + // title: "Angielski - Poziom B2", + // image: "", //SkillsEnglishLogo, + // mainBorderColor: null, + // lastElement: true, + // content: [], + //}, { type: "titleSegment", title: "Zainteresowania", @@ -777,8 +816,6 @@ export const content_en = [ "E-mail": "zukkamil.44@gmail.com", "Phone": "+48 570 688 112", "Git": "git.00x097.com/tbs093a", - "DevOps Blog": "blog.00x097.com/", - "Education": "Higher / Engineer", } }, { @@ -1506,15 +1543,15 @@ export const content_en = [ branchBorderColor: "#047900", mainBorderColor: "#1038a7", }, - { - type: "workSubSegment", - tabs: 0, - title: "English - B2 Level", - image: "", //SkillsEnglishLogo, - mainBorderColor: null, - lastElement: true, - content: [], - }, + //{ + // type: "workSubSegment", + // tabs: 0, + // title: "English - B2 Level", + // image: "", //SkillsEnglishLogo, + // mainBorderColor: null, + // lastElement: true, + // content: [], + //}, { type: "titleSegment", title: "Interests",