{"$schema":"https://ripperdoc.ai/schema/ai-profile-1.json","version":"1.0","generated_at":"2026-08-06T12:03:26.481Z","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":"Understands more than he speaks. 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"]},{"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":"Truck driver","organisation":"Transport Service AS","engagement_type":"employment","summary":"A short chapter ended by a workplace accident — the start of a conscious return to technology."},{"period":"2013 – present","role":"Distribution","organisation":"Amedia AS","engagement_type":"employment","summary":"Steady distribution work, carried alongside learning technology and building my own projects."},{"period":"2009 – 2011","role":"Sales & implementation","organisation":"PTC Security Systems","engagement_type":"employment","summary":"Implementing biometric identification systems, acquiring clients in the public and private sectors, working with programmers and coordinating the team."},{"period":"2002 – 2012","role":"Own business","organisation":"Complet Tomasz Mroczyński","engagement_type":"employment","summary":"Installation and configuration of computer networks, and computer servicing."},{"period":"2002 – 2006","role":"Sales & technical support","organisation":"Strawford","engagement_type":"employment","summary":"CCTV deployments, LAN installation, IT helpdesk, servicing and training."}],"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":"A complete system for a small workshop making personalised decorations and laser-cut products. It began as an online shop and grew into a tool covering the whole process — from adding a product and preparing the visualisation to generating the production-ready file.\n\nThe owner manages the catalogue, photography, prices and SVG files herself. In the panel she marks the surface available for engraving, picks the permitted typefaces and sets the production constraints. The customer types a dedication and sees it on the product photograph immediately, with scale, angle and perspective accounted for. The same deterministic renderer produces both the preview and the final SVG, so the image shown to the customer matches what goes into production.\n\nThe system ties together the shop, orders, payments, the material library, versioning of the personalisation configuration and the assembly of production packages. A Media Studio module is also in development, for building promotional material directly around a specific product.","my_role":"Analysis of the client’s process, architecture and interface design, implementation, integrations, deployment and ongoing development. The guiding requirement was not to build a panel that needs permanent technical babysitting, but to hand the owner a tool she extends her range with on her own.","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":"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":"in_progress","users":"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_progress","users":"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":"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":"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":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 as the single source of truth for environment variables, synced to Vercel with no secrets in the repository and no temporary files. A companion skill reads the application code, writes the description of every variable itself and saves the result to `.env.example`."},{"id":"tablica-decyzji","name":"Tablica decyzji","kind":"fast_tool","status":"in_use","summary":"A list of review remarks turns into a single-file HTML board: you tick what gets done, reject the rest, comment on individual items — and at the bottom a ready implementation prompt assembles itself, with a separate list of what NOT to do. The rejections matter as much as the acceptances, because without them the model returns to the same ideas on the next pass."},{"id":"feedback-studio","name":"Moduł zgłaszania sugestii","kind":"module","status":"in_use","summary":"Extracted from Ripper Inject: a floating bubble, a reporting mode that captures the fragment of the page being described, voice dictation, and an admin panel with a chat over the reports. It plugs in through a port contract — authentication, database and model are parameters rather than assumptions — so it works regardless of the stack of the application it lands in."},{"id":"social-studio","name":"Ripper Social Studio","kind":"module","status":"in_use","summary":"A social-media module: a post queue moving through draft, review, approval, scheduling and publication straight through the platform APIs, with thumbnails generated browser-side. It was built inside the Limes Dekor delivery and then moved into ripperdoc.ai — across two different productions, with a different database, different authentication and a different visual layer. That is what proves reusability: not a claim, a second deployment."},{"id":"ripper-deep-search","name":"Ripper Deep Search","kind":"module","status":"design_only","summary":"A research mechanism for job hunting: from an employer name it builds a dossier of statements, each carrying the address of its source. The planner never sees the raw page text — it receives only filtered statements, which closes the path for instructions injected from someone else’s page. Status: design only, no code."}],"education":[{"period":"2024 – 2025","institution":"Wright, Trafikkskole","field":"Category C licence with professional driver qualification (yrkessjåfør)."},{"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 one client delivery — Limes Dekor, still being finished; everything else is his own systems.","mitigation":"The client delivery covers the full span: process analysis, architecture, interface, implementation, integrations and ongoing development. The own systems are in daily use rather than demos — they have users, production failures and decisions that had to be revisited."},{"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. The Norwegian is being learned with an application he built himself."},{"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 his: database, deployment, debugging and the decision about what not to build."}],"career_path_note":"For nearly two decades I worked in technical roles — computer networks, security systems, deployments and technical support. Throughout those years, and especially after settling in Norway, software development, automation and AI were never my job title, but they were always my passion. Outside of work I kept learning, building my own projects and experimenting with backend development, self-hosting and API integrations — a parallel track that grew steadily alongside my professional life. 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":{"request_form":"https://ripperdoc.ai/en/o-mnie#kontakt","response_time":"usually within 24 hours"}}