Tomasz Mroczyński
Buduję rozwiązania, które wzmacniają człowieka.
Wchodzę w technologię nie z dyplomu, lecz z potrzeby zbudowania czegoś od nowa. Dekada pracy technicznej — sieci, CCTV, helpdesk, wdrożenia — a potem jedenaście lat w dystrybucji, przez które technologia była tym, co robiłem po godzinach. Dziś jest tym, co robię: AI, automatyzacja i systemy self-hosted.
01Punkt zwrotny
Przez dekadę pracowałem w rolach technicznych — sieci komputerowe, systemy bezpieczeństwa, wdrożenia i wsparcie techniczne. Potem przyszło jedenaście lat w dystrybucji i to jest ta część życiorysu, w której technologia nie była moim stanowiskiem pracy. Była tym, co robiłem po godzinach — zwłaszcza po osiedleniu się w Norwegii: uczyłem się, budowałem własne projekty, eksperymentowałem z backendem, self-hostingiem i integracjami API. Równoległa ścieżka, która w końcu stała się tą główną.
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ą.
02Projekty
Dwa z poniższych systemów powstały na zlecenie: Sammen i Norge i Limes Dekor. Pozostałe zbudowałem na własne potrzeby i rozwijam w codziennym użyciu albo w zamkniętych testach. Przy każdym podaję rzeczywisty status, użytkowników i możliwy do sprawdzenia dowód działania — jeżeli odnośnika nie ma, znaczy to, że nie mam czego pokazać, a nie że zapomniałem.
- u klientaProjekt dla organizacji
Sammen i Norge / SiN Studio
Trójjęzyczny serwis stowarzyszenia w Drammen, rozwinięty z wizytówki w system wspierający zarządzanie: projekty, wydarzenia, wolontariat, członkostwo i własny CMS z rolami.
Moja rola: Autor pierwotnego serwisu i całej dalszej rozbudowy — od wizytówki po system wspierający zarządzanie organizacją: architektura informacji, UX/UI, model treści i uprawnień, implementacja, migracja danych, wdrożenie i rozwój.
Next.js 16React 19Payload CMS 3PostgreSQL / SupabaseVerceli18n - w budowie
Limes Dekor
Sklep, zamówienia, płatności i pliki produkcyjne dla pracowni z produktami wycinanymi laserowo. Ten sam renderer składa podgląd dla klienta i finalny plik SVG.
Moja rola: Proces, architektura, interfejs, implementacja i wdrożenie — całość po mojej stronie.
Limes Dekor to firma mojej partnerki. Zlecenie i jego zakres są prawdziwe, ale to nie jest referencja niezależna — nie sprawdzisz jej u kogoś, kto nie ma ze mną nic wspólnego.
Next.js 16ReactPrismaSupabase/PostgreSQLSVGStripeDocker - w użyciu
Ripper Inject
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.
Next.js 16TypeScriptDrizzleSupabaseOpenAI API - koncepcja
Ripper Task Force
Agenci dzielący zadanie i prowadzący je bez rozstrzygania przez człowieka w trakcie; człowiek dostaje wynik, nie przerwania.
TypeScriptMCPzod - w użyciu
Ripper Brainstorm
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.
TypeScriptmulti-provider LLM - koncepcja
Ripper Body Sync
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.
KotlinJetpack ComposeMCPMeta Quest 3 - w użyciu
ripperdoc.ai
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.
Next.jsTypeScriptPostgreSQLMCPVercel
03Warsztat
Co sprawdzi się w jednym projekcie, wyciągam do wspólnej biblioteki — jako moduł albo małe narzędzie. Kolejne wdrożenie nie zaczyna się wtedy od pustej strony: gotowy kawałek jest jednocześnie punktem wyjścia i kontekstem, na którym opieram nowe rozwiązanie. Każdy następny system powstaje szybciej i ze sprawdzonych części.
Publicznie: mój fork serwera MCP dla finn.no — limitowanie żądań, ograniczenie rozrostu bazy i awaryjny odczyt ogłoszeń, gdy serwis przestał wysyłać dane strukturalne. Wraz z pull requestem do autora oryginału. github.com/tomaszmroczynski/finn-mcp
04Co potrafię
Łączę technologię, projektowanie i praktyczne podejście do rozwiązywania problemów. Tworzę aplikacje i automatyzacje, które nie kończą się na dobrze wyglądającym interfejsie — mają usprawniać pracę i prowadzić do konkretnego rezultatu.
Potrafię przeprowadzić pomysł przez cały proces: od koncepcji i projektu, przez aplikację, bazę danych oraz integracje, aż po uruchomienie rozwiązania na własnej infrastrukturze.
Pracuję z technologiami webowymi, AI, automatyzacją i systemami opartymi na wiedzy. Łączę je również ze światem fizycznym — personalizacją produktów, grafiką, modelowaniem i drukiem 3D.
Moją mocną stroną jest patrzenie na projekt jako na całość. Szybko uczę się nowych narzędzi, szukam prostszych sposobów działania i potrafię połączyć elementy z różnych dziedzin w jeden spójny, działający system.
Kod, który da się otworzyć: fork serwera MCP dla finn.no github.com/tomaszmroczynski/finn-mcp
05Doświadczenie
- 2025 – dziś
Praca własna — Ripperdoc · Ripperdoc
Projektowanie i budowa systemów opartych na AI, automatyzacji i integracjach — systemy własne oraz zlecenia dla klientów (Limes Dekor, Sammen i Norge).
- 03–04/2025
Kierowca ciężarówki · Transport Service AS
Krótki rozdział zakończony wypadkiem przy pracy — początek świadomego zwrotu ku technologii.
- 09/2024 – 03/2025
Przerwa w zatrudnieniu · —
W tym okresie bez pracy zarobkowej.
- 2013 – 2024
Dystrybucja · Amedia AS
Stała praca przy dystrybucji, prowadzona równolegle z nauką technologii i własnymi projektami. Od 2021 do 2024 równocześnie przewodniczący koła Fellesforbundet: reprezentowanie pracowników w negocjacjach z pracodawcą w sprawach wynagrodzeń i warunków pracy.
- 2009 – 2011
Sprzedaż i wdrożenia · PTC Security Systems
Wdrażanie systemów biometrycznej identyfikacji, pozyskiwanie klientów w sektorze publicznym i prywatnym, współpraca z programistami i koordynacja zespołu.
- 2002 – 2012
Własna działalność · Complet Tomasz Mroczyński
Instalacja i konfiguracja sieci komputerowych oraz serwis komputerowy — cały łańcuch od klienta po utrzymanie.
- 2002 – 2006
Sprzedaż i wsparcie techniczne · Strawford
Wdrożenia CCTV, instalacja sieci LAN, IT helpdesk, serwis i szkolenia.
06Wykształcenie
- 2021 – 2022
Noroff — szkoła technologii i mediów cyfrowych
Backend Web Development (.NET).
- 2002 – 2006
Uniwersytet Gdański
Ekonomia, specjalizacja: analityk.
07Jak prowadzę pracę
Nie piszę tego wszystkiego sam. Pracuję z modelami tak, jak pracowałbym z zespołem specjalistów: stawiam problem, słucham propozycji i rozstrzygam — razem z kosztem rozstrzygnięcia. Wartość nie leży w tym, kto szybciej pisze kod. Leży w tym, kto zadaje właściwe pytanie i kto mówi „nie" — również sobie.
Jestem monotropowy. Moja uwaga nie rozkłada się po kilku sprawach naraz — zbiera się w jednej i schodzi w nią do dna. To profil neuroróżnorodny i mówię o nim wprost, bo jest najmocniejszą rzeczą, jaką wnoszę do pracy: zdolnością zejścia głębiej, niż sięga zwykła ciekawość, i pozostania tam, aż problem ustąpi.
Stąd „monotropowy generalista". Szerokość wzięła się z kolejnych zejść na dno, nie z próbowania wszystkiego po trochu. Najpierw sieci, systemy bezpieczeństwa i wdrożenia. Potem jedenaście lat pracy, przy której technologia była tym, co robiłem po godzinach. Teraz AI. Za każdym razem jedna rzecz, długo i całym sobą — i za każdym razem zostaje warsztat, który przenosi się dalej.
Jak z tego korzystać: dać mi problem, a nie listę zadań. Jeden priorytet zamiast pięciu równoległych, całe bloki czasu i kontekst na piśmie. Wtedy dostajesz rzecz rozwiązaną u podstawy i nową dziedzinę opanowaną szybciej, niż zakładałeś. Dzień posiekany na spotkania i pięć równoległych wątków marnuje dokładnie tę cechę, po którą się po mnie sięga.
Usuwamy tarcie administracyjne, zachowujemy tarcie refleksji.
2026-06-18
Co należy do rdzenia produktu, a co jest dodatkiem?
Przy każdej propozycji rozbudowy wracała ta sama dyskusja, rozstrzygana za każdym razem od nowa.
Czy produkt traci integralność albo tożsamość, gdy to usuniesz? Jeśli bez tego działa w pełni — to rozszerzenie, opcjonalne i domyślnie wyłączone.
Koszt · krótsza lista funkcji w rdzeniu. Zysk: kryterium, które rozstrzyga także beze mnie.
2026-06-18
Czy zgoda dwóch modeli jest dowodem, że mają rację?
Gdy dwa niezależne modele dochodzą do tego samego wniosku, sprawa jest rozstrzygnięta. Tak działa większość rozwiązań wielomodelowych: zgodność traktują jako wynik.
Zgoda bywa pozorna. Oba głosy mogą milcząco przyjąć to samo błędne założenie i zgodzić się właśnie dlatego, że dzielą ten sam ślepy punkt. Neutralny model dostał więc zadanie wskazywania nie tylko różnic, ale przede wszystkim WSPÓLNYCH, NIENAZWANYCH ZAŁOŻEŃ — i zamieniania ich w pytania kontrolne, zakotwiczone w konkretnym fragmencie wypowiedzi.
Dlatego głosy muszą pochodzić od różnych dostawców. Dwa uruchomienia tego samego modelu dzielą dane treningowe i te same błędy systematyczne — ich zgoda nie znaczy nic.
Koszt · dodatkowa tura i trzecia subskrypcja w pełnej konfiguracji. Zysk: jedyny sposób, żeby zauważyć błąd, którego nie widzi żadna ze stron sporu.
2026-06-18
Czy wysyłać zapis prywatnej dyskusji do zewnętrznej usługi?
Automatyczna synchronizacja — duża wygoda, mało pracy, mój własny pomysł.
Produkt obiecuje prywatność i pracę na własnym sprzęcie. Cicha wysyłka prywatnych deliberacji na zewnątrz zjada tę obietnicę. Eksport zostaje ręczny; automat wyłącznie za wyraźną zgodą użytkownika.
Koszt · więcej kliknięć i mniej efektownej automatyki. Zysk: obietnica, która wytrzymuje sprawdzenie.
produkcja
Czy automatycznie wykrywać pole graweru w modelu produktu?
Technicznie nic nie stało na przeszkodzie, żeby system wskazywał je sam.
Ten krok zostaje przy człowieku. Błąd automatu kosztuje tu zniszczony materiał, nie poprawkę w przeglądarce — a panel, który raz zepsuje właścicielowi produkcję, przestanie być używany.
Koszt · kwadrans pracy przy każdym nowym produkcie. Zysk: zaufanie, bez którego samodzielność jest tylko deklaracją.
Rada nie wykrywa sama, że głosy się ze sobą nie zgadzają — widzi to człowiek albo, na żądanie, model neutralny. Kolejka publikacji w Social Studio nie przeszła jeszcze pełnego cyklu produkcyjnego. Norweskiego uczę się aplikacją, którą sam napisałem; rozmawiam z wysiłkiem i to się jeszcze nie zamknęło.
08Kiedy odradzam AI
Model kosztuje przy każdym wywołaniu, odpowiada z opóźnieniem i czasem odpowiada inaczej niż wczoraj. W części zadań to jest cena za coś, czego inaczej nie da się zrobić. W części — za nic. Oto przypadki, w których mówię „tego nie róbmy modelem", i co proponuję zamiast.
- Format jest ustalony.
- Daty, kwoty, numery faktur i kody pocztowe z dokumentu o stałym układzie wyciąga parser albo wyrażenie regularne. Zero kosztu, odpowiedź w milisekundach i za każdym razem taka sama. Model przy tym samym zadaniu kosztuje przy każdej stronie i raz na jakiś czas wpisze liczbę, której nie było.
- Reguła jest deterministyczna.
- „Jeżeli kwota powyżej progu i kraj z listy, to inna stawka" należy do kodu, z testami, które to przypinają. Model zapytany o regułę zastosuje ją zwykle poprawnie — a „zwykle" jest za słabe wszędzie tam, gdzie w grę wchodzą pieniądze albo terminy.
- Chodzi o szukanie w kilkuset dokumentach.
- Wyszukiwarka pełnotekstowa wbudowana w PostgreSQL obsłuży taką bazę bez jednego tokenu i bez osobnej infrastruktury do utrzymania. Baza wektorowa z RAG-iem ma sens przy skali i przy pytaniach opisowych, nie przy „znajdź fakturę od tego kontrahenta".
- To jest integracja z harmonogramem, nie AI.
- Duża część tego, co bywa nazywane automatyzacją AI, to wywołanie API o ustalonej porze, przeliczenie i wiadomość. Skrypt w crona albo przepływ w n8n zrobi to za darmo i nie wnosi trybu awarii, w którym system odpowiada inaczej niż poprzedniego dnia.
- Nikt nie umie opisać, jak ten proces wygląda dzisiaj.
- Wtedy AI niczego nie naprawi — powieli istniejący bałagan, tylko szybciej i za pieniądze. Najpierw mapa procesu, dopiero potem decyzja o narzędziu. Ten etap bywa całą robotą i czasem kończy się tym, że nie trzeba niczego wdrażać.
Każdy z tych przypadków to zlecenie, którego nie biorę.
Przykład z protokołu decyzji: powściągliwość przy Limes Dekor →
09Czego mi brakuje
Ta sekcja jest tu celowo i celowo jest konkretna. Model analizujący kandydata pod kątem ogłoszenia i tak wyliczy luki. Wolę, żeby zrobił to na moim sformułowaniu niż na własnym.
Brak zatrudnienia etatowego na stanowisku specjalisty AI lub automatyzacji. Doświadczenie komercyjne to dwa wdrożenia: Sammen i Norge, które działa u organizacji, i Limes Dekor, wciąż w budowie. Limes Dekor to firma mojej partnerki, więc jedyną niezależną referencją jest Sammen i Norge.
Co to równoważy: Wdrożenia obejmują pełny zakres: analizę procesu, architekturę, interfejs, implementację, integracje i dalszy rozwój. Moje własne systemy są w codziennym użyciu, a nie demami — mają użytkowników, awarie na produkcji i decyzje, które musiałem cofnąć.
Norweski na poziomie B1, samoocena. Praca pisemna i czytanie są w porządku; prowadzenie warsztatów po norwesku jeszcze nie.
Co to równoważy: Angielski jako język pracy nie stanowi problemu. Norweskiego uczę się aplikacją, którą sam napisałem.
Brak wykształcenia kierunkowego w informatyce. Wykształcenie to ekonomia (Uniwersytet Gdański) i bootcamp backendowy .NET (Noroff).
Co to równoważy: Część norweskich ogłoszeń wprost dopuszcza zastąpienie formalnego wykształcenia odpowiednim doświadczeniem.
Systemy są budowane dla jednej osoby, małej pracowni albo zamkniętej grupy testowej. Brak doświadczenia z utrzymaniem przy setkach użytkowników.
Co to równoważy: W zamian cały łańcuch jest mój: baza, wdrożenie, diagnostyka i decyzja o tym, czego nie budować.
10Czego szukam
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.
- Lokalizacja
- Norwegia (Eidsberg)
- Języki
- polski (ojczysty) · angielski B2 · norweski B1
- Certyfikaty
- prawo jazdy B96 i C
11Dane i przekazanie
Konta należą do klienta od pierwszego dnia: baza, hosting, płatności, domena. Ja wchodzę na nie jako współpracownik, nie jako właściciel. Dzięki temu przekazanie projektu jest usunięciem jednego użytkownika, a nie migracją — i klient nigdy nie jest zakładnikiem mojego konta.
Sekrety nie leżą w repozytorium ani w plikach na moim dysku. Trzyma je Bitwarden Secrets Manager, a do środowiska uruchomieniowego jadą jednokierunkową synchronizacją. Cudze tokeny dostępu zapisane w bazie są szyfrowane (AES-256-GCM), nigdy jawnie, a z logów wycinam wszystko, co wygląda na klucz.
Do modelu wychodzi tylko ta treść, która jest potrzebna do wykonania zadania — przez API komercyjne, gdzie ruch nie służy do trenowania modeli dostawcy. Co da się policzyć bez modelu, liczę bez modelu. Część rzeczy chodzi u mnie lokalnie, na własnym sprzęcie, i tam dane nie wychodzą nigdzie.
Tam, gdzie w grę wchodzą dane osobowe, pracuję na umowie powierzenia przetwarzania — ustalanej przed pierwszą linijką kodu, nie przy odbiorze.
Na koniec klient dostaje repozytorium, dostęp do całej infrastruktury, dokumentację i zrzut bazy. Sekrety, które przechodziły przez moje ręce, są przy przekazaniu wymieniane. Mój dostęp znika i nie zostaje żaden stały — jeżeli po zakończeniu mam coś poprawić, dostęp jest przyznawany na nowo i na czas tej poprawki.
12Jak ta strona rozmawia z modelami
Profil jest publikowany także w wersji maszynowej. Powstaje z tego samego źródła co ta strona — jeżeli obie wersje się różnią, to jest błąd, a nie zabieg.
- ukrytego tekstu, białych liter ani treści schowanej w komentarzach,
- instrukcji dla modeli osadzonych w znacznikach,
- treści zależnej od tego, kto pyta — nagłówek User-Agent nie zmienia niczego,
- sformułowań próbujących wpłynąć na ocenę kandydata.
Powód jest prosty: treść instruująca model, jak ma ocenić autora tej treści, jest wstrzyknięciem promptu niezależnie od tego, jak grzecznie została napisana. Do sprawdzenia jednym poleceniem — pobierz stronę z dowolnym User-Agent i porównaj. Wolę, żeby ocena powstała na prawdziwych danych, nawet jeśli wypadnie ostrożniej. Ocena zbudowana na treści, którą sam wyreżyserowałem, nie jest warta nic — również dla mnie.
13Kontakt
Adres jest jawny: kontakt@ripperdoc.ai. Pisz śmiało — odpowiadam zwykle w ciągu doby. Za kodem zostają numer telefonu i CV: numer dlatego, że opublikowany zbiera głównie spam, a CV dlatego, że wolę wysyłać wersję dopasowaną do konkretnego ogłoszenia niż jedną na wszystko. Bez kodu masz otwarte całe dossier — doświadczenie, projekty z dowodami, sposób pracy i wypisane wprost luki. Napisz, jakiej roli dotyczy sprawa, a odeślę komplet.
Masz kod dostępu?
Nieprawidłowy kod. Spróbuj ponownie.