Kto wykonuje pracę
WPPoland to jeden doświadczony programista, Mariusz Szatkowski, który zajmuje się webową i e-commerce’ową stroną oprogramowania: kodem po stronie serwera, integracjami między systemami i front-endami, które na nich stoją. Punktem wyjścia jest WordPress, z którym pracuje od 2006 roku, a stamtąd zakres rozrósł się o WooCommerce, TypeScript i Node.js, front-endy headless w Astro i Next.js oraz kod na brzegu sieci w Cloudflare Workers.
To węższa definicja niż “software developer” w ogólnym sensie, i celowo. Nie ma tu zespołu mobilnego, działu graficznego ani ławki juniorów. Rozmawiasz z osobą, która pisze kod, czyta Twój istniejący kod i za niego odpowiada.
Co buduje programista systemów web i e-commerce
Większość zleceń mieści się w pięciu rodzajach pracy. Nakładają się na siebie, bo prawdziwe systemy też się nakładają.
- Integracje między systemami. Sklep WooCommerce, który musi zgadzać się z ERP, cennikiem hurtowni, programem księgowym albo magazynem. W Polsce dochodzi do tego KSeF: faktura wystawiona po zamówieniu musi trafić do krajowego systemu, a sklep powinien wiedzieć, czy trafiła. Najtrudniejsze rzadko jest samo wywołanie API. Trudne jest ustalenie, który system jest źródłem prawdy dla stanów, cen i statusów zamówień, i co się dzieje, gdy dwa z nich nie zgadzają się o drugiej w nocy.
- Front-endy headless i na brzegu sieci. Astro albo Next.js na WordPressie lub WooCommerce, wdrażane na Cloudflare Workers albo Pages. Opłaca się, gdy model treści jest stabilny, a szybkość lub bezpieczeństwo liczą się bardziej niż wizualny edytor. Nie opłaca się dla strony wizytówki, która zmienia się dwa razy w roku.
- Inżynieria sklepu. Logika koszyka i zamówienia, integracje płatności (w polskim sklepie zwykle Przelewy24, PayU i BLIK) i dostaw, praca nad wydajnością mierzoną na danych od prawdziwych użytkowników, a nie na wyniku z laboratorium, oraz kod wtyczek, w którym mieszkają reguły biznesowe sklepu.
- Własne oprogramowanie na WordPressie. Wtyczki z prawdziwym modelem danych, zadaniami w tle, interfejsami REST i WP-CLI oraz ekranami w panelu, z których redaktor skorzysta bez instrukcji.
- Integracje AI i MCP. Połączenie strony albo sklepu z agentami AI tak, żeby domyślnie działały tylko do odczytu, były logowane i dały się cofnąć. Publiczny serwer MCP dla WooCommerce opisany niżej jest przykładem takiego podejścia.
Stack i powód, dla którego każda część w nim jest
Stack to zestaw kompromisów, a nie kolekcja odznak. Oto zestaw roboczy i uzasadnienie każdego elementu.
| Warstwa | Narzędzie | Wybierane, gdy | Niewybierane, gdy |
|---|---|---|---|
| Serwer | PHP 8 na WordPressie | System potrzebuje redaktorów, użytkowników, ekosystemu wtyczek i taniego hostingu | Obciążeniem jest długo działająca usługa bez modelu treści |
| Handel | WooCommerce | Katalog, koszyk i dane zamówień muszą zostać w Twojej własnej bazie | Ograniczenia platformy SaaS są do przyjęcia i nikt nie chce utrzymywać serwerów |
| Skrypty i usługi | TypeScript na Node.js | Procesy integracyjne, narzędzia CLI, serwery MCP, wszystko z typowanym kontraktem | Dziesięciolinijkowe zadanie, które WP-CLI już robi |
| Usługi danych | Kotlin i Spring Boot | Długotrwałe importy i rozpoznawanie tożsamości na milionach rekordów, z kolejką i typowanym modelem domenowym | Zespół klienta utrzymuje wyłącznie PHP |
| Lokalna AI | Ollama przez Spring AI | Klasyfikacja, w której dane klienta nigdy nie mogą opuścić jego infrastruktury | Zadanie, które rozwiązują już zwykłe reguły albo tabela przeglądowa |
| Front-end | Astro | Strony z dużą ilością treści, w których większość strony jest statyczna | Interfejs to gęsta aplikacja z dużą ilością stanu |
| Front-end | Next.js | Front-endy przypominające aplikacje, z dużą ilością stanu po stronie klienta | Strona to głównie dokumenty |
| Brzeg sieci | Cloudflare Workers i Pages | Cache, przekierowania, małe API i statyczne buildy blisko odwiedzającego | Zadanie wymaga połączenia z bazą otwartego przez kilka minut |
| Narzędzia | Python | Kontrole danych, analiza dokumentów, jednorazowe migracje | Cokolwiek, co zespół klienta będzie utrzymywał w PHP |
Język ma mniejsze znaczenie niż granice. Dobre oprogramowanie to takie, przy którym da się powiedzieć, który system jest właścicielem jakich danych, który kod działa gdzie i jak cofnąć wdrożenie z zeszłego wtorku.
Publiczne dowody do sprawdzenia, zanim napiszesz
Deklaracje o umiejętnościach nic nie kosztują. Poniższe da się zweryfikować bez rozmowy.
- wppoland/woocommerce-mcp: serwer Model Context Protocol dla WordPressa i WooCommerce w trybie tylko do odczytu, napisany w TypeScript, na licencji MIT. Udostępnia pięć narzędzi (produkty, pojedynczy produkt, zamówienia, raport sprzedaży i wyszukiwanie publicznych wpisów) i nic, co mogłoby zmienić sklep. Warto przyjrzeć się właśnie tej decyzji projektowej: domyślnie tylko odczyt.
- wppoland/hidden-text-detector: narzędzie w Pythonie, które wykrywa ukryty tekst i prompt injection w plikach PDF i DOCX, na przykład biały tekst na białym tle, czcionki zbyt małe do przeczytania, tekst umieszczony poza stroną i niewidoczne znaki Unicode. Powstało, bo umowy i zapytania ofertowe przychodzą dziś z instrukcjami przeznaczonymi dla czytnika AI, a nie dla człowieka.
- Plogins i profil motylanogha na wordpress.org: Plogins to pakiet 45 rozszerzeń WooCommerce w wersjach darmowej i pro, zbudowany na PHP 8.1 z PHPStan, PHPCS i automatycznymi wydaniami do wordpress.org i Freemius. 21 wtyczek w oficjalnym katalogu wymienia ten profil (stan na 26 września 2026 roku), w tym Polski, wtyczkę dostosowującą sklep do polskiego rynku (GPSR, Omnibus, RODO), i GatherPress, wtyczkę do wydarzeń społeczności.
- Ta strona. wppoland.com to build Astro 7 na Cloudflare Pages w sześciu językach, z około 13 600 prerenderowanymi stronami. Każda zmiana przechodzi przed wdrożeniem około pięćdziesięciu automatycznych kontroli jakości, od zepsutych linków i konfliktów w schema po kontrolę sitemapy, która nie przepuszcza strony przeznaczonej do indeksowania, jeśli brakuje jej we wszystkich sitemapach. Minifikację HTML przeniesiono we wrześniu 2026 roku na wątki robocze i czas spadł z 910 do 199 sekund na tych samych 13 610 plikach, przy wyniku identycznym co do bajtu.
Doświadczenie zawodowe
Dwadzieścia lat pracy przy stronach i systemach webowych, w większości wewnątrz cudzych systemów. Poniższe role są publiczne na LinkedInie; nazwy klientów w ramach tych zleceń pozostają poufne.
| Okres | Rola | Na czym polegała praca |
|---|---|---|
| Od października 2025 | Full-stack engineer (kontrakt), WP-Stars, Wiedeń | Subskrypcyjna platforma medialna i sprzedażowa: monorepo Composera opisujące całą aplikację WordPress, CI z dwiema niezależnymi bramkami wydań, przepływy subskrypcji w Stripe oraz usługa w Kotlinie i Spring Boot, która scala dane z ERP, CleverReach i dane adresowe w Mautic, z lokalnym LLM (Ollama przez Spring AI) jako ograniczonym klasyfikatorem działającym on-premise na milionach rekordów |
| Od października 2025 | Współorganizator, CMSConf, Gdynia | Konferencja o systemach zarządzania treścią, organizowana stacjonarnie w Gdyni |
| Od stycznia 2021 | Programista WordPress, WooCommerce i PHP (kontrakt), Equiqo, Berlin | Rozwiązania szyte na miarę w WordPressie, WooCommerce, HubSpot i Shopify na stacku Roots (Bedrock, Sage), praca nad wydajnością i danymi strukturalnymi |
| 2020 | Programista WordPress, Itineris, Ipswich (Wielka Brytania) | WordPress szyty na miarę na Sage i Bedrock, CircleCI, wydajność i SEO |
| Od 2019 do 2020 | Programista WordPress (freelance), what., Zurych | WordPress szyty na miarę, wydajność i dane strukturalne |
| Od 2016 do 2019 | Programista WordPress i pilot zespołu, AirHelp | Wielojęzyczność, AMP i wydajność w serwisie konsumenckim o dużym ruchu, łącznik między działami |
| Od 2007 do 2015 | Web developer i specjalista ds. marketingu internetowego, Vector Group, Gdynia | Tworzenie stron, serwisy handlowe B2B i marketing w wyszukiwarkach |
| Od 2007 | WPPoland | Marka, pod którą prowadzona jest cała niezależna działalność |
Typowe zlecenia
Prace dla klientów są objęte NDA, więc studia przypadków są zanonimizowane i mówią o tym wprost. Każde opisuje problem, podejście oraz to, co dało się zmierzyć, a czego nie.
- Wolny sklep WooCommerce sprzedawcy B2B, uratowany przez profilowanie procesu zamówienia i bazy danych zamiast dokładania wtyczki cache: odzyskanie wydajności WooCommerce.
- Niemieckojęzyczna organizacja przechodząca z TYPO3 na WordPressa bez utraty struktury adresów URL i przyzwyczajeń redaktorów: migracja z TYPO3 do WordPressa.
- Wydawca łączący swój proces redakcyjny z agentami AI przez kontrolowany serwer MCP: serwer MCP dla procesu redakcyjnego.
- Headless WooCommerce na Cloudflare przygotowany do zakupów realizowanych przez agentów: headless WooCommerce na Cloudflare.
- Pisemny plan przeniesienia strony WordPress na front-end headless, łącznie z częściami, które powinny zostać bez zmian: plan migracji do headless.
- Integracja AI w procesie tworzenia treści, z weryfikacją przez człowieka wbudowaną w każdy krok: integracja AI w operacjach treściowych.
Szczegóły konkretnych technologii opisują strony usług: WordPress developer, programista WooCommerce, programista PHP, programista Astro, Next.js developer, Cloudflare edge i tworzenie serwerów MCP.
Freelancer, agencja czy software house
Uczciwa odpowiedź zależy od wielkości problemu i od tego, co dzieje się po uruchomieniu. Jeden doświadczony programista nie zawsze jest właściwym wyborem.
| Sytuacja | Doświadczony freelancer | Agencja | Software house |
|---|---|---|---|
| Integracja albo ratowanie projektu z jasnym właścicielem po Twojej stronie | Bardzo dobre dopasowanie: jedna osoba ogarnia cały problem | Często wolniejszy start | Zwykle za ciężki |
| Nowy produkt, który potrzebuje naraz projektu graficznego, front-endu i back-endu | Tylko z Twoim własnym projektantem | Bardzo dobre dopasowanie | Bardzo dobre dopasowanie |
| Sześciu lub więcej programistów potrzebnych w ciągu miesiąca | Nie pasuje | Możliwe | Bardzo dobre dopasowanie |
| Długoterminowe utrzymanie systemu na WordPressie lub WooCommerce | Bardzo dobre dopasowanie, z pisemnym planem ciągłości | Bardzo dobre dopasowanie | Rzadko ich specjalność |
| Aplikacja mobilna | Tutaj nie pasuje | Zależy od agencji | Bardzo dobre dopasowanie |
| Chcesz rozmawiać z osobą, która napisała kod | Zawsze | Czasami | Rzadko |
W Polsce współpraca z freelancerem to zwykle umowa B2B, więc warunki ciągłości da się wpisać wprost do umowy. Prawdziwym ryzykiem przy freelancerze jest właśnie ciągłość: choroba, urlop albo dzień, w którym przestaje odpowiadać. Poproś, żeby było to załatwione na piśmie. Tutaj oznacza to kod w Twoim repozytorium od pierwszego commita, dokumentację obok kodu, dostępy w Twoich rękach i procedurę przekazania, według której inny programista mógłby przejąć pracę.
Jak ocenić dowolnego programistę
Kogokolwiek zatrudnisz, te pytania oddzielają ludzi, którzy dowożą, od tych, którzy dobrze się prezentują.
- Gdzie jest kod? Powinien być w Twoim repozytorium, w Twojej organizacji, od pierwszego dnia. Programista, który trzyma kod do czasu opłacenia faktury, trzyma go jako zakładnika.
- Jak zmiana jest testowana, zanim trafi na produkcję? Szukaj środowiska stagingowego, automatycznych kontroli i konkretnej osoby, która zatwierdza wdrożenia. “Testuję na żywej stronie” to sygnał ostrzegawczy.
- Jak cofnąć wdrożenie? Pytaj o ścieżkę wycofania, nie o ścieżkę wdrożenia. Wdrożyć potrafi każdy; przećwiczony powrót ma znacznie mniej osób.
- Co zmierzono przed rozpoczęciem pracy? Deklaracje o wydajności, liczbie błędów i konwersji nic nie znaczą bez punktu odniesienia zmierzonego w ten sam sposób.
- Czego nie zrobisz? Programista bez określonych granic albo o nich nie pomyślał, albo odkryje je za Twoje pieniądze.
- Czy mogę przeczytać coś, co napisałeś? Publiczny kod, artykuł techniczny albo dokument projektowy. Styl widać szybko: czy autor nazywa kompromisy, czy wymienia same korzyści.
Praca na cudzym kodzie
Większość zleceń zaczyna się wewnątrz istniejącego systemu, a nie w pustym repozytorium. Pierwszy tydzień to czytanie, nie przepisywanie.
- Najpierw mapa, potem zmiany. Które wtyczki i usługi zawierają logikę biznesową, jakie zadania cron i webhooki działają, jakie dane żyją poza bazą (pliki, cache, panele zewnętrznych usług, na przykład operatora płatności czy firmy kurierskiej). Mapa trafia do repozytorium jako krótki dokument.
- Odtworzenie problemu na kopii. Kopia na stagingu z danymi zbliżonymi do produkcyjnych, zanonimizowanymi tam, gdzie są dane klientów, żeby poprawkę dało się udowodnić przed wdrożeniem.
- Zostawić to, co działa. Przepisanie od zera to najdroższy sposób naprawy systemu i najłatwiejszy do polecenia. Kod brzydki, ale poprawny i pokryty testem zostaje; kod błędny jest wymieniany małymi krokami, które da się przejrzeć.
- Zostawić go czytelniejszym. Każda zmiana przychodzi z kontekstem, którego potrzebowałaby obca osoba: dlaczego ją wprowadzono, co zmierzono i jak ją cofnąć.
Ta sama zasada działa w drugą stronę. Jeśli później pracę przejmie inny programista, powinien móc kontynuować na podstawie dokumentacji w repozytorium, bez dzwonienia do kogokolwiek.
Bezpieczeństwo i dane, które przekazujesz
Programista z dostępem do Twoich serwerów i baz danych to realne ryzyko, więc zasady postępowania ustala się na piśmie, zanim dostęp zostanie przyznany.
- Dostępy zostają Twoje. Konta tworzy się imiennie w Twoich systemach i odbiera po zakończeniu współpracy; żadnych wspólnych haseł administratora wysyłanych mailem.
- Dane produkcyjne kopiuje się tylko wtedy, gdy to konieczne, przechowuje zaszyfrowane na komputerze programisty, anonimizuje na potrzeby stagingu, jeśli zawierają dane osobowe, i usuwa po zakończeniu prac. W rozumieniu RODO to przetwarzanie danych, więc umowa powierzenia przetwarzania danych jest częścią dokumentacji, a nie dodatkiem na koniec.
- Zmiany na produkcji są identyfikowalne. Każde wdrożenie odpowiada commitowi, a każdy commit ma swój powód.
- Przychodzące dokumenty są sprawdzane. Umowy i zapytania ofertowe są skanowane pod kątem ukrytego tekstu i prompt injection, zanim ktokolwiek, człowiek czy AI, na ich podstawie zacznie działać. Do tego służy wspomniany wyżej hidden-text-detector.
Jak przebiega współpraca
Proces jest spisany, żeby nikt nie musiał go pamiętać.
- Brief na piśmie. System, problem, termin, istniejące repozytoria i hosting oraz to, kto podejmuje decyzje po Twojej stronie.
- Zakres z założeniami. Co jest w zakresie, co jest wyłączone i co musi być prawdą, żeby wycena się utrzymała. Projekt graficzny, makiety i treści dostarcza klient, co jest wprost zapisane.
- Punkt odniesienia. Dostępy, kopia na stagingu i pomiary przed jakąkolwiek zmianą, żeby “lepiej” miało przypisaną liczbę.
- Cotygodniowe iteracje. Commity do przejrzenia, co tydzień prezentacja na stagingu i decyzje zapisane w repozytorium, a nie w wątku na czacie.
- Wdrożenie i przekazanie. Przećwiczone wycofanie, dokumentacja i, jeśli dalej prowadzą to Twoi programiści, spotkanie przekazujące z osobą, która napisała kod.
Warunki płatności są częścią pisemnego zakresu, z konkretnymi datami zamiast “po zakończeniu”. Praca rusza po zaksięgowaniu uzgodnionej zaliczki.
Czego nie ma w ofercie
Jasne granice oszczędzają obu stronom miesiąc.
- Projektowanie graficzne, makiety i projektowanie UX. Układ dostarcza klient, często jako prosty arkusz przypisujący elementy do poszczególnych widoków. Zadaniem jest wdrożenie go w działający, responsywny interfejs.
- Natywne aplikacje mobilne. iOS i Android to osobna dziedzina i lepiej obsłuży je specjalista.
- Wsparcie 24/7. Monitoring i szybka reakcja w godzinach pracy, tak; dyżur o trzeciej w nocy, nie.
- Udawanie zespołu. Jedna osoba to jeden kalendarz. Duże równoległe obciążenia to zadanie dla agencji albo software house’u.
Gdzie powstaje praca
Gdynia, na polskim wybrzeżu Bałtyku, w czasie środkowoeuropejskim (CET). Klienci są głównie z Polski, Niemiec, Austrii, Szwajcarii, Skandynawii i reszty UE, a praca jest zdalna, z cotygodniowymi prezentacjami. Poza pracą dla klientów Mariusz od 2024 roku jest członkiem zespołu organizacyjnego WordCamp Europe na ścieżce budżetowej, przy edycji 2025 w Bazylei i edycji 2026 w Krakowie, a w Gdyni współorganizuje CMSConf.
Jeśli Twój problem to system webowy albo e-commerce, który ma działać niezawodnie i być zrozumiały dla następnej osoby, która do niego zajrzy, opisz go na piśmie. Odpowiedź z pytaniami albo pierwszym zakresem przychodzi zwykle w ciągu jednego dnia roboczego. Więcej informacji znajdziesz na stronie o mnie.






