GET http://backend/.json

HeadlessWebsiteController :: indexAction

Request

GET Parameters

None

POST Parameters

None

Uploaded Files

None

Request Attributes

Key Value
_cacheLifetime
86400
_controller
"sulu_headless.controller.website::indexAction"
_fos_rest_zone
false
_route
"sulu_route.route_id_1"
_route_params
[
  "object" => Sulu\Page\Domain\Model\PageDimensionContent {#1108
    #id: ? int
    #page: Sulu\Page\Domain\Model\Page {#1577 …}
    #title: "Portfolio"
    #navigationContexts: Doctrine\Common\Collections\ArrayCollection {#1505 …}
    #created: DateTimeImmutable @1787502367 {#1294
      date: 2026-08-23 16:26:07.0 UTC (+00:00)
    }
    #changed: DateTimeImmutable @1787601070 {#1291
      date: 2026-08-24 19:51:10.0 UTC (+00:00)
    }
    #creator: null
    #changer: Proxies\__CG__\Sulu\Bundle\SecurityBundle\Entity\User {#1539 …}
    -author: null
    -authored: DateTimeImmutable @1787502366 {#1306
      date: 2026-08-23 16:26:06.0 UTC (+00:00)
    }
    -lastModified: null
    #locale: "pl"
    #ghostLocale: "pl"
    #availableLocales: [
      "pl"
      "en"
    ]
    #stage: "live"
    -isMerged: true
    -version: 0
    -excerptData: []
    -excerptCategories: Doctrine\Common\Collections\ArrayCollection {#2793 …}
    -excerptTags: Doctrine\Common\Collections\ArrayCollection {#2863 …}
    -excerptAudienceTargetGroups: Doctrine\Common\Collections\ArrayCollection {#2868 …}
    -excerptSegment: null
    -route: Sulu\Route\Domain\Model\Route {#828
      -id: 1
      -webspace: "portfolio"
      -locale: "pl"
      -slug: "/"
      -parentRoute: null
      -resourceKey: "pages"
      -resourceId: "01a02f71-900c-7e93-839e-3c620a9cd6cd"
      -resourceIdCallable: null
    }
    -seoData: []
    -seoNoIndex: false
    -seoNoFollow: false
    -seoHideInSitemap: false
    #shadowLocale: null
    #shadowLocales: null
    -templateKey: "homepage"
    -templateData: [
      "title" => "Portfolio"
      "cvFile" => null
      "heroLead" => "<p>Inżynier Full-Stack z zapleczem naukowym.</p>"
      "heroName" => "Mateusz"
      "aboutText" => "<p>Łączę ponad 5-letnie doświadczenie komercyjne jako Full-Stack Engineer z silnym fundamentem naukowym (<i>mgr inż. kierunku Informatyczne Systemy Automatyki</i>, Politechnika Wrocławska). W projektach komercyjnych specjalizuję się w budowie dedykowanych systemów backendowych i skalowalnego e-commerce (Czysta architektura, DDD), odpowiadając za pełen cykl tworzenia oprogramowania – od frontendu, przez infrastrukturę, aż po szeroki kontekst biznesowy.</p><p>&nbsp;</p><p>Równolegle z pracą komercyjną projektuję rozwiązania MarTech oparte na AI oraz prowadzę badania naukowe z zakresu obliczeniowych modeli kognitywnych, identyfikacji systemów, uczenia maszynowego. W każdym z tych obszarów napędza mnie inżynierski pragmatyzm i rygor techniczny.</p>"
      "stackItems" => [
        [
          "_id" => "7cfa7c55"
          "name" => "PHP"
          "type" => "item"
          "group" => "backend"
          "category" => "Backend"
        ]
        [
          "_id" => "5c32d348"
          "name" => "Laravel"
          "type" => "item"
          "group" => "backend"
          "category" => "Backend"
        ]
        [
          "_id" => "494de8bf"
          "name" => "Symfony"
          "type" => "item"
          "group" => "backend"
          "category" => "Backend"
        ]
        [
          "_id" => "83007899"
          "name" => "Python"
          "type" => "item"
          "group" => "backend"
          "category" => "Backend"
        ]
        [
          "_id" => "6402a5af"
          "name" => "Django"
          "type" => "item"
          "group" => "backend"
          "category" => "Backend"
        ]
        [
          "_id" => "1adc0f95"
          "name" => "FastAPI"
          "type" => "item"
          "group" => "backend"
          "category" => "Backend"
        ]
        [
          "_id" => "c490c6d8"
          "name" => "JavaScript / TypeScript"
          "type" => "item"
          "group" => "frontend"
          "category" => "Frontend"
        ]
        [
          "_id" => "e79cbaa4"
          "name" => "React"
          "type" => "item"
          "group" => "frontend"
          "category" => "Frontend"
        ]
        [
          "_id" => "24aceb73"
          "name" => "Next.js"
          "type" => "item"
          "group" => "frontend"
          "category" => "Frontend"
        ]
        [
          "_id" => "284b3f70"
          "name" => "TailwindCSS"
          "type" => "item"
          "group" => "frontend"
          "category" => "Frontend"
        ]
        [
          "_id" => "8cc4f842"
          "name" => "Docker"
          "type" => "item"
          "group" => "infra"
          "category" => "Infra"
        ]
        [
          "_id" => "83924a1b"
          "name" => "Linux"
          "type" => "item"
          "group" => "infra"
          "category" => "Infra"
        ]
        [
          "_id" => "9b32e88b"
          "name" => "MongoDB"
          "type" => "item"
          "group" => "infra"
          "category" => "Infra"
        ]
        [
          "_id" => "688f7f17"
          "name" => "MySQL"
          "type" => "item"
          "group" => "infra"
          "category" => "Infra"
        ]
        [
          "_id" => "01be565f"
          "name" => "PostgreSQL"
          "type" => "item"
          "group" => "infra"
          "category" => "Infra"
        ]
        [
          "_id" => "6399931c"
          "name" => "Python"
          "type" => "item"
          "group" => "ai"
          "category" => "ML"
        ]
        [
          "_id" => "f2452081"
          "name" => "Vector Databases"
          "type" => "item"
          "group" => "ai"
          "category" => "ML"
        ]
        [
          "_id" => "e646a26f"
          "name" => "PyTorch"
          "type" => "item"
          "group" => "ai"
          "category" => "ML"
        ]
        [
          "_id" => "11375cc5"
          "name" => "Redis"
          "type" => "item"
          "group" => "infra"
          "category" => "Infra"
        ]
        [
          "_id" => "4df16a37"
          "name" => "Git"
          "type" => "item"
          "group" => "infra"
          "category" => "Infra"
        ]
        [
          "_id" => "e6510141"
          "name" => "RAG"
          "type" => "item"
          "group" => "ai"
          "category" => "AI"
        ]
      ]
      "contactLead" => "Szukasz software engineera do zespołu lub projektu? Napisz."
      "heroSocials" => [
        [
          "_id" => "827184e9"
          "url" => "https://www.linkedin.com/in/mateusz-zolisz-37092420b/"
          "type" => "social"
          "label" => "LinkedIn"
        ]
        [
          "_id" => "7fdcf108"
          "url" => "https://github.com/Zomat"
          "type" => "social"
          "label" => "GitHub"
        ]
        [
          "_id" => "55df8d3e"
          "url" => "https://www.instagram.com/mateuszolisz/"
          "type" => "social"
          "label" => "Instagram"
        ]
      ]
      "contactEmail" => "mateusz.zolisz@gmail.com"
      "heroPortrait" => [
        "id" => null
        "displayOption" => null
      ]
      "projectItems" => [
        [
          "_id" => "0c391ea5"
          "slug" => "ecommerce"
          "tech" => "Sylius · Next.js · PHP · Python · Django · Docker · Architektura Heksagonalna · Domain Driven Design · Behat"
          "type" => "project"
          "group" => "Komercyjne"
          "title" => "System E-commerce"
          "ctaLabel" => "W fazie przedprodukcyjnej..."
          "description" => "E-commerce dla sieci escape roomów."
          "fullDescription" => "<p>Platforma e-commerce w architekturze headless dla sieci escape roomów do sprzedaży voucherów prezentowych oraz przedmiotów fizycznych.</p><p>Backend oparto na silniku Sylius / Symfony (API Platform), a aplikację kliencką (storefront) wdrożono w Next.js. Całość zintegrowano z zewnętrznym systemem zarządzania klienta w Django oraz napisano do niego dedykowany moduł do obsługi voucherów.</p><p>Kluczowe elementy systemu:&nbsp;</p><ul><li data-list-item-id="e4943db86109e58371985b6ac6e32be95"><strong>Dedykowany system voucherów</strong>: Obsługa elektronicznych i fizycznych kart podarunkowych (przypisanych do konkretnego pokoju, wartościowych oraz pakietów premium z dodatkowymi gadżetami). Automatyczne generowanie plików PDF gotowych do druku, opcja realizacji online lub stacjonarnie oraz pełne śledzenie historii cen zgodnie z dyrektywą Omnibus.</li><li data-list-item-id="ecd2188b6f38b509284bb477f4fd6f849">&nbsp;<strong>Architektura integracyjna (Multi-service)</strong>: Synchroniczna i asynchroniczna (Symfony Messenger / Redis) komunikacja z systemem rezerwacji, usługą logistyczną Furgonetka oraz operatorem płatności Przelewy24. Dla zapewnienia niezawodności przy awariach zewnętrznych API wdrożono mechanizmy retry/backoff oraz dead-letter queues (DLQ).&nbsp;</li><li data-list-item-id="e4f0cb373e04cab912523500b714d7e60"><strong>Headless Checkout</strong>: Dedykowane API wystawiające dla Next.js logikę koszyka, promocji katalogowych, wyliczania czasu i kosztów dostawy, a także komunikatów prawnych (szacowany czas doręczenia, najniższa cena z ostatnich 30 dni). Obsługa ścieżki zakupowej zarówno dla gości, jak i zarejestrowanych użytkowników.&nbsp;</li><li data-list-item-id="e231a9e1f2e0a25d3a2e06406841df25b"><strong>Rozbudowane narzędzia administracyjne</strong>: Znaczne rozszerzenie panelu admina w Syliusie o niestandardową konfigurację produktów i voucherów, logikę zarządzania cenami, dedykowane przepływy (workflows) realizacji zamówień oraz mechanizmy anonimizacji danych klientów zgodnie z RODO.</li></ul>"
        ]
        [
          "_id" => "808e50a3"
          "url" => "https://jezykidlakazdego.pl"
          "slug" => "jdk"
          "tech" => "PHP · Laravel · Livewire · Alpine.js · Builder.io"
          "type" => "project"
          "group" => "Komercyjne"
          "title" => "JezykiDlaKazdego.pl"
          "ctaLabel" => "Strona produkcyjna"
          "description" => "Sklep internetowy do sprzedaży kursów i lekcji online"
          "fullDescription" => "<p>Aplikacja webowa zbudowana jako sklep internetowy sprzedający materiały do nauki języków: kursy wideo, e-booki i lekcje cyfrowe.&nbsp;</p><p>Kluczowe funkcjonalności:&nbsp;</p><ul><li data-list-item-id="e64bcde496627f231ccb0bcb0217aef11"><strong>Sklep i checkout</strong> — katalog produktów, koszyk, integracja płatności (Przelewy24), generowanie faktur PDF</li><li data-list-item-id="ecc7b53183bc518dd41db713ea1433258"><strong>Zaawansowany system promocji oraz lejków sprzedażowych </strong>— oferty dla konkretnych klientów, integracja z quizami, promocje ograniczone czasowo</li><li data-list-item-id="ed130afc47b11ee759efe25a398f30e91"><strong>Panel klienta</strong> — dostęp do zakupionych produktów (kursy, e-booki, lekcje), historia zamówień, pobieranie plików i faktur, materiały wideo (integracja z Vimeo)</li><li data-list-item-id="eeceb19438742fd779e8df9fd195bd469"><strong>Panel administracyjny </strong>— zarządzanie produktami, klientami, zamówieniami, blogiem i zdjęciami produktów&nbsp;</li><li data-list-item-id="ef05ea84fbe58b0a6ac5f95d153bdd2c0"><strong>Integracja</strong> <strong>z Builder.io&nbsp;</strong> — klientka może samodzielnie edytować oraz tworzyć podstrony marketingowe</li><li class="ck-list-marker-bold" data-list-item-id="e250bc5aaffee863bd650909232533cf0"><strong>Blog&nbsp;</strong></li><li data-list-item-id="e0986869deea8651e8963367a613f4ef8"><strong>Uwierzytelnianie i zarządzanie kontem</strong> przez Laravel Jetstream/Fortify</li></ul>"
        ]
        [
          "_id" => "8e939609"
          "slug" => "crm"
          "tech" => "PHP · Laravel · Livewire · Czysta Architektura · Domain Driven Design · Behat · PHPUnit"
          "type" => "project"
          "group" => "Komercyjne"
          "title" => "System zarządzania kadrami i rozliczeniami dla firm budowlanych"
          "ctaLabel" => "Wewnętrzne narzędzie firmy"
          "description" => "Aplikacja webowa w wspierająca firmy budowlane w zarządzaniu pracownikami, projektami i rozliczeniami wynagrodzeń. System obsługuje pełny cykl pracy brygad budowlanych — od ewidencji dniówek po generowanie raportów płacowych."
          "fullDescription" => "<p><strong>Kluczowe funkcjonalności:</strong></p><ul><li data-list-item-id="e6fc9009a2b1ddaed66c9ad2edac6fe6f"><strong>Zarządzanie personelem i strukturą firm:</strong> Kompleksowa obsługa kartotek pracowniczych, definiowanie stawek (godzinowych i dniówkowych), zarządzanie statusami zatrudnienia oraz przypisywanie pracowników do konkretnych podmiotów i projektów.</li><li data-list-item-id="e3386ef7a22561ac5e3ea9b53379b745f"><strong>Ewidencja czasu pracy:</strong> Rejestracja obecności i przepracowanych dniówek oraz obsługa list brygadzistów, rozszerzona o możliwość dodawania dokumentacji fotograficznej.</li><li data-list-item-id="eff022d505861167842a6458d83d1e46a"><strong>Rozliczenia finansowe:</strong> Automatyzacja kalkulacji wynagrodzeń, uwzględniająca elastyczne zarządzanie zaliczkami oraz potrąceniami pracowniczymi.</li><li data-list-item-id="e78a8686c88b8a45e3d15ab50ef61a955"><strong>Zaawansowane raportowanie:</strong> Automatyczne generowanie miesięcznych podsumowań projektowych i zestawień czasu pracy z bezproblemowym eksportem do formatów PDF i Excel.</li><li data-list-item-id="e45819e8ca07dcd636e4a50ea7bf5e99c"><strong>Monitoring i audyt:</strong> Rozbudowany dziennik zdarzeń (event log) śledzący kluczowe operacje i ogólną aktywność użytkowników w systemie.</li></ul><p><strong>Architektura i stos technologiczny:</strong></p><ul><li data-list-item-id="e17fdcd8b4d1bf63ea341717dd3bd9d41"><strong>Backend:</strong> PHP 8 / Laravel 9, oparty na architekturze modularnej, która zapewnia ścisły podział na niezależne konteksty biznesowe.</li><li data-list-item-id="ea6a87d02383368e530f8f7fe973618ee"><strong>Frontend:</strong> Laravel Livewire połączony z Tailwind CSS – dostarczanie dynamicznych i reaktywnych interfejsów użytkownika (UI) bez narzutu technologicznego pełnych aplikacji SPA.</li><li data-list-item-id="ec385557ff9cbdb8b30c15c0df4e65ae7"><strong>Wzorce projektowe:</strong> Zastosowanie architektury heksagonalnej oraz taktycznego podejścia Domain-Driven Design (DDD).</li><li data-list-item-id="e48c770712524f69ca7a71fb4fb46eb66"><strong>Przetwarzanie danych:</strong> Zaawansowane generowanie dokumentów PDF i arkuszy Excel, a także automatyczny eksport danych do masowych przelewów bankowych zgodnie ze standardem SEPA.</li><li data-list-item-id="e47968e02120a2485a96c838ad501bc66"><strong>Zapewnienie jakości (QA):</strong> Kompleksowe testowanie aplikacji z wykorzystaniem PHPUnit (testy jednostkowe) oraz frameworka Behat (testy behawioralne/BDD).</li></ul>"
        ]
        [
          "_id" => "65640215"
          "slug" => "iccci2026"
          "tech" => "Python"
          "type" => "project"
          "group" => "Nauka"
          "title" => "When Interpretable Parameters Fail to Explain: Evidence from the Rescorla-Wagner Model"
          "ctaLabel" => "W druku"
          "description" => "Współautor publikacji naukowej na ICCCI 2026 | Politechnika Wrocławska"
          "fullDescription" => "<p>Interpretowalne parametry w modelach uczenia ze wzmocnieniem (RL) są powszechnie używane do mechanistycznego wyjaśniania ludzkich zachowań. W artykule udowadniamy, że ta praktyka może zawodzić nawet w przypadku minimalnego agenta Rescorla-Wagner.&nbsp;</p><p><strong>Kluczowe tezy i wyniki:</strong></p><ul><li data-list-item-id="e1022283fb2332acad95f4b5a5f0b771a">Anizotropowa geometria wiarygodności: Wykazaliśmy, że diametralnie różne kombinacje tempa uczenia oraz stochastyczności wyboru mogą równie dobrze dopasowywać się do tych samych sekwencji (w zadaniu Probabilistic Learning Task) przy estymacji największej wiarygodności (MLE).&nbsp;</li><li data-list-item-id="e1611e3077e533d790616fd97f765151d">Zniekształcenia estymacji: Zjawisko to prowadzi do ustrukturyzowanych błędów, rozkładów scaled vector error (SVE) o grubych ogonach, uderzeń w granice (boundary hits) oraz nakładania się na siebie odzyskanych dystrybucji parametrów z różnych reżimów. Diagnostyka siatkowa dodatkowo pokazuje, że jakość odzyskiwania parametrów silnie waha się w obrębie generującej przestrzeni parametrów.</li><li data-list-item-id="e6b4f2aa1b0622a030c2be65f32465baf">Autorski workflow diagnostyczny: Aby uwidocznić powyższe ograniczenia, zaproponowaliśmy przepływ pracy, który łączy analizę geometrii wiarygodności, diagnostykę błędów brzegowych oraz siatkową weryfikację odzyskiwania parametrów (grid-based parameter recovery).&nbsp;</li><li data-list-item-id="e30bd313c32c7246f0c033cfef33fa07b">Wartość praktyczna: Nasze rozwiązanie dostarcza procedury pozwalającej ocenić, kiedy dopasowane parametry są wystarczająco silnie ograniczone przez dane, aby opierać na nich wiarygodne wyjaśnienia oparte na parametrach, a kiedy takie twierdzenia powinny zostać opatrzone odpowiednimi zastrzeżeniami.</li></ul>"
        ]
        [
          "_id" => "03cf8b65"
          "slug" => "magisterka"
          "tech" => "Python · SciPy · NumPy ·  emcee · metody Monte Carlo · statystyka bayesowska · modelowanie matematyczne · optymalizacja numeryczna"
          "type" => "project"
          "group" => "Nauka"
          "title" => "Identyfikowalność i wyjaśnialność modeli uczenia z nagród i kar na przykładzie Iowa Gambling Task"
          "description" => "Współczesne systemy sztucznej inteligencji, choć skuteczne, często działają jako „czarne skrzynki”. W branżach regulowanych (medycyna, finanse) kluczowe jest stosowanie modeli, które nie tylko przewidują, ale też wyjaśniają mechanizm podejmowania decyzji."
          "fullDescription" => "<p>W ramach tego projektu przeprowadziłem <strong>kompleksowy audyt stabilności i wiarygodności wiodących modeli uczenia ze wzmocnieniem (RL)</strong> symulujących zachowania decyzyjne. Zaprojektowałem autorską architekturę o znacznie wyższej odporności na szum oraz stworzyłem rygorystyczny, uniwersalny potok diagnostyczny, który matematycznie weryfikuje, kiedy i w jakim stopniu można zaufać wyjaśnieniom generowanym przez algorytmy AI.</p><p>&nbsp;</p><h2><strong>Główne osiągnięcia i wkład inżynieryjny</strong></h2><ul><li data-list-item-id="ee1b8049f263e225dafa2d0ecee8da1f7"><strong>Zaprojektowanie odpornej architektury RL (podwojenie stabilności modelu):</strong> Opracowałem i przetestowałem autorski model uczenia ze wzmocnieniem, który łączy asymetryczną ocenę ryzyka (Teorię Perspektywy) z dynamicznym śledzeniem niepewności (mechanizm inspirowany Filtrem Kalmana). Nowa architektura pozwoliła na <strong>podwojenie stabilności estymacji parametrów (wzrost z ~38% w modelach referencyjnych do aż 76,2% całej przestrzeni roboczej)</strong>, co drastycznie zwiększa rzetelność generowanych wyjaśnień.</li><li data-list-item-id="eba28ac907dcb285a0f12cdf38a1f45c9"><strong>Budowa potoku symulacyjnego (stress-testing na poziomie 50k+ prób):</strong> Zaprojektowałem i wdrożyłem wielopoziomowy potok walidacyjny oparty na wielowymiarowym próbkowaniu przestrzeni (Latin Hypercube Sampling) oraz metodach bootstrapowych. Dzięki temu zdemaskowałem krytyczne wady powszechnie stosowanej estymacji punktowej (MLE) i udowodniłem, że standardowe metryki raportujące błędy (oparte na macierzy Hessego) wykazują skrajną nadpewność (<i>overconfidence</i>), co w realnych wdrożeniach grozi podejmowaniem błędnych decyzji na podstawie losowego szumu.</li><li data-list-item-id="e1a5b1a5d27348692ac603e12ad808286"><strong>Wdrożenie bayesowskiego audytu modeli (przełamywanie ograniczeń optymalizatorów):</strong> Zastąpiłem klasyczną, punktową optymalizację gradientową probabilistycznym próbkowaniem bayesowskim przy użyciu metod Monte Carlo (MCMC). Stworzyłem framework, który potrafi <strong>wydobyć czysty sygnał informacyjny z bardzo zaszumionych sekwencji danych w 96% przypadków</strong>, w których tradycyjne algorytmy gradientowe poddawały się i błędnie klasyfikowały parametry jako całkowicie nieodzyskiwalne.</li><li data-list-item-id="e378a8031d3feb4d1fc9f146a0a011ace"><strong>Odkrycie dysocjacji diagnostycznej (wiarygodna klasyfikacja mimo szumu):</strong> Opracowałem metodologię mapowania globalnej przestrzeni zachowań systemów decyzyjnych (PSP) i nałożyłem ją na rozkłady błędów estymacji. Udowodniłem, że <strong>wysokopoziomowa klasyfikacja strategii i segmentacja użytkowników pozostaje w pełni stabilna i bezpieczna</strong>, nawet gdy szczegółowe parametry ilościowe na najniższym poziomie są obarczone silnym szumem numerycznym. Pozwala to na bezpieczne wdrażanie systemów kategoryzacji o bardzo wysokim stopniu pewności.</li><li data-list-item-id="ed47fec424b84a14cc2be60d7a4bcc060"><strong>Mitygacja ryzyka błędu systematycznego w personalizacji modeli:</strong> Przeprowadziłem rygorystyczną analizę wpływu metod hierarchicznego dociągania parametrów do średniej (<i>shrinkage</i>). Wykazałem, że popularne techniki uśredniające maskują unikalne, atypowe zachowania (np. anomalie czy rzadkie patologie), sztucznie dociągając je do "normy". Sformułowałem rygorystyczny postulat stress-testowania modeli na "czystych danych" (flat priors) w celu ochrony systemów AI przed błędami algorytmicznymi i niezamierzoną dyskryminacją unikalnych profili.</li></ul>"
        ]
        [
          "_id" => "a06f3075"
          "slug" => "influencer-marketing"
          "tech" => "Python  · FastAPI  · Qdrant  · Next.js  · Docker  · LLM"
          "type" => "project"
          "group" => "Prywatne"
          "title" => "Platforma influencer marketingu"
          "ctaLabel" => "W trakcie budowy"
          "description" => "Startup na wczesnym etapie, łączący marki z twórcami internetowymi. Automatyczna wycena współpracy, dopasowanie influencerów do kampanii i klasyfikacja profili — oparte o modele ML zamiast ręcznej pracy analityków. "
          "fullDescription" => "<p>Projektuję i rozwijam warstwę ML/AI jako rdzeń produktu — główne źródło wartości biznesowej, nie dodatek do aplikacji.</p><p><strong>Obszary ML/AI, nad którymi pracuję:</strong></p><ul><li data-list-item-id="eb00d5d8d1a41e8b6d2bc96c4e7068a9a"><strong>Silnik wyceny</strong> — model estymujący widełki cenowe współpracy na podstawie danych rynkowych i profilu twórcy, łączący kilka niezależnych sygnałów w jeden wynik z komunikowaną niepewnością (przedział, nie pojedyncza liczba)</li><li data-list-item-id="e3a9bca5e1fcc90cb52f8b2b9f4dbdec9"><strong>Scoring i klasyfikacja profili</strong> — wielosygnałowa, interpretowalna klasyfikacja typu konta i kategorii tematycznej; świadomy wybór modelu, który da się wyjaśnić, zamiast czarnej skrzynki</li><li data-list-item-id="ea56c4358836b06d2c57edde75fcd2c6d"><strong>Dopasowanie marka↔twórca</strong> — ocena zgodności profilu z briefem kampanii wspierana modelem językowym, z ustrukturyzowanym promptowaniem i walidacją odpowiedzi</li><li data-list-item-id="eda9fec80f3d8eda3dfb44d0512ca103a"><strong>Wyszukiwanie semantyczne</strong> — indeksowanie profili w bazie wektorowej pod kątem podobieństwa tematycznego, uzupełniające klasyczne filtry</li><li data-list-item-id="ec9609021c47189f67013433dba61dad6"><strong>Optymalizacja doboru kampanii</strong> — algorytm dobierający zestaw twórców maksymalizujący efekt kampanii w ramach zadanego budżetu</li></ul><p><strong>Praktyki inżynierii ML, na których mi zależy:</strong></p><ul><li data-list-item-id="e5371af5e3de108ef6366cdd3891be127">Wersjonowanie logiki decyzyjnej — żeby dało się odtworzyć historyczny wynik i bezpiecznie testować nowe podejścia obok sprawdzonych</li><li data-list-item-id="e78b094ed4fea67c91b844607325c5607">Testy charakteryzujące dla logiki obliczeniowej — bezpieczny refaktor i strojenie modeli bez ręcznej regresji</li><li data-list-item-id="e29af8067f390e9935d67e399e4eb350f">Czyste rozdzielenie reguł domenowych od infrastruktury — modele testowalne w izolacji</li></ul><p>&nbsp;</p>"
        ]
      ]
      "contactCvLabel" => null
      "contactHeading" => "Porozmawiajmy"
      "heroCtaCvLabel" => "CV"
      "heroNameAccent" => "Zolisz"
      "footerCopyright" => "© 2026 Mateusz Zolisz"
      "aboutResearchTags" => [
        [
          "_id" => "7ce829e4"
          "type" => "tag"
          "label" => "Uczenie Maszynowe"
        ]
        [
          "_id" => "5e1338af"
          "type" => "tag"
          "label" => "Identyfikacja Systemów"
        ]
        [
          "_id" => "8675528c"
          "type" => "tag"
          "label" => "Teoria Sterowania"
        ]
        [
          "_id" => "a47ab6de"
          "type" => "tag"
          "label" => "Statystyka"
        ]
        [
          "_id" => "0e620052"
          "type" => "tag"
          "label" => "Sztuczna Inteligencja"
        ]
      ]
      "aboutResearchText" => "<p>Jako entuzjasta uczenia maszynowego interesuję się modelowaniem procesów kognitywnych, systemami uczącymi się i automatyką. Aktywnie szukam okazji do współpracy przy projektach badawczych i publikacjach naukowych.</p>"
      "heroLocationLabel" => "Wrocław, Polska - 2026"
      "aboutResearchTitle" => "Zainteresowania naukowe"
      "heroCtaPrimaryHref" => "#kontakt"
      "heroCtaPrimaryLabel" => "Zatrudnij mnie"
      "heroAvailabilityLabel" => "Dostępny do współpracy"
    ]
    -linkProvider: null
    -linkData: null
    #workflowPlace: null
    #workflowPublished: DateTimeImmutable @1787502367 {#1309
      date: 2026-08-23 16:26:07.0 UTC (+00:00)
    }
  }
  "view" => "pages/homepage"
  "_cacheLifetime" => 86400
  "_sulu_route" => Sulu\Route\Domain\Model\Route {#828}
]
_stopwatch_token
"770775"
_sulu
Sulu\Component\Webspace\Analyzer\Attributes\RequestAttributes {#506
  -attributes: [
    "requestUri" => "/.json"
    "portalInformation" => Sulu\Component\Webspace\PortalInformation {#501
      -type: 1
      -webspace: Sulu\Component\Webspace\Webspace {#472
        -name: "Portfolio"
        -key: "portfolio"
        -localizations: [
          Sulu\Component\Localization\Localization {#473
            -language: "pl"
            -country: ""
            -shadow: ""
            -children: []
            -parent: null
            -default: true
          }
          Sulu\Component\Localization\Localization {#475
            -language: "en"
            -country: ""
            -shadow: ""
            -children: []
            -parent: null
            -default: false
          }
        ]
        -defaultLocalization: Sulu\Component\Localization\Localization {#473}
        -segments: []
        -defaultSegment: null
        -theme: null
        -portals: [
          Sulu\Component\Webspace\Portal {#479
            -name: "Portfolio"
            -key: "portfolio"
            -localizations: [
              Sulu\Component\Localization\Localization {#480 …}
              Sulu\Component\Localization\Localization {#481
                -language: "en"
                -country: ""
                -shadow: null
                -children: []
                -parent: null
                -default: ""
              }
            ]
            -defaultLocalization: Sulu\Component\Localization\Localization {#480 …}
            -environments: [
              "prod" => Sulu\Component\Webspace\Environment {#482
                -type: "prod"
                -urls: [
                  Sulu\Component\Webspace\Url {#483 …}
                  Sulu\Component\Webspace\Url {#484
                    -language: "en"
                    -country: ""
                    -segment: ""
                    -redirect: ""
                    -main: false
                    -url: "{host}/en"
                    -environment: "prod"
                  }
                ]
                -customUrls: []
                -mainUrl: Sulu\Component\Webspace\Url {#483 …}
              }
              "stage" => Sulu\Component\Webspace\Environment {#485
                -type: "stage"
                -urls: [
                  Sulu\Component\Webspace\Url {#486 …}
                  Sulu\Component\Webspace\Url {#487
                    -language: "en"
                    -country: ""
                    -segment: ""
                    -redirect: ""
                    -main: false
                    -url: "{host}/en"
                    -environment: "stage"
                  }
                ]
                -customUrls: []
                -mainUrl: Sulu\Component\Webspace\Url {#486 …}
              }
              "test" => Sulu\Component\Webspace\Environment {#488
                -type: "test"
                -urls: [
                  Sulu\Component\Webspace\Url {#489 …}
                  Sulu\Component\Webspace\Url {#490
                    -language: "en"
                    -country: ""
                    -segment: ""
                    -redirect: ""
                    -main: false
                    -url: "{host}/en"
                    -environment: "test"
                  }
                ]
                -customUrls: []
                -mainUrl: Sulu\Component\Webspace\Url {#489 …}
              }
              "dev" => Sulu\Component\Webspace\Environment {#491
                -type: "dev"
                -urls: [
                  Sulu\Component\Webspace\Url {#492 …}
                  Sulu\Component\Webspace\Url {#493
                    -language: "en"
                    -country: ""
                    -segment: ""
                    -redirect: ""
                    -main: false
                    -url: "{host}/en"
                    -environment: "dev"
                  }
                ]
                -customUrls: []
                -mainUrl: Sulu\Component\Webspace\Url {#492 …}
              }
            ]
            -webspace: Sulu\Component\Webspace\Webspace {#472}
          }
        ]
        -security: null
        -navigation: Sulu\Component\Webspace\Navigation {#476 …}
        -templates: [
          "search" => "search/search"
          "error" => "error/error"
        ]
        -defaultTemplates: [
          "page" => "default"
          "home" => "homepage"
        ]
        -excludedTemplates: []
        -resourceLocatorStrategy: "tree_leaf_edit"
      }
      -portal: Sulu\Component\Webspace\Portal {#479}
      -localization: Sulu\Component\Localization\Localization {#473}
      -url: "backend"
      -redirect: ""
      -main: true
      -urlExpression: "backend"
      -priority: 5
    }
    "matchType" => 1
    "portalUrl" => "backend"
    "webspace" => Sulu\Component\Webspace\Webspace {#472}
    "portal" => Sulu\Component\Webspace\Portal {#479}
    "localization" => Sulu\Component\Localization\Localization {#473}
    "locale" => "pl"
    "urlExpression" => "backend"
    "resourceLocator" => "/"
    "format" => "json"
    "dateTime" => DateTime @1792718325 {#502
      date: 2026-10-23 01:18:45.050499 UTC (+00:00)
    }
    "host" => "backend"
    "port" => 80
    "path" => "/.json"
    "scheme" => "http"
  ]
}
_sulu_route
Sulu\Route\Domain\Model\Route {#828
  -id: 1
  -webspace: "portfolio"
  -locale: "pl"
  -slug: "/"
  -parentRoute: null
  -resourceKey: "pages"
  -resourceId: "01a02f71-900c-7e93-839e-3c620a9cd6cd"
  -resourceIdCallable: null
}
object
Sulu\Page\Domain\Model\PageDimensionContent {#1108
  #id: ? int
  #page: Sulu\Page\Domain\Model\Page {#1577 …}
  #title: "Portfolio"
  #navigationContexts: Doctrine\Common\Collections\ArrayCollection {#1505 …}
  #created: DateTimeImmutable @1787502367 {#1294
    date: 2026-08-23 16:26:07.0 UTC (+00:00)
  }
  #changed: DateTimeImmutable @1787601070 {#1291
    date: 2026-08-24 19:51:10.0 UTC (+00:00)
  }
  #creator: null
  #changer: Proxies\__CG__\Sulu\Bundle\SecurityBundle\Entity\User {#1539 …}
  -author: null
  -authored: DateTimeImmutable @1787502366 {#1306
    date: 2026-08-23 16:26:06.0 UTC (+00:00)
  }
  -lastModified: null
  #locale: "pl"
  #ghostLocale: "pl"
  #availableLocales: [
    "pl"
    "en"
  ]
  #stage: "live"
  -isMerged: true
  -version: 0
  -excerptData: []
  -excerptCategories: Doctrine\Common\Collections\ArrayCollection {#2793 …}
  -excerptTags: Doctrine\Common\Collections\ArrayCollection {#2863 …}
  -excerptAudienceTargetGroups: Doctrine\Common\Collections\ArrayCollection {#2868 …}
  -excerptSegment: null
  -route: Sulu\Route\Domain\Model\Route {#828
    -id: 1
    -webspace: "portfolio"
    -locale: "pl"
    -slug: "/"
    -parentRoute: null
    -resourceKey: "pages"
    -resourceId: "01a02f71-900c-7e93-839e-3c620a9cd6cd"
    -resourceIdCallable: null
  }
  -seoData: []
  -seoNoIndex: false
  -seoNoFollow: false
  -seoHideInSitemap: false
  #shadowLocale: null
  #shadowLocales: null
  -templateKey: "homepage"
  -templateData: [
    "title" => "Portfolio"
    "cvFile" => null
    "heroLead" => "<p>Inżynier Full-Stack z zapleczem naukowym.</p>"
    "heroName" => "Mateusz"
    "aboutText" => "<p>Łączę ponad 5-letnie doświadczenie komercyjne jako Full-Stack Engineer z silnym fundamentem naukowym (<i>mgr inż. kierunku Informatyczne Systemy Automatyki</i>, Politechnika Wrocławska). W projektach komercyjnych specjalizuję się w budowie dedykowanych systemów backendowych i skalowalnego e-commerce (Czysta architektura, DDD), odpowiadając za pełen cykl tworzenia oprogramowania – od frontendu, przez infrastrukturę, aż po szeroki kontekst biznesowy.</p><p>&nbsp;</p><p>Równolegle z pracą komercyjną projektuję rozwiązania MarTech oparte na AI oraz prowadzę badania naukowe z zakresu obliczeniowych modeli kognitywnych, identyfikacji systemów, uczenia maszynowego. W każdym z tych obszarów napędza mnie inżynierski pragmatyzm i rygor techniczny.</p>"
    "stackItems" => [
      [
        "_id" => "7cfa7c55"
        "name" => "PHP"
        "type" => "item"
        "group" => "backend"
        "category" => "Backend"
      ]
      [
        "_id" => "5c32d348"
        "name" => "Laravel"
        "type" => "item"
        "group" => "backend"
        "category" => "Backend"
      ]
      [
        "_id" => "494de8bf"
        "name" => "Symfony"
        "type" => "item"
        "group" => "backend"
        "category" => "Backend"
      ]
      [
        "_id" => "83007899"
        "name" => "Python"
        "type" => "item"
        "group" => "backend"
        "category" => "Backend"
      ]
      [
        "_id" => "6402a5af"
        "name" => "Django"
        "type" => "item"
        "group" => "backend"
        "category" => "Backend"
      ]
      [
        "_id" => "1adc0f95"
        "name" => "FastAPI"
        "type" => "item"
        "group" => "backend"
        "category" => "Backend"
      ]
      [
        "_id" => "c490c6d8"
        "name" => "JavaScript / TypeScript"
        "type" => "item"
        "group" => "frontend"
        "category" => "Frontend"
      ]
      [
        "_id" => "e79cbaa4"
        "name" => "React"
        "type" => "item"
        "group" => "frontend"
        "category" => "Frontend"
      ]
      [
        "_id" => "24aceb73"
        "name" => "Next.js"
        "type" => "item"
        "group" => "frontend"
        "category" => "Frontend"
      ]
      [
        "_id" => "284b3f70"
        "name" => "TailwindCSS"
        "type" => "item"
        "group" => "frontend"
        "category" => "Frontend"
      ]
      [
        "_id" => "8cc4f842"
        "name" => "Docker"
        "type" => "item"
        "group" => "infra"
        "category" => "Infra"
      ]
      [
        "_id" => "83924a1b"
        "name" => "Linux"
        "type" => "item"
        "group" => "infra"
        "category" => "Infra"
      ]
      [
        "_id" => "9b32e88b"
        "name" => "MongoDB"
        "type" => "item"
        "group" => "infra"
        "category" => "Infra"
      ]
      [
        "_id" => "688f7f17"
        "name" => "MySQL"
        "type" => "item"
        "group" => "infra"
        "category" => "Infra"
      ]
      [
        "_id" => "01be565f"
        "name" => "PostgreSQL"
        "type" => "item"
        "group" => "infra"
        "category" => "Infra"
      ]
      [
        "_id" => "6399931c"
        "name" => "Python"
        "type" => "item"
        "group" => "ai"
        "category" => "ML"
      ]
      [
        "_id" => "f2452081"
        "name" => "Vector Databases"
        "type" => "item"
        "group" => "ai"
        "category" => "ML"
      ]
      [
        "_id" => "e646a26f"
        "name" => "PyTorch"
        "type" => "item"
        "group" => "ai"
        "category" => "ML"
      ]
      [
        "_id" => "11375cc5"
        "name" => "Redis"
        "type" => "item"
        "group" => "infra"
        "category" => "Infra"
      ]
      [
        "_id" => "4df16a37"
        "name" => "Git"
        "type" => "item"
        "group" => "infra"
        "category" => "Infra"
      ]
      [
        "_id" => "e6510141"
        "name" => "RAG"
        "type" => "item"
        "group" => "ai"
        "category" => "AI"
      ]
    ]
    "contactLead" => "Szukasz software engineera do zespołu lub projektu? Napisz."
    "heroSocials" => [
      [
        "_id" => "827184e9"
        "url" => "https://www.linkedin.com/in/mateusz-zolisz-37092420b/"
        "type" => "social"
        "label" => "LinkedIn"
      ]
      [
        "_id" => "7fdcf108"
        "url" => "https://github.com/Zomat"
        "type" => "social"
        "label" => "GitHub"
      ]
      [
        "_id" => "55df8d3e"
        "url" => "https://www.instagram.com/mateuszolisz/"
        "type" => "social"
        "label" => "Instagram"
      ]
    ]
    "contactEmail" => "mateusz.zolisz@gmail.com"
    "heroPortrait" => [
      "id" => null
      "displayOption" => null
    ]
    "projectItems" => [
      [
        "_id" => "0c391ea5"
        "slug" => "ecommerce"
        "tech" => "Sylius · Next.js · PHP · Python · Django · Docker · Architektura Heksagonalna · Domain Driven Design · Behat"
        "type" => "project"
        "group" => "Komercyjne"
        "title" => "System E-commerce"
        "ctaLabel" => "W fazie przedprodukcyjnej..."
        "description" => "E-commerce dla sieci escape roomów."
        "fullDescription" => "<p>Platforma e-commerce w architekturze headless dla sieci escape roomów do sprzedaży voucherów prezentowych oraz przedmiotów fizycznych.</p><p>Backend oparto na silniku Sylius / Symfony (API Platform), a aplikację kliencką (storefront) wdrożono w Next.js. Całość zintegrowano z zewnętrznym systemem zarządzania klienta w Django oraz napisano do niego dedykowany moduł do obsługi voucherów.</p><p>Kluczowe elementy systemu:&nbsp;</p><ul><li data-list-item-id="e4943db86109e58371985b6ac6e32be95"><strong>Dedykowany system voucherów</strong>: Obsługa elektronicznych i fizycznych kart podarunkowych (przypisanych do konkretnego pokoju, wartościowych oraz pakietów premium z dodatkowymi gadżetami). Automatyczne generowanie plików PDF gotowych do druku, opcja realizacji online lub stacjonarnie oraz pełne śledzenie historii cen zgodnie z dyrektywą Omnibus.</li><li data-list-item-id="ecd2188b6f38b509284bb477f4fd6f849">&nbsp;<strong>Architektura integracyjna (Multi-service)</strong>: Synchroniczna i asynchroniczna (Symfony Messenger / Redis) komunikacja z systemem rezerwacji, usługą logistyczną Furgonetka oraz operatorem płatności Przelewy24. Dla zapewnienia niezawodności przy awariach zewnętrznych API wdrożono mechanizmy retry/backoff oraz dead-letter queues (DLQ).&nbsp;</li><li data-list-item-id="e4f0cb373e04cab912523500b714d7e60"><strong>Headless Checkout</strong>: Dedykowane API wystawiające dla Next.js logikę koszyka, promocji katalogowych, wyliczania czasu i kosztów dostawy, a także komunikatów prawnych (szacowany czas doręczenia, najniższa cena z ostatnich 30 dni). Obsługa ścieżki zakupowej zarówno dla gości, jak i zarejestrowanych użytkowników.&nbsp;</li><li data-list-item-id="e231a9e1f2e0a25d3a2e06406841df25b"><strong>Rozbudowane narzędzia administracyjne</strong>: Znaczne rozszerzenie panelu admina w Syliusie o niestandardową konfigurację produktów i voucherów, logikę zarządzania cenami, dedykowane przepływy (workflows) realizacji zamówień oraz mechanizmy anonimizacji danych klientów zgodnie z RODO.</li></ul>"
      ]
      [
        "_id" => "808e50a3"
        "url" => "https://jezykidlakazdego.pl"
        "slug" => "jdk"
        "tech" => "PHP · Laravel · Livewire · Alpine.js · Builder.io"
        "type" => "project"
        "group" => "Komercyjne"
        "title" => "JezykiDlaKazdego.pl"
        "ctaLabel" => "Strona produkcyjna"
        "description" => "Sklep internetowy do sprzedaży kursów i lekcji online"
        "fullDescription" => "<p>Aplikacja webowa zbudowana jako sklep internetowy sprzedający materiały do nauki języków: kursy wideo, e-booki i lekcje cyfrowe.&nbsp;</p><p>Kluczowe funkcjonalności:&nbsp;</p><ul><li data-list-item-id="e64bcde496627f231ccb0bcb0217aef11"><strong>Sklep i checkout</strong> — katalog produktów, koszyk, integracja płatności (Przelewy24), generowanie faktur PDF</li><li data-list-item-id="ecc7b53183bc518dd41db713ea1433258"><strong>Zaawansowany system promocji oraz lejków sprzedażowych </strong>— oferty dla konkretnych klientów, integracja z quizami, promocje ograniczone czasowo</li><li data-list-item-id="ed130afc47b11ee759efe25a398f30e91"><strong>Panel klienta</strong> — dostęp do zakupionych produktów (kursy, e-booki, lekcje), historia zamówień, pobieranie plików i faktur, materiały wideo (integracja z Vimeo)</li><li data-list-item-id="eeceb19438742fd779e8df9fd195bd469"><strong>Panel administracyjny </strong>— zarządzanie produktami, klientami, zamówieniami, blogiem i zdjęciami produktów&nbsp;</li><li data-list-item-id="ef05ea84fbe58b0a6ac5f95d153bdd2c0"><strong>Integracja</strong> <strong>z Builder.io&nbsp;</strong> — klientka może samodzielnie edytować oraz tworzyć podstrony marketingowe</li><li class="ck-list-marker-bold" data-list-item-id="e250bc5aaffee863bd650909232533cf0"><strong>Blog&nbsp;</strong></li><li data-list-item-id="e0986869deea8651e8963367a613f4ef8"><strong>Uwierzytelnianie i zarządzanie kontem</strong> przez Laravel Jetstream/Fortify</li></ul>"
      ]
      [
        "_id" => "8e939609"
        "slug" => "crm"
        "tech" => "PHP · Laravel · Livewire · Czysta Architektura · Domain Driven Design · Behat · PHPUnit"
        "type" => "project"
        "group" => "Komercyjne"
        "title" => "System zarządzania kadrami i rozliczeniami dla firm budowlanych"
        "ctaLabel" => "Wewnętrzne narzędzie firmy"
        "description" => "Aplikacja webowa w wspierająca firmy budowlane w zarządzaniu pracownikami, projektami i rozliczeniami wynagrodzeń. System obsługuje pełny cykl pracy brygad budowlanych — od ewidencji dniówek po generowanie raportów płacowych."
        "fullDescription" => "<p><strong>Kluczowe funkcjonalności:</strong></p><ul><li data-list-item-id="e6fc9009a2b1ddaed66c9ad2edac6fe6f"><strong>Zarządzanie personelem i strukturą firm:</strong> Kompleksowa obsługa kartotek pracowniczych, definiowanie stawek (godzinowych i dniówkowych), zarządzanie statusami zatrudnienia oraz przypisywanie pracowników do konkretnych podmiotów i projektów.</li><li data-list-item-id="e3386ef7a22561ac5e3ea9b53379b745f"><strong>Ewidencja czasu pracy:</strong> Rejestracja obecności i przepracowanych dniówek oraz obsługa list brygadzistów, rozszerzona o możliwość dodawania dokumentacji fotograficznej.</li><li data-list-item-id="eff022d505861167842a6458d83d1e46a"><strong>Rozliczenia finansowe:</strong> Automatyzacja kalkulacji wynagrodzeń, uwzględniająca elastyczne zarządzanie zaliczkami oraz potrąceniami pracowniczymi.</li><li data-list-item-id="e78a8686c88b8a45e3d15ab50ef61a955"><strong>Zaawansowane raportowanie:</strong> Automatyczne generowanie miesięcznych podsumowań projektowych i zestawień czasu pracy z bezproblemowym eksportem do formatów PDF i Excel.</li><li data-list-item-id="e45819e8ca07dcd636e4a50ea7bf5e99c"><strong>Monitoring i audyt:</strong> Rozbudowany dziennik zdarzeń (event log) śledzący kluczowe operacje i ogólną aktywność użytkowników w systemie.</li></ul><p><strong>Architektura i stos technologiczny:</strong></p><ul><li data-list-item-id="e17fdcd8b4d1bf63ea341717dd3bd9d41"><strong>Backend:</strong> PHP 8 / Laravel 9, oparty na architekturze modularnej, która zapewnia ścisły podział na niezależne konteksty biznesowe.</li><li data-list-item-id="ea6a87d02383368e530f8f7fe973618ee"><strong>Frontend:</strong> Laravel Livewire połączony z Tailwind CSS – dostarczanie dynamicznych i reaktywnych interfejsów użytkownika (UI) bez narzutu technologicznego pełnych aplikacji SPA.</li><li data-list-item-id="ec385557ff9cbdb8b30c15c0df4e65ae7"><strong>Wzorce projektowe:</strong> Zastosowanie architektury heksagonalnej oraz taktycznego podejścia Domain-Driven Design (DDD).</li><li data-list-item-id="e48c770712524f69ca7a71fb4fb46eb66"><strong>Przetwarzanie danych:</strong> Zaawansowane generowanie dokumentów PDF i arkuszy Excel, a także automatyczny eksport danych do masowych przelewów bankowych zgodnie ze standardem SEPA.</li><li data-list-item-id="e47968e02120a2485a96c838ad501bc66"><strong>Zapewnienie jakości (QA):</strong> Kompleksowe testowanie aplikacji z wykorzystaniem PHPUnit (testy jednostkowe) oraz frameworka Behat (testy behawioralne/BDD).</li></ul>"
      ]
      [
        "_id" => "65640215"
        "slug" => "iccci2026"
        "tech" => "Python"
        "type" => "project"
        "group" => "Nauka"
        "title" => "When Interpretable Parameters Fail to Explain: Evidence from the Rescorla-Wagner Model"
        "ctaLabel" => "W druku"
        "description" => "Współautor publikacji naukowej na ICCCI 2026 | Politechnika Wrocławska"
        "fullDescription" => "<p>Interpretowalne parametry w modelach uczenia ze wzmocnieniem (RL) są powszechnie używane do mechanistycznego wyjaśniania ludzkich zachowań. W artykule udowadniamy, że ta praktyka może zawodzić nawet w przypadku minimalnego agenta Rescorla-Wagner.&nbsp;</p><p><strong>Kluczowe tezy i wyniki:</strong></p><ul><li data-list-item-id="e1022283fb2332acad95f4b5a5f0b771a">Anizotropowa geometria wiarygodności: Wykazaliśmy, że diametralnie różne kombinacje tempa uczenia oraz stochastyczności wyboru mogą równie dobrze dopasowywać się do tych samych sekwencji (w zadaniu Probabilistic Learning Task) przy estymacji największej wiarygodności (MLE).&nbsp;</li><li data-list-item-id="e1611e3077e533d790616fd97f765151d">Zniekształcenia estymacji: Zjawisko to prowadzi do ustrukturyzowanych błędów, rozkładów scaled vector error (SVE) o grubych ogonach, uderzeń w granice (boundary hits) oraz nakładania się na siebie odzyskanych dystrybucji parametrów z różnych reżimów. Diagnostyka siatkowa dodatkowo pokazuje, że jakość odzyskiwania parametrów silnie waha się w obrębie generującej przestrzeni parametrów.</li><li data-list-item-id="e6b4f2aa1b0622a030c2be65f32465baf">Autorski workflow diagnostyczny: Aby uwidocznić powyższe ograniczenia, zaproponowaliśmy przepływ pracy, który łączy analizę geometrii wiarygodności, diagnostykę błędów brzegowych oraz siatkową weryfikację odzyskiwania parametrów (grid-based parameter recovery).&nbsp;</li><li data-list-item-id="e30bd313c32c7246f0c033cfef33fa07b">Wartość praktyczna: Nasze rozwiązanie dostarcza procedury pozwalającej ocenić, kiedy dopasowane parametry są wystarczająco silnie ograniczone przez dane, aby opierać na nich wiarygodne wyjaśnienia oparte na parametrach, a kiedy takie twierdzenia powinny zostać opatrzone odpowiednimi zastrzeżeniami.</li></ul>"
      ]
      [
        "_id" => "03cf8b65"
        "slug" => "magisterka"
        "tech" => "Python · SciPy · NumPy ·  emcee · metody Monte Carlo · statystyka bayesowska · modelowanie matematyczne · optymalizacja numeryczna"
        "type" => "project"
        "group" => "Nauka"
        "title" => "Identyfikowalność i wyjaśnialność modeli uczenia z nagród i kar na przykładzie Iowa Gambling Task"
        "description" => "Współczesne systemy sztucznej inteligencji, choć skuteczne, często działają jako „czarne skrzynki”. W branżach regulowanych (medycyna, finanse) kluczowe jest stosowanie modeli, które nie tylko przewidują, ale też wyjaśniają mechanizm podejmowania decyzji."
        "fullDescription" => "<p>W ramach tego projektu przeprowadziłem <strong>kompleksowy audyt stabilności i wiarygodności wiodących modeli uczenia ze wzmocnieniem (RL)</strong> symulujących zachowania decyzyjne. Zaprojektowałem autorską architekturę o znacznie wyższej odporności na szum oraz stworzyłem rygorystyczny, uniwersalny potok diagnostyczny, który matematycznie weryfikuje, kiedy i w jakim stopniu można zaufać wyjaśnieniom generowanym przez algorytmy AI.</p><p>&nbsp;</p><h2><strong>Główne osiągnięcia i wkład inżynieryjny</strong></h2><ul><li data-list-item-id="ee1b8049f263e225dafa2d0ecee8da1f7"><strong>Zaprojektowanie odpornej architektury RL (podwojenie stabilności modelu):</strong> Opracowałem i przetestowałem autorski model uczenia ze wzmocnieniem, który łączy asymetryczną ocenę ryzyka (Teorię Perspektywy) z dynamicznym śledzeniem niepewności (mechanizm inspirowany Filtrem Kalmana). Nowa architektura pozwoliła na <strong>podwojenie stabilności estymacji parametrów (wzrost z ~38% w modelach referencyjnych do aż 76,2% całej przestrzeni roboczej)</strong>, co drastycznie zwiększa rzetelność generowanych wyjaśnień.</li><li data-list-item-id="eba28ac907dcb285a0f12cdf38a1f45c9"><strong>Budowa potoku symulacyjnego (stress-testing na poziomie 50k+ prób):</strong> Zaprojektowałem i wdrożyłem wielopoziomowy potok walidacyjny oparty na wielowymiarowym próbkowaniu przestrzeni (Latin Hypercube Sampling) oraz metodach bootstrapowych. Dzięki temu zdemaskowałem krytyczne wady powszechnie stosowanej estymacji punktowej (MLE) i udowodniłem, że standardowe metryki raportujące błędy (oparte na macierzy Hessego) wykazują skrajną nadpewność (<i>overconfidence</i>), co w realnych wdrożeniach grozi podejmowaniem błędnych decyzji na podstawie losowego szumu.</li><li data-list-item-id="e1a5b1a5d27348692ac603e12ad808286"><strong>Wdrożenie bayesowskiego audytu modeli (przełamywanie ograniczeń optymalizatorów):</strong> Zastąpiłem klasyczną, punktową optymalizację gradientową probabilistycznym próbkowaniem bayesowskim przy użyciu metod Monte Carlo (MCMC). Stworzyłem framework, który potrafi <strong>wydobyć czysty sygnał informacyjny z bardzo zaszumionych sekwencji danych w 96% przypadków</strong>, w których tradycyjne algorytmy gradientowe poddawały się i błędnie klasyfikowały parametry jako całkowicie nieodzyskiwalne.</li><li data-list-item-id="e378a8031d3feb4d1fc9f146a0a011ace"><strong>Odkrycie dysocjacji diagnostycznej (wiarygodna klasyfikacja mimo szumu):</strong> Opracowałem metodologię mapowania globalnej przestrzeni zachowań systemów decyzyjnych (PSP) i nałożyłem ją na rozkłady błędów estymacji. Udowodniłem, że <strong>wysokopoziomowa klasyfikacja strategii i segmentacja użytkowników pozostaje w pełni stabilna i bezpieczna</strong>, nawet gdy szczegółowe parametry ilościowe na najniższym poziomie są obarczone silnym szumem numerycznym. Pozwala to na bezpieczne wdrażanie systemów kategoryzacji o bardzo wysokim stopniu pewności.</li><li data-list-item-id="ed47fec424b84a14cc2be60d7a4bcc060"><strong>Mitygacja ryzyka błędu systematycznego w personalizacji modeli:</strong> Przeprowadziłem rygorystyczną analizę wpływu metod hierarchicznego dociągania parametrów do średniej (<i>shrinkage</i>). Wykazałem, że popularne techniki uśredniające maskują unikalne, atypowe zachowania (np. anomalie czy rzadkie patologie), sztucznie dociągając je do "normy". Sformułowałem rygorystyczny postulat stress-testowania modeli na "czystych danych" (flat priors) w celu ochrony systemów AI przed błędami algorytmicznymi i niezamierzoną dyskryminacją unikalnych profili.</li></ul>"
      ]
      [
        "_id" => "a06f3075"
        "slug" => "influencer-marketing"
        "tech" => "Python  · FastAPI  · Qdrant  · Next.js  · Docker  · LLM"
        "type" => "project"
        "group" => "Prywatne"
        "title" => "Platforma influencer marketingu"
        "ctaLabel" => "W trakcie budowy"
        "description" => "Startup na wczesnym etapie, łączący marki z twórcami internetowymi. Automatyczna wycena współpracy, dopasowanie influencerów do kampanii i klasyfikacja profili — oparte o modele ML zamiast ręcznej pracy analityków. "
        "fullDescription" => "<p>Projektuję i rozwijam warstwę ML/AI jako rdzeń produktu — główne źródło wartości biznesowej, nie dodatek do aplikacji.</p><p><strong>Obszary ML/AI, nad którymi pracuję:</strong></p><ul><li data-list-item-id="eb00d5d8d1a41e8b6d2bc96c4e7068a9a"><strong>Silnik wyceny</strong> — model estymujący widełki cenowe współpracy na podstawie danych rynkowych i profilu twórcy, łączący kilka niezależnych sygnałów w jeden wynik z komunikowaną niepewnością (przedział, nie pojedyncza liczba)</li><li data-list-item-id="e3a9bca5e1fcc90cb52f8b2b9f4dbdec9"><strong>Scoring i klasyfikacja profili</strong> — wielosygnałowa, interpretowalna klasyfikacja typu konta i kategorii tematycznej; świadomy wybór modelu, który da się wyjaśnić, zamiast czarnej skrzynki</li><li data-list-item-id="ea56c4358836b06d2c57edde75fcd2c6d"><strong>Dopasowanie marka↔twórca</strong> — ocena zgodności profilu z briefem kampanii wspierana modelem językowym, z ustrukturyzowanym promptowaniem i walidacją odpowiedzi</li><li data-list-item-id="eda9fec80f3d8eda3dfb44d0512ca103a"><strong>Wyszukiwanie semantyczne</strong> — indeksowanie profili w bazie wektorowej pod kątem podobieństwa tematycznego, uzupełniające klasyczne filtry</li><li data-list-item-id="ec9609021c47189f67013433dba61dad6"><strong>Optymalizacja doboru kampanii</strong> — algorytm dobierający zestaw twórców maksymalizujący efekt kampanii w ramach zadanego budżetu</li></ul><p><strong>Praktyki inżynierii ML, na których mi zależy:</strong></p><ul><li data-list-item-id="e5371af5e3de108ef6366cdd3891be127">Wersjonowanie logiki decyzyjnej — żeby dało się odtworzyć historyczny wynik i bezpiecznie testować nowe podejścia obok sprawdzonych</li><li data-list-item-id="e78b094ed4fea67c91b844607325c5607">Testy charakteryzujące dla logiki obliczeniowej — bezpieczny refaktor i strojenie modeli bez ręcznej regresji</li><li data-list-item-id="e29af8067f390e9935d67e399e4eb350f">Czyste rozdzielenie reguł domenowych od infrastruktury — modele testowalne w izolacji</li></ul><p>&nbsp;</p>"
      ]
    ]
    "contactCvLabel" => null
    "contactHeading" => "Porozmawiajmy"
    "heroCtaCvLabel" => "CV"
    "heroNameAccent" => "Zolisz"
    "footerCopyright" => "© 2026 Mateusz Zolisz"
    "aboutResearchTags" => [
      [
        "_id" => "7ce829e4"
        "type" => "tag"
        "label" => "Uczenie Maszynowe"
      ]
      [
        "_id" => "5e1338af"
        "type" => "tag"
        "label" => "Identyfikacja Systemów"
      ]
      [
        "_id" => "8675528c"
        "type" => "tag"
        "label" => "Teoria Sterowania"
      ]
      [
        "_id" => "a47ab6de"
        "type" => "tag"
        "label" => "Statystyka"
      ]
      [
        "_id" => "0e620052"
        "type" => "tag"
        "label" => "Sztuczna Inteligencja"
      ]
    ]
    "aboutResearchText" => "<p>Jako entuzjasta uczenia maszynowego interesuję się modelowaniem procesów kognitywnych, systemami uczącymi się i automatyką. Aktywnie szukam okazji do współpracy przy projektach badawczych i publikacjach naukowych.</p>"
    "heroLocationLabel" => "Wrocław, Polska - 2026"
    "aboutResearchTitle" => "Zainteresowania naukowe"
    "heroCtaPrimaryHref" => "#kontakt"
    "heroCtaPrimaryLabel" => "Zatrudnij mnie"
    "heroAvailabilityLabel" => "Dostępny do współpracy"
  ]
  -linkProvider: null
  -linkData: null
  #workflowPlace: null
  #workflowPublished: DateTimeImmutable @1787502367 {#1309
    date: 2026-08-23 16:26:07.0 UTC (+00:00)
  }
}
routeDocument
Symfony\Component\Routing\Route {#1593
  -path: "/.json"
  -host: "backend"
  -schemes: []
  -methods: []
  -defaults: [
    "object" => Sulu\Page\Domain\Model\PageDimensionContent {#1108
      #id: ? int
      #page: Sulu\Page\Domain\Model\Page {#1577 …}
      #title: "Portfolio"
      #navigationContexts: Doctrine\Common\Collections\ArrayCollection {#1505 …}
      #created: DateTimeImmutable @1787502367 {#1294
        date: 2026-08-23 16:26:07.0 UTC (+00:00)
      }
      #changed: DateTimeImmutable @1787601070 {#1291
        date: 2026-08-24 19:51:10.0 UTC (+00:00)
      }
      #creator: null
      #changer: Proxies\__CG__\Sulu\Bundle\SecurityBundle\Entity\User {#1539 …}
      -author: null
      -authored: DateTimeImmutable @1787502366 {#1306
        date: 2026-08-23 16:26:06.0 UTC (+00:00)
      }
      -lastModified: null
      #locale: "pl"
      #ghostLocale: "pl"
      #availableLocales: [
        "pl"
        "en"
      ]
      #stage: "live"
      -isMerged: true
      -version: 0
      -excerptData: []
      -excerptCategories: Doctrine\Common\Collections\ArrayCollection {#2793 …}
      -excerptTags: Doctrine\Common\Collections\ArrayCollection {#2863 …}
      -excerptAudienceTargetGroups: Doctrine\Common\Collections\ArrayCollection {#2868 …}
      -excerptSegment: null
      -route: Sulu\Route\Domain\Model\Route {#828
        -id: 1
        -webspace: "portfolio"
        -locale: "pl"
        -slug: "/"
        -parentRoute: null
        -resourceKey: "pages"
        -resourceId: "01a02f71-900c-7e93-839e-3c620a9cd6cd"
        -resourceIdCallable: null
      }
      -seoData: []
      -seoNoIndex: false
      -seoNoFollow: false
      -seoHideInSitemap: false
      #shadowLocale: null
      #shadowLocales: null
      -templateKey: "homepage"
      -templateData: [
        "title" => "Portfolio"
        "cvFile" => null
        "heroLead" => "<p>Inżynier Full-Stack z zapleczem naukowym.</p>"
        "heroName" => "Mateusz"
        "aboutText" => "<p>Łączę ponad 5-letnie doświadczenie komercyjne jako Full-Stack Engineer z silnym fundamentem naukowym (<i>mgr inż. kierunku Informatyczne Systemy Automatyki</i>, Politechnika Wrocławska). W projektach komercyjnych specjalizuję się w budowie dedykowanych systemów backendowych i skalowalnego e-commerce (Czysta architektura, DDD), odpowiadając za pełen cykl tworzenia oprogramowania – od frontendu, przez infrastrukturę, aż po szeroki kontekst biznesowy.</p><p>&nbsp;</p><p>Równolegle z pracą komercyjną projektuję rozwiązania MarTech oparte na AI oraz prowadzę badania naukowe z zakresu obliczeniowych modeli kognitywnych, identyfikacji systemów, uczenia maszynowego. W każdym z tych obszarów napędza mnie inżynierski pragmatyzm i rygor techniczny.</p>"
        "stackItems" => [
          [
            "_id" => "7cfa7c55"
            "name" => "PHP"
            "type" => "item"
            "group" => "backend"
            "category" => "Backend"
          ]
          [
            "_id" => "5c32d348"
            "name" => "Laravel"
            "type" => "item"
            "group" => "backend"
            "category" => "Backend"
          ]
          [
            "_id" => "494de8bf"
            "name" => "Symfony"
            "type" => "item"
            "group" => "backend"
            "category" => "Backend"
          ]
          [
            "_id" => "83007899"
            "name" => "Python"
            "type" => "item"
            "group" => "backend"
            "category" => "Backend"
          ]
          [
            "_id" => "6402a5af"
            "name" => "Django"
            "type" => "item"
            "group" => "backend"
            "category" => "Backend"
          ]
          [
            "_id" => "1adc0f95"
            "name" => "FastAPI"
            "type" => "item"
            "group" => "backend"
            "category" => "Backend"
          ]
          [
            "_id" => "c490c6d8"
            "name" => "JavaScript / TypeScript"
            "type" => "item"
            "group" => "frontend"
            "category" => "Frontend"
          ]
          [
            "_id" => "e79cbaa4"
            "name" => "React"
            "type" => "item"
            "group" => "frontend"
            "category" => "Frontend"
          ]
          [
            "_id" => "24aceb73"
            "name" => "Next.js"
            "type" => "item"
            "group" => "frontend"
            "category" => "Frontend"
          ]
          [
            "_id" => "284b3f70"
            "name" => "TailwindCSS"
            "type" => "item"
            "group" => "frontend"
            "category" => "Frontend"
          ]
          [
            "_id" => "8cc4f842"
            "name" => "Docker"
            "type" => "item"
            "group" => "infra"
            "category" => "Infra"
          ]
          [
            "_id" => "83924a1b"
            "name" => "Linux"
            "type" => "item"
            "group" => "infra"
            "category" => "Infra"
          ]
          [
            "_id" => "9b32e88b"
            "name" => "MongoDB"
            "type" => "item"
            "group" => "infra"
            "category" => "Infra"
          ]
          [
            "_id" => "688f7f17"
            "name" => "MySQL"
            "type" => "item"
            "group" => "infra"
            "category" => "Infra"
          ]
          [
            "_id" => "01be565f"
            "name" => "PostgreSQL"
            "type" => "item"
            "group" => "infra"
            "category" => "Infra"
          ]
          [
            "_id" => "6399931c"
            "name" => "Python"
            "type" => "item"
            "group" => "ai"
            "category" => "ML"
          ]
          [
            "_id" => "f2452081"
            "name" => "Vector Databases"
            "type" => "item"
            "group" => "ai"
            "category" => "ML"
          ]
          [
            "_id" => "e646a26f"
            "name" => "PyTorch"
            "type" => "item"
            "group" => "ai"
            "category" => "ML"
          ]
          [
            "_id" => "11375cc5"
            "name" => "Redis"
            "type" => "item"
            "group" => "infra"
            "category" => "Infra"
          ]
          [
            "_id" => "4df16a37"
            "name" => "Git"
            "type" => "item"
            "group" => "infra"
            "category" => "Infra"
          ]
          [
            "_id" => "e6510141"
            "name" => "RAG"
            "type" => "item"
            "group" => "ai"
            "category" => "AI"
          ]
        ]
        "contactLead" => "Szukasz software engineera do zespołu lub projektu? Napisz."
        "heroSocials" => [
          [
            "_id" => "827184e9"
            "url" => "https://www.linkedin.com/in/mateusz-zolisz-37092420b/"
            "type" => "social"
            "label" => "LinkedIn"
          ]
          [
            "_id" => "7fdcf108"
            "url" => "https://github.com/Zomat"
            "type" => "social"
            "label" => "GitHub"
          ]
          [
            "_id" => "55df8d3e"
            "url" => "https://www.instagram.com/mateuszolisz/"
            "type" => "social"
            "label" => "Instagram"
          ]
        ]
        "contactEmail" => "mateusz.zolisz@gmail.com"
        "heroPortrait" => [
          "id" => null
          "displayOption" => null
        ]
        "projectItems" => [
          [
            "_id" => "0c391ea5"
            "slug" => "ecommerce"
            "tech" => "Sylius · Next.js · PHP · Python · Django · Docker · Architektura Heksagonalna · Domain Driven Design · Behat"
            "type" => "project"
            "group" => "Komercyjne"
            "title" => "System E-commerce"
            "ctaLabel" => "W fazie przedprodukcyjnej..."
            "description" => "E-commerce dla sieci escape roomów."
            "fullDescription" => "<p>Platforma e-commerce w architekturze headless dla sieci escape roomów do sprzedaży voucherów prezentowych oraz przedmiotów fizycznych.</p><p>Backend oparto na silniku Sylius / Symfony (API Platform), a aplikację kliencką (storefront) wdrożono w Next.js. Całość zintegrowano z zewnętrznym systemem zarządzania klienta w Django oraz napisano do niego dedykowany moduł do obsługi voucherów.</p><p>Kluczowe elementy systemu:&nbsp;</p><ul><li data-list-item-id="e4943db86109e58371985b6ac6e32be95"><strong>Dedykowany system voucherów</strong>: Obsługa elektronicznych i fizycznych kart podarunkowych (przypisanych do konkretnego pokoju, wartościowych oraz pakietów premium z dodatkowymi gadżetami). Automatyczne generowanie plików PDF gotowych do druku, opcja realizacji online lub stacjonarnie oraz pełne śledzenie historii cen zgodnie z dyrektywą Omnibus.</li><li data-list-item-id="ecd2188b6f38b509284bb477f4fd6f849">&nbsp;<strong>Architektura integracyjna (Multi-service)</strong>: Synchroniczna i asynchroniczna (Symfony Messenger / Redis) komunikacja z systemem rezerwacji, usługą logistyczną Furgonetka oraz operatorem płatności Przelewy24. Dla zapewnienia niezawodności przy awariach zewnętrznych API wdrożono mechanizmy retry/backoff oraz dead-letter queues (DLQ).&nbsp;</li><li data-list-item-id="e4f0cb373e04cab912523500b714d7e60"><strong>Headless Checkout</strong>: Dedykowane API wystawiające dla Next.js logikę koszyka, promocji katalogowych, wyliczania czasu i kosztów dostawy, a także komunikatów prawnych (szacowany czas doręczenia, najniższa cena z ostatnich 30 dni). Obsługa ścieżki zakupowej zarówno dla gości, jak i zarejestrowanych użytkowników.&nbsp;</li><li data-list-item-id="e231a9e1f2e0a25d3a2e06406841df25b"><strong>Rozbudowane narzędzia administracyjne</strong>: Znaczne rozszerzenie panelu admina w Syliusie o niestandardową konfigurację produktów i voucherów, logikę zarządzania cenami, dedykowane przepływy (workflows) realizacji zamówień oraz mechanizmy anonimizacji danych klientów zgodnie z RODO.</li></ul>"
          ]
          [
            "_id" => "808e50a3"
            "url" => "https://jezykidlakazdego.pl"
            "slug" => "jdk"
            "tech" => "PHP · Laravel · Livewire · Alpine.js · Builder.io"
            "type" => "project"
            "group" => "Komercyjne"
            "title" => "JezykiDlaKazdego.pl"
            "ctaLabel" => "Strona produkcyjna"
            "description" => "Sklep internetowy do sprzedaży kursów i lekcji online"
            "fullDescription" => "<p>Aplikacja webowa zbudowana jako sklep internetowy sprzedający materiały do nauki języków: kursy wideo, e-booki i lekcje cyfrowe.&nbsp;</p><p>Kluczowe funkcjonalności:&nbsp;</p><ul><li data-list-item-id="e64bcde496627f231ccb0bcb0217aef11"><strong>Sklep i checkout</strong> — katalog produktów, koszyk, integracja płatności (Przelewy24), generowanie faktur PDF</li><li data-list-item-id="ecc7b53183bc518dd41db713ea1433258"><strong>Zaawansowany system promocji oraz lejków sprzedażowych </strong>— oferty dla konkretnych klientów, integracja z quizami, promocje ograniczone czasowo</li><li data-list-item-id="ed130afc47b11ee759efe25a398f30e91"><strong>Panel klienta</strong> — dostęp do zakupionych produktów (kursy, e-booki, lekcje), historia zamówień, pobieranie plików i faktur, materiały wideo (integracja z Vimeo)</li><li data-list-item-id="eeceb19438742fd779e8df9fd195bd469"><strong>Panel administracyjny </strong>— zarządzanie produktami, klientami, zamówieniami, blogiem i zdjęciami produktów&nbsp;</li><li data-list-item-id="ef05ea84fbe58b0a6ac5f95d153bdd2c0"><strong>Integracja</strong> <strong>z Builder.io&nbsp;</strong> — klientka może samodzielnie edytować oraz tworzyć podstrony marketingowe</li><li class="ck-list-marker-bold" data-list-item-id="e250bc5aaffee863bd650909232533cf0"><strong>Blog&nbsp;</strong></li><li data-list-item-id="e0986869deea8651e8963367a613f4ef8"><strong>Uwierzytelnianie i zarządzanie kontem</strong> przez Laravel Jetstream/Fortify</li></ul>"
          ]
          [
            "_id" => "8e939609"
            "slug" => "crm"
            "tech" => "PHP · Laravel · Livewire · Czysta Architektura · Domain Driven Design · Behat · PHPUnit"
            "type" => "project"
            "group" => "Komercyjne"
            "title" => "System zarządzania kadrami i rozliczeniami dla firm budowlanych"
            "ctaLabel" => "Wewnętrzne narzędzie firmy"
            "description" => "Aplikacja webowa w wspierająca firmy budowlane w zarządzaniu pracownikami, projektami i rozliczeniami wynagrodzeń. System obsługuje pełny cykl pracy brygad budowlanych — od ewidencji dniówek po generowanie raportów płacowych."
            "fullDescription" => "<p><strong>Kluczowe funkcjonalności:</strong></p><ul><li data-list-item-id="e6fc9009a2b1ddaed66c9ad2edac6fe6f"><strong>Zarządzanie personelem i strukturą firm:</strong> Kompleksowa obsługa kartotek pracowniczych, definiowanie stawek (godzinowych i dniówkowych), zarządzanie statusami zatrudnienia oraz przypisywanie pracowników do konkretnych podmiotów i projektów.</li><li data-list-item-id="e3386ef7a22561ac5e3ea9b53379b745f"><strong>Ewidencja czasu pracy:</strong> Rejestracja obecności i przepracowanych dniówek oraz obsługa list brygadzistów, rozszerzona o możliwość dodawania dokumentacji fotograficznej.</li><li data-list-item-id="eff022d505861167842a6458d83d1e46a"><strong>Rozliczenia finansowe:</strong> Automatyzacja kalkulacji wynagrodzeń, uwzględniająca elastyczne zarządzanie zaliczkami oraz potrąceniami pracowniczymi.</li><li data-list-item-id="e78a8686c88b8a45e3d15ab50ef61a955"><strong>Zaawansowane raportowanie:</strong> Automatyczne generowanie miesięcznych podsumowań projektowych i zestawień czasu pracy z bezproblemowym eksportem do formatów PDF i Excel.</li><li data-list-item-id="e45819e8ca07dcd636e4a50ea7bf5e99c"><strong>Monitoring i audyt:</strong> Rozbudowany dziennik zdarzeń (event log) śledzący kluczowe operacje i ogólną aktywność użytkowników w systemie.</li></ul><p><strong>Architektura i stos technologiczny:</strong></p><ul><li data-list-item-id="e17fdcd8b4d1bf63ea341717dd3bd9d41"><strong>Backend:</strong> PHP 8 / Laravel 9, oparty na architekturze modularnej, która zapewnia ścisły podział na niezależne konteksty biznesowe.</li><li data-list-item-id="ea6a87d02383368e530f8f7fe973618ee"><strong>Frontend:</strong> Laravel Livewire połączony z Tailwind CSS – dostarczanie dynamicznych i reaktywnych interfejsów użytkownika (UI) bez narzutu technologicznego pełnych aplikacji SPA.</li><li data-list-item-id="ec385557ff9cbdb8b30c15c0df4e65ae7"><strong>Wzorce projektowe:</strong> Zastosowanie architektury heksagonalnej oraz taktycznego podejścia Domain-Driven Design (DDD).</li><li data-list-item-id="e48c770712524f69ca7a71fb4fb46eb66"><strong>Przetwarzanie danych:</strong> Zaawansowane generowanie dokumentów PDF i arkuszy Excel, a także automatyczny eksport danych do masowych przelewów bankowych zgodnie ze standardem SEPA.</li><li data-list-item-id="e47968e02120a2485a96c838ad501bc66"><strong>Zapewnienie jakości (QA):</strong> Kompleksowe testowanie aplikacji z wykorzystaniem PHPUnit (testy jednostkowe) oraz frameworka Behat (testy behawioralne/BDD).</li></ul>"
          ]
          [
            "_id" => "65640215"
            "slug" => "iccci2026"
            "tech" => "Python"
            "type" => "project"
            "group" => "Nauka"
            "title" => "When Interpretable Parameters Fail to Explain: Evidence from the Rescorla-Wagner Model"
            "ctaLabel" => "W druku"
            "description" => "Współautor publikacji naukowej na ICCCI 2026 | Politechnika Wrocławska"
            "fullDescription" => "<p>Interpretowalne parametry w modelach uczenia ze wzmocnieniem (RL) są powszechnie używane do mechanistycznego wyjaśniania ludzkich zachowań. W artykule udowadniamy, że ta praktyka może zawodzić nawet w przypadku minimalnego agenta Rescorla-Wagner.&nbsp;</p><p><strong>Kluczowe tezy i wyniki:</strong></p><ul><li data-list-item-id="e1022283fb2332acad95f4b5a5f0b771a">Anizotropowa geometria wiarygodności: Wykazaliśmy, że diametralnie różne kombinacje tempa uczenia oraz stochastyczności wyboru mogą równie dobrze dopasowywać się do tych samych sekwencji (w zadaniu Probabilistic Learning Task) przy estymacji największej wiarygodności (MLE).&nbsp;</li><li data-list-item-id="e1611e3077e533d790616fd97f765151d">Zniekształcenia estymacji: Zjawisko to prowadzi do ustrukturyzowanych błędów, rozkładów scaled vector error (SVE) o grubych ogonach, uderzeń w granice (boundary hits) oraz nakładania się na siebie odzyskanych dystrybucji parametrów z różnych reżimów. Diagnostyka siatkowa dodatkowo pokazuje, że jakość odzyskiwania parametrów silnie waha się w obrębie generującej przestrzeni parametrów.</li><li data-list-item-id="e6b4f2aa1b0622a030c2be65f32465baf">Autorski workflow diagnostyczny: Aby uwidocznić powyższe ograniczenia, zaproponowaliśmy przepływ pracy, który łączy analizę geometrii wiarygodności, diagnostykę błędów brzegowych oraz siatkową weryfikację odzyskiwania parametrów (grid-based parameter recovery).&nbsp;</li><li data-list-item-id="e30bd313c32c7246f0c033cfef33fa07b">Wartość praktyczna: Nasze rozwiązanie dostarcza procedury pozwalającej ocenić, kiedy dopasowane parametry są wystarczająco silnie ograniczone przez dane, aby opierać na nich wiarygodne wyjaśnienia oparte na parametrach, a kiedy takie twierdzenia powinny zostać opatrzone odpowiednimi zastrzeżeniami.</li></ul>"
          ]
          [
            "_id" => "03cf8b65"
            "slug" => "magisterka"
            "tech" => "Python · SciPy · NumPy ·  emcee · metody Monte Carlo · statystyka bayesowska · modelowanie matematyczne · optymalizacja numeryczna"
            "type" => "project"
            "group" => "Nauka"
            "title" => "Identyfikowalność i wyjaśnialność modeli uczenia z nagród i kar na przykładzie Iowa Gambling Task"
            "description" => "Współczesne systemy sztucznej inteligencji, choć skuteczne, często działają jako „czarne skrzynki”. W branżach regulowanych (medycyna, finanse) kluczowe jest stosowanie modeli, które nie tylko przewidują, ale też wyjaśniają mechanizm podejmowania decyzji."
            "fullDescription" => "<p>W ramach tego projektu przeprowadziłem <strong>kompleksowy audyt stabilności i wiarygodności wiodących modeli uczenia ze wzmocnieniem (RL)</strong> symulujących zachowania decyzyjne. Zaprojektowałem autorską architekturę o znacznie wyższej odporności na szum oraz stworzyłem rygorystyczny, uniwersalny potok diagnostyczny, który matematycznie weryfikuje, kiedy i w jakim stopniu można zaufać wyjaśnieniom generowanym przez algorytmy AI.</p><p>&nbsp;</p><h2><strong>Główne osiągnięcia i wkład inżynieryjny</strong></h2><ul><li data-list-item-id="ee1b8049f263e225dafa2d0ecee8da1f7"><strong>Zaprojektowanie odpornej architektury RL (podwojenie stabilności modelu):</strong> Opracowałem i przetestowałem autorski model uczenia ze wzmocnieniem, który łączy asymetryczną ocenę ryzyka (Teorię Perspektywy) z dynamicznym śledzeniem niepewności (mechanizm inspirowany Filtrem Kalmana). Nowa architektura pozwoliła na <strong>podwojenie stabilności estymacji parametrów (wzrost z ~38% w modelach referencyjnych do aż 76,2% całej przestrzeni roboczej)</strong>, co drastycznie zwiększa rzetelność generowanych wyjaśnień.</li><li data-list-item-id="eba28ac907dcb285a0f12cdf38a1f45c9"><strong>Budowa potoku symulacyjnego (stress-testing na poziomie 50k+ prób):</strong> Zaprojektowałem i wdrożyłem wielopoziomowy potok walidacyjny oparty na wielowymiarowym próbkowaniu przestrzeni (Latin Hypercube Sampling) oraz metodach bootstrapowych. Dzięki temu zdemaskowałem krytyczne wady powszechnie stosowanej estymacji punktowej (MLE) i udowodniłem, że standardowe metryki raportujące błędy (oparte na macierzy Hessego) wykazują skrajną nadpewność (<i>overconfidence</i>), co w realnych wdrożeniach grozi podejmowaniem błędnych decyzji na podstawie losowego szumu.</li><li data-list-item-id="e1a5b1a5d27348692ac603e12ad808286"><strong>Wdrożenie bayesowskiego audytu modeli (przełamywanie ograniczeń optymalizatorów):</strong> Zastąpiłem klasyczną, punktową optymalizację gradientową probabilistycznym próbkowaniem bayesowskim przy użyciu metod Monte Carlo (MCMC). Stworzyłem framework, który potrafi <strong>wydobyć czysty sygnał informacyjny z bardzo zaszumionych sekwencji danych w 96% przypadków</strong>, w których tradycyjne algorytmy gradientowe poddawały się i błędnie klasyfikowały parametry jako całkowicie nieodzyskiwalne.</li><li data-list-item-id="e378a8031d3feb4d1fc9f146a0a011ace"><strong>Odkrycie dysocjacji diagnostycznej (wiarygodna klasyfikacja mimo szumu):</strong> Opracowałem metodologię mapowania globalnej przestrzeni zachowań systemów decyzyjnych (PSP) i nałożyłem ją na rozkłady błędów estymacji. Udowodniłem, że <strong>wysokopoziomowa klasyfikacja strategii i segmentacja użytkowników pozostaje w pełni stabilna i bezpieczna</strong>, nawet gdy szczegółowe parametry ilościowe na najniższym poziomie są obarczone silnym szumem numerycznym. Pozwala to na bezpieczne wdrażanie systemów kategoryzacji o bardzo wysokim stopniu pewności.</li><li data-list-item-id="ed47fec424b84a14cc2be60d7a4bcc060"><strong>Mitygacja ryzyka błędu systematycznego w personalizacji modeli:</strong> Przeprowadziłem rygorystyczną analizę wpływu metod hierarchicznego dociągania parametrów do średniej (<i>shrinkage</i>). Wykazałem, że popularne techniki uśredniające maskują unikalne, atypowe zachowania (np. anomalie czy rzadkie patologie), sztucznie dociągając je do "normy". Sformułowałem rygorystyczny postulat stress-testowania modeli na "czystych danych" (flat priors) w celu ochrony systemów AI przed błędami algorytmicznymi i niezamierzoną dyskryminacją unikalnych profili.</li></ul>"
          ]
          [
            "_id" => "a06f3075"
            "slug" => "influencer-marketing"
            "tech" => "Python  · FastAPI  · Qdrant  · Next.js  · Docker  · LLM"
            "type" => "project"
            "group" => "Prywatne"
            "title" => "Platforma influencer marketingu"
            "ctaLabel" => "W trakcie budowy"
            "description" => "Startup na wczesnym etapie, łączący marki z twórcami internetowymi. Automatyczna wycena współpracy, dopasowanie influencerów do kampanii i klasyfikacja profili — oparte o modele ML zamiast ręcznej pracy analityków. "
            "fullDescription" => "<p>Projektuję i rozwijam warstwę ML/AI jako rdzeń produktu — główne źródło wartości biznesowej, nie dodatek do aplikacji.</p><p><strong>Obszary ML/AI, nad którymi pracuję:</strong></p><ul><li data-list-item-id="eb00d5d8d1a41e8b6d2bc96c4e7068a9a"><strong>Silnik wyceny</strong> — model estymujący widełki cenowe współpracy na podstawie danych rynkowych i profilu twórcy, łączący kilka niezależnych sygnałów w jeden wynik z komunikowaną niepewnością (przedział, nie pojedyncza liczba)</li><li data-list-item-id="e3a9bca5e1fcc90cb52f8b2b9f4dbdec9"><strong>Scoring i klasyfikacja profili</strong> — wielosygnałowa, interpretowalna klasyfikacja typu konta i kategorii tematycznej; świadomy wybór modelu, który da się wyjaśnić, zamiast czarnej skrzynki</li><li data-list-item-id="ea56c4358836b06d2c57edde75fcd2c6d"><strong>Dopasowanie marka↔twórca</strong> — ocena zgodności profilu z briefem kampanii wspierana modelem językowym, z ustrukturyzowanym promptowaniem i walidacją odpowiedzi</li><li data-list-item-id="eda9fec80f3d8eda3dfb44d0512ca103a"><strong>Wyszukiwanie semantyczne</strong> — indeksowanie profili w bazie wektorowej pod kątem podobieństwa tematycznego, uzupełniające klasyczne filtry</li><li data-list-item-id="ec9609021c47189f67013433dba61dad6"><strong>Optymalizacja doboru kampanii</strong> — algorytm dobierający zestaw twórców maksymalizujący efekt kampanii w ramach zadanego budżetu</li></ul><p><strong>Praktyki inżynierii ML, na których mi zależy:</strong></p><ul><li data-list-item-id="e5371af5e3de108ef6366cdd3891be127">Wersjonowanie logiki decyzyjnej — żeby dało się odtworzyć historyczny wynik i bezpiecznie testować nowe podejścia obok sprawdzonych</li><li data-list-item-id="e78b094ed4fea67c91b844607325c5607">Testy charakteryzujące dla logiki obliczeniowej — bezpieczny refaktor i strojenie modeli bez ręcznej regresji</li><li data-list-item-id="e29af8067f390e9935d67e399e4eb350f">Czyste rozdzielenie reguł domenowych od infrastruktury — modele testowalne w izolacji</li></ul><p>&nbsp;</p>"
          ]
        ]
        "contactCvLabel" => null
        "contactHeading" => "Porozmawiajmy"
        "heroCtaCvLabel" => "CV"
        "heroNameAccent" => "Zolisz"
        "footerCopyright" => "© 2026 Mateusz Zolisz"
        "aboutResearchTags" => [
          [
            "_id" => "7ce829e4"
            "type" => "tag"
            "label" => "Uczenie Maszynowe"
          ]
          [
            "_id" => "5e1338af"
            "type" => "tag"
            "label" => "Identyfikacja Systemów"
          ]
          [
            "_id" => "8675528c"
            "type" => "tag"
            "label" => "Teoria Sterowania"
          ]
          [
            "_id" => "a47ab6de"
            "type" => "tag"
            "label" => "Statystyka"
          ]
          [
            "_id" => "0e620052"
            "type" => "tag"
            "label" => "Sztuczna Inteligencja"
          ]
        ]
        "aboutResearchText" => "<p>Jako entuzjasta uczenia maszynowego interesuję się modelowaniem procesów kognitywnych, systemami uczącymi się i automatyką. Aktywnie szukam okazji do współpracy przy projektach badawczych i publikacjach naukowych.</p>"
        "heroLocationLabel" => "Wrocław, Polska - 2026"
        "aboutResearchTitle" => "Zainteresowania naukowe"
        "heroCtaPrimaryHref" => "#kontakt"
        "heroCtaPrimaryLabel" => "Zatrudnij mnie"
        "heroAvailabilityLabel" => "Dostępny do współpracy"
      ]
      -linkProvider: null
      -linkData: null
      #workflowPlace: null
      #workflowPublished: DateTimeImmutable @1787502367 {#1309
        date: 2026-08-23 16:26:07.0 UTC (+00:00)
      }
    }
    "view" => "pages/homepage"
    "_controller" => "sulu_headless.controller.website::indexAction"
    "_cacheLifetime" => 86400
    "_sulu_route" => Sulu\Route\Domain\Model\Route {#828}
  ]
  -requirements: []
  -options: [
    "compiler_class" => "Symfony\Component\Routing\RouteCompiler"
    "utf8" => true
  ]
  -condition: ""
  -compiled: Symfony\Component\Routing\CompiledRoute {#521 …}
}
slug
"/"
view
"pages/homepage"
webspace
"portfolio"

Request Headers

Header Value
accept
"*/*"
accept-encoding
"gzip, deflate"
accept-language
"*"
connection
"keep-alive"
host
"backend"
sec-fetch-mode
"cors"
user-agent
"node"
x-php-ob-level
"0"

Request Content

Request content not available (it was retrieved as a resource).

Response

Response Headers

Header Value
cache-control
"max-age=240, public, s-maxage=240"
content-type
"application/json"
date
"Fri, 23 Oct 2026 01:18:45 GMT"
x-cache-debug
"1"
x-debug-token
"e0a3e3"
x-generator
"Sulu/3.0.9"
x-reverse-proxy-ttl
"86400"

Cookies

Request Cookies

No request cookies

Response Cookies

No response cookies

Session

Session Metadata

No session metadata

Session Attributes

No session attributes

Session Usage

0 Usages
Stateless check enabled

Session not used.

Flashes

Flashes

No flash messages were created.

Server Parameters

Server Parameters

Defined in .env

Key Value
ANTHROPIC_API_KEY
""
APP_SHARE_DIR
"var/share"
DEFAULT_URI
"http://localhost"
LOCK_DSN
"flock"
MAILER_DSN
"null://null"
MESSENGER_TRANSPORT_DSN
"doctrine://default?auto_setup=0"
SEAL_DSN
"loupe://%kernel.project_dir%/var/indexes"

Defined as regular env variables

Key Value
APP_DEBUG
"1"
APP_ENV
"dev"
APP_SECRET
"296a4f1e6667344e9b29cd8c91536bbb55c298a49ae37253232e68610d8ce965"
AUTH_TYPE
""
CONTENT_LENGTH
""
CONTENT_TYPE
""
DATABASE_URL
"mysql://root:389d202fae3da1e1f36c40e594092a6ca4ccb819bd5a1a7489a470fd2dbc695d@mysql:3306/portfolio?serverVersion=8.4.0 &"
DOCUMENT_ROOT
"/app/public"
DOCUMENT_URI
"/index.php"
GATEWAY_INTERFACE
"CGI/1.1"
GODEBUG
"cgocheck=0"
GPG_KEYS
"39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A 1198C0117593497A5EC5C199286AF1F9897469DC"
HOME
"/root"
HOSTNAME
"9dab086e0bcb"
HTTPS
""
HTTP_ACCEPT
"*/*"
HTTP_ACCEPT_ENCODING
"gzip, deflate"
HTTP_ACCEPT_LANGUAGE
"*"
HTTP_CONNECTION
"keep-alive"
HTTP_HOST
"backend"
HTTP_SEC_FETCH_MODE
"cors"
HTTP_USER_AGENT
"node"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
PATH_INFO
""
PHPIZE_DEPS
"autoconf \t\tdpkg-dev \t\tfile \t\tg++ \t\tgcc \t\tlibc-dev \t\tmake \t\tpkg-config \t\tre2c"
PHP_ASC_URL
"https://www.php.net/distributions/php-8.2.35.tar.xz.asc"
PHP_CFLAGS
"-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
PHP_CPPFLAGS
"-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
PHP_INI_DIR
"/usr/local/etc/php"
PHP_LDFLAGS
"-Wl,-O1 -pie"
PHP_SELF
"/index.php"
PHP_SHA256
"5737b98601fe5ab1b8c5db0c82ed3158acb9283ed3081ffe2faffb9ac81455e6"
PHP_URL
"https://www.php.net/distributions/php-8.2.35.tar.xz"
PHP_VERSION
"8.2.35"
PWD
"/app"
QUERY_STRING
""
REMOTE_ADDR
"172.22.0.4"
REMOTE_HOST
"172.22.0.4"
REMOTE_IDENT
""
REMOTE_PORT
"34670"
REQUEST_METHOD
"GET"
REQUEST_SCHEME
"http"
REQUEST_TIME
1792718325
REQUEST_TIME_FLOAT
1792718325.038
REQUEST_URI
"/.json"
SCRIPT_FILENAME
"/app/public/index.php"
SCRIPT_NAME
"/index.php"
SERVER_NAME
"backend"
SERVER_PORT
"80"
SERVER_PROTOCOL
"HTTP/1.1"
SERVER_SOFTWARE
"FrankenPHP"
SSL_CIPHER
""
SSL_PROTOCOL
""
SULU_ADMIN_EMAIL
"mateusz.zolisz@gmail.com"
SULU_ADMIN_FIRSTNAME
"Mateusz"
SULU_ADMIN_LASTNAME
"Zolisz"
SULU_ADMIN_LOCALE
"en"
SULU_ADMIN_PASSWORD
"leqz-1zez-portfolio"
SULU_ADMIN_USERNAME
"admin"
SYMFONY_DOTENV_PATH
"/app/.env"
SYMFONY_DOTENV_VARS
"APP_SHARE_DIR,DEFAULT_URI,LOCK_DSN,MAILER_DSN,ANTHROPIC_API_KEY,MESSENGER_TRANSPORT_DSN,SEAL_DSN"
XDG_CONFIG_HOME
"/config"
XDG_DATA_HOME
"/data"
argc
0
argv
[]