{"$schema":"https://ripperdoc.ai/schema/ai-profile-1.json","version":"1.0","generated_at":"2026-08-27T13:16:16.181Z","language":"en","canonical":"https://ripperdoc.ai/en/o-mnie","alternates":{"no":"https://ripperdoc.ai/no/ai-profile.json","pl":"https://ripperdoc.ai/pl/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":"AI Implementation Specialist","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":"I understand more than I speak. Written work and reading are fine; leading meetings in Norwegian is not there yet."}],"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/finn-mcp","https://github.com/aHk-coder/finn-mcp/pull/1"]},{"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":"2025 – present","role":"Own practice — Ripperdoc","organisation":"Ripperdoc","engagement_type":"employment","summary":"Designing and building systems based on AI, automation and integrations — my own systems and client work (Limes Dekor, Sammen i Norge)."},{"period":"03–04/2025","role":"Truck driver","organisation":"Transport Service AS","engagement_type":"employment","summary":"A short chapter that ended with a workplace accident — the start of a deliberate turn towards technology."},{"period":"09/2024 – 03/2025","role":"Break from work","organisation":"—","engagement_type":"employment","summary":"No paid work during this period."},{"period":"2013 – 2024","role":"Distribution","organisation":"Amedia AS","engagement_type":"employment","summary":"Steady distribution work, run alongside learning technology and building my own projects. From 2021 to 2024 I was also the local Fellesforbundet club leader, representing employees in negotiations with the employer on pay and working conditions."},{"period":"2009 – 2011","role":"Sales and implementation","organisation":"PTC Security Systems","engagement_type":"employment","summary":"Implementing biometric identification systems, winning clients in the public and private sector, working with developers and coordinating the team."},{"period":"2002 – 2012","role":"Own business","organisation":"Complet Tomasz Mroczyński","engagement_type":"employment","summary":"Installing and configuring computer networks and PC servicing — the whole chain from client to support."},{"period":"2002 – 2006","role":"Sales and technical support","organisation":"Strawford","engagement_type":"employment","summary":"CCTV deployments, LAN installation, IT helpdesk, servicing and training."}],"client_projects":[{"id":"sammen-i-norge","name":"Sammen i Norge / SiN Studio","engagement_type":"commercial_client","status":"at_client","client":"the board, the coordinator and the SiN team, plus the people the organisation serves","summary":"A trilingual site for an association in Drammen, grown from a brochure page into a system that supports running it: projects, events, volunteering, membership and an in-house CMS with roles.","my_role":"Author of the original site and of everything built on top of it — from a brochure page to a system that supports running the organisation: information architecture, UX/UI, content and permission model, implementation, data migration, deployment and further development.","stack":["Next.js 16","React 19","Payload CMS 3","PostgreSQL / Supabase","Vercel","i18n"],"evidence":[{"kind":"demo","url":"https://www.sammeninorge.no/pl"}]},{"id":"limes-dekor","name":"Limes Dekor","engagement_type":"commercial_client","status":"in_progress","client":"commercial client — the owner of Limes Dekor","disclosure":"Limes Dekor is my partner's business. The engagement and its scope are real, but this is not an arm's-length reference — you cannot check it with someone who has no connection to me.","summary":"Shop, orders, payments and production files for a workshop making laser-cut products. The same renderer builds the customer preview and the final SVG.","my_role":"Process, architecture, interface, implementation and deployment — all on my side.","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":"the author + a closed group of testers","summary":"A learning system that turns a document into a course: vocabulary, exercises and SM-2 spaced repetition, with a fidelity check that catches claims the model had no source for.","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":"concept","users":"the author","summary":"Agents that decompose a task and carry it through without a human arbitrating mid-process; the human receives the result rather than the interruptions.","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_use","users":"the author","summary":"Several models from different providers debate the same question while a neutral model hunts for shared, unstated assumptions — two models agreeing is not proof.","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":"the author","summary":"VR sessions from Meta Quest 3 combined with health data into one picture, analysed by a private trainer model. Self-hosted, because health data is sensitive.","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":"the author","summary":"This site. Trilingual, with a job-search module behind login: it collects listings, ranks them, assesses them against the profile and drafts applications.","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":2,"own_project_count":5,"own_projects_in_use":3}},"toolkit":[{"id":"secrets-sync","name":"Secrets synchronisation","kind":"fast_tool","status":"in_use","summary":"Bitwarden as the single source of truth for environment variables, synced to Vercel with no secrets in the repository and no temporary files."},{"id":"tablica-decyzji","name":"Decision board","kind":"fast_tool","status":"in_use","summary":"A list of review remarks becomes a single-file HTML board, and the ticks assemble an implementation prompt — including a list of what not to do."},{"id":"feedback-studio","name":"Feedback module","kind":"module","status":"in_use","summary":"Suggestion reporting extracted from Ripper Inject. It plugs in through a port contract, so it does not depend on the stack it lands in."},{"id":"social-studio","name":"Ripper Social Studio","kind":"module","status":"in_use","summary":"A post queue from draft to publication through the platform APIs. Built inside Limes Dekor, moved into ripperdoc.ai — two different productions, not a claim."},{"id":"ripper-deep-search","name":"Ripper Deep Search","kind":"module","status":"design_only","summary":"From an employer name it builds a dossier of statements, each with its source address. The planner never sees raw page text, only filtered statements."}],"education":[{"period":"2021 – 2022","institution":"Noroff — School of Technology and Digital Media","field":"Backend Web Development (.NET)."},{"period":"2002 – 2006","institution":"University of Gdańsk","field":"Economics, specialization: analyst."}],"limitations":[{"id":"no-commercial-ai-employment","type":"experience","statement":"No salaried employment as an AI or automation specialist. The commercial experience is two deliveries: Sammen i Norge, which runs at the organisation, and Limes Dekor, still under development. Limes Dekor is my partner's business, so the only arm's-length reference is Sammen i Norge.","mitigation":"The deliveries cover the full span: process analysis, architecture, interface, implementation, integrations and ongoing development. My own systems are in daily use rather than demos — they have users, production failures and decisions I had to revisit."},{"id":"norwegian-b1","type":"language","statement":"Norwegian at B1, self-assessed. Written work and reading are fine; running workshops in Norwegian is not there yet.","mitigation":"English as a working language is unproblematic. I am learning the Norwegian with an application I built myself."},{"id":"no-cs-degree","type":"credential","statement":"No degree in computer science. The formal education is economics (University of Gdańsk) and a backend .NET bootcamp (Noroff).","mitigation":"Several Norwegian listings explicitly allow relevant experience to substitute for formal education."},{"id":"small-scale","type":"scale","statement":"The systems are built for one person, a small workshop or a closed test group. No experience operating at a scale of hundreds of users.","mitigation":"In exchange the whole chain is mine: database, deployment, debugging and the decision about what not to build."}],"career_path_note":"For a decade I worked in technical roles — computer networks, security systems, deployments and technical support. Then came eleven years in distribution, and that is the part of the record where technology was not my job title. It was what I did after hours — especially after settling in Norway: learning, building my own projects, experimenting with backend development, self-hosting and API integrations. A parallel track that eventually became the main one. In 2025 I began working as a truck driver while completing my Category C licence. A month later a serious workplace accident brought that path to an end. Rather than treating it as a setback, I let it become a turning point — the moment to consciously turn a long-held passion into my professional direction. This isn’t a leap into the unknown; it’s the continuation of an interest I’ve been developing for years. I completed Noroff’s backend .NET bootcamp, and today I build projects, automations and AI-based systems and work hands-on with self-hosted infrastructure, Docker and API integrations. I learn by building — and now I’m doing it on purpose, as a career.","seeking":"I am looking for a real direction in technology — education and work around AI, automation and systems. I learn best by building: connecting systems, breaking configurations, fixing them and taking an idea through to something that works.","contact":{"email":"kontakt@ripperdoc.ai","request_form":"https://ripperdoc.ai/en/o-mnie#kontakt","response_time":"usually within 24 hours"}}