{
    "source": "https://moritzschacke.de/",
    "locales": [
        "de",
        "en",
        "fr"
    ],
    "profile": {
        "name": "Moritz Schacke",
        "title": {
            "de": "Softwareentwickler & Wirtschaftsinformatiker",
            "en": "Software Developer & Business Informatics Specialist",
            "fr": "Développeur logiciel & informaticien de gestion"
        },
        "tagline": {
            "de": "Verständlichkeit. Wartbarkeit. Performance.",
            "en": "Clarity. Maintainability. Performance.",
            "fr": "Clarté. Maintenabilité. Performance."
        },
        "summary": {
            "de": "Ich entwickle Software, die verständlich, wartbar und performant ist – von Web-Plattformen und internen Tools bis zu eigenen Engines. Seit 2020 baue und betreibe ich das Support-Ökosystem der Behnke Gruppe.",
            "en": "I build software that is understandable, maintainable and fast – from web platforms and internal tools to my own engines. Since 2020 I have been building and running the support ecosystem of the Behnke Group.",
            "fr": "Je développe des logiciels compréhensibles, maintenables et performants – des plateformes web et outils internes jusqu'à mes propres moteurs. Depuis 2020, je conçois et exploite l'écosystème de support du groupe Behnke."
        },
        "motto": {
            "de": "Dein Problem zuerst. Dann der Stack.",
            "en": "Your problem first. Then the stack.",
            "fr": "Ton problème d'abord. Ensuite la stack."
        },
        "focus": [
            {
                "de": "Web-Plattformen mit PHP",
                "en": "Web platforms in PHP",
                "fr": "Plateformes web en PHP"
            },
            {
                "de": "Software-Architektur",
                "en": "Software architecture",
                "fr": "Architecture logicielle"
            },
            {
                "de": "Linux-Betrieb",
                "en": "Linux operations",
                "fr": "Exploitation Linux"
            },
            {
                "de": "Security & CRA",
                "en": "Security & CRA",
                "fr": "Sécurité & CRA"
            },
            {
                "de": "KI-gestützte Entwicklung",
                "en": "AI-assisted development",
                "fr": "Développement assisté par IA"
            }
        ],
        "highlights": [
            {
                "value": "6+",
                "label": {
                    "de": "Jahre Programmierung",
                    "en": "years of coding",
                    "fr": "années de programmation"
                }
            },
            {
                "value": "5",
                "label": {
                    "de": "Jahre Plattformen im Dauerbetrieb",
                    "en": "years of platforms in continuous production",
                    "fr": "années de plateformes en production continue"
                }
            },
            {
                "value": "B.Sc.",
                "label": {
                    "de": "Wirtschaftsinformatik",
                    "en": "Business Informatics",
                    "fr": "Informatique de gestion"
                }
            }
        ],
        "location": {
            "region": "Saarland",
            "country": "DE",
            "remote": {
                "de": "Remote weltweit",
                "en": "Remote worldwide",
                "fr": "À distance, dans le monde entier"
            }
        },
        "languages": [
            {
                "code": "de",
                "level": "native",
                "name": {
                    "de": "Deutsch",
                    "en": "German",
                    "fr": "Allemand"
                },
                "levelLabel": {
                    "de": "Muttersprache",
                    "en": "Native",
                    "fr": "Langue maternelle"
                }
            },
            {
                "code": "en",
                "level": "C1",
                "name": {
                    "de": "Englisch",
                    "en": "English",
                    "fr": "Anglais"
                },
                "levelLabel": {
                    "de": "C1",
                    "en": "C1",
                    "fr": "C1"
                }
            },
            {
                "code": "fr",
                "level": "B1",
                "name": {
                    "de": "Französisch",
                    "en": "French",
                    "fr": "Français"
                },
                "levelLabel": {
                    "de": "B1",
                    "en": "B1",
                    "fr": "B1"
                }
            },
            {
                "code": "nl",
                "level": "A1",
                "name": {
                    "de": "Niederländisch",
                    "en": "Dutch",
                    "fr": "Néerlandais"
                },
                "levelLabel": {
                    "de": "A1",
                    "en": "A1",
                    "fr": "A1"
                }
            }
        ],
        "contact": {
            "email": "info@moritzschacke.de",
            "terminal": "gast@moritzschacke.de",
            "note": {
                "de": "Der schnellste Weg ist die direkte Mail.",
                "en": "The fastest way is a direct email.",
                "fr": "Le moyen le plus rapide est un e-mail direct."
            }
        },
        "links": [
            {
                "id": "website",
                "label": "moritzschacke.de",
                "url": "https://moritzschacke.de"
            },
            {
                "id": "github",
                "label": "GitHub",
                "url": "https://github.com/moritzschacke"
            },
            {
                "id": "gitlab",
                "label": "GitLab",
                "url": "https://gitlab.com/moritzschacke"
            },
            {
                "id": "linkedin",
                "label": "LinkedIn",
                "url": "https://www.linkedin.com/in/moritz-schacke-03b2451a5"
            }
        ]
    },
    "experience": {
        "positions": [
            {
                "id": "behnke-developer-tb",
                "start": "2026-01",
                "end": null,
                "employer": "Behnke Gruppe",
                "company": "Telefonbau Behnke GmbH",
                "role": {
                    "de": "Wirtschaftsinformatiker im Bereich Softwareentwicklung",
                    "en": "Business Informatics Specialist, Software Development",
                    "fr": "Informaticien de gestion, développement logiciel"
                },
                "description": {
                    "de": "Vertiefung im Bereich Cyber Resilience Act (CRA) und Übernahme der entsprechenden Aufgaben.",
                    "en": "Deepening expertise in the Cyber Resilience Act (CRA) and taking over the related responsibilities.",
                    "fr": "Approfondissement du Cyber Resilience Act (CRA) et prise en charge des tâches correspondantes."
                }
            },
            {
                "id": "behnke-developer-nz",
                "start": "2025-10",
                "end": "2025-12",
                "employer": "Behnke Gruppe",
                "company": "Notrufzentrale Behnke GmbH",
                "role": {
                    "de": "Wirtschaftsinformatiker im Bereich Softwareentwicklung",
                    "en": "Business Informatics Specialist, Software Development",
                    "fr": "Informaticien de gestion, développement logiciel"
                },
                "description": null
            },
            {
                "id": "behnke-working-student-msc",
                "start": "2025-04",
                "end": "2025-09",
                "employer": "Behnke Gruppe",
                "company": "Telefonbau Behnke GmbH",
                "role": {
                    "de": "Werkstudent (Master of Science)",
                    "en": "Working Student (Master of Science)",
                    "fr": "Étudiant salarié (Master of Science)"
                },
                "description": {
                    "de": "Entwicklung neuer Features und interner Tools, Ausbau zentraler Systeme.",
                    "en": "Development of new features and internal tools, extension of core systems.",
                    "fr": "Développement de nouvelles fonctionnalités et d'outils internes, extension des systèmes centraux."
                }
            },
            {
                "id": "behnke-working-student-bsc",
                "start": "2020-10",
                "end": "2025-03",
                "employer": "Behnke Gruppe",
                "company": "Telefonbau Behnke GmbH",
                "role": {
                    "de": "Werkstudent (Bachelor of Science)",
                    "en": "Working Student (Bachelor of Science)",
                    "fr": "Étudiant salarié (Bachelor of Science)"
                },
                "description": {
                    "de": "Modernisierung bestehender PHP- und Java-Tools.",
                    "en": "Modernisation of existing PHP and Java tools.",
                    "fr": "Modernisation d'outils PHP et Java existants."
                }
            },
            {
                "id": "behnke-support-assistant",
                "start": "2020-08",
                "end": "2020-10",
                "employer": "Behnke Gruppe",
                "company": "Telefonbau Behnke GmbH",
                "role": {
                    "de": "Aushilfe in Technik und Support",
                    "en": "Temporary Assistant, Technology & Support",
                    "fr": "Auxiliaire technique et support"
                },
                "description": null
            }
        ],
        "freelance": [
            {
                "id": "eric-carphotography",
                "project": "eric-carphotography",
                "role": {
                    "de": "Konzeption, Entwicklung, SEO",
                    "en": "Concept, development, SEO",
                    "fr": "Conception, développement, SEO"
                }
            }
        ]
    },
    "education": {
        "entries": [
            {
                "id": "msc-wi",
                "start": "2025-04",
                "end": "2025-09",
                "status": "discontinued",
                "institution": "IWi im DFKI, Universität des Saarlandes",
                "city": "Saarbrücken",
                "degree": {
                    "de": "Master of Science Wirtschaftsinformatik",
                    "en": "Master of Science in Business Informatics",
                    "fr": "Master of Science en informatique de gestion"
                },
                "description": {
                    "de": "Nach einem Semester beendet.",
                    "en": "Discontinued after one semester.",
                    "fr": "Interrompu après un semestre."
                },
                "focus": [
                    {
                        "de": "Data Engineering",
                        "en": "Data Engineering",
                        "fr": "Ingénierie des données"
                    },
                    {
                        "de": "Künstliche Intelligenz",
                        "en": "Artificial Intelligence",
                        "fr": "Intelligence artificielle"
                    },
                    {
                        "de": "Computergrafik",
                        "en": "Computer Graphics",
                        "fr": "Infographie"
                    },
                    {
                        "de": "Projektmanagement",
                        "en": "Project Management",
                        "fr": "Gestion de projet"
                    },
                    {
                        "de": "IT-Recht",
                        "en": "IT Law",
                        "fr": "Droit de l'informatique"
                    }
                ]
            },
            {
                "id": "bsc-wi",
                "start": "2021-10",
                "end": "2025-03",
                "status": "completed",
                "institution": "IWi im DFKI, Universität des Saarlandes",
                "city": "Saarbrücken",
                "degree": {
                    "de": "Bachelor of Science Wirtschaftsinformatik",
                    "en": "Bachelor of Science in Business Informatics",
                    "fr": "Bachelor of Science en informatique de gestion"
                },
                "description": {
                    "de": "Bachelorarbeit „KI als Innovator für die Automatisierung der Prozessmodellierung“: Vergleich von acht LLMs bei der BPMN-Generierung.",
                    "en": "Bachelor's thesis “AI as an Innovator for Automating Process Modelling”: a comparison of eight LLMs for BPMN generation.",
                    "fr": "Mémoire de bachelor « L'IA, innovatrice pour l'automatisation de la modélisation des processus » : comparaison de huit LLM pour la génération BPMN."
                },
                "thesis": "bachelor-thesis",
                "focus": [
                    {
                        "de": "Programmierung",
                        "en": "Programming",
                        "fr": "Programmation"
                    },
                    {
                        "de": "Algorithmen",
                        "en": "Algorithms",
                        "fr": "Algorithmique"
                    },
                    {
                        "de": "Software Engineering",
                        "en": "Software Engineering",
                        "fr": "Génie logiciel"
                    },
                    {
                        "de": "Big Data",
                        "en": "Big Data",
                        "fr": "Big Data"
                    },
                    {
                        "de": "Strategisches Management",
                        "en": "Strategic Management",
                        "fr": "Management stratégique"
                    },
                    {
                        "de": "Spieltheorie",
                        "en": "Game Theory",
                        "fr": "Théorie des jeux"
                    }
                ]
            },
            {
                "id": "bsc-cs",
                "start": "2020-10",
                "end": "2021-09",
                "status": "transferred",
                "institution": "SIC, Universität des Saarlandes",
                "city": "Saarbrücken",
                "degree": {
                    "de": "Bachelor of Science Informatik",
                    "en": "Bachelor of Science in Computer Science",
                    "fr": "Bachelor of Science en informatique"
                },
                "description": {
                    "de": "Wechsel in den Studiengang Wirtschaftsinformatik.",
                    "en": "Transferred to Business Informatics.",
                    "fr": "Réorientation vers l'informatique de gestion."
                },
                "focus": []
            },
            {
                "id": "abitur",
                "start": "2012-09",
                "end": "2020-07",
                "status": "completed",
                "institution": "Theodor-Heuss-Gymnasium",
                "city": "Sulzbach (Saar)",
                "degree": {
                    "de": "Abitur",
                    "en": "Abitur (German university entrance qualification)",
                    "fr": "Abitur (équivalent du baccalauréat)"
                },
                "description": {
                    "de": "Leistungskurse Mathematik und Englisch.",
                    "en": "Advanced courses in Mathematics and English.",
                    "fr": "Spécialités mathématiques et anglais."
                },
                "focus": []
            }
        ]
    },
    "projects": {
        "projects": [
            {
                "id": "behnke",
                "slug": "behnke",
                "featured": true,
                "start": "2020",
                "end": null,
                "name": {
                    "de": "Behnke Support-Ökosystem",
                    "en": "Behnke Support Ecosystem",
                    "fr": "Écosystème de support Behnke"
                },
                "category": {
                    "de": "Flaggschiff",
                    "en": "Flagship",
                    "fr": "Projet phare"
                },
                "role": {
                    "de": "Softwareentwicklung, Behnke Gruppe",
                    "en": "Software development, Behnke Group",
                    "fr": "Développement logiciel, groupe Behnke"
                },
                "summary": {
                    "de": "Support-Infrastruktur der Behnke Gruppe mit Geräteverwaltung, automatischen Updates, mehrsprachigem Dokumentations-Wiki, eigenem Status-Monitoring und Portal für Responsible Disclosure.",
                    "en": "Support infrastructure of the Behnke Group with device management, automatic updates, a multilingual documentation wiki, custom status monitoring and a responsible-disclosure portal.",
                    "fr": "Infrastructure de support du groupe Behnke : gestion des appareils, mises à jour automatiques, wiki de documentation multilingue, supervision maison et portail de divulgation responsable."
                },
                "components": [
                    {
                        "name": "Support-Server",
                        "url": "https://behnke.support",
                        "description": {
                            "de": "Geräteverwaltung und automatische Auslieferung von Updates.",
                            "en": "Device management and automatic update delivery.",
                            "fr": "Gestion des appareils et diffusion automatique des mises à jour."
                        }
                    },
                    {
                        "name": "Wiki",
                        "url": "https://wiki.behnke.support",
                        "description": {
                            "de": "Mehrsprachige Dokumentation mit Barrierefreiheit (Schriftgrößen, Kontrast, OpenDyslexic, Screen-Ruler) und PDF-Export.",
                            "en": "Multilingual documentation with accessibility features (font sizes, contrast, OpenDyslexic, screen ruler) and PDF export.",
                            "fr": "Documentation multilingue accessible (tailles de police, contraste, OpenDyslexic, règle de lecture) avec export PDF."
                        }
                    },
                    {
                        "name": "Status",
                        "url": "https://status.behnke.support",
                        "description": {
                            "de": "Eigenes Monitoring: DNS, TCP, TTFB-Latenz und Uptime-Historie.",
                            "en": "Custom monitoring: DNS, TCP, TTFB latency and uptime history.",
                            "fr": "Supervision maison : DNS, TCP, latence TTFB et historique de disponibilité."
                        }
                    },
                    {
                        "name": "Security",
                        "url": "https://security.behnke.support",
                        "description": {
                            "de": "Responsible-Disclosure-Portal mit veröffentlichten Advisories.",
                            "en": "Responsible-disclosure portal with published advisories.",
                            "fr": "Portail de divulgation responsable avec avis de sécurité publiés."
                        }
                    },
                    {
                        "name": "behnke-online.fr",
                        "url": "https://behnke-online.fr",
                        "description": {
                            "de": "Französischer Webauftritt der Gruppe.",
                            "en": "The group's French website.",
                            "fr": "Présence web française du groupe."
                        }
                    }
                ],
                "details": [
                    {
                        "de": "Den Ubuntu-VPS des Support-Servers habe ich selbst aufgesetzt und warte ihn dauerhaft – vom Deployment bis zum Monitoring.",
                        "en": "I set up the support server's Ubuntu VPS myself and maintain it continuously – from deployment to monitoring.",
                        "fr": "J'ai mis en place moi-même le VPS Ubuntu du serveur de support et je l'entretiens en continu – du déploiement à la supervision."
                    }
                ],
                "tech": [
                    "PHP",
                    "MySQL",
                    "JavaScript",
                    "Ubuntu VPS",
                    "i18n (DE/EN/FR)",
                    "Accessibility",
                    "Monitoring",
                    "Security"
                ],
                "links": [
                    {
                        "label": "behnke.support",
                        "url": "https://behnke.support"
                    }
                ]
            },
            {
                "id": "devgine-web",
                "slug": "devgine-web",
                "featured": true,
                "start": "2026-07",
                "end": null,
                "name": {
                    "de": "devgine / web",
                    "en": "devgine / web",
                    "fr": "devgine / web"
                },
                "category": {
                    "de": "Eigene Engine",
                    "en": "Own engine",
                    "fr": "Moteur maison"
                },
                "role": {
                    "de": "Autor & Maintainer",
                    "en": "Author & maintainer",
                    "fr": "Auteur & mainteneur"
                },
                "summary": {
                    "de": "PSR-konforme PHP-Web-Engine: Container, Router, Middleware-Kernel, Views mit Komponenten-System und Datenbank-Layer – ohne Laufzeitabhängigkeiten außer PSR-Interfaces. Auf ihr läuft moritzschacke.de.",
                    "en": "PSR-compliant PHP web engine: container, router, middleware kernel, views with a component system and a database layer – with no runtime dependencies beyond PSR interfaces. moritzschacke.de runs on it.",
                    "fr": "Moteur web PHP conforme aux PSR : conteneur, routeur, noyau middleware, vues avec système de composants et couche base de données – sans dépendance d'exécution hormis les interfaces PSR. moritzschacke.de fonctionne avec."
                },
                "components": [
                    {
                        "name": "Container",
                        "url": null,
                        "description": {
                            "de": "PSR-11 mit Autowiring, kontextuellen Bindings und Service-Provider-Lebenszyklus.",
                            "en": "PSR-11 with autowiring, contextual bindings and a service-provider lifecycle.",
                            "fr": "PSR-11 avec autowiring, liaisons contextuelles et cycle de vie des service providers."
                        }
                    },
                    {
                        "name": "HTTP & Middleware",
                        "url": null,
                        "description": {
                            "de": "PSR-7/15, Onion-Middleware-Pipeline, Security-Header.",
                            "en": "PSR-7/15, onion middleware pipeline, security headers.",
                            "fr": "PSR-7/15, pipeline middleware en oignon, en-têtes de sécurité."
                        }
                    },
                    {
                        "name": "Routing",
                        "url": null,
                        "description": {
                            "de": "Benannte Routen, Regex-Parameter, Attribut-Routen, Model-Binding.",
                            "en": "Named routes, regex-constrained parameters, attribute routes, model binding.",
                            "fr": "Routes nommées, paramètres contraints par regex, routes par attributs, liaison de modèles."
                        }
                    },
                    {
                        "name": "Views",
                        "url": null,
                        "description": {
                            "de": "PHP-Templates mit Layouts und Sections, Komponenten bündeln HTML/CSS/JS.",
                            "en": "PHP templates with layouts and sections; components bundle HTML/CSS/JS.",
                            "fr": "Templates PHP avec layouts et sections ; les composants regroupent HTML/CSS/JS."
                        }
                    },
                    {
                        "name": "Database",
                        "url": null,
                        "description": {
                            "de": "Query-Builder mit Prepared Statements, Schema-Builder, CLI-Migrationen.",
                            "en": "Query builder with prepared statements, schema builder, CLI migrations.",
                            "fr": "Query builder avec requêtes préparées, schema builder, migrations en CLI."
                        }
                    },
                    {
                        "name": "Auth & Sessions",
                        "url": null,
                        "description": {
                            "de": "Session-Guard, Remember-Me, CSRF-Schutz, sichere Cookies (HttpOnly/SameSite/Secure).",
                            "en": "Session guard, remember-me, CSRF protection, secure cookies (HttpOnly/SameSite/Secure).",
                            "fr": "Session guard, « se souvenir de moi », protection CSRF, cookies sécurisés (HttpOnly/SameSite/Secure)."
                        }
                    },
                    {
                        "name": {
                            "de": "Weitere Module",
                            "en": "Further modules",
                            "fr": "Autres modules"
                        },
                        "url": null,
                        "description": {
                            "de": "Validierung, PSR-16-Cache, PSR-14-Events, PSR-3-Logging, Mail, Filesystem, Lokalisierung, Rate-Limiting, Pagination, CLI, Test-Helfer.",
                            "en": "Validation, PSR-16 cache, PSR-14 events, PSR-3 logging, mail, filesystem, localisation, rate limiting, pagination, CLI, testing helpers.",
                            "fr": "Validation, cache PSR-16, événements PSR-14, journalisation PSR-3, mail, système de fichiers, localisation, limitation de débit, pagination, CLI, outils de test."
                        }
                    }
                ],
                "details": [
                    {
                        "de": "PHPStan auf Level max ohne Baseline, Tests für alle öffentlichen APIs, PSR-12 per php-cs-fixer.",
                        "en": "PHPStan at level max without a baseline, tests for every public API, PSR-12 enforced by php-cs-fixer.",
                        "fr": "PHPStan au niveau max sans baseline, tests pour toutes les API publiques, PSR-12 appliqué par php-cs-fixer."
                    },
                    {
                        "de": "Semantic Versioning, Conventional Commits, Changelog nach Keep a Changelog.",
                        "en": "Semantic versioning, conventional commits, changelog following Keep a Changelog.",
                        "fr": "Versionnage sémantique, Conventional Commits, changelog au format Keep a Changelog."
                    },
                    {
                        "de": "Closed Source – Codebeispiele und Deep-Dives auf Anfrage.",
                        "en": "Closed source – code samples and deep dives on request.",
                        "fr": "Code source fermé – exemples de code et présentations détaillées sur demande."
                    }
                ],
                "tech": [
                    "PHP 8.5",
                    "PSR-3/7/11/14/15/16/17",
                    "PHPStan",
                    "PHPUnit",
                    "PSR-12"
                ],
                "links": []
            },
            {
                "id": "devgine-game",
                "slug": "devgine-game",
                "featured": true,
                "start": null,
                "end": null,
                "name": {
                    "de": "devgine / game",
                    "en": "devgine / game",
                    "fr": "devgine / game"
                },
                "category": {
                    "de": "Eigene Engine",
                    "en": "Own engine",
                    "fr": "Moteur maison"
                },
                "role": {
                    "de": "Autor & Maintainer",
                    "en": "Author & maintainer",
                    "fr": "Auteur & mainteneur"
                },
                "summary": {
                    "de": "2D-Game-Engine auf Basis von libGDX mit Entity-Component-System: Komposition statt Vererbung, ausgelegt auf viele Entities pro Frame.",
                    "en": "2D game engine built on libGDX with an entity component system: composition over inheritance, designed for many entities per frame.",
                    "fr": "Moteur de jeu 2D basé sur libGDX avec un système entité-composant : composition plutôt qu'héritage, conçu pour de nombreuses entités par frame."
                },
                "components": [],
                "details": [
                    {
                        "de": "Entities sind IDs, Komponenten reine Daten, Systeme die Logik.",
                        "en": "Entities are IDs, components are pure data, systems hold the logic.",
                        "fr": "Les entités sont des identifiants, les composants de simples données, les systèmes portent la logique."
                    },
                    {
                        "de": "Datenorientiertes Design statt tiefer Objektgraphen.",
                        "en": "Data-oriented design instead of deep object graphs.",
                        "fr": "Conception orientée données plutôt que des graphes d'objets profonds."
                    },
                    {
                        "de": "libGDX übernimmt Rendering, Input und Plattform-Layer; die Architektur darüber ist selbst gebaut.",
                        "en": "libGDX handles rendering, input and the platform layer; the architecture on top is custom.",
                        "fr": "libGDX gère le rendu, les entrées et la couche plateforme ; l'architecture au-dessus est faite maison."
                    },
                    {
                        "de": "Motivation: Fertige Game-Engines bringen für 2D-Projekte oft mehr Editor als Engine mit.",
                        "en": "Motivation: off-the-shelf game engines often ship more editor than engine for 2D projects.",
                        "fr": "Motivation : pour des projets 2D, les moteurs existants apportent souvent plus d'éditeur que de moteur."
                    }
                ],
                "tech": [
                    "Java",
                    "libGDX",
                    "OpenGL",
                    "ECS",
                    "Data-oriented design"
                ],
                "links": []
            },
            {
                "id": "bachelor-thesis",
                "slug": "bachelorarbeit",
                "featured": true,
                "start": null,
                "end": "2025-01",
                "name": {
                    "de": "Bachelorarbeit: LLMs × BPMN",
                    "en": "Bachelor's Thesis: LLMs × BPMN",
                    "fr": "Mémoire de bachelor : LLM × BPMN"
                },
                "category": {
                    "de": "Forschung",
                    "en": "Research",
                    "fr": "Recherche"
                },
                "role": {
                    "de": "Autor, B.Sc. Wirtschaftsinformatik (IWi im DFKI, Universität des Saarlandes)",
                    "en": "Author, B.Sc. Business Informatics (IWi at DFKI, Saarland University)",
                    "fr": "Auteur, B.Sc. informatique de gestion (IWi au DFKI, Université de la Sarre)"
                },
                "summary": {
                    "de": "Systematischer Vergleich von acht LLMs bei der Generierung von BPMN-2.0-Modellen aus natürlicher Sprache – mit eigenem Evaluations-Framework und realen Datensätzen.",
                    "en": "Systematic comparison of eight LLMs generating BPMN 2.0 models from natural language – with a custom evaluation framework and real-world datasets.",
                    "fr": "Comparaison systématique de huit LLM pour générer des modèles BPMN 2.0 à partir du langage naturel – avec un cadre d'évaluation maison et des jeux de données réels."
                },
                "research": {
                    "question": {
                        "de": "Können frei verfügbare Sprachmodelle aus natürlichsprachigen Beschreibungen valide, nutzbare BPMN-2.0-Modelle erzeugen?",
                        "en": "Can freely available language models generate valid, usable BPMN 2.0 models from natural-language descriptions?",
                        "fr": "Des modèles de langage librement accessibles peuvent-ils produire des modèles BPMN 2.0 valides et exploitables à partir de descriptions en langage naturel ?"
                    },
                    "models": [
                        "o1",
                        "GPT-4o",
                        "GPT-4o-mini",
                        "GPT-4",
                        "Claude",
                        "Gemini",
                        "Gemini 2.0",
                        "Mistral 7B"
                    ],
                    "datasets": [
                        "Camunda",
                        "hdBPMN"
                    ],
                    "method": {
                        "de": "Über 20 Aufgaben in zwei Aufgabenklassen, darunter sieben Pseudo-BPMN-Aufgaben zu gezielten Spezifikationen; identische Prompting-Strategie für alle Modelle.",
                        "en": "20+ tasks in two task classes, including seven pseudo-BPMN tasks targeting specific specifications; identical prompting strategy for all models.",
                        "fr": "Plus de 20 tâches réparties en deux classes, dont sept tâches pseudo-BPMN ciblant des spécifications précises ; même stratégie de prompting pour tous les modèles."
                    },
                    "metrics": [
                        {
                            "de": "Valides BPMN-2.0-XML",
                            "en": "Valid BPMN 2.0 XML",
                            "fr": "XML BPMN 2.0 valide"
                        },
                        {
                            "de": "Vollständigkeit",
                            "en": "Completeness",
                            "fr": "Complétude"
                        },
                        {
                            "de": "Präzision",
                            "en": "Precision",
                            "fr": "Précision"
                        },
                        {
                            "de": "F1-Score",
                            "en": "F1 score",
                            "fr": "Score F1"
                        },
                        {
                            "de": "Logische Korrektheit (Soundness)",
                            "en": "Logical correctness (soundness)",
                            "fr": "Correction logique (soundness)"
                        }
                    ],
                    "findings": [
                        {
                            "de": "Klare Anweisungen führten zu nahezu fehlerfreien Modellen.",
                            "en": "Clear instructions produced near error-free models.",
                            "fr": "Des instructions claires ont donné des modèles presque sans erreur."
                        },
                        {
                            "de": "Unstrukturierte Prozessbeschreibungen verschlechterten die Ergebnisse aller Modelle deutlich.",
                            "en": "Unstructured process descriptions clearly degraded the results of every model.",
                            "fr": "Les descriptions de processus non structurées ont nettement dégradé les résultats de tous les modèles."
                        },
                        {
                            "de": "Valides XML zu erzeugen war schwieriger, als den Prozess zu verstehen.",
                            "en": "Producing valid XML proved harder than understanding the process.",
                            "fr": "Produire un XML valide s'est révélé plus difficile que de comprendre le processus."
                        },
                        {
                            "de": "Für den produktiven Einsatz bleibt menschliche Prüfung nötig.",
                            "en": "Human review remains necessary for production use.",
                            "fr": "Une relecture humaine reste nécessaire pour un usage en production."
                        }
                    ]
                },
                "components": [],
                "details": [],
                "tech": [
                    "LLM evaluation",
                    "BPMN 2.0",
                    "Prompt engineering",
                    "F1 score",
                    "Camunda",
                    "hdBPMN"
                ],
                "links": []
            },
            {
                "id": "gametecx",
                "slug": "gametecx",
                "featured": false,
                "start": "2020",
                "end": null,
                "name": {
                    "de": "GameTecX",
                    "en": "GameTecX",
                    "fr": "GameTecX"
                },
                "category": {
                    "de": "Gaming-Club",
                    "en": "Gaming club",
                    "fr": "Club de jeu"
                },
                "role": {
                    "de": "Gründer & Entwickler",
                    "en": "Founder & developer",
                    "fr": "Fondateur & développeur"
                },
                "summary": {
                    "de": "Gaming-Club unter Freunden und zugleich das Labor, in dem Technik-Ideen ohne Kundendruck entstehen – mit eigenen Minecraft-Plugins und -Mods sowie GTA-Roleplay-Projekten.",
                    "en": "A gaming club among friends and, at the same time, the lab where tech ideas grow without client pressure – with custom Minecraft plugins and mods as well as GTA roleplay projects.",
                    "fr": "Un club de jeu entre amis et, en même temps, le laboratoire où naissent des idées techniques sans pression client – avec des plugins et mods Minecraft maison et des projets de roleplay GTA."
                },
                "components": [
                    {
                        "name": "Minecraft-Server",
                        "url": null,
                        "description": {
                            "de": "Eigene Plugins auf Basis der Spigot-API, zugeschnitten auf die Community.",
                            "en": "Custom plugins based on the Spigot API, tailored to the community.",
                            "fr": "Plugins maison basés sur l'API Spigot, adaptés à la communauté."
                        }
                    },
                    {
                        "name": "Minecraft-Mods",
                        "url": null,
                        "description": {
                            "de": "Eigene Mods mit Forge.",
                            "en": "Custom mods built with Forge.",
                            "fr": "Mods maison développés avec Forge."
                        }
                    },
                    {
                        "name": "GTA-RP",
                        "url": null,
                        "description": {
                            "de": "GTA-Roleplay-Serverprojekte und Spielprototypen.",
                            "en": "GTA roleplay server projects and game prototypes.",
                            "fr": "Projets de serveurs de roleplay GTA et prototypes de jeux."
                        }
                    }
                ],
                "details": [
                    {
                        "de": "Eine Spielwiese, auf der Technik trotzdem zuverlässig laufen muss – denn abends wird gespielt.",
                        "en": "A playground where the tech still has to run reliably – because people play in the evening.",
                        "fr": "Un terrain de jeu où la technique doit tout de même fonctionner de manière fiable – car le soir, on joue."
                    }
                ],
                "tech": [
                    "Java",
                    "Spigot API",
                    "Forge",
                    "Server operations",
                    "Community management"
                ],
                "links": []
            },
            {
                "id": "eric-carphotography",
                "slug": "eric-schank",
                "featured": false,
                "start": "2021",
                "end": null,
                "name": {
                    "de": "Eric Carphotography",
                    "en": "Eric Carphotography",
                    "fr": "Eric Carphotography"
                },
                "category": {
                    "de": "Kundenprojekt",
                    "en": "Client work",
                    "fr": "Projet client"
                },
                "role": {
                    "de": "Freelance: Konzeption, Entwicklung, SEO",
                    "en": "Freelance: concept, development, SEO",
                    "fr": "Freelance : conception, développement, SEO"
                },
                "summary": {
                    "de": "Portfolio-Website für einen Automobilfotografen – galerieorientiert, auf Auffindbarkeit optimiert und mehrsprachig, ohne Baukasten-Grenzen.",
                    "en": "Portfolio website for an automotive photographer – gallery-focused, optimised for discoverability and multilingual, free of site-builder limits.",
                    "fr": "Site portfolio pour un photographe automobile – centré sur la galerie, optimisé pour la visibilité et multilingue, sans les limites d'un constructeur de sites."
                },
                "components": [],
                "details": [
                    {
                        "de": "SEO-Fundament pro Seite gepflegt: Meta-Description, OG-/Twitter-Tags, Canonical, Keywords, theme-color.",
                        "en": "SEO foundation maintained per page: meta description, OG/Twitter tags, canonical, keywords, theme-color.",
                        "fr": "Fondations SEO gérées page par page : meta description, balises OG/Twitter, canonical, mots-clés, theme-color."
                    },
                    {
                        "de": "Mehrsprachigkeit ohne schwere Frameworks (DE, EN, FR, NL, PL, RU, ZH).",
                        "en": "Multilingual without heavy frameworks (DE, EN, FR, NL, PL, RU, ZH).",
                        "fr": "Multilingue sans framework lourd (DE, EN, FR, NL, PL, RU, ZH)."
                    },
                    {
                        "de": "Schlanke Cookie-Consent-Lösung statt Drittanbieter-Banner.",
                        "en": "Lightweight cookie consent instead of third-party banners.",
                        "fr": "Consentement aux cookies léger au lieu de bannières tierces."
                    },
                    {
                        "de": "Blog mit mehrsprachiger Inhaltsverwaltung.",
                        "en": "Blog with multilingual content management.",
                        "fr": "Blog avec gestion de contenu multilingue."
                    }
                ],
                "tech": [
                    "devgine",
                    "SEO",
                    "i18n",
                    "Cookie consent",
                    "Performance"
                ],
                "links": [
                    {
                        "label": "ericcarphotography.com",
                        "url": "https://ericcarphotography.com"
                    }
                ]
            },
            {
                "id": "imbodo",
                "slug": "imbodo",
                "featured": false,
                "start": "2026-07",
                "end": null,
                "name": {
                    "de": "imbodo.com",
                    "en": "imbodo.com",
                    "fr": "imbodo.com"
                },
                "category": {
                    "de": "Eigenes Web-Projekt",
                    "en": "Personal web project",
                    "fr": "Projet web personnel"
                },
                "role": {
                    "de": "Autor & Entwickler",
                    "en": "Author & developer",
                    "fr": "Auteur & développeur"
                },
                "summary": {
                    "de": "Sammlung kleiner JavaScript-Browserspiele – einfach aus Spaß. devgine übernimmt Routing, Views, Sessions und Auslieferung; jedes Spiel läuft eigenständig im Browser.",
                    "en": "A collection of small JavaScript browser games – just for fun. devgine handles routing, views, sessions and delivery; each game runs on its own in the browser.",
                    "fr": "Une collection de petits jeux JavaScript dans le navigateur – juste pour le plaisir. devgine gère le routage, les vues, les sessions et la diffusion ; chaque jeu tourne de façon autonome dans le navigateur."
                },
                "components": [],
                "details": [
                    {
                        "de": "Spiele kommen einzeln nach und nach hinzu.",
                        "en": "Games are added one at a time.",
                        "fr": "Les jeux sont ajoutés un par un."
                    },
                    {
                        "de": "Zugang nur per Einladung: keine offene Registrierung, nur technisch notwendige Cookies, kein Tracking, keine Werbung.",
                        "en": "Invitation-only access: no open registration, only technically necessary cookies, no tracking, no ads.",
                        "fr": "Accès sur invitation uniquement : pas d'inscription ouverte, uniquement des cookies techniquement nécessaires, pas de suivi, pas de publicité."
                    }
                ],
                "tech": [
                    "devgine",
                    "PHP 8.5",
                    "JavaScript",
                    "Sessions",
                    "SQLite",
                    "MySQL"
                ],
                "links": [
                    {
                        "label": "imbodo.com",
                        "url": "https://imbodo.com"
                    }
                ]
            }
        ]
    },
    "work": {
        "visibilityLevels": {
            "public": {
                "de": "Öffentlich darstellbar",
                "en": "May be shown publicly",
                "fr": "Peut être affiché publiquement"
            },
            "internal": {
                "de": "Intern beim Arbeitgeber – nur nach Freigabe veröffentlichen",
                "en": "Employer-internal – publish only after approval",
                "fr": "Interne à l'employeur – à publier uniquement après accord"
            },
            "private": {
                "de": "Privat, unveröffentlicht",
                "en": "Private, unpublished",
                "fr": "Privé, non publié"
            }
        },
        "stats": {
            "gitlabMemberSince": "2020-10-26",
            "asOf": "2026-09-29"
        },
        "contributions": [
            {
                "id": "behnke-support-server",
                "visibility": "public",
                "org": "behnke",
                "start": "2025-08",
                "end": null,
                "commits": 934,
                "url": "https://behnke.support",
                "name": {
                    "de": "Behnke Support-Server (Neuentwicklung)",
                    "en": "Behnke Support Server (rewrite)",
                    "fr": "Serveur de support Behnke (refonte)"
                },
                "role": {
                    "de": "Hauptentwickler",
                    "en": "Lead developer",
                    "fr": "Développeur principal"
                },
                "summary": {
                    "de": "Nachfolger des Legacy-Support-Servers: Firmware-Downloads, Lizenzen, Handbücher und Versionsinformationen für Behnke-Produkte, Verwaltung von Konten, Geräten und API-Keys, REST-API für externe Systeme. Anmeldung mit 2FA über TOTP und Passkeys (WebAuthn).",
                    "en": "Successor to the legacy support server: firmware downloads, licences, manuals and version information for Behnke products, management of accounts, devices and API keys, and a REST API for external systems. Sign-in with 2FA via TOTP and passkeys (WebAuthn).",
                    "fr": "Successeur de l'ancien serveur de support : téléchargements de firmware, licences, manuels et informations de version pour les produits Behnke, gestion des comptes, appareils et clés API, API REST pour les systèmes externes. Connexion à double facteur via TOTP et passkeys (WebAuthn)."
                },
                "tech": [
                    "PHP 8.5",
                    "TBB/PHPCore",
                    "MySQL",
                    "JWT",
                    "TOTP",
                    "WebAuthn",
                    "S3",
                    "PHPStan (max)"
                ]
            },
            {
                "id": "behnke-wiki",
                "visibility": "public",
                "org": "behnke",
                "start": "2022-12",
                "end": null,
                "commits": 1804,
                "url": "https://wiki.behnke.support",
                "name": {
                    "de": "Behnke Wiki-System",
                    "en": "Behnke Wiki System",
                    "fr": "Système wiki Behnke"
                },
                "role": {
                    "de": "Entwickler & Redakteur",
                    "en": "Developer & editor",
                    "fr": "Développeur & rédacteur"
                },
                "summary": {
                    "de": "PHP-Anwendung, die GitLab-Wikis als dynamische, barrierearme Webseiten ausliefert – für Produktdokumentation zu Behnke-Sprechanlagen, Notrufstationen, IP-Sprechstellen und Zubehör. Dazu redaktionelle Arbeit in den Wikis auf Deutsch, Englisch, Französisch und im internen Wiki (rund 2.800 Commits).",
                    "en": "PHP application that serves GitLab wikis as dynamic, accessible web pages – for product documentation on Behnke intercoms, emergency call stations, IP intercoms and accessories. Plus editorial work in the German, English, French and internal wikis (around 2,800 commits).",
                    "fr": "Application PHP qui publie des wikis GitLab sous forme de pages web dynamiques et accessibles – pour la documentation des interphones, bornes d'appel d'urgence, postes IP et accessoires Behnke. S'y ajoute le travail rédactionnel dans les wikis allemand, anglais, français et interne (environ 2 800 commits)."
                },
                "tech": [
                    "PHP",
                    "GitLab Wiki",
                    "Docker",
                    "Accessibility",
                    "i18n (DE/EN/FR)"
                ]
            },
            {
                "id": "behnke-status",
                "visibility": "public",
                "org": "behnke",
                "start": "2025-08",
                "end": null,
                "commits": 40,
                "url": "https://status.behnke.support",
                "name": {
                    "de": "Behnke System Status",
                    "en": "Behnke System Status",
                    "fr": "Behnke System Status"
                },
                "role": {
                    "de": "Autor",
                    "en": "Author",
                    "fr": "Auteur"
                },
                "summary": {
                    "de": "Zentrale Statusseite für alle Behnke-Webprodukte: Ein Checker fragt Health-Endpunkte ab, speichert Verfügbarkeit und Latenzen als Zeitreihe und zeigt Gesamtstatus, Latenzstatistik und Uptime-Historie. Reines PHP ohne Abhängigkeiten und ohne Datenbank; überwacht sich selbst mit.",
                    "en": "Central status page for all Behnke web products: a checker polls health endpoints, stores availability and latency as a time series and shows overall status, latency statistics and uptime history. Plain PHP with no dependencies and no database; it monitors itself too.",
                    "fr": "Page de statut centrale pour tous les produits web Behnke : un vérificateur interroge les endpoints de santé, enregistre disponibilité et latences en série temporelle et affiche l'état global, les statistiques de latence et l'historique de disponibilité. PHP pur, sans dépendance ni base de données ; il se surveille lui-même."
                },
                "metrics": [
                    {
                        "value": "4",
                        "label": {
                            "de": "überwachte Dienste",
                            "en": "monitored services",
                            "fr": "services supervisés"
                        }
                    },
                    {
                        "value": "100 %",
                        "label": {
                            "de": "Uptime in den letzten 90 Checks (Stand 29.09.2026)",
                            "en": "uptime over the last 90 checks (as of 29 Sep 2026)",
                            "fr": "de disponibilité sur les 90 derniers contrôles (au 29/09/2026)"
                        }
                    },
                    {
                        "value": "208.768",
                        "label": {
                            "de": "Checks allein für das Wiki",
                            "en": "checks for the wiki alone",
                            "fr": "contrôles pour le seul wiki"
                        }
                    }
                ],
                "tech": [
                    "PHP 8.4",
                    "cURL",
                    "Cron",
                    "Docker"
                ]
            },
            {
                "id": "behnke-security",
                "visibility": "public",
                "org": "behnke",
                "start": "2026-04",
                "end": null,
                "commits": 36,
                "url": "https://security.behnke.support",
                "name": {
                    "de": "Behnke Security-Meldestelle",
                    "en": "Behnke Security Reporting Portal",
                    "fr": "Portail de signalement de sécurité Behnke"
                },
                "role": {
                    "de": "Autor",
                    "en": "Author",
                    "fr": "Auteur"
                },
                "summary": {
                    "de": "Zentrale Meldestelle für Schwachstellen in Behnke-Produkten: nimmt Meldungen per Formular oder E-Mail entgegen, legt daraus vertrauliche Incidents mit den Fristen aus CRA Art. 14 und DSGVO Art. 33 an und veröffentlicht Advisories. Dreisprachig.",
                    "en": "Central reporting point for vulnerabilities in Behnke products: accepts reports via form or email, turns them into confidential incidents with the deadlines from CRA Art. 14 and GDPR Art. 33, and publishes advisories. Trilingual.",
                    "fr": "Point de signalement central des vulnérabilités des produits Behnke : reçoit les signalements par formulaire ou e-mail, en crée des incidents confidentiels assortis des délais de l'art. 14 du CRA et de l'art. 33 du RGPD, et publie les avis de sécurité. Trilingue."
                },
                "tech": [
                    "PHP 8.5",
                    "TBB/PHPCore",
                    "GitLab Incidents",
                    "CRA",
                    "GDPR",
                    "i18n (DE/EN/FR)"
                ]
            },
            {
                "id": "behnke-cdn",
                "visibility": "public",
                "org": "behnke",
                "start": "2025-09",
                "end": "2026-04",
                "commits": 118,
                "url": "https://cdn.behnke.support/licenses",
                "name": {
                    "de": "Behnke CDN",
                    "en": "Behnke CDN",
                    "fr": "CDN Behnke"
                },
                "role": {
                    "de": "Autor",
                    "en": "Author",
                    "fr": "Auteur"
                },
                "summary": {
                    "de": "Content Delivery Network für alle Webprojekte der Gruppe: gemeinsame, versionierte Skripte, Styles und Assets mit dokumentierten Lizenzen.",
                    "en": "Content delivery network for all of the group's web projects: shared, versioned scripts, styles and assets with documented licences.",
                    "fr": "Réseau de diffusion de contenu pour tous les projets web du groupe : scripts, styles et ressources partagés et versionnés, avec licences documentées."
                },
                "tech": [
                    "JavaScript",
                    "CSS",
                    "Versioned assets"
                ]
            },
            {
                "id": "behnke-online-fr",
                "visibility": "public",
                "org": "behnke",
                "start": "2024-06",
                "end": null,
                "commits": 1396,
                "url": "https://behnke-online.fr",
                "name": {
                    "de": "behnke-online.fr (FR-Websystem)",
                    "en": "behnke-online.fr (FR web system)",
                    "fr": "behnke-online.fr (système web FR)"
                },
                "role": {
                    "de": "Autor",
                    "en": "Author",
                    "fr": "Auteur"
                },
                "summary": {
                    "de": "Backend, Frontend und eigenes Content-Management für den französischen Webauftritt der Gruppe, mit automatischer Synchronisierung und Sprachausgabe über Amazon Polly.",
                    "en": "Backend, frontend and custom content management for the group's French website, with automatic synchronisation and text-to-speech via Amazon Polly.",
                    "fr": "Backend, frontend et gestion de contenu sur mesure pour le site français du groupe, avec synchronisation automatique et synthèse vocale via Amazon Polly."
                },
                "tech": [
                    "PHP",
                    "JavaScript",
                    "Python",
                    "Amazon Polly",
                    "CMS"
                ]
            },
            {
                "id": "devgine-web-repo",
                "visibility": "public",
                "org": "gametecx",
                "start": "2026-07",
                "end": null,
                "commits": 40,
                "project": "devgine-web",
                "url": null,
                "name": {
                    "de": "devgine / web",
                    "en": "devgine / web",
                    "fr": "devgine / web"
                },
                "role": {
                    "de": "Autor & Maintainer",
                    "en": "Author & maintainer",
                    "fr": "Auteur & mainteneur"
                },
                "summary": {
                    "de": "Siehe Projekt devgine / web; Guide mit 25 Kapiteln, ein Kapitel je Baustein.",
                    "en": "See the devgine / web project; guide with 25 chapters, one per building block.",
                    "fr": "Voir le projet devgine / web ; guide en 25 chapitres, un par brique."
                },
                "tech": [
                    "PHP 8.5"
                ]
            },
            {
                "id": "pong-clone",
                "visibility": "public",
                "org": "personal",
                "start": null,
                "end": null,
                "commits": null,
                "url": "https://github.com/moritzschacke/pong-clone",
                "name": {
                    "de": "Pong-Klon",
                    "en": "Pong clone",
                    "fr": "Clone de Pong"
                },
                "role": {
                    "de": "Autor",
                    "en": "Author",
                    "fr": "Auteur"
                },
                "summary": {
                    "de": "Pong in Java mit raylib-Bindings, dazu ein eigener Server.",
                    "en": "Pong in Java with raylib bindings, plus its own server.",
                    "fr": "Pong en Java avec les bindings raylib, accompagné de son propre serveur."
                },
                "tech": [
                    "Java",
                    "raylib"
                ]
            }
        ]
    },
    "skills": {
        "levels": {
            "expert": {
                "de": "Experte – täglich im Produktiveinsatz, eigene Systeme darauf gebaut",
                "en": "Expert – daily production use, built own systems on it",
                "fr": "Expert – usage quotidien en production, systèmes propres construits dessus"
            },
            "advanced": {
                "de": "Fortgeschritten – regelmäßig in produktiven Projekten",
                "en": "Advanced – regularly used in production projects",
                "fr": "Avancé – utilisé régulièrement dans des projets en production"
            },
            "proficient": {
                "de": "Sicher – in mindestens einem echten Projekt eingesetzt",
                "en": "Proficient – used in at least one real project",
                "fr": "Opérationnel – utilisé dans au moins un projet réel"
            },
            "basic": {
                "de": "Grundlagen – aus Studium oder Einarbeitung, ohne eigenes Projekt",
                "en": "Basics – from studies or onboarding, no own project yet",
                "fr": "Notions – issues des études ou d'une prise en main, sans projet propre"
            }
        },
        "categories": [
            {
                "id": "languages",
                "name": {
                    "de": "Programmiersprachen",
                    "en": "Programming Languages",
                    "fr": "Langages de programmation"
                },
                "skills": [
                    {
                        "name": "PHP",
                        "level": "expert",
                        "since": "2020",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-support-server",
                            "behnke-online-fr",
                            "devgine-web"
                        ]
                    },
                    {
                        "name": "JavaScript",
                        "level": "expert",
                        "since": "2020",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-cdn",
                            "behnke-support-server",
                            "imbodo"
                        ]
                    },
                    {
                        "name": "SQL",
                        "level": "expert",
                        "since": "2020",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-support-server",
                            "devgine-web"
                        ]
                    },
                    {
                        "name": "HTML5 & CSS",
                        "level": "expert",
                        "since": "2020",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-wiki",
                            "behnke-cdn",
                            "eric-carphotography"
                        ]
                    },
                    {
                        "name": "Java",
                        "level": "advanced",
                        "since": "2020",
                        "lastUsed": "2026-08",
                        "evidence": [
                            "devgine-game",
                            "gametecx"
                        ]
                    },
                    {
                        "name": "TypeScript",
                        "level": "advanced",
                        "since": "2026-09",
                        "lastUsed": "2026-09",
                        "evidence": []
                    },
                    {
                        "name": "Bash",
                        "level": "advanced",
                        "since": "2021",
                        "lastUsed": "2026-09",
                        "evidence": []
                    },
                    {
                        "name": "Python",
                        "level": "proficient",
                        "since": "2024",
                        "lastUsed": "2026-08",
                        "evidence": [
                            "behnke-online-fr"
                        ]
                    },
                    {
                        "name": "C/C++",
                        "level": "basic",
                        "since": null,
                        "lastUsed": null,
                        "evidence": []
                    }
                ]
            },
            {
                "id": "backend",
                "name": {
                    "de": "Backend & Frameworks",
                    "en": "Backend & Frameworks",
                    "fr": "Backend & frameworks"
                },
                "skills": [
                    {
                        "name": "Framework-Design (PSR-7/11/14/15/16)",
                        "level": "expert",
                        "since": "2026-01",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "devgine-web"
                        ]
                    },
                    {
                        "name": "REST-API-Design & -Dokumentation",
                        "level": "expert",
                        "since": "2025",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-support-server"
                        ]
                    },
                    {
                        "name": "Software-Architektur",
                        "level": "expert",
                        "since": "2025",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "devgine-web",
                            "behnke-support-server"
                        ],
                        "detail": {
                            "de": "Eigene Frameworks, modulare Systeme und bewusste Architekturentscheidungen (ADRs).",
                            "en": "Own frameworks, modular systems and deliberate architecture decisions (ADRs).",
                            "fr": "Frameworks maison, systèmes modulaires et décisions d’architecture documentées (ADR)."
                        }
                    },
                    {
                        "name": "Legacy-Modernisierung & Migration",
                        "level": "expert",
                        "since": "2020",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-support-server"
                        ],
                        "detail": {
                            "de": "Schrittweise Ablösung gewachsener Systeme im laufenden Betrieb, inkl. Datenbrücken zwischen Alt- und Neusystem.",
                            "en": "Step-by-step replacement of grown systems while they stay in production, including data bridges between old and new.",
                            "fr": "Remplacement progressif de systèmes historiques en production, y compris des passerelles de données entre ancien et nouveau."
                        }
                    },
                    {
                        "name": "Node.js & TypeScript-Ökosystem",
                        "level": "advanced",
                        "since": "2026-09",
                        "lastUsed": "2026-09",
                        "evidence": [],
                        "detail": {
                            "de": "Node-Toolchain mit npm, Vitest und Jest; serverseitig auf Cloudflare Workers statt klassischem Node-Server.",
                            "en": "Node toolchain with npm, Vitest and Jest; server-side on Cloudflare Workers rather than a classic Node server.",
                            "fr": "Chaîne d'outils Node avec npm, Vitest et Jest ; côté serveur sur Cloudflare Workers plutôt qu'un serveur Node classique."
                        }
                    },
                    {
                        "name": "JSON Schema & Validierung (opis, Zod)",
                        "level": "advanced",
                        "since": "2026",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "devgine-web"
                        ]
                    },
                    {
                        "name": "PDF-Erzeugung (mPDF, Dompdf)",
                        "level": "advanced",
                        "since": "2022",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-support-server",
                            "behnke-wiki"
                        ]
                    },
                    {
                        "name": "OAuth 2.0",
                        "level": "proficient",
                        "since": "2026-09",
                        "lastUsed": "2026-09",
                        "evidence": []
                    },
                    {
                        "name": "Laravel",
                        "level": "basic",
                        "since": null,
                        "lastUsed": null,
                        "evidence": []
                    },
                    {
                        "name": "Symfony",
                        "level": "basic",
                        "since": null,
                        "lastUsed": null,
                        "evidence": []
                    },
                    {
                        "name": "Spring",
                        "level": "basic",
                        "since": null,
                        "lastUsed": null,
                        "evidence": []
                    }
                ]
            },
            {
                "id": "frontend",
                "name": {
                    "de": "Frontend & Mobile",
                    "en": "Frontend & Mobile",
                    "fr": "Frontend & mobile"
                },
                "note": {
                    "de": "Vanilla JS, wenn es reicht.",
                    "en": "Vanilla JS when it's enough.",
                    "fr": "Du Vanilla JS quand cela suffit."
                },
                "skills": [
                    {
                        "name": "Vanilla JS (UI ohne Framework)",
                        "level": "advanced",
                        "since": "2020",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-support-server",
                            "behnke-cdn"
                        ]
                    },
                    {
                        "name": "React Native & Expo",
                        "level": "proficient",
                        "since": "2026-09",
                        "lastUsed": "2026-09",
                        "evidence": [],
                        "detail": {
                            "de": "Expo Router, TanStack Query, Reanimated, SQLite, Jest.",
                            "en": "Expo Router, TanStack Query, Reanimated, SQLite, Jest.",
                            "fr": "Expo Router, TanStack Query, Reanimated, SQLite, Jest."
                        }
                    },
                    {
                        "name": "React",
                        "level": "proficient",
                        "since": "2026-09",
                        "lastUsed": "2026-09",
                        "evidence": []
                    },
                    {
                        "name": "Bootstrap",
                        "level": "proficient",
                        "since": null,
                        "lastUsed": null,
                        "evidence": []
                    }
                ]
            },
            {
                "id": "data",
                "name": {
                    "de": "Datenbanken",
                    "en": "Databases",
                    "fr": "Bases de données"
                },
                "note": {
                    "de": "Schwerpunkt auf Modellierung, Optimierung und Migrationen.",
                    "en": "Focus on modelling, optimisation and migrations.",
                    "fr": "Accent sur la modélisation, l'optimisation et les migrations."
                },
                "skills": [
                    {
                        "name": "MySQL",
                        "level": "expert",
                        "since": "2020",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-support-server",
                            "behnke"
                        ]
                    },
                    {
                        "name": "Schema-Migrationen",
                        "level": "advanced",
                        "since": "2025",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-support-server",
                            "devgine-web"
                        ]
                    },
                    {
                        "name": "SQLite",
                        "level": "proficient",
                        "since": "2026-07",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "imbodo"
                        ]
                    },
                    {
                        "name": "PostgreSQL",
                        "level": "basic",
                        "since": null,
                        "lastUsed": null,
                        "evidence": []
                    }
                ]
            },
            {
                "id": "cloud-devops",
                "name": {
                    "de": "Cloud, Infrastruktur & DevOps",
                    "en": "Cloud, Infrastructure & DevOps",
                    "fr": "Cloud, infrastructure & DevOps"
                },
                "skills": [
                    {
                        "name": "Linux-Server (Ubuntu): Einrichtung, Härtung, Betrieb",
                        "level": "expert",
                        "since": "2020",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke"
                        ]
                    },
                    {
                        "name": "Git & GitLab",
                        "level": "expert",
                        "since": "2020",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-wiki",
                            "behnke-support-server"
                        ]
                    },
                    {
                        "name": "Monitoring & Health-Checks",
                        "level": "expert",
                        "since": "2025",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-status"
                        ]
                    },
                    {
                        "name": "Release-Signierung & -Verschlüsselung",
                        "level": "expert",
                        "since": "2025",
                        "lastUsed": "2026-09",
                        "evidence": []
                    },
                    {
                        "name": "Cron-Jobs & Hintergrundprozesse",
                        "level": "expert",
                        "since": "2022",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-status",
                            "behnke-support-server",
                            "behnke-online-fr"
                        ]
                    },
                    {
                        "name": "GitLab CI/CD",
                        "level": "advanced",
                        "since": "2026",
                        "lastUsed": "2026-09",
                        "evidence": []
                    },
                    {
                        "name": "Docker",
                        "level": "advanced",
                        "since": "2022",
                        "lastUsed": "2026-08",
                        "evidence": [
                            "behnke-wiki",
                            "behnke-status",
                            "behnke-cdn"
                        ]
                    },
                    {
                        "name": "AWS (S3, Polly, AWS SDK)",
                        "level": "advanced",
                        "since": "2024",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-support-server",
                            "behnke-online-fr"
                        ],
                        "detail": {
                            "de": "Seit 2024 produktiv: S3-Speicher für Firmware-Binaries und Amazon Polly für automatische Sprachausgabe, angebunden über das AWS SDK for PHP.",
                            "en": "In production since 2024: S3 storage for firmware binaries and Amazon Polly for automatic speech output, integrated via the AWS SDK for PHP.",
                            "fr": "En production depuis 2024 : stockage S3 pour les binaires de firmware et Amazon Polly pour la synthèse vocale automatique, intégrés via l’AWS SDK for PHP."
                        }
                    },
                    {
                        "name": "Hosting & Serververwaltung (VPS, Plesk)",
                        "level": "advanced",
                        "since": "2020",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke"
                        ]
                    },
                    {
                        "name": "Cloudflare Workers",
                        "level": "proficient",
                        "since": "2026-09",
                        "lastUsed": "2026-09",
                        "evidence": []
                    },
                    {
                        "name": "SIP / Kamailio",
                        "level": "basic",
                        "since": "2021",
                        "lastUsed": "2021",
                        "evidence": []
                    }
                ]
            },
            {
                "id": "security",
                "name": {
                    "de": "Sicherheit & Compliance",
                    "en": "Security & Compliance",
                    "fr": "Sécurité & conformité"
                },
                "skills": [
                    {
                        "name": "Cyber Resilience Act (EU) 2024/2847",
                        "level": "expert",
                        "since": "2025-12",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-security"
                        ]
                    },
                    {
                        "name": "Coordinated Vulnerability Disclosure",
                        "level": "expert",
                        "since": "2026-04",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-security"
                        ]
                    },
                    {
                        "name": "Web-Security: CSRF, Sessions, parametrisiertes SQL, Security-Header",
                        "level": "expert",
                        "since": "2020",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "devgine-web",
                            "behnke-support-server"
                        ]
                    },
                    {
                        "name": "Authentifizierung: JWT, TOTP, WebAuthn/Passkeys",
                        "level": "advanced",
                        "since": "2025",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-support-server"
                        ]
                    },
                    {
                        "name": "Kryptografie in der Praxis (libsodium, Ed25519, Signaturen)",
                        "level": "advanced",
                        "since": "2025",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "devgine-web"
                        ]
                    },
                    {
                        "name": "EN 18031",
                        "level": "proficient",
                        "since": "2026",
                        "lastUsed": "2026-09",
                        "evidence": []
                    },
                    {
                        "name": "Secure Boot (Produktion)",
                        "level": "proficient",
                        "since": "2026-06",
                        "lastUsed": "2026-08",
                        "evidence": []
                    },
                    {
                        "name": "DSGVO (Meldefristen, Privacy by Design)",
                        "level": "proficient",
                        "since": "2026",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-security",
                            "imbodo"
                        ]
                    }
                ]
            },
            {
                "id": "quality",
                "name": {
                    "de": "Qualität & Prozess",
                    "en": "Quality & Process",
                    "fr": "Qualité & processus"
                },
                "note": {
                    "de": "Tests sind Voraussetzung für den Merge; kurze Iterationen.",
                    "en": "Tests are a prerequisite for merging; short iterations.",
                    "fr": "Les tests conditionnent chaque merge ; itérations courtes."
                },
                "skills": [
                    {
                        "name": "PHPStan (Level max)",
                        "level": "expert",
                        "since": "2025",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-support-server",
                            "devgine-web"
                        ]
                    },
                    {
                        "name": "PSR-12 & php-cs-fixer",
                        "level": "expert",
                        "since": "2025",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "devgine-web"
                        ]
                    },
                    {
                        "name": "Technische Dokumentation",
                        "level": "expert",
                        "since": "2022",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-wiki",
                            "devgine-web"
                        ]
                    },
                    {
                        "name": "Code Review (auch KI-gestützt)",
                        "level": "advanced",
                        "since": "2025",
                        "lastUsed": "2026-09",
                        "evidence": [],
                        "detail": {
                            "de": "Reviews von eigenem, fremdem und KI-generiertem Code auf Korrektheit, Sicherheit und Wartbarkeit.",
                            "en": "Reviewing own, third-party and AI-generated code for correctness, security and maintainability.",
                            "fr": "Revue de code personnel, tiers et généré par IA : exactitude, sécurité et maintenabilité."
                        }
                    },
                    {
                        "name": "PHPUnit",
                        "level": "advanced",
                        "since": "2026",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "devgine-web"
                        ]
                    },
                    {
                        "name": "Semantic Versioning & Release-Management",
                        "level": "advanced",
                        "since": "2026",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "devgine-web"
                        ]
                    },
                    {
                        "name": "Vitest & Jest",
                        "level": "proficient",
                        "since": "2026-09",
                        "lastUsed": "2026-09",
                        "evidence": []
                    },
                    {
                        "name": "Agile / Scrum",
                        "level": "proficient",
                        "since": null,
                        "lastUsed": null,
                        "evidence": []
                    }
                ]
            },
            {
                "id": "web-craft",
                "name": {
                    "de": "Barrierefreiheit, i18n & SEO",
                    "en": "Accessibility, i18n & SEO",
                    "fr": "Accessibilité, i18n & SEO"
                },
                "skills": [
                    {
                        "name": "Mehrsprachigkeit (DE/EN/FR und mehr)",
                        "level": "expert",
                        "since": "2020",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-wiki",
                            "behnke-support-server",
                            "behnke-security",
                            "eric-carphotography"
                        ]
                    },
                    {
                        "name": "Barrierefreiheit (OpenDyslexic, Kontrast, Lesehilfen)",
                        "level": "advanced",
                        "since": "2022",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-wiki"
                        ]
                    },
                    {
                        "name": "SEO (JSON-LD, Meta, OG/Twitter)",
                        "level": "advanced",
                        "since": "2021",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "eric-carphotography"
                        ]
                    }
                ]
            },
            {
                "id": "ai",
                "name": {
                    "de": "KI & LLMs",
                    "en": "AI & LLMs",
                    "fr": "IA & LLM"
                },
                "note": {
                    "de": "Kontextbezogener Einsatz – messbarer Nutzen statt Hype.",
                    "en": "Used where it fits – measurable value over hype.",
                    "fr": "Utilisée selon le contexte – une utilité mesurable plutôt que l'effet de mode."
                },
                "skills": [
                    {
                        "name": "KI-gestützte Entwicklung: Claude Code, Codex",
                        "level": "expert",
                        "since": "2026",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "devgine-web"
                        ],
                        "detail": {
                            "de": "KI als tägliche Unterstützung beim Entwickeln – mit klaren Leitplanken: eigene Agenten-Leitfäden (AGENTS.md, CLAUDE.md) pro Projekt und menschliche Prüfung vor dem Merge.",
                            "en": "AI as daily support in development – with clear guardrails: per-project agent guides (AGENTS.md, CLAUDE.md) and human review before merging.",
                            "fr": "L’IA comme soutien quotidien au développement – avec des garde-fous clairs : guides pour agents par projet (AGENTS.md, CLAUDE.md) et relecture humaine avant chaque merge."
                        }
                    },
                    {
                        "name": "KI-gestützte Workflows",
                        "level": "expert",
                        "since": "2026",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "behnke-support-server"
                        ],
                        "detail": {
                            "de": "Wiederholbare Abläufe, in denen Agenten Code, Dokumentation und Reviews vorbereiten und der Mensch entscheidet.",
                            "en": "Repeatable workflows in which agents prepare code, documentation and reviews while a human makes the call.",
                            "fr": "Des flux de travail reproductibles où les agents préparent code, documentation et revues, et où l’humain décide."
                        }
                    },
                    {
                        "name": "Prompt Engineering",
                        "level": "expert",
                        "since": "2024",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "bachelor-thesis"
                        ]
                    },
                    {
                        "name": "LLM-Evaluation & Benchmarking",
                        "level": "advanced",
                        "since": "2024",
                        "lastUsed": "2025-01",
                        "evidence": [
                            "bachelor-thesis"
                        ]
                    },
                    {
                        "name": "Model Context Protocol (MCP)",
                        "level": "advanced",
                        "since": "2026-09",
                        "lastUsed": "2026-09",
                        "evidence": []
                    },
                    {
                        "name": "KI-Agenten-Infrastruktur",
                        "level": "advanced",
                        "since": "2026-09",
                        "lastUsed": "2026-09",
                        "evidence": []
                    },
                    {
                        "name": "Claude, GPT, Gemini, Ollama",
                        "level": "advanced",
                        "since": "2024",
                        "lastUsed": "2026-09",
                        "evidence": [
                            "bachelor-thesis"
                        ]
                    }
                ]
            },
            {
                "id": "gamedev",
                "name": {
                    "de": "Spieleentwicklung",
                    "en": "Game Development",
                    "fr": "Développement de jeux"
                },
                "skills": [
                    {
                        "name": "Minecraft: Spigot & Forge",
                        "level": "advanced",
                        "since": "2020",
                        "lastUsed": null,
                        "evidence": [
                            "gametecx"
                        ]
                    },
                    {
                        "name": "libGDX & OpenGL",
                        "level": "proficient",
                        "since": null,
                        "lastUsed": null,
                        "evidence": [
                            "devgine-game"
                        ]
                    },
                    {
                        "name": "Entity Component System",
                        "level": "proficient",
                        "since": null,
                        "lastUsed": null,
                        "evidence": [
                            "devgine-game"
                        ]
                    },
                    {
                        "name": "Client/Server-Spielarchitektur",
                        "level": "proficient",
                        "since": "2026-08",
                        "lastUsed": "2026-08",
                        "evidence": [
                            "pong-clone"
                        ]
                    }
                ]
            },
            {
                "id": "embedded",
                "name": {
                    "de": "Hardwarenahe Entwicklung",
                    "en": "Hardware-near Development",
                    "fr": "Développement proche du matériel"
                },
                "skills": [
                    {
                        "name": "Board-Programmierung in der Produktion",
                        "level": "proficient",
                        "since": "2026-06",
                        "lastUsed": "2026-08",
                        "evidence": []
                    },
                    {
                        "name": "Geräteerkennung im Netzwerk (mDNS)",
                        "level": "proficient",
                        "since": "2022",
                        "lastUsed": "2022",
                        "evidence": []
                    }
                ]
            },
            {
                "id": "tools",
                "name": {
                    "de": "Werkzeuge",
                    "en": "Tools",
                    "fr": "Outils"
                },
                "skills": [
                    {
                        "name": "VS Code",
                        "level": "expert",
                        "since": null,
                        "lastUsed": "2026-09",
                        "evidence": [],
                        "detail": {
                            "de": "Haupt-Editor.",
                            "en": "Primary editor.",
                            "fr": "Éditeur principal."
                        }
                    },
                    {
                        "name": "Composer & npm",
                        "level": "advanced",
                        "since": null,
                        "lastUsed": "2026-09",
                        "evidence": [
                            "devgine-web"
                        ]
                    },
                    {
                        "name": "IntelliJ IDEA",
                        "level": "proficient",
                        "since": null,
                        "lastUsed": null,
                        "evidence": []
                    },
                    {
                        "name": "Gradle & Maven",
                        "level": "proficient",
                        "since": null,
                        "lastUsed": "2026-08",
                        "evidence": []
                    }
                ]
            }
        ]
    },
    "services": {
        "intro": {
            "de": "Web-Plattform, internes Tool oder technische Beratung – mit ehrlicher Einschätzung.",
            "en": "Web platform, internal tool or technical consulting – with an honest assessment.",
            "fr": "Plateforme web, outil interne ou conseil technique – avec une évaluation honnête."
        },
        "services": [
            {
                "id": "new-projects",
                "name": {
                    "de": "Neue Projekte",
                    "en": "New projects",
                    "fr": "Nouveaux projets"
                },
                "description": {
                    "de": "Plattformen und Tools von Grund auf.",
                    "en": "Platforms and tools built from scratch.",
                    "fr": "Plateformes et outils conçus de zéro."
                }
            },
            {
                "id": "modernisation",
                "name": {
                    "de": "Modernisierung & Wartung",
                    "en": "Modernisation & maintenance",
                    "fr": "Modernisation & maintenance"
                },
                "description": {
                    "de": "Bestehende Systeme modernisieren und zuverlässig betreiben.",
                    "en": "Modernising existing systems and running them reliably.",
                    "fr": "Moderniser des systèmes existants et les exploiter de manière fiable."
                }
            },
            {
                "id": "consulting-ai",
                "name": {
                    "de": "Beratung & KI",
                    "en": "Consulting & AI",
                    "fr": "Conseil & IA"
                },
                "description": {
                    "de": "Technische Beratung und KI-Einführung mit messbarem Nutzen.",
                    "en": "Technical consulting and AI adoption with measurable value.",
                    "fr": "Conseil technique et intégration de l'IA avec une utilité mesurable."
                }
            }
        ],
        "engagement": [
            {
                "de": "Festanstellung",
                "en": "Full-time employment",
                "fr": "Emploi à temps plein"
            },
            {
                "de": "Freelance-Mandate",
                "en": "Freelance engagements",
                "fr": "Missions freelance"
            }
        ]
    }
}