$ whoami· Senior PHP / Laravel Developer· Gdańsk
Paweł Malinowski
Projektuję i wdrażam systemy PHP/Laravel od architektury po produkcję.
13 lat doświadczenia w tworzeniu aplikacji webowych. Specjalizuję się w projektowaniu REST API, integracjach systemowych, automatyzacji CI/CD oraz utrzymaniu aplikacji działających na produkcji.
O mnie
Projektuję architekturę i rozwijam systemy PHP/Laravel klasy produkcyjnej.
13 lat doświadczenia w projektowaniu i rozwoju aplikacji webowych opartych o PHP i Laravel. Projektuję REST API, integruję systemy zewnętrzne i automatyzuję procesy wdrożeniowe w CI/CD. Odpowiadam za pełny cykl życia aplikacji — od architektury i implementacji po stabilną pracę na produkcji, z której korzystają tysiące użytkowników.
- w PHP i Laravel
- 13lat
- wersje Laravela w ciągłej migracji
- 9 → 13
- odpowiedzialności za architekturę i rozwój
- 8+lat
- użytkowników korzystających z systemów, które rozwijam
- Tysiące
Projekt · Nowa Era
Demo eduSensus — aplikacja komercyjna zaprojektowana i samodzielnie wdrożona na produkcję.
Aplikacja wydawnictwa Nowa Era promująca narzędzia do pracy z dziećmi o specjalnych potrzebach edukacyjnych, o rozdzielonej architekturze: warstwa contentowa w Nuxt zintegrowana z firmowym CMS oraz osobny panel operacyjny w Laravel i Filament do obsługi zgłoszeń demo — świadomy podział narzędzia do zadania, nie jeden monolit do wszystkiego. Procesy takie jak wysyłka e-maili weryfikacyjnych czy czyszczenie tokenów przechodzą przez zdarzenia i kolejki oparte o Redis, a całość monitoruję przez Sentry. Połączyłem to z systemem zgód RODO i wysyłką mailową, wdrożyłem na produkcję i odpowiadam za rozwój od 2025 roku. Aplikacja obsługuje ok. 1000 zgłoszeń miesięcznie, z sezonowymi szczytami obciążenia.
- Rola
- Architektura, wdrożenie i rozwój
- Strona
- Nuxt 4, integracja z firmowym CMS przez API
- Panel zgłoszeń
- Laravel 13, Filament 5
- Przetwarzanie w tle
- Redis + Laravel Horizon (kolejki, cache)
- Integracje
- Zarządzanie zgodami RODO, wysyłka mailowa
- Skala
- ~1000 zgłoszeń / mies., z sezonowymi szczytami
- W rozwoju od
- 2025
Doświadczenie
Od Programisty PHP do Senior PHP Developera — trzynaście lat rozwoju.
2018 — obecnie · awans IV 2026
Senior PHP Developer · Nowa Era
Odpowiadam za architekturę i rozwój systemów PHP/Laravel wykorzystywanych przez tysiące użytkowników — od yCRM po systemy treści edukacyjnej.
- Samodzielnie zaprojektowałem i wdrożyłem na produkcję Demo eduSensus — aplikację obsługującą ok. 1000 zgłoszeń miesięcznie.
- Zbudowałem od podstaw pipeline'y CI/CD w Jenkinsie, automatyzując proces wydania wykonywany wcześniej ręcznie.
- Zmigrowałem kilka projektów przez pełną ścieżkę Laravel 9 → 13.
- Rozwijam yCRM — system CRM z platformą licencjonowania obsługującą ok. 50 000 aktywowanych licencji. Kod odpowiedzialny za generowanie licencji do produktów jest zabezpieczony przy użyciu SourceGuardiana. Pracuję w 10-osobowym zespole scrumowym.
- Od 2026 uczestniczę również w pracach nad rozwojem platformy edukacyjnej dla klienta z Belgii, wykorzystującej Laravel Nova.
Laravel 13PHP 8+Filament 5JenkinsDockerScrum2017
Programista PHP · Transfer Multisort Elektronik
Rozwój funkcjonalności sklepu internetowego w zespole programistów, z wykorzystaniem Laravel i MySQL.
Laravel 5PHP 7.1MySQLREST APICacheQueue2016 — 2017
Programista PHP · Business Software Solutions
Platforma sprzedaży polis ubezpieczeniowych — integracja z dwoma systemami ubezpieczycieli oraz kalkulator i porównywarka składek, w Symfony.
Symfony 3PHP 5.6Doctrine ORMTwigMySQL2015
Programista · Nord Systems
System CRM dla biur nieruchomości: zarządzanie ofertami i klientami, wyszukiwarka oraz import danych z zewnętrznych źródeł, w Laravel.
Laravel 5PHP 5.5Eloquent ORMBladeREST APIMySQLBootstrap2014 — 2015
Programista PHP · BPM Interactive
Projektowanie i wdrażanie stron internetowych dla klientów z branży nieruchomości, w Laravel.
Laravel 4PHP 5.4BladeMySQLBootstrapjQuery2013 — 2014
Programista PHP · Tomsky Internet Marketing
Pierwsze doświadczenie zawodowe — tworzenie i rozwój wtyczek WordPress.
WordPressPHP 5.4
Projekt własny · portfolio
World Cup Explorer — publiczny system statystyk piłkarskich z własnym REST API, MCP i pełnym CI/CD.
World Cup Explorer to publiczny, produkcyjny system full-stack, który samodzielnie zaprojektowałem i utrzymuję: REST API oraz autorski serwer MCP działające nad tą samą logiką biznesową w Laravel, frontend w Nuxt/Vue z pełną wielojęzycznością, oraz własny zbiór danych FIFA World Cup 2002–2026 opublikowany jako niezależna paczka Composer. Całość wdrażam przez self-hosted pipeline CI/CD w Jenkinsie z bramką jakości w GitHub Actions i automatycznym deploymentem na VPS. W pracy nad projektem korzystam z narzędzi AI-assisted development (Claude Code), które przyspieszają implementację — decyzje architektoniczne i projektowe pozostają moje.
Architektura
- Moduły domenowe w stylu DDD
- Warstwa aplikacyjna: Query → Handler → DTO (CQRS dla odczytu)
- Zgodność z SOLID — Dependency Injection, Single Responsibility
- Bez zbędnych abstrakcji, bez repozytoriów bez realnej potrzeby
Backend
- Laravel 13, PostgreSQL, Redis
- Statyczna analiza: PHPStan / Larastan
- Obserwowalność: Prometheus + Grafana (środowisko dev, opt-in)
- Konteneryzacja: Docker
Frontend
- Nuxt 4 / Vue 3 / TypeScript (strict)
- Progressive Web App, pełna wielojęzyczność (i18n)
- Własny zbiór danych FIFA World Cup 2002–2026 (974 rekordy)
- Dane opublikowane jako niezależna paczka Composer z audytem jakości
CI / CD
- Self-hosted pipeline w Jenkinsie
- Bramka jakości przez GitHub Actions
- Publikacja do własnego rejestru Nexus
- Automatyczny deploy na VPS przez SSH
- Nginx + Traefik jako reverse proxy z routingiem produkcyjnym
MCP
MCP (Model Context Protocol) to standard pozwalający asystentom AI wywoływać funkcje aplikacji w ustrukturyzowany sposób — podobnie jak REST API, ale zaprojektowany pod interakcję z modelami językowymi, nie przeglądarką czy innym serwisem. Zbudowałem serwer MCP jako drugi adapter nad tą samą warstwą aplikacyjną, z której korzysta REST API — oba wystawiają te same przypadki użycia (Query → Handler → DTO), różnią się tylko protokołem transportu i formatem odpowiedzi. Logika biznesowa istnieje w jednym miejscu, więc dodanie nowego kanału dostępu nie wymagało duplikowania reguł ani przepisywania warstwy domenowej. Technicznie ciekawe jest to, że MCP jako protokół jest na tyle nowy, że nie ma jeszcze utrwalonych wzorców integracji z istniejącą architekturą aplikacji — trzeba było samodzielnie zdecydować, gdzie w warstwie aplikacyjnej go osadzić, żeby nie stał się kolejnym silosem logiki.
Najciekawsze elementy
Autorski serwer MCP
Nietypowy wybór dla portfolio PHP developera — eksperymentowanie z nowym protokołem integracji AI, nie tylko korzystanie z gotowych narzędzi.
Publiczne REST API
Realny, działający kontrakt — nie przykładowe endpointy w repozytorium, tylko API, które można dziś odpytać.
Własna paczka Composer z danymi
Dane FIFA World Cup 2002–2026 opublikowane jako niezależny pakiet z audytem jakości — myślenie o reużywalności, nie tylko o aplikacji.
Self-hosted CI/CD
Samodzielnie skonfigurowany pipeline w Jenkinsie z bramką jakości i własnym rejestrem Nexus — rzadkość w projektach pobocznych.
Samodzielne utrzymanie produkcji
Od architektury po monitoring i deployment, bez zespołu DevOps — pełna odpowiedzialność za cykl życia systemu.
Publiczna dokumentacja API (Swagger UI)
Interaktywna dokumentacja generowana z OpenAPI, dostępna publicznie za reverse proxy — nie plik README, tylko żywy kontrakt API do przetestowania.
Projekt komercyjny · Sektor bankowy
System awizacji gości — utrzymanie, modernizacja i integracje w środowisku enterprise.
System awizacji gości dla instytucji z sektora bankowego — rejestracja wizyt, obsługa kart dostępu oraz integracja z Active Directory i fizyczną kontrolą dostępu Lenel OnGuard. Rozwijam istniejącą architekturę produkcyjną, prowadzę ciągłą modernizację stacku PHP/Laravel oraz rozwijam integracje z systemami zewnętrznymi. Obecnie rozwijam dodatkowy kanał zdarzeniowy oparty o RabbitMQ, uzupełniający istniejącą integrację REST.
Rozwój i modernizacja
- Ciągła modernizacja stacku PHP/Laravel na działającym systemie produkcyjnym
- Aktualizacja zależności i usuwanie przestarzałego kodu
- Dostosowywanie istniejącej architektury do kolejnych wersji frameworka
- Redukcja długu technicznego bez przerywania działania systemu
Architektura
- Warstwa Repository + Service + DTO
- Observers reagujące na zdarzenia modeli
- Multi-tenancy na poziomie oddziału
- Własne reguły walidacji dokumentów tożsamości
Integracje
- Active Directory (LDAP), z trybem mock na środowiska deweloperskie
- Lenel OnGuard — REST (OpenAccess API)
- Rozwijany kanał zdarzeniowy oparty o RabbitMQ
- Import/eksport danych przez Excel
Bezpieczeństwo i zgodność
- Wymuszane wygasanie haseł
- Historia haseł (blokada ponownego użycia)
- Sesje i uprawnienia skopowane do oddziału
- Walidacja dokumentów tożsamości (PESEL/paszport)
OnGuard
Lenel OnGuard to system kontroli dostępu fizycznego klasy enterprise — aplikacja biznesowa komunikuje się z nim przez REST API, obsługując posiadaczy kart, badge'e i poziomy dostępu do stref. Rozwijam dodatkowo zdarzeniowy kanał komunikacji oparty o RabbitMQ, uzupełniający tę integrację o zdarzenia w czasie rzeczywistym. Bieżąca praca obejmuje utwardzanie obsługi błędów oraz zabezpieczenie przed duplikacją zasobów po stronie OnGuard.
Najciekawsze elementy
- Integracja z fizycznym systemem kontroli dostępu klasy enterprise
- Modernizacja długo żyjącego systemu bez przepisywania go od zera
- Rozwój istniejącej architektury przy zachowaniu działania produkcji
- Hardening integracji z systemami zewnętrznymi
- Praca w środowisku o podwyższonych wymaganiach bezpieczeństwa
Jak pracuję
Utrzymywalność, automatyzacja i dyscyplina kodu — tak pracuję na co dzień.
Stawiam na kod łatwy do zmiany, nie tylko szybki do napisania — statyczna analiza (PHPStan/Larastan) i testy są częścią codziennej pracy, nie dodatkiem przed release'em. Powtarzalne zadania automatyzuję, żeby ograniczyć ręczne kroki i ryzyko błędu. AI-assisted development (Claude Code) traktuję jako narzędzie przyspieszające implementację, nie zastępujące code review czy przemyślanych decyzji projektowych.
Umiejętności
Główny stack — używany codziennieBackend
- PHP
- Laravel
- Symfony
- Filament
Architektura i integracje
- REST API Design
- Integracje systemowe
Dane i komunikacja
- MySQL
- PostgreSQL
- Redis
- Queues & Messaging (Redis, RabbitMQ)
DevOps i jakość
- Docker
- CI/CD (Jenkins, GH Actions)
- Testing & Static Analysis (PHPUnit, PHPStan)
- Git
- Sentry
- AI-assisted development
Frontend
- Vue 3
- TypeScript / Nuxt
Kontakt
Dostępny dla projektów B2B od zaraz, otwarty na rozmowy o Full-Time.
Współprace projektowe
Od zaraz, zdalnie, dla firm z całej Polski.
Role Full-Time
Otwarty na rozmowę, zdalnie lub hybrydowo — ok. 3-miesięczny okres wypowiedzenia.
Projekty B2B — backendowe, w PHP i Laravel, z naciskiem na architekturę API — mogę rozpocząć od zaraz, w pełni zdalnie, niezależnie od lokalizacji firmy w Polsce. Pracuję głównie z Laravel, ale jestem również otwarty na projekty wykorzystujące Symfony. Trójmiasto to moja baza, nie ograniczenie.
© 2026 MSoftware.app — Paweł Malinowski · Senior PHP / Laravel Developer