Kontakt
- E-mail: halo@kodzitsu.pl
- Telefon: +48 691 940 577
- LinkedIn: www.linkedin.com/in/maciej-kwiatkowski-kodzitsu
- Miejscowość: tylko praca zdalna/hybrydowa (Pabianice/Łódź)
Linki
- Aktualne CV online: cv.kodzitsu.pl
- Profil na GitHub: github.com/roomcays
Maciej Kwiatkowski
Programista PHP/FullStack
Od ponad 20 lat programuję w PHP (od wersji 4), JavaScript (+Vue), HTML, CSS, MySQL, MongoDB, Bash. W pracy często używam AI jako agenta kodowania (Anthropic Claude Code i inne). Świetnie czuję się w pracy z Git. Mam doświadczenie w pisaniu tzw. demonów, odpowiadających za wykonywanie zadań w tle. Używam Dockera jako środowiska deweloperskiego. Obecnie pracuję na systemie Linux (desktop i serwer) oraz MacOS.
Doświadczenie zawodowe
Praca na stanowisku: Software Engineer
- KTL: Keep the lights on. Wraz z kilkuosobowym międzynarodowym zespołem podtrzymuję przy życiu platformę RingGo. Pracuję z wieloletnim kodem legacy.
- Naprawiam zgłoszone błędy, biorę udział w rozwijaniu nowych funkcjonalności, dzięki czemu użytkownicy mają lepsze doświadczenia z platformą obsługującą płatności za parkowanie w Wielkiej Brytanii.
- Pracuję w metodologii Scrum z dwutygodniowymi sprintami, praktykując zadaniową organizację pracy i kontrybuując do ciągłego dostarczania zmian do produktu.
- Z zaangażowaniem używam Claude Code i Copilot do pomocy w rozwiązywaniu problemów, diagnostyce, bug trackingu, jak i jako narzędzie pomocy w organizacji pracy. Codziennie poszerzam moje kompetencje w zakresie AI, zarówno poprzez samodzielną naukę, jak i udział w szkoleniach.
- Biorę aktywny udział w spotkaniach zespołu, dzielę się moimi odkryciami, osiągnięciami, co wzbogaca mój zespół w różnorodne doświadczenia.
- Uczęszczam na szkolenia w zakresie bezpieczeństwa i cyberbezpieczeństwa oraz podejmuję wideo-szkolenia z dziedzin innych niż programowanie (np. Dev Ops), co przekłada się na większą świadomość moich działań i większą paletę umiejętności.
Obejmowałem stanowiska takie jak: Senior PHP Developer, Frontend Developer, Team Leader, System Administrator, Product Manager.
- Pracowałem przy przynajmniej 50 projektach o różnej skali, zarówno małych, jak i dużych, m.in. dla klientów takich jak koncern Stellantis (Fiat, Jeep, Alfa Romeo, Citroën, Peugeot, Opel, DS) oraz Yamaha Motor Poland, co pozwoliło mi zdobyć doświadczenie w pracy z wymagającym biznesem.
- Kierowałem zespołem programistów – organizowałem i nadzorowałem zadania, dobierałem odpowiednie technologie i narzędzia, dzięki czemu praca nad projektem przebiegała w sposób zorganizowany, a projekty były oparte na sprawdzonych, acz nowych technologiach.
- Pełniłem funkcję łącznika między zespołem technicznym a biznesem, dzięki czemu rozwinąłem swoje kompetencje miękkie, takie jak zrozumienie, cierpliwość i asertywność.
- Współpracowałem z firmami zewnętrznymi w zakresie integracji systemów. Ustalałem standardy komunikacji i protokoły wymiany danych, zapewniając inter-aplikacyjny przepływ danych.
- Wprowadzałem narzędzia do monitorowania poprawności działania aplikacji i serwisów, dzięki czemu problemy z działaniem były zauważane i usuwane szybko i elastycznie.
- Jednocześnie aktywnie programowałem – głównie w PHP, SQL, JavaScript (w tym Vue), Bash, nieco mniej w HTML, CSS – realizując zadania backendowe, frontendowe i automatyzujące.
- Tworzyłem demony PHP odpowiedzialne za asynchroniczne przetwarzanie danych, m.in. rozwiązanie odciążające PostgreSQL przez transkodowanie danych do MongoDB, co znacznie poprawiło wydajność aplikacji końcowych.
- Na zlecenie biznesu projektowałem i rozwijałem narzędzia do agregacji danych i raportowania, np. aplikację generującą raporty leadów (online oraz pliki XLSX z automatyczną wysyłką e-mailową), dostarczając dealerom i kierownictwu narzędzi niezbędnych do obsługi klientów oraz mierzenia efektywności kampanii reklamowych w internecie.
- Budowałem i wdrażałem środowiska Docker, zarówno dla zespołów deweloperskich, jak i dla publicznie dostępnych usług self-hosted (uruchomiłem m.in. wewnątrzfirmowe instancje aplikacji: YouTrack, GitLab i Sentry), co usprawniało współpracę w zespole oraz pomagało organizować i ujednolicić pracę programistów.
- Decydowałem o wprowadzeniu nowych technologii (Docker, MongoDB) czy frameworków (Slim Framework) do użycia w projektach, samemu aktywnie sprawdzając ich użyteczność, co przełożyło się na rozwój programistów z zespołu i stosowanie nowych rozwiązań w tworzonych aplikacjach.
- Wprowadzałem narzędzia do statycznej analizy kodu (PHPStan, Psalm, PHP Code Sniffer) i integrowałem je GitLab (CI/CD), co znacząco podniosło jakość kodu i bezpieczeństwo tworzonych aplikacji.
- Wykonywałem refaktoryzację kodu z użyciem Rectora – wzmacniałem typowanie, porządkowałem strukturę projektów i nadawałem im bardziej obiektowy charakter, co ułatwiało dalszy rozwój aplikacji.
- Administrowałem serwerami Linux (Gentoo/Arch/Debian), automatyzowałem zadania za pomocą Bash i systematycznie rozwijałem się w kierunku DevOps, maksymalizując niezależność zespołu od administratorów zewnętrznych.
- Agitowałem na rzecz minimalizacji długu technicznego, nierzadko realizowałem to zadanie, łącząc je z typowymi zadaniami programistycznymi, dzięki czemu aplikacje były dostępniejsze dla nowych programistów i łatwiejsze w utrzymaniu.
- Uczestniczyłem w procesach rekrutacyjnych firmy: projektowałem zadania do rozwiązania, rozmawiałem z kandydatami, wprowadzałem stażystów, czuwałem nad nowymi pracownikami, desygnując ich progresywnie do zadań, w efekcie czego aktualny zespół jest dobrze zgrany i o wysokich kompetencjach.
Obejmuję na stanowiskach: konsultant IT, programista
- Zarządzam lokalną, firmową siecią komputerową (komputery Windows, drukarki, skanery, routery sieciowe), oprogramowaniem.
- Administruję serwerem pocztowym.
- Stworzyłem koncepcję i zrealizowałem wewnętrzny, webowy program do rejestracji czasu pracy oraz formularz dla nowych klientów.
- Maluję, wiercę, wieszam obrazy, skręcam meble, montuję oświetlenie... :)
Jednoosobowa działalność gospodarcza, aktualnie w zawieszeniu.
Osiągnięcia
Utrzymywałem bardzo wiekowy produkt legacy z licznymi zależnościami i niejasnościami. Dochodziłem przyczyn nieprawidłowego zachowania w wielomodułowej aplikacji zarówno z pomocą AI, jak i bez niej.
Zoptymalizowałem wydajność aplikacji końcowych, projektując i wdrażając aplikację-demona w PHP, który zmniejsza obciążenie serwera PostgreSQL poprzez okresową synchronizację wybranych danych do dedykowanych kolekcji w bazie MongoDB, umożliwiając ich szybki odczyt.
Stworzyłem aplikację w PHP i Bash do pół-automatycznej agregacji danych leadów z wielu źródeł oraz ich raportowania, zarówno w formie interaktywnego panelu online, jak i cyklicznych raportów XLSX wysyłanych e-mailem.
Byłem głównym projektantem technicznym (backendowym) krytycznego ekosystemu aplikacji do prezentacji i sprzedaży online samochodów przez dealerów.
Zainicjowałem i wdrożyłem w firmie narzędzia kolaboracji: GitLab, YouTrack oraz Mattermost.
Umiejętności
- Samodzielność
- Analityczne myślenie
- Rozwiązywanie problemów
- Efektywna komunikacja z zespołem i klientem
- Umiejętność organizowania pracy i priorytetyzowania zadań
- Elastyczność
- Asertywność
- Ciekawość
- Cierpliwość
- Zrozumienie
- PHP
- Slim Framework
- AI Coding Agents
- WebSocket
- SQL
- MySQL/MariaDB
- PostgreSQL
- SQLite
- MongoDB
- JavaScript
- Vue.js
- CSS, SCSS
- HTML
- API
- RESTful API
- CI/CD workflow
- Git
- Docker, Podman
- Linux
- Gentoo
- Arch Linux
- GitLab
- YouTrack
- PhpStorm
- SSH
Języki
- Angielski: B2
- Polski: język ojczysty
Szkolenia i kursy
10.2024
PHPCon 2024 (+warsztaty)
PHPCon Poland to najstarsza i najbardziej unikalna konferencja dla programistów i entuzjastów
języka PHP w Polsce
Wykształcenie
- Informatyka w zarządzaniu, Uniwersytet Łódzki, 2005-2008 (nieukończone)
- Informatyka i telekomunikacja, Politechnika Łódzka, 2000-2003 (nieukończone)
Zainteresowania i pasje
Psychologia głębi, filozofia egzystencjalna, Linux & Open Source, fantastyka (Ursula K. Le Guin).