# Christoffer Maintz > Christoffer Maintz - developer in Aarhus, Denmark, available for freelance: AI automation and enablement, developer experience, DevOps and platform engineering. Christoffer Maintz is based in Aarhus, Denmark and takes freelance and consulting work, remote or on-site. Hourly from 650 DKK ex. VAT; fixed-price work is quoted after scoping; the first 30-minute call is free. Works in English and Danish. Contact: christoffer@maintz.dev or https://maintz.dev/contact/. AI agents can query the same facts over MCP (read-only, Streamable HTTP): https://maintz.dev/mcp. Docs: https://maintz.dev/developers/#mcp. Every page has a Markdown version at its URL plus `.md` (as linked below), or via `Accept: text/markdown`. ## Services - [Services & pricing](https://maintz.dev/services.md) - **Workflow automation & integrations**: The copy-paste between webshop, accounting, spreadsheets and email - done by the systems instead of by people. I find the tasks that eat your week and connect the tools you already have, in code or with low-code tools like Power Automate, Make or n8n when that suits you better. - **AI that takes over a task**: Product texts, sorting incoming mail, reading invoices and orders into e-conomic, Dinero or your ERP: AI does the routine work, and a person checks only the cases it is unsure of. Tested on your own data before you commit. - **AI assistant on your own knowledge**: An assistant that answers from your own documents, FAQ and product data: draft replies to customer mail for a person to approve, a chat on your website, or search across SharePoint and Drive that shows its sources. - **AI workshop for your staff**: Hands-on use of ChatGPT, Microsoft Copilot and similar tools on your team’s real tasks, plus simple rules for what data may go where. Your staff leave with workflows they use the next morning. - **Webshops & e-commerce integrations**: Features, fixes and integrations for your webshop: Shopware 6 is my speciality, and I also work with Shopify and WooCommerce. Connect the shop to your ERP, accounting, shipping or product data, or get a custom plugin built to last. - **Full-stack web apps**: From MVP to maintainable product: Spring Boot, .NET or Node backends with clean architecture; Angular, React, Vue or Astro frontends; Postgres with full-text and vector search. - **Mobile apps**: Native iOS and Android apps in Swift and Kotlin, with the backend and API behind them, for your customers or your own staff in the field. - **CI/CD & quality-gate setup**: One deterministic rule set - format, lint, types, tests, coverage, security - that runs identically in the editor, before push and in CI. Ratcheted so legacy code can adopt it on day one. - **AI-assisted development enablement**: Get real leverage from coding agents without the chaos: skills, hooks and a gate the agent can’t quietly weaken, plus workflows from ticket to reviewable PR. - **LLM features that hold up in production**: Schema-enforced output, retries and idempotency, confidence scoring, human-in-the-loop review and an audit trail. Any major LLM provider, behind an abstraction you can swap. - **AI platform engineering**: One shared way for every team to use LLMs: a provider-agnostic gateway with cost-aware model routing, usage and spend per team, guardrails, caching and evals, so each new AI feature starts on a paved road. - **Make your product agent-ready**: Let ChatGPT, Claude and other AI agents find and use your product: an MCP server, llms.txt, Markdown versions of your pages, API catalogue and structured data - the same setup this site runs. - **Legacy modernisation**: Framework and stack upgrades, deprecated code removed and duplicated logic consolidated, with tests and a quality gate in place first, so the upgrade doesn’t break what already works. - **Everything else**: Desktop apps, data migrations, code review, a second opinion on a plan or a vendor. If it compiles, I’m interested - ask. ## Focus areas - [What I do](https://maintz.dev/what-i-do.md) - [Developer Experience](https://maintz.dev/what-i-do/dx.md): Developers are fastest when the right thing is also the easy thing. I look for the friction that quietly eats a team’s week (slow feedback, flaky setup, manual steps) and remove it with tooling, not more documentation. - [DevOps & CI/CD](https://maintz.dev/what-i-do/devops.md): A pipeline is a promise about quality that runs on every change. I build ones that are deterministic, fast, cheap to run and hard to quietly weaken, including by AI agents. - [Backend](https://maintz.dev/what-i-do/backend.md): Most of a product lives in its backend: the APIs, the data and the services behind them. I build those around the domain, so the business rules are easy to find, the data can be trusted and a slow dependency never takes the product down. - [Platform & Infrastructure](https://maintz.dev/what-i-do/platform.md): Good platforms are paved roads: the safe, observable, repeatable way is also the quickest way to ship. I build the plumbing that makes that true, from pinned toolchains and scaffolding to config and policy as code. - [AI enablement](https://maintz.dev/what-i-do/ai.md): AI earns its place when it removes real, repetitive work and you can trust what it does. I build AI features and agent workflows with structure, measurement and humans on the uncertain cases. ## Projects - [Projects](https://maintz.dev/projects.md) - [Illux Product AI](https://maintz.dev/projects/illux-product-ai.md): Generative-AI product enrichment & room visualization for Shopware 6 - [Foundry](https://maintz.dev/projects/foundry.md): A polyglot engineering gate for AI-assisted development - [jev-tools](https://maintz.dev/projects/jev-tools.md): Three TypeScript tools that put a cheap, typed model in front of the expensive one - [Leash](https://maintz.dev/projects/leash.md): Keeps a coding agent to the project rules no linter can check - [Jobbuddy](https://maintz.dev/projects/jobbuddy.md): AI job-application platform - from posting to tailored CV - [Tech Atlas](https://maintz.dev/projects/tech-atlas.md): A bilingual technical dictionary you can explore as a map - [Movie Explorer](https://maintz.dev/projects/movie-explorer.md): One React codebase, running on the web and as an LG webOS TV app - [Email Template Preview](https://maintz.dev/projects/email-template-preview.md): Preview transactional emails with real order data, rendered like Gmail would - [MovieWheel](https://maintz.dev/projects/movie-wheel.md): Spin a wheel, settle movie night - [DevInsight](https://maintz.dev/projects/dev-insight.md): GitHub activity turned into an evidence-based portfolio - [jev-dotnet](https://maintz.dev/projects/jev-dotnet.md): A dependency-free .NET client for Jev - [jev-java](https://maintz.dev/projects/jev-java.md): A dependency-free Java client for Jev - [jev-eval](https://maintz.dev/projects/jev-eval.md): Measure Jev on your own labeled data and get the confidence cut-point to gate on - [jev-rerank](https://maintz.dev/projects/jev-rerank.md): Near-free relevance filtering and reranking for RAG - [classifier-bench](https://maintz.dev/projects/classifier-bench.md): Fast typed classifiers against Claude, measured on the same requests - [doppelscan](https://maintz.dev/projects/doppelscan.md): A syntax-aware duplicate code finder that hands an agent the helper to extract - [Plantekalender](https://maintz.dev/projects/plantekalender.md): A garden calendar that knows your plants and your local frost - [Sall Whisky Distillery](https://maintz.dev/projects/sall-whisky.md): One production domain, built twice - JavaFX and Spring Boot + Angular - [Birdie](https://maintz.dev/projects/birdie.md): Log bird sightings where you stand; see everyone's on a map - [KAS - Conference Administration](https://maintz.dev/projects/kas.md): A JavaFX desktop app with real business rules - [TimeRegistry](https://maintz.dev/projects/time-registry.md): One business core, two frontends - WPF and ASP.NET MVC - [StableHand](https://maintz.dev/projects/stablehand.md): Booking and management for a real riding school - [Yatzyweb](https://maintz.dev/projects/yatzyweb.md): Multiplayer Yahtzee with server-authoritative scoring - [Multiplayer Maze](https://maintz.dev/projects/multiplayer-maze.md): Real-time multiplayer over raw TCP sockets - [EmployeeApp](https://maintz.dev/projects/employee-app.md): A textbook n-tier .NET solution with three clients ## Writing - [Blog](https://maintz.dev/blog.md) - [#ai-automation](https://maintz.dev/blog/tags/ai-automation.md) - [#ai](https://maintz.dev/blog/tags/ai.md) - [#llm](https://maintz.dev/blog/tags/llm.md) - [AI in the webshop: from a slick demo to something that holds up in production](https://maintz.dev/blog/ai-in-the-webshop-from-demo-to-production.md): What it takes before AI-generated product copy can run in a real webshop - lessons from a solution that has enriched more than 3,000 products. - [Five tasks a small business can automate - and how to find them](https://maintz.dev/blog/five-tasks-you-can-automate.md): How to spot the manual work that's worth automating, with five typical examples from small and medium-sized Danish businesses. - [A quality gate for a codebase nobody dares touch - a one-week plan](https://maintz.dev/blog/quality-gate-for-a-legacy-codebase.md): How to add linting, tests and security scanning to a legacy repository without a cleanup sprint, a red build on day one, or a revolt. - [Case study: a cheap, typed model in front of the expensive one](https://maintz.dev/blog/confidence-gated-ai-automation.md): Three open-source tools - an agent guardrail, a GitHub issue-triage Action and a bulk classifier - built on one pattern for AI automation that's cheap enough to run on everything. - [Case study: automating product data for 3,000+ products with an LLM](https://maintz.dev/blog/llm-product-enrichment-case-study.md): How a Shopware 6 plugin turned product images into multilingual copy, SEO and categories for Illux - and the guardrails that made it safe to run unattended. - [One rule set, three placements](https://maintz.dev/blog/one-rule-set-three-placements.md): Why I stopped treating CI and "AI coding standards" as two separate things - and what Foundry does instead. - [Hello, world - booting up](https://maintz.dev/blog/hello-world.md): A new home for my work, my ramblings and rants, and the longer versions of things I post elsewhere. Plus a look at what I built under the hood. ## FAQ - [All questions](https://maintz.dev/faq.md) - **What kind of AI automation do you build?** LLM features that run in production: classifying, extracting and triaging documents, emails or tickets with schema-enforced output, confidence scoring, human review and an audit trail. I also set up coding agents such as Claude Code and Codex so development teams get real leverage from them. - **Which AI models and providers do you work with?** Any major LLM provider. I put the model behind an abstraction so you can swap provider later without rewriting the feature. - **What does it cost?** Hourly from 650 DKK ex. VAT. Smaller, well-defined jobs come as fixed-price starter packages, priced on the services page. Larger projects get a fixed quote once we have scoped them together. It all starts with a free 30-minute mini-audit. - **Do you work remotely?** Yes, remote or on-site in Aarhus, Denmark. I work in English and Danish. - **Can you help with more than AI?** Yes. For businesses: workflow automation and integrations, webshops, full-stack web apps and mobile apps. For dev teams: CI/CD and quality gates, legacy modernisation and developer experience. - **How do we get started?** Send a message through the contact page. We start with a free 30-minute call, then I send a written proposal with deliverables, timeline and price. ## Developers - [Contact API and MCP server](https://maintz.dev/developers.md) ## På dansk Christoffer Maintz, freelanceudvikler i Aarhus: AI-automatisering og AI-implementering, web- og softwareudvikling, DevOps og CI/CD i hele Danmark. Freelance- og konsulentopgaver, remote eller on-site i Aarhus. Timepris fra 650 kr. ekskl. moms; opgaver til fast pris får et tilbud efter afgrænsning; det første opkald på 30 minutter er gratis. - [Ydelser og priser](https://maintz.dev/da/services.md) - **Automatisering & integrationer**: Copy-paste mellem webshop, regnskab, regneark og mail - klaret af systemerne i stedet for af medarbejderne. Jeg finder de opgaver, der æder jeres uge, og forbinder de værktøjer, I allerede har, med kode eller med low-code som Power Automate, Make eller n8n, når det passer jer bedre. - **AI, der overtager en opgave**: Produkttekster, sortering af indgående mails, fakturaer og ordrer læst ind i e-conomic, Dinero eller jeres ERP: AI klarer rutinearbejdet, og et menneske tjekker kun de sager, den er usikker på. Testet på jeres egne data, før I binder jer. - **AI-assistent på jeres egen viden**: En assistent, der svarer ud fra jeres egne dokumenter, FAQ og produktdata: udkast til svar på kundemails, som et menneske godkender, en chat på hjemmesiden eller søgning på tværs af SharePoint og Drive, der viser sine kilder. - **AI-workshop for medarbejdere**: Praktisk brug af ChatGPT, Microsoft Copilot og lignende værktøjer på jeres egne opgaver, plus enkle regler for, hvilke data der må hvorhen. Medarbejderne går derfra med arbejdsgange, de bruger næste morgen. - **Webshops & e-handelsintegrationer**: Funktioner, rettelser og integrationer til jeres webshop: Shopware 6 er mit speciale, og jeg arbejder også med Shopify og WooCommerce. Forbind shoppen med ERP, regnskab, fragt eller produktdata, eller få bygget et plugin, der holder. - **Full-stack webapps**: Fra MVP til vedligeholdbart produkt: Spring Boot-, .NET- eller Node-backends med ren arkitektur; Angular-, React-, Vue- eller Astro-frontends; Postgres med fuldtekst- og vektorsøgning. - **Mobilapps**: Native iOS- og Android-apps i Swift og Kotlin, med backend og API bag dem, til jeres kunder eller jeres egne medarbejdere ude i marken. - **CI/CD & kvalitets-gates**: Ét deterministisk regelsæt - formatering, lint, typer, tests, coverage, sikkerhed - der kører ens i editoren, før push og i CI. Med ratcheting, så legacy-kode kan tage det i brug fra dag ét. - **AI-assisteret udvikling**: Få reel gevinst af kodeagenter uden kaos: skills, hooks og en gate agenten ikke kan svække i det stille, plus flows fra ticket til PR klar til review. - **LLM-funktioner, der holder i produktion**: Skemabundet output, retries og idempotens, confidence-scoring, menneskelig godkendelse og audit trail. Enhver større LLM-udbyder bag en abstraktion, der kan udskiftes. - **AI-platform**: Én fælles vej for alle teams til at bruge LLM’er: en udbyder-agnostisk gateway med cost-aware model routing, forbrug og udgifter pr. team, guardrails, caching og evals, så hver ny AI-funktion starter på en asfalteret vej. - **Klar til AI-agenter**: Lad ChatGPT, Claude og andre AI-agenter finde og bruge jeres produkt: en MCP-server, llms.txt, Markdown-versioner af siderne, API-katalog og strukturerede data - det samme setup, som dette site kører. - **Modernisering af legacy**: Framework- og stack-opgraderinger, deprecated kode fjernet og gentaget logik samlet, med tests og en kvalitets-gate på plads først, så opgraderingen ikke ødelægger det, der virker. - **Alt det andet**: Desktop-apps, datamigreringer, code review, en second opinion på en plan eller en leverandør. Hvis det kan kompilere, er jeg interesseret - spørg. - [Hjem](https://maintz.dev/da.md) - [Om](https://maintz.dev/da/about.md) - [Nu](https://maintz.dev/da/now.md) - [Værktøjer](https://maintz.dev/da/uses.md) - [Cv](https://maintz.dev/da/cv.md) - [Find dit match](https://maintz.dev/da/start.md) - [Kontakt](https://maintz.dev/da/contact.md) - [Det laver jeg](https://maintz.dev/da/what-i-do.md) - [Developer Experience](https://maintz.dev/da/what-i-do/dx.md): Udviklere er hurtigst, når det rigtige også er det nemme. Jeg leder efter den friktion, der stille æder et teams uge (langsom feedback, ustabilt setup, manuelle trin), og fjerner den med værktøjer frem for mere dokumentation. - [DevOps & CI/CD](https://maintz.dev/da/what-i-do/devops.md): En pipeline er et løfte om kvalitet, der kører på hver ændring. Jeg bygger pipelines, der er deterministiske, hurtige, billige at køre og svære at svække i det stille, også for AI-agenter. - [Backend](https://maintz.dev/da/what-i-do/backend.md): Det meste af et produkt bor i backenden: API’erne, data og de services, der ligger bag. Jeg bygger dem omkring domænet, så forretningsreglerne er nemme at finde, data er til at stole på, og en langsom afhængighed aldrig vælter produktet. - [Platform & infrastruktur](https://maintz.dev/da/what-i-do/platform.md): Gode platforme er asfalterede veje: den sikre, observerbare og gentagelige vej er også den hurtigste vej til produktion. Jeg bygger det VVS, der gør det muligt, fra fastlåste toolchains og scaffolding til config og policy som kode. - [AI-enablement](https://maintz.dev/da/what-i-do/ai.md): AI gør sig fortjent til sin plads, når den fjerner reelt, gentaget arbejde, og man kan stole på det, den gør. Jeg bygger AI-funktioner og agent-workflows med struktur, måling og mennesker på de usikre sager. - [Projekter](https://maintz.dev/da/projects.md) - [Illux Product AI](https://maintz.dev/da/projects/illux-product-ai.md): Generativ AI til produktberigelse og rumvisualisering i Shopware 6 - [Foundry](https://maintz.dev/da/projects/foundry.md): En sprog-agnostisk kvalitets-gate til AI-assisteret udvikling - [jev-tools](https://maintz.dev/da/projects/jev-tools.md): Tre TypeScript-værktøjer, der sætter en billig, typet model foran den dyre - [Leash](https://maintz.dev/da/projects/leash.md): Holder en kodeagent til de projektregler, ingen linter kan tjekke - [Jobbuddy](https://maintz.dev/da/projects/jobbuddy.md): AI-platform til jobansøgninger - fra jobopslag til skræddersyet CV - [Tech Atlas](https://maintz.dev/da/projects/tech-atlas.md): En tosproget teknisk ordbog, du kan udforske som et kort - [Movie Explorer](https://maintz.dev/da/projects/movie-explorer.md): Én React-kodebase, der kører på nettet og som LG webOS-tv-app - [Email Template Preview](https://maintz.dev/da/projects/email-template-preview.md): Forhåndsvis transaktionsmails med rigtige ordredata, renderet som i Gmail - [MovieWheel](https://maintz.dev/da/projects/movie-wheel.md): Drej hjulet og afgør filmaftenen - [DevInsight](https://maintz.dev/da/projects/dev-insight.md): GitHub-aktivitet omsat til en evidensbaseret portfolio - [jev-dotnet](https://maintz.dev/da/projects/jev-dotnet.md): En afhængighedsfri .NET-klient til Jev - [jev-java](https://maintz.dev/da/projects/jev-java.md): En afhængighedsfri Java-klient til Jev - [jev-eval](https://maintz.dev/da/projects/jev-eval.md): Mål Jev på dine egne mærkede data og få den confidence-grænse, du skal gate på - [jev-rerank](https://maintz.dev/da/projects/jev-rerank.md): Næsten gratis relevansfiltrering og reranking til RAG - [classifier-bench](https://maintz.dev/da/projects/classifier-bench.md): Hurtige typede klassifikatorer mod Claude, målt på de samme forespørgsler - [doppelscan](https://maintz.dev/da/projects/doppelscan.md): En syntaksbevidst duplikatfinder, der giver agenten den hjælpefunktion, der skal trækkes ud - [Plantekalender](https://maintz.dev/da/projects/plantekalender.md): En havekalender, der kender dine planter og din lokale frost - [Sall Whisky Distillery](https://maintz.dev/da/projects/sall-whisky.md): Ét produktionsdomæne bygget to gange - JavaFX og Spring Boot + Angular - [Birdie](https://maintz.dev/da/projects/birdie.md): Registrér fugle, hvor du står; se alles observationer på et kort - [KAS - Conference Administration](https://maintz.dev/da/projects/kas.md): En JavaFX-desktopapp med rigtige forretningsregler - [TimeRegistry](https://maintz.dev/da/projects/time-registry.md): Én forretningskerne, to frontends - WPF og ASP.NET MVC - [StableHand](https://maintz.dev/da/projects/stablehand.md): Booking og administration for en rigtig rideskole - [Yatzyweb](https://maintz.dev/da/projects/yatzyweb.md): Multiplayer-Yatzy med serverautoritativ pointberegning - [Multiplayer Maze](https://maintz.dev/da/projects/multiplayer-maze.md): Realtids-multiplayer over rå TCP-sockets - [EmployeeApp](https://maintz.dev/da/projects/employee-app.md): En klassisk n-lags .NET-løsning med tre klienter - [Blog](https://maintz.dev/da/blog.md) - [#ai-automation](https://maintz.dev/da/blog/tags/ai-automation.md) - [#ai](https://maintz.dev/da/blog/tags/ai.md) - [#llm](https://maintz.dev/da/blog/tags/llm.md) - [AI i webshoppen: fra flot demo til noget, der holder i drift](https://maintz.dev/da/blog/ai-i-webshoppen-fra-demo-til-drift.md): Hvad der skal til, før AI-genererede produkttekster kan køre i en rigtig webshop - erfaringer fra en løsning, der har beriget over 3.000 produkter. - [Fem opgaver, en mindre virksomhed kan automatisere - og hvordan du finder dem](https://maintz.dev/da/blog/fem-opgaver-du-kan-automatisere.md): Sådan spotter du det manuelle arbejde, der kan betale sig at automatisere, med fem typiske eksempler fra små og mellemstore danske virksomheder. - [En kvalitets-gate til en kodebase, ingen tør røre - en plan på én uge](https://maintz.dev/da/blog/kvalitets-gate-til-legacy-kode.md): Sådan får du linting, tests og sikkerhedsscanning ind i et legacy-repo uden et oprydningssprint, et rødt build på dag ét eller et oprør. - [Case: en billig, typet model foran den dyre](https://maintz.dev/da/blog/case-billig-model-foran-den-dyre.md): Tre open source-værktøjer - en guardrail til agenter, en GitHub Action til issue-triage og en masseklassifikator - bygget på ét mønster for AI-automatisering, der er billigt nok til at køre på alt. - [Case: automatisk produktdata til over 3.000 produkter med en LLM](https://maintz.dev/da/blog/case-llm-produktdata.md): Hvordan et Shopware 6-plugin gjorde produktbilleder til tekster, SEO og kategorier på flere sprog for Illux - og de sikkerhedsnet, der gjorde det trygt at lade det køre uden opsyn. - [Ét regelsæt, tre placeringer](https://maintz.dev/da/blog/et-regelsaet-tre-placeringer.md): Hvorfor jeg holdt op med at behandle CI og "AI-kodestandarder" som to forskellige ting - og hvad Foundry gør i stedet. - [Hej, verden - systemet starter op](https://maintz.dev/da/blog/hej-verden.md): Et nyt hjem til mit arbejde, mine tanker og brokkerier og de lange versioner af det, jeg skriver andre steder. Plus et kig på, hvad jeg har bygget under motorhjelmen. - [Alle spørgsmål](https://maintz.dev/da/faq.md) - **Hvilken slags AI-automatisering bygger du?** LLM-funktioner, der kører i produktion: klassificering, udtræk og triage af dokumenter, e-mails eller tickets med skemabundet output, confidence-scoring, menneskelig godkendelse og audit trail. Jeg sætter også kodeagenter som Claude Code og Codex op, så udviklingsteams får reel gevinst af dem. - **Hvilke AI-modeller og udbydere arbejder du med?** Enhver større LLM-udbyder. Jeg lægger modellen bag en abstraktion, så I senere kan skifte udbyder uden at omskrive funktionen. - **Hvad koster det?** Timepris fra 650 kr. ekskl. moms. Mindre, veldefinerede opgaver findes som startpakker til fast pris med priserne på siden om ydelser. Større projekter får en fast pris, når vi har afgrænset opgaven sammen. Det hele starter med en gratis mini-audit på 30 minutter. - **Arbejder du remote?** Ja, remote eller on-site i Aarhus. Jeg arbejder på dansk og engelsk. - **Kan du hjælpe med andet end AI?** Ja. Til virksomheder: automatisering og integrationer, webshops, full-stack webapps og mobilapps. Til udviklingsteams: CI/CD og kvalitets-gates, modernisering af legacy-kode og developer experience. - **Hvordan kommer vi i gang?** Skriv via kontaktsiden. Vi starter med et gratis opkald på 30 minutter, og derefter sender jeg et skriftligt oplæg med leverancer, tidsplan og pris. ## Optional - [Home](https://maintz.dev/index.md) - [About](https://maintz.dev/about.md) - [Now](https://maintz.dev/now.md) - [Uses](https://maintz.dev/uses.md) - [Cv](https://maintz.dev/cv.md) - [Find your fit](https://maintz.dev/start.md) - [Contact](https://maintz.dev/contact.md) - [CV (PDF)](https://maintz.dev/cv.pdf) - [CV på dansk (PDF)](https://maintz.dev/cv-da.pdf)