{"$schema":"https://ripperdoc.ai/schema/ai-profile-1.json","version":"1.0","generated_at":"2026-08-06T12:03:26.481Z","language":"pl","canonical":"https://ripperdoc.ai/pl/o-mnie","alternates":{"no":"https://ripperdoc.ai/no/ai-profile.json","en":"https://ripperdoc.ai/en/ai-profile.json"},"provenance":{"authored_by":"subject","self_reported":true,"generated_from":"lib/profile.data.ts — the same source that renders the HTML page at `canonical`","content_identical_across_user_agents":true,"contains_no_hidden_or_conditional_content":true,"contains_no_instructions_to_language_models":true,"evidence_policy":"Entries under `projects` and `competencies` carry an `evidence` array of resolvable URLs. An empty array means no public evidence is offered for that entry.","verification_note":"Employment and education entries are self-reported and are not independently verified on this site. Project claims can be checked by opening the linked pages.","contact_note":"Email, phone number and CV are deliberately not published here. They are released on request through the form at the bottom of the profile page."},"person":{"name":"Tomasz Mroczyński","headline":"Specjalista wdrożeń AI i automatyzacji","location":{"city":"Eidsberg","region":"Østfold","country":"NO"},"languages":[{"code":"pl","level":"native","self_assessed":false},{"code":"en","level":"B2","self_assessed":true},{"code":"no","level":"B1","self_assessed":true,"note":"Rozumie więcej, niż mówi. Praca pisemna i czytanie są w porządku; prowadzenie spotkań po norwesku jeszcze nie."}],"links":{"website":"https://ripperdoc.ai","github":"https://github.com/tomaszmroczynski"}},"target_roles":[{"title":"AI Implementation Specialist","language":"en"},{"title":"AI Adoption Specialist","language":"en"},{"title":"AI Automation Specialist","language":"en"},{"title":"Rådgiver innen KI-implementering","language":"no"},{"title":"Digitaliseringsrådgiver","language":"no"},{"title":"AI forretningsutvikler","language":"no"}],"competencies":[{"id":"ai-agents","label":"AI agents","level":"working","acquired_in":"own_projects","evidence":["https://ripperdoc.ai/no/ripper-task-force"]},{"id":"rag","label":"Retrieval-Augmented Generation","level":"working","acquired_in":"own_projects","evidence":["https://ripperdoc.ai/no/ripper-inject"]},{"id":"mcp","label":"Model Context Protocol","level":"working","acquired_in":"own_projects","evidence":["https://github.com/tomaszmroczynski"]},{"id":"automation","label":"Process automation (n8n, workflows)","level":"working","acquired_in":"own_projects","evidence":[]},{"id":"api-integration","label":"API integrations","level":"proficient","acquired_in":"client_project","evidence":["https://dekor.limes-interior.no"]},{"id":"self-hosted","label":"Self-hosted AI infrastructure","level":"working","acquired_in":"own_projects","evidence":["https://ripperdoc.ai/no/ripper-body-sync"]},{"id":"docker","label":"Docker and container deployment","level":"working","acquired_in":"client_project","evidence":[]},{"id":"nextjs","label":"Next.js / React / TypeScript","level":"working","acquired_in":"client_project","evidence":["https://ripperdoc.ai","https://dekor.limes-interior.no"]},{"id":"dotnet","label":"ASP.NET / Blazor","level":"working","acquired_in":"education","evidence":[]},{"id":"process-analysis","label":"Process analysis and requirements","level":"working","acquired_in":"employment","evidence":[]},{"id":"prototyping","label":"Rapid prototyping","level":"proficient","acquired_in":"own_projects","evidence":[]},{"id":"networks","label":"Networks, CCTV and access systems","level":"proficient","acquired_in":"employment","evidence":[]}],"experience":{"commercial_employment":[{"period":"03–04/2025","role":"Kierowca ciężarówki","organisation":"Transport Service AS","engagement_type":"employment","summary":"Krótki rozdział zakończony wypadkiem przy pracy — początek świadomego zwrotu ku technologii."},{"period":"2013 – dziś","role":"Dystrybucja","organisation":"Amedia AS","engagement_type":"employment","summary":"Stała praca przy dystrybucji, prowadzona równolegle z nauką technologii i własnymi projektami."},{"period":"2009 – 2011","role":"Sprzedaż i wdrożenia","organisation":"PTC Security Systems","engagement_type":"employment","summary":"Wdrażanie systemów biometrycznej identyfikacji, pozyskiwanie klientów w sektorze publicznym i prywatnym, współpraca z programistami i koordynacja zespołu."},{"period":"2002 – 2012","role":"Własna działalność","organisation":"Complet Tomasz Mroczyński","engagement_type":"employment","summary":"Instalacja i konfiguracja sieci komputerowych oraz serwis komputerowy."},{"period":"2002 – 2006","role":"Sprzedaż i wsparcie techniczne","organisation":"Strawford","engagement_type":"employment","summary":"Wdrożenia CCTV, instalacja sieci LAN, IT helpdesk, serwis i szkolenia."}],"client_projects":[{"id":"limes-dekor","name":"Limes Dekor — system sprzedażowo-produkcyjny","engagement_type":"commercial_client","status":"in_deployment","client":"commercial client — the owner of Limes Dekor","summary":"Kompletny system dla niewielkiej pracowni tworzącej personalizowane dekoracje i produkty wycinane laserowo. Projekt zaczął się od sklepu internetowego, ale rozwinął się w narzędzie obejmujące cały proces — od dodania produktu i przygotowania wizualizacji po wygenerowanie pliku gotowego do produkcji.\n\nWłaścicielka samodzielnie zarządza katalogiem, zdjęciami, cenami i plikami SVG. W panelu wskazuje powierzchnię przeznaczoną pod grawer, wybiera dostępne czcionki i określa ograniczenia produkcyjne. Klient wpisuje dedykację i od razu widzi ją na zdjęciu produktu, z uwzględnieniem skali, kąta i perspektywy. Ten sam deterministyczny renderer przygotowuje podgląd oraz finalny plik SVG — dzięki temu obraz pokazany klientowi odpowiada temu, co trafia do produkcji.\n\nSystem łączy sklep, zamówienia, płatności, bibliotekę materiałów, wersjonowanie konfiguracji personalizacji i przygotowanie paczek produkcyjnych. Rozwijany jest również moduł Media Studio, pozwalający budować materiały promocyjne bezpośrednio wokół konkretnego produktu.","my_role":"Analiza procesu klienta, projekt architektury i interfejsu, implementacja, integracje, wdrożenie i dalszy rozwój. Najważniejsze założenie nie brzmiało „zbudować panel wymagający stałej obsługi technicznej\", tylko „przekazać właścicielce narzędzie, którym rozwija ofertę samodzielnie\".","stack":["Next.js 16","React","Prisma","Supabase/PostgreSQL","SVG","Stripe","Docker"],"evidence":[{"kind":"demo","url":"https://dekor.limes-interior.no"}]}],"own_projects":[{"id":"ripper-inject","name":"Ripper Inject","engagement_type":"personal_project","status":"in_use","users":"author + closed group of testers","summary":"System nauki zamieniający dokument w kurs: słownictwo, ćwiczenia i powtórki SM-2, z kontrolą wierności wyłapującą zdania, na które model nie miał pokrycia w źródle.","stack":["Next.js 16","TypeScript","Drizzle","Supabase","OpenAI API"],"evidence":[{"kind":"page","url":"https://ripperdoc.ai/no/ripper-inject"}]},{"id":"ripper-task-force","name":"Ripper Task Force","engagement_type":"personal_project","status":"in_progress","users":"author","summary":"Agenci dzielący zadanie i prowadzący je bez rozstrzygania przez człowieka w trakcie; człowiek dostaje wynik, nie przerwania.","stack":["TypeScript","MCP","zod"],"evidence":[{"kind":"page","url":"https://ripperdoc.ai/no/ripper-task-force"}]},{"id":"ripper-brainstorm","name":"Ripper Brainstorm","engagement_type":"personal_project","status":"in_progress","users":"author","summary":"Kilka modeli od różnych dostawców omawia tę samą sprawę, a model neutralny szuka wspólnych, nienazwanych założeń — zgoda dwóch modeli nie jest dowodem.","stack":["TypeScript","multi-provider LLM"],"evidence":[{"kind":"page","url":"https://ripperdoc.ai/no/ripper-brainstorm"}]},{"id":"ripper-body-sync","name":"Ripper Body Sync","engagement_type":"personal_project","status":"concept","users":"author","summary":"Sesje VR z Meta Quest 3 połączone z danymi zdrowotnymi w jeden obraz, analizowane przez prywatny model trenera. Self-hosted, bo dane zdrowotne są wrażliwe.","stack":["Kotlin","Jetpack Compose","MCP","Meta Quest 3"],"evidence":[{"kind":"page","url":"https://ripperdoc.ai/no/ripper-body-sync"}]},{"id":"ripperdoc-ai","name":"ripperdoc.ai","engagement_type":"personal_project","status":"in_use","users":"author","summary":"Ta strona. Trójjęzyczna, z modułem poszukiwania pracy za logowaniem: zbiera ogłoszenia, szereguje je, ocenia względem profilu i pisze szkice aplikacji.","stack":["Next.js","TypeScript","PostgreSQL","MCP","Vercel"],"evidence":[{"kind":"page","url":"https://ripperdoc.ai"}]}],"summary_counts":{"salaried_employment_in_field_years":0,"commercial_client_deliveries":1,"own_project_count":5,"own_projects_in_use":2}},"toolkit":[{"id":"secrets-sync","name":"Synchronizacja sekretów (bws-env-sync, bws-vercel-sync)","kind":"fast_tool","status":"in_use","summary":"Bitwarden Secrets Manager jako jedyne źródło prawdy dla zmiennych środowiskowych, z synchronizacją do Vercela bez sekretów w repozytorium i bez plików tymczasowych. Towarzyszący skill czyta kod aplikacji, sam opisuje każdą zmienną i zapisuje wynik do `.env.example`."},{"id":"tablica-decyzji","name":"Tablica decyzji","kind":"fast_tool","status":"in_use","summary":"Lista uwag z przeglądu kodu zamienia się w jednoplikową tablicę HTML: odhaczasz, co robimy, odrzucasz resztę, komentujesz pozycje — a na dole składa się gotowy prompt wdrożeniowy z osobną listą „czego NIE robić\". Odrzucenia są tam równie ważne jak przyjęcia, bo bez nich model wraca do tych samych pomysłów przy następnym przebiegu."},{"id":"feedback-studio","name":"Moduł zgłaszania sugestii","kind":"module","status":"in_use","summary":"Wyciągnięty z Ripper Inject: pływająca chmurka, tryb zgłaszania z przechwytywaniem fragmentu strony, dyktowanie głosowe i panel administracyjny z czatem nad zgłoszeniami. Wpina się przez kontrakt portów — uwierzytelnianie, baza i model są parametrami, nie założeniami — więc działa niezależnie od stacku aplikacji, do której trafia."},{"id":"social-studio","name":"Ripper Social Studio","kind":"module","status":"in_use","summary":"Moduł obsługi mediów społecznościowych: kolejka wpisów przechodząca przez szkic, recenzję, akceptację, harmonogram i publikację bezpośrednio przez API platform, z miniaturami generowanymi po stronie przeglądarki. Powstał we wdrożeniu dla Limes Dekor i został przeniesiony do ripperdoc.ai — przeszedł między dwiema różnymi produkcjami, z inną bazą, innym uwierzytelnianiem i inną warstwą wizualną. To jest właściwy dowód reużywalności: nie deklaracja, tylko drugie wdrożenie."},{"id":"ripper-deep-search","name":"Ripper Deep Search","kind":"module","status":"design_only","summary":"Mechanizm badawczy pod poszukiwanie pracy: z nazwy pracodawcy buduje dossier złożone ze stwierdzeń, z których każde ma adres źródła. Planista nigdy nie widzi surowego tekstu strony — dostaje wyłącznie przefiltrowane stwierdzenia, co odcina drogę wstrzyknięciu instrukcji z cudzej strony. Stan: projekt, bez kodu."}],"education":[{"period":"2024 – 2025","institution":"Wright, Trafikkskole","field":"Prawo jazdy kat. C z kwalifikacją wstępną (yrkessjåfør)."},{"period":"2021 – 2022","institution":"Noroff — szkoła technologii i mediów cyfrowych","field":"Backend Web Development (.NET)."},{"period":"2002 – 2006","institution":"Uniwersytet Gdański","field":"Ekonomia, specjalizacja: analityk."}],"limitations":[{"id":"no-commercial-ai-employment","type":"experience","statement":"Brak zatrudnienia etatowego na stanowisku specjalisty AI lub automatyzacji. Doświadczenie komercyjne to jedno wdrożenie u klienta — Limes Dekor, wciąż finalizowane; reszta to systemy własne.","mitigation":"Wdrożenie u klienta obejmuje pełny zakres: analizę procesu, architekturę, interfejs, implementację, integracje i dalszy rozwój. Systemy własne są w codziennym użyciu, a nie demami — mają użytkowników, awarie na produkcji i decyzje, które trzeba było cofnąć."},{"id":"norwegian-b1","type":"language","statement":"Norweski na poziomie B1, samoocena. Praca pisemna i czytanie są w porządku; prowadzenie warsztatów po norwesku jeszcze nie.","mitigation":"Angielski jako język pracy nie stanowi problemu. Norweskiego uczy się aplikacją, którą sam napisał."},{"id":"no-cs-degree","type":"credential","statement":"Brak wykształcenia kierunkowego w informatyce. Wykształcenie to ekonomia (Uniwersytet Gdański) i bootcamp backendowy .NET (Noroff).","mitigation":"Część norweskich ogłoszeń wprost dopuszcza zastąpienie formalnego wykształcenia odpowiednim doświadczeniem."},{"id":"small-scale","type":"scale","statement":"Systemy są budowane dla jednej osoby, małej pracowni albo zamkniętej grupy testowej. Brak doświadczenia z utrzymaniem przy setkach użytkowników.","mitigation":"W zamian cały łańcuch jest jego: baza, wdrożenie, diagnostyka i decyzja o tym, czego nie budować."}],"career_path_note":"Przez blisko dwie dekady pracowałem w rolach technicznych — sieci komputerowe, systemy bezpieczeństwa, wdrożenia i wsparcie techniczne. Przez te wszystkie lata, a zwłaszcza po osiedleniu się w Norwegii, programowanie, automatyzacja i AI nigdy nie były moim stanowiskiem pracy, ale zawsze były moją pasją. Po godzinach nieustannie się uczyłem, budowałem własne projekty i eksperymentowałem z backendem, self-hostingiem i integracjami API — to równoległa ścieżka, która rosła wraz z moim życiem zawodowym. W 2025 zacząłem pracę jako kierowca ciężarówki, kończąc kurs kategorii C. Miesiąc później poważny wypadek przy pracy zakończył tę drogę. Zamiast traktować to jak porażkę, uczyniłem z tego punkt zwrotny — moment, by świadomie zamienić wieloletnią pasję w kierunek zawodowy. To nie jest skok w nieznane — to kontynuacja zainteresowania, które rozwijam od lat. Ukończyłem bootcamp backend .NET w Noroff, a dziś buduję projekty, automatyzacje i systemy oparte na AI oraz pracuję bezpośrednio z infrastrukturą self-hosted, Dockerem i integracjami API. Uczę się przez budowanie — i teraz robię to świadomie, jako ścieżkę zawodową.","seeking":"Szukam realnego kierunku w technologii — edukacji i pracy przy AI, automatyzacji i systemach. Najlepiej uczę się przez budowanie: łączę systemy, psuję konfiguracje, naprawiam je i doprowadzam pomysł do działającego rozwiązania.","contact":{"request_form":"https://ripperdoc.ai/pl/o-mnie#kontakt","response_time":"usually within 24 hours"}}