[
  {
    "id": "home",
    "name": "Home",
    "icon": "home",
    "title": "Hi, ich bin Marcel Neumann",
    "subtitle": "Full-Stack Cloud Developer",
    "subtitle2": "Ich baue Web-Frontends, die Spaß machen, und bringe sie in die Cloud — produktionsreif und bis ins Detail durchdacht.",
    "background": {
      "image": "assets/images/home-background.webp",
      "class": "cover"
    },
    "content": [
      {
        "type": "nav-button",
        "class": "home-next",
        "link": "/about",
        "text": "About me",
        "icon": "face"
      }
    ]
  },
  {
    "id": "about",
    "name": "About me",
    "icon": "face",
    "title": "Marcel Neumann",
    "subtitle": "|since:1985-02-12| Jahre, aus Pegnitz",
    "colorSchema": "dark",
    "background": {
      "class": "shattered-island"
    },
    "content": [
      {
        "type": "profile",
        "avatar": {
          "image": "assets/images/mn-thumb.webp",
          "alt": "Marcel Neumann",
          "caption": "Marcel Neumann"
        },
        "facts": [
          {
            "icon": "place",
            "label": "Standort",
            "value": "Pegnitz, Bayern · 100 % Remote"
          },
          {
            "icon": "work",
            "label": "Rolle",
            "value": "Full-Stack Cloud Developer"
          },
          {
            "icon": "event_available",
            "label": "Verfügbarkeit",
            "value": "Ab 01.09.2026"
          },
          {
            "icon": "business_center",
            "label": "Einsatzart",
            "value": "Festanstellung oder Projekteinsatz"
          },
          {
            "icon": "mail",
            "label": "E-Mail",
            "value": "marcel@mn-portfolio.de",
            "href": "mailto:marcel@mn-portfolio.de"
          }
        ],
        "actions": [
          {
            "icon": "picture_as_pdf",
            "text": "Lebenslauf drucken / PDF",
            "print": true
          }
        ],
        "text": [
          "Seit über 15 Jahren entwickle ich <strong>Full-Stack mit Fokus auf Frontend und Mobile Apps</strong>. Mit Anbindung an diverse Backends und besonderer Tiefe in <strong>Angular und React</strong>. Querschnittsthemen wie Security, Auth, Design-Systeme und Barrierefreiheit gehören für mich zu guter Frontend-Entwicklung dazu.",
          "Ich bringe Erfahrung aus unterschiedlichsten Umfeldern mit — von Marketing-Sites bis zu <strong>komplexen SaaS-Plattformen</strong>, von Startups bis Konzernen, oft Hand in Hand mit Designern und anderen Entwicklern in interdisziplinären Teams.",
          "Ich arbeite inkrementell mit schnell sichtbaren Ergebnissen, ehrlichen Code Reviews und <strong>KI-gestützten Workflows</strong> — die Verantwortung bleibt bei mir."
        ],
        "focus": {
          "title": "Schwerpunkte",
          "items": [
            {
              "title": "Moderne Web-Frontends",
              "short": "performante UIs mit React und Angular — Komponentenarchitektur, State-Management, Qualitätssicherung.",
              "long": "Performante Benutzeroberflächen mit React und Angular: saubere Komponentenarchitektur, State-Management mit TanStack Query und Zustand, Qualitätssicherung mit Playwright, Vitest und Storybook. Design-Systeme, Microfrontends und Barrierefreiheit gehören für mich dazu."
            },
            {
              "title": "Full-Stack & Cloud (AWS)",
              "short": "serverlose APIs und BFFs plus die komplette Auslieferungs-Infrastruktur — Edge, Caching, Routing, Auth und Security.",
              "long": "Serverlose APIs und Backend-for-Frontends mit AWS Lambda und DynamoDB, definiert als Infrastruktur-Code mit AWS CDK. Dazu die komplette Auslieferungs-Infrastruktur: Amazon CloudFront am Edge, Caching und Routing, Auth mit Amazon Cognito und Security über den gesamten Stack."
            },
            {
              "title": "Mobile Apps",
              "short": "iOS und Android mit React Native aus einer Codebasis — inklusive Auth, Datenschicht und Release-Prozess.",
              "long": "iOS- und Android-Apps mit React Native aus einer Codebasis — von Auth über die Datenschicht bis zum automatisierten Release-Prozess in die App Stores mit Fastlane."
            }
          ]
        }
      }
    ]
  },
  {
    "id": "skills",
    "name": "Skills",
    "icon": "equalizer",
    "title": "Meine Kompetenzen",
    "subtitle": "Mein Werkzeugkasten — ehrlich eingeordnet",
    "colorSchema": "dark",
    "background": {
      "class": "shattered-island"
    },
    "content": [
      {
        "type": "tags",
        "tagRows": [
          {
            "title": "Web Technologie",
            "tags": [
              {
                "name": "TypeScript",
                "score": "95"
              },
              {
                "name": "HTML5 / CSS3",
                "score": "90"
              },
              {
                "name": "Web Components",
                "score": "90"
              },
              {
                "name": "REST",
                "score": "90"
              },
              {
                "name": "TypeSpec",
                "score": "80"
              },
              {
                "name": "PWA",
                "score": "80"
              },
              {
                "name": "JWT / OAuth 2.0",
                "score": "85"
              },
              {
                "name": "Barrierefreiheit (WCAG / BITV)",
                "score": "75"
              }
            ]
          },
          {
            "title": "Frameworks",
            "tags": [
              {
                "name": "Angular",
                "score": "95"
              },
              {
                "name": "React",
                "score": "90"
              },
              {
                "name": "React Native",
                "score": "80"
              },
              {
                "name": "SAPUI5 / Fiori",
                "score": "85"
              },
              {
                "name": "AWS CloudScape",
                "score": "75"
              }
            ]
          },
          {
            "title": "Cloud / AWS",
            "tags": [
              {
                "name": "Amazon Cognito",
                "score": "85"
              },
              {
                "name": "AWS CDK",
                "score": "80"
              },
              {
                "name": "Amazon CloudFront",
                "score": "80"
              },
              {
                "name": "AWS Lambda / Lambda@Edge",
                "score": "80"
              },
              {
                "name": "Amazon DynamoDB",
                "score": "80"
              },
              {
                "name": "Amazon S3",
                "score": "85"
              },
              {
                "name": "AWS Amplify",
                "score": "75"
              }
            ]
          },
          {
            "title": "State, Data & Forms",
            "tags": [
              {
                "name": "TanStack Query",
                "score": "90"
              },
              {
                "name": "Zustand",
                "score": "85"
              },
              {
                "name": "Zod",
                "score": "80"
              }
            ]
          },
          {
            "title": "Testing & QA",
            "tags": [
              {
                "name": "Playwright",
                "score": "85"
              },
              {
                "name": "Vitest",
                "score": "80"
              },
              {
                "name": "Jest",
                "score": "85"
              }
            ]
          },
          {
            "title": "AI & Agentic",
            "tags": [
              {
                "name": "Claude Code"
              },
              {
                "name": "OpenCode"
              },
              {
                "name": "Hermes"
              },
              {
                "name": "Eigene Agents (Strands SDK)"
              },
              {
                "name": "Amazon Bedrock"
              },
              {
                "name": "Model Context Protocol (MCP)"
              }
            ]
          },
          {
            "title": "Zertifikate",
            "tags": [
              {
                "name": "AWS Certified Cloud Practitioner",
                "score": "Zertifiziert",
                "hideUnit": true
              }
            ]
          },
          {
            "title": "Tools & Programme",
            "tags": [
              {
                "name": "Git"
              },
              {
                "name": "NodeJS"
              },
              {
                "name": "Storybook"
              },
              {
                "name": "GitHub Actions"
              },
              {
                "name": "Fastlane"
              },
              {
                "name": "JetBrains IDEs"
              },
              {
                "name": "VSCode"
              },
              {
                "name": "Figma"
              },
              {
                "name": "Miro"
              }
            ]
          },
          {
            "title": "Methodik",
            "tags": [
              {
                "name": "Scrum / Agile"
              },
              {
                "name": "Code Review"
              },
              {
                "name": "Microfrontends & App-Shell"
              },
              {
                "name": "Design Systems"
              },
              {
                "name": "Agentic Development"
              },
              {
                "name": "Agentic Testing"
              }
            ]
          },
          {
            "title": "Sprachen",
            "tags": [
              {
                "name": "Deutsch",
                "score": "Muttersprache",
                "hideUnit": true
              },
              {
                "name": "Englisch",
                "score": "Fließend",
                "hideUnit": true
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "career",
    "name": "Career",
    "icon": "business",
    "title": "Mein bisheriger Werdegang",
    "subtitle": "Meine Stationen — 2008 bis heute",
    "colorSchema": "dark",
    "background": {
      "class": "shattered-island"
    },
    "content": [
      {
        "type": "timeline",
        "items": [
          {
            "from": "04.2022",
            "to": "",
            "title": "PAGNOS GmbH - Full-Stack Cloud Developer",
            "descriptions": [
              "SaaS Loyalty- & Couponing-Plattform: Verwaltungs-Microfrontends (React, CloudScape) samt Backend-for-Frontend",
              "Serverless-Backend der Plattform: Migration des Couponing von EC2 auf AWS Lambda (TypeScript, DynamoDB, CDK)",
              "Service Console: App-Shell für Microfrontends mit React, AWS CloudFront und versioniertem Deployment",
              "Universal Login: zentrale Auth-App mit AWS Cognito, SSO via Kunden-IDP und HTTP-Only-Cookie-JWT-Flow",
              "White-Label Loyalty-App für iOS & Android mit React Native (Multi-Tenant)",
              "Agentic Testing: KI-gestützte API-Tests mit Strands Agents, GitHub Actions und Slack-Reports",
              "SAP-Fiori-Apps für Kundendaten- und Gutschein-Verwaltung inkl. Fiori-UX-Library",
              "Stack: TypeScript, React, Angular, React Native, TanStack Query/Router, Zustand, Playwright, AWS CDK"
            ],
            "duration": "NOW"
          },
          {
            "from": "01.2021",
            "to": "03.2022",
            "title": "ISO Public Services GmbH - Senior Web Developer",
            "descriptions": [
              "DARV (Datenaustausch mit der Rentenversicherung): Modernisierung des rentenrelevanten Verfahrens als barrierefreie Angular-Webapp — Ablösung von Oracle ADF",
              "Online-Portal der Bundesagentur für Arbeit: Weiterentwicklung und Modernisierung in Angular und TypeScript",
              "Konsequente Umsetzung der Barrierefreiheitsanforderungen (BITV) der öffentlichen Verwaltung"
            ],
            "duration": "1.2J"
          },
          {
            "from": "03.2020",
            "to": "12.2020",
            "title": "ISO Travel Solutions GmbH - Technical Lead",
            "descriptions": [
              "Design System mit Styleguide, Web-Component-Baukasten und Storybook-Dokumentation",
              "App-Shell zur schrittweisen Web-Modernisierung einer Java-Reiseverwaltung — Ansicht für Ansicht, bei laufender Nutzung",
              "TypeScript, Web Components, Lit-html, RxJS, Storybook, Webpack, Rollup"
            ],
            "duration": "10M"
          },
          {
            "from": "11.2018",
            "to": "02.2020",
            "title": "ISO Travel Solutions GmbH - Senior Web Developer",
            "descriptions": [
              "Migration der Flugbuchung einer deutschen Airline von AngularJS auf Angular — im Livebetrieb, ohne Feature-Stopp",
              "Neuentwicklung der Sitzplatzauswahl (Seatmap) auf Basis von Amadeus-Daten",
              "Online Check-in: eine responsive WebApp löst zwei Alt-Anwendungen (Web/Mobile) ab",
              "TypeScript, Angular, React, Web Components"
            ],
            "duration": "1J"
          },
          {
            "from": "02.2014",
            "to": "10.2018",
            "title": "hl-studios GmbH - Senior software developer",
            "descriptions": [
              "Stellvertretung Head of Development",
              "Entwicklung von Anwendungen in JS, TS, C# mit REST oder GraphQL",
              "Single-Page-Applications mit AngularJS und Angular",
              "Messemodelle in Echtzeit-3D mit Unity3d und C#",
              "Oculus VR Anwendungen mit Unity3d, C# und Oculus"
            ],
            "duration": "4.5J"
          },
          {
            "from": "07.2010",
            "to": "01.2014",
            "title": "DROW GmbH - Software developer",
            "descriptions": [
              "Entwicklung von Webseiten, Portalen und Onlineshops in PHP und JS",
              "Serveradministration und IT"
            ],
            "duration": "3.5J"
          },
          {
            "from": "07.2008",
            "to": "07.2010",
            "title": "DROW GmbH - Ausbildung zum FI/AE",
            "descriptions": [
              "Wordpress und TYPO3",
              "Abschlussarbeit: TYPO3 Extension - Image slider collection"
            ],
            "duration": "2J"
          },
          {
            "from": "07.2004",
            "to": "04.2008",
            "title": "Euronics Baumann GmbH - EH-Kaufmann",
            "descriptions": [
              "Verkauf: PC, Hardware und Software",
              "IT-Werkstatt: Reparatur von Notebooks und PCs"
            ],
            "duration": "4J"
          },
          {
            "from": "07.2001",
            "to": "07.2004",
            "title": "Euronics Baumann GmbH - Ausbildung zum EH-Kaufmann",
            "descriptions": [
              "Verkauf: Elektronik aller Art"
            ],
            "duration": "2J"
          }
        ]
      }
    ]
  },
  {
    "id": "projects",
    "name": "Projects",
    "icon": "work",
    "title": "Referenzprojekte",
    "subtitle": "Ausgewählte Projekte — 2014 bis heute",
    "colorSchema": "dark",
    "background": {
      "class": "shattered-island"
    },
    "content": [
      {
        "type": "projects",
        "projects": [
          {
            "customer": "für ein Softwareunternehmen",
            "name": "API-Testing mit KI-Agenten",
            "icon": "smart_toy",
            "image": "assets/images/projects/ki-agents.svg",
            "role": "Full-Stack Cloud Developer · Team: ~6",
            "period": "02/2026 – 05/2026",
            "description": "Konzeption und Aufbau eines produktiv eingesetzten Test-Setups mit KI-Agenten für die Couponing-API einer SaaS-Plattform. Nach jedem Deployment prüft ein Agent auf Basis von Strands Agents die echte API auf Regressionen, ausgelöst über GitHub Actions, mit Report-UI und Slack-Benachrichtigung an das Team. Probleme fallen so auf, bevor Kunden sie bemerken, und die Testabdeckung wächst, ohne dass jemand Testfälle pflegt.",
            "tags": [
              "Strands Agents",
              "TypeScript",
              "GitHub Actions",
              "Slack"
            ]
          },
          {
            "customer": "für ein Softwareunternehmen",
            "name": "White-Label App für Loyalty-Kunden",
            "icon": "phone_iphone",
            "image": "assets/images/projects/white-label-app.svg",
            "role": "Full-Stack Cloud Developer · Team: ~6",
            "period": "11/2025 – 02/2026",
            "description": "Entwicklung einer White-Label-App, mit der Kunden einer Loyalty-Plattform ihren Endkunden Punktestand und Coupons aufs Smartphone bringen: im eigenen Branding und unter eigenem App-Namen, ohne selbst eine App entwickeln zu müssen. Eine React-Native-Codebasis für iOS und Android, pro Kunde ein eigener Build; die Store-Deployments laufen automatisiert über Fastlane. Der Login läuft über Amazon Cognito, angebunden mit AWS Amplify, die Infrastruktur entsteht mit AWS CDK.",
            "tags": [
              "React Native",
              "TypeScript",
              "Fastlane",
              "AWS Amplify",
              "Amazon Cognito",
              "AWS CDK",
              "iOS",
              "Android"
            ]
          },
          {
            "customer": "für ein Softwareunternehmen",
            "name": "SaaS Loyalty- & Couponing-Plattform (Backend)",
            "icon": "cloud",
            "image": "assets/images/projects/saas-backend.svg",
            "role": "Full-Stack Cloud Developer · Team: ~6",
            "period": "08/2025 – 12/2025",
            "description": "Backend-Entwicklung an einer mandantenfähigen SaaS-Plattform für Kundenbindung im Retail. Kern war der Umbau des Couponing-Service auf eine Serverless-Architektur mit AWS Lambda. Seitdem skaliert die Plattform automatisch mit der Last, ungenutzte Kapazität kostet nichts mehr. Die REST-APIs entstehen API-first aus TypeSpec-Definitionen, Einlösungen werden revisionssicher verarbeitet. Anwendungs- und Infrastruktur-Code entstanden durchgehend in TypeScript, mit dem AWS SDK und AWS CDK.",
            "tags": [
              "TypeScript",
              "TypeSpec",
              "AWS Lambda",
              "Amazon DynamoDB",
              "Amazon S3",
              "AWS CDK"
            ]
          },
          {
            "customer": "für ein Softwareunternehmen",
            "name": "Verwaltungs-UI für Couponing",
            "icon": "confirmation_number",
            "image": "assets/images/projects/couponing-ui.svg",
            "role": "Full-Stack Cloud Developer · Team: ~6",
            "period": "01/2025 – 06/2025",
            "description": "Entwicklung einer Verwaltungsoberfläche für das Couponing einer SaaS-Plattform: Kampagnen anlegen, Gutschein-Codes ausgeben, Einlösungen und Rückbuchungen nachvollziehen. Sie unterstützt IT, Fachbereich und Kundensupport gleichermaßen: Kampagnen lassen sich von der Anlage bis zur Auswertung selbst betreiben, und auch bei Millionen Codes je Mandant bleibt jeder einzelne auffindbar. Die Entwicklung erfolgte in TypeScript mit React, dazu ein eigenes Backend als Zwischenschicht zur Plattform-API.",
            "tags": [
              "React",
              "TypeScript",
              "AWS Cloudscape",
              "TanStack Query",
              "Zustand",
              "AWS Lambda"
            ]
          },
          {
            "customer": "für ein Softwareunternehmen",
            "name": "Verwaltungs-UI für Bonusprogramme",
            "icon": "card_giftcard",
            "image": "assets/images/projects/bonus-ui.svg",
            "role": "Full-Stack Cloud Developer · Team: ~6",
            "period": "02/2024 – 08/2024",
            "description": "Entwicklung einer Verwaltungsoberfläche für die Bonusprogramme einer SaaS-Loyalty-Plattform. Fachanwender pflegen Programme und Mitglieder damit selbst; Punktestände und Prämien lassen sich analysieren und im Ausnahmefall korrigieren. Zuvor ging all das nur über technische Schnittstellen und Entwickler. Die Oberfläche bleibt auch bei Hunderttausenden Mitgliedern schnell: Antworten in maximal 300 ms, Änderungen sind dank Optimistic Updates sofort sichtbar. Die Entwicklung erfolgte in TypeScript mit React, dazu ein eigenes Backend als Zwischenschicht zur Plattform-API.",
            "tags": [
              "React",
              "TypeScript",
              "AWS Cloudscape",
              "TanStack Query",
              "Zustand",
              "AWS Lambda"
            ]
          },
          {
            "customer": "für ein Softwareunternehmen",
            "name": "Verwaltungskonsole für eine SaaS-Plattform",
            "icon": "dashboard",
            "image": "assets/images/projects/saas-console.svg",
            "role": "Full-Stack Cloud Developer · Team: ~6",
            "period": "06/2023 – 04/2024",
            "description": "Entwicklung einer zentralen Verwaltungskonsole für eine mandantenfähige SaaS-Plattform für Kundenbindung im Retail: eine App-Shell, in der die einzelnen Produkt-Module als Microfrontends laufen und sich Navigation, Suche, Profil und Login teilen. Die Module werden von verschiedenen Teams unabhängig entwickelt, versioniert und deployt; live geht eine neue Version erst nach expliziter Freigabe und lässt sich vorab direkt in der Konsole testen. Die Entwicklung erfolgte in TypeScript mit React; ausgeliefert wird serverless über Amazon CloudFront, wobei Requests direkt am Edge mandanten- und nutzerabhängig zur passenden Frontend-Version geroutet werden.",
            "tags": [
              "React",
              "TypeScript",
              "Amazon CloudFront",
              "Lambda@Edge",
              "AWS Lambda",
              "Amazon DynamoDB",
              "AWS CDK"
            ]
          },
          {
            "customer": "für ein Softwareunternehmen",
            "name": "Universal Login",
            "icon": "vpn_key",
            "image": "assets/images/projects/universal-login.svg",
            "role": "Full-Stack Cloud Developer · Team: ~6",
            "period": "02/2023 – 07/2023",
            "description": "Entwicklung einer zentralen Login-Anwendung für eine mandantenfähige SaaS-Plattform: ein Anmeldedienst für alle Apps der Plattform statt vieler einzelner Logins. Nutzer melden sich mit Passwort oder Einmalcode an, inklusive MFA und Passwort-Zurücksetzen; Firmenkunden binden ihren eigenen Identity Provider an und verwalten Zugriffsrechte selbst. Neue Mandanten erhalten ihre Login-Infrastruktur auf Basis von Amazon Cognito automatisch. Die Entwicklung erfolgte durchgehend in TypeScript, mit React im Frontend und AWS Lambda im Backend; Deployments und Testläufe laufen automatisiert über GitHub Actions.",
            "tags": [
              "TypeScript",
              "React",
              "AWS Cloudscape",
              "AWS Lambda",
              "AWS CDK",
              "Amazon Cognito",
              "Vitest",
              "GitHub Actions"
            ]
          },
          {
            "customer": "für einen deutschen Retailer",
            "name": "SAPUI5 App zur Gutschein-Verwaltung & UX Library",
            "icon": "redeem",
            "image": "assets/images/projects/sap-voucher-ux.svg",
            "role": "Frontend Developer · Team: ~6",
            "period": "07/2022 – 12/2022",
            "description": "Modernisierung einer SAPUI5 (Fiori) App zur Verwaltung von Gutscheinen bei einem deutschen Retailer. Die App befähigt Fachbereich und Kundensupport, Gutscheine zu erstellen, Kunden zuzuweisen, Einlösungen zu verfolgen und den gesamten Lebenszyklus zu verwalten. Dabei entstand eine UX-Library mit wiederverwendbaren UI5-Komponenten, die seither app-übergreifend eingesetzt wird: Neue Oberflächen entstehen schneller und sehen in allen Apps gleich aus. Die Entwicklung erfolgte in JavaScript in der SAP Web IDE mit Git-Integration, das Deployment in SAP CAR.",
            "tags": [
              "SAPUI5 / Fiori",
              "SAP CAR",
              "JavaScript",
              "Git"
            ]
          },
          {
            "customer": "für einen deutschen Retailer",
            "name": "SAPUI5 App zur Verwaltung von Kundendaten",
            "icon": "manage_accounts",
            "image": "assets/images/projects/sap-customer.svg",
            "role": "Frontend Developer · Team: ~6",
            "period": "04/2022 – 07/2022",
            "description": "Konzeption und Entwicklung einer SAPUI5 (Fiori) App zur zentralen Pflege von Kundendaten in der SAP Marketing Cloud bei einem deutschen Retailer. Abgebildet wurden händlerspezifische Prozesse, die IT, Fachbereich und Kundensupport unterstützen. Beispielsweise macht eine Protokoll-Ansicht Veränderungen an Kundendaten nachvollziehbar: Laufende Aktualisierungsprozesse aus und in Drittsysteme können live verfolgt und im Fehlerfall analysiert und neu gestartet werden. Die Entwicklung erfolgte in JavaScript in der SAP Web IDE mit Git-Integration. Ebenfalls Teil meiner Aufgabe war die Konfiguration der SAP-Systeme, darunter RFC-Proxy-Verbindungen in der SAP GUI und das Deployment in SAP CAR.",
            "tags": [
              "SAPUI5 / Fiori",
              "SAP Marketing Cloud",
              "SAP CAR",
              "JavaScript",
              "Git"
            ]
          },
          {
            "customer": "für die Bundesagentur für Arbeit",
            "name": "Online-Portal der Bundesagentur für Arbeit",
            "icon": "accessibility",
            "image": "assets/images/projects/ba-portal.svg",
            "role": "Senior Web Developer · Team: 7",
            "period": "05/2021 – 03/2022",
            "description": "Mitarbeit an Weiterentwicklung und Modernisierung des Online-Portals der Bundesagentur für Arbeit, einem der meistgenutzten digitalen Angebote der öffentlichen Verwaltung. Arbeitssuchende erledigen dort ihre Anliegen selbst und verwalten zum Beispiel ihr privates sowie ihr öffentliches, für Arbeitgeber sichtbares Profil. Umsetzung in Angular und TypeScript mit hohen Qualitäts- und Barrierefreiheitsanforderungen (BITV), agile Arbeitsweise im behördlichen Umfeld.",
            "tags": [
              "Angular",
              "TypeScript",
              "Barrierefreiheit (BITV)"
            ]
          },
          {
            "customer": "für die Bundesagentur für Arbeit",
            "name": "DARV — Datenaustausch mit der Rentenversicherung",
            "icon": "swap_horiz",
            "image": "assets/images/projects/darv.svg",
            "role": "Senior Web Developer · Team: 4",
            "period": "01/2021 – 05/2021",
            "description": "Modernisierung einer Fachanwendung der Bundesagentur für Arbeit rund um das DARV-Verfahren, das rentenrelevante Zeiten von Leistungsbeziehern automatisiert an die Deutsche Rentenversicherung meldet. Die neue Angular-Webapp löst die veraltete Oracle-ADF-Oberfläche ab, barrierefrei nach BITV: Sachbearbeiter legen damit Fälle manuell an und klären Fälle, bei denen die automatisierte Verarbeitung Probleme hatte. Ein Rollen- und Rechtekonzept steuert, wer welche SGB-II- und SGB-III-relevanten Operationen ausführen darf; die automatisierte Verarbeitung selbst blieb in Java und wurde parallel modernisiert.",
            "tags": [
              "Angular",
              "TypeScript",
              "Barrierefreiheit (BITV)"
            ]
          },
          {
            "customer": "für ein Softwareunternehmen",
            "name": "UI Design System & App-Shell (Web Components)",
            "icon": "widgets",
            "image": "assets/images/projects/design-system.svg",
            "role": "Technical Lead",
            "period": "02/2020 – 12/2020",
            "description": "Aufbau eines Design Systems für die Web-Modernisierung einer Java-Reiseverwaltungssoftware, als Technical Lead mit zwei Kollegen: Living Styleguide, Komponenten-Baukasten auf Basis von Web Components und Dokumentation in Storybook. Eine App-Shell bettet die alte Java-UI ein, sodass Menüs und Ansichten stufenweise ersetzt werden konnten; die Anwender arbeiteten während der gesamten Modernisierung normal weiter.",
            "tags": [
              "Web Components",
              "Lit-html",
              "TypeScript",
              "Storybook",
              "WCAG"
            ]
          },
          {
            "customer": "für eine deutsche Airline",
            "name": "Online Check-in",
            "icon": "flight_takeoff",
            "image": "assets/images/projects/online-checkin.svg",
            "role": "Frontend Developer · Team: 2",
            "period": "06/2019 – 02/2020",
            "description": "Neuentwicklung des Online Check-ins einer deutschen Airline als Progressive Web App (PWA) in Angular. Eine App ersetzt zwei Alt-Anwendungen für Web und Mobile, rund doppelt so schnell und vollständig im Corporate Design der Airline. Eine umfangreiche Google-Tag-Manager-Integration mit Custom Events erfasst nahezu jede Interaktion und zeigt genau, wo Nutzer abspringen.",
            "tags": [
              "Angular",
              "TypeScript",
              "PWA",
              "Jest",
              "Google Tag Manager"
            ]
          },
          {
            "customer": "für eine deutsche Airline",
            "name": "Sitzplatzauswahl für die Flugbuchung",
            "icon": "event_seat",
            "image": "assets/images/projects/seat-selection.svg",
            "role": "Frontend Developer · Team: 7",
            "period": "04/2019 – 06/2019",
            "description": "Entwicklung einer neuen Sitzplatzauswahl für die Flugbuchungs-WebApp einer deutschen Airline. Passagiere sehen darin die Kabine ihres Flugzeugs und wählen ihren Sitz direkt bei der Buchung. Die Darstellung wird vollständig aus den Sitzplandaten von Amadeus generiert und funktioniert dadurch für jeden Flugzeugtyp und Innenausbau ohne Anpassung, inklusive Details wie Sitztypen oder der Eignung für Kinder. Die Entwicklung erfolgte in Angular nach dem Design einer englischen Agentur.",
            "tags": [
              "Angular",
              "TypeScript",
              "Amadeus"
            ]
          },
          {
            "customer": "für eine deutsche Airline",
            "name": "Migration der Flugbuchung auf Angular",
            "icon": "flight",
            "image": "assets/images/projects/angular-migration.svg",
            "role": "Frontend Developer · Team: 7",
            "period": "01/2019 – 04/2019",
            "description": "Migration der Flugbuchungs-WebApp einer deutschen Airline von AngularJS auf Angular. Die WebApp ist die umsatzkritische Verkaufsstrecke und konnte nicht abgeschaltet werden, die Migration fand deshalb im laufenden Betrieb statt. Beide Frameworks liefen per ngUpgrade parallel, die App wurde Route für Route umgebaut und währenddessen ganz normal weiterentwickelt; deployt wurde am Ende jedes Sprints. Die Unit-Tests wurden von Jasmine & Karma auf Jest umgestellt.",
            "tags": [
              "Angular",
              "AngularJS",
              "ngUpgrade",
              "TypeScript",
              "Jest"
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "legal-notice",
    "name": "Impressum",
    "icon": "how_to_reg",
    "title": "Impressum",
    "subtitle": "Angaben gemäß § 5 TMG",
    "colorSchema": "dark",
    "navClass": "small",
    "background": {
      "class": "shattered-island"
    },
    "content": [
      {
        "type": "text",
        "text": [
          "Marcel Neumann",
          "In der Wend 11",
          "91257 Pegnitz",
          "<strong>Vertreten durch:</strong>",
          "Marcel Neumann",
          "<strong>Kontakt:</strong>",
          "Telefon: 09241-4859713",
          "E-Mail: <a href='mailto:marcel@mn-portfolio.de'>marcel@mn-portfolio.de</a>"
        ]
      }
    ]
  },
  {
    "id": "data-privacy",
    "name": "Datenschutz",
    "icon": "gavel",
    "title": "Datenschutzerklärung",
    "subtitle": "24.05.2026",
    "colorSchema": "dark",
    "navClass": "small",
    "background": {
      "class": "shattered-island"
    },
    "content": [
      {
        "type": "include",
        "file": "data-privacy.html"
      }
    ]
  },
  {
    "id": "error",
    "name": "Error",
    "icon": "gavel",
    "title": "Whoops, da ist wohl etwas schief gelaufen.",
    "subtitle": "404",
    "colorSchema": "dark",
    "navClass": "small",
    "hidden": true,
    "background": {
      "class": "shattered-island"
    },
    "content": [
      {
        "type": "error",
        "data": {
          "image": "https://media.giphy.com/media/afqT2ykIlYcVi/giphy.gif",
          "alt": "Oh no",
          "caption": "Oh no"
        }
      }
    ]
  }
]
