# Inhalt Enthält die Technologien mit denen ich bereits gearbeitet habe. Jede Technologie wird einzeln genannt und enthält das Level der verwendeten Komplexität, den Einsatz und das dazugehörige Projekt. ## Softwareentwicklung und Extended Reality ### c# in Gameengine Unity3D - Komplexität: Komplexe, interaktive Anwendungen und plattformübergreifende Produktentwicklung. - Einsatz: Konzeption, Entwicklung und Betreuung von mehr als 20 VR-, AR- und Flat-3D-Anwendungen; Multi-Target-Entwicklung aus gemeinsamen Unity-Codebasen für XR, Web und Mobile; Client-Server-Kommunikation und Performance-Optimierung. - Zusätzlicher Einsatz: Konfigurierbare AR-Lernszenen mit Lern- und Prüfungsmodus, Schrittsequenzen, Medienanzeige und Zuordnungsinteraktionen im ChipAcademy AR-Viewer-PackageBuilder. - Kontext: vrbits GmbH, seit 2019, sowie ChipAcademy AR-Viewer - Zusätzlicher Einsatz: Implementierung von ID-Eingabe, Settings- und Multiple-Choice-UI, blickbasierten Interaktionen, Avatar-Fehlerbehebungen und `TrainerAgent`-Stabilisierung in VRBits SpeakUp, 2025 bis 2026. ### OpenXR, Meta Quest SDK, Mindport VR Builder und Needle Engine - Komplexität: Integration unterschiedlicher Plattform-SDKs und XR-Werkzeuge. - Einsatz: Entwicklung von VR-Trainings, 3D-Visualisierungen und virtuellen Showrooms für unterschiedliche Zielsysteme. - Kontext: vrbits GmbH. - Zusätzlicher Einsatz: JSON-basierte VR-Builder-Prozesse für modulare WebGL-Trainings sowie eigene Erweiterungen zum Laden, Generieren und Verwalten von Teiltrainings und Workplans. - Zusätzlicher Einsatz: Needle-Engine-Export einer Unity-3D-Szene für eine interaktive Web- und WebXR-Visualisierung mit Teleportation und Controller-Ereignissen. - Projekte: TenneT 2GW Platform, Februar bis Oktober 2023; Roche RMD Rotkreuz, September 2022 bis Januar 2025; SaxoCellTraining, Juni bis September 2024; sowie das daraus ausgegliederte UPM-Paket VR Builder Scene Generation / TrainingGenerator, Oktober 2024 bis September 2025. ### CARLA, Unreal Engine, Pygame und Logitech-G29-Integration - Komplexität: Realtime-Integration einer Fahrsimulation, einer Unreal-Engine-Runtime, VR-Ausgabe und physischer Fahreingabe. - Einsatz: Aufbau eines VR-Fahrschul-Demonstrators auf Basis von CARLA; Einarbeitung in die CARLA-Architektur mit Unreal-Plugin sowie Server- und Python-Client-API; Aktivierung der Unreal-basierten CARLA-Runtime im VR-Modus und Anpassung des manuellen Clients für den Betrieb ohne eigenen Kamera-Stream; Konfiguration und Auswertung der Logitech-G29-Achsen für Lenkrad, Gas, Bremse und Rückwärtsgang mittels Pygame; Übertragung der Eingaben an `carla.VehicleControl` und Anbindung von Fahrtelemetrie. - Projekt: CARLA-VR, Dezember 2021 bis Februar 2022. ### 3D Vista Virtual Tour Pro - Komplexität: GUI-basiertes Autoring interaktiver 360-Grad-Rundgänge mit rudimentären JavaScript-Erweiterungsmöglichkeiten. - Einsatz: Erstellung browserbasierter virtueller Begehungen mit 360-Grad-Video und -Bildmaterial, 2D-Videos, Interaktionspunkten, Übersichtskarten beziehungsweise Minimap, Audio und Untertiteln; Veröffentlichung als Web-Paket. - Projekte: Netzbooster Kupferzell für TransnetBW (2021) und Umspannwerk Conneforde für TenneT (2022). - Zusatzwissen: Für Pico 4 können Projekte über die 3D-Vista-VR-App veröffentlicht und im Verzeichnis `/3dvista/pico` bereitgestellt werden; im VR-Modus sind nur 3D-Marker sichtbar. Die JavaScript-API ermöglicht unter anderem die Steuerung von Komponenten, Hotspots und Untertiteln. #### **3DVista Projekt auf VR-Brille Pico4** * **Anleitung:** 1. VR-Button in 3DVista hinzufügen. 2. Im Publish-Dialog "Pico" selektieren. 3. 3DVista VR App APK auf Pico4 installieren. 4. Projektordner auf der Brille unter `/3dvista/pico` ablegen. * **Hinweis:** 2D-UI wird in VR nicht angezeigt, nur 3D-Marker. #### **3DVista - Virtual Tour Pro (VTP) Javascript Reference** * **Optimierung:** Videos für die UI sollten speziell optimiert sein. * **Code-Beispiele:** * Komponenten steuern: `this.getComponentByName('name').set('visible', true);` * Hotspots aktivieren/deaktivieren: `this.getPanoramaOverlayByName(...).set('enabled', true);` * Untertitel dynamisch setzen: `this.getComponentByName('wf_subtitle').set('url', '/subtitle/index.html');` ### TypeScript, Three.js, Vite und WebXR - Komplexität: Browserbasierte 3D-Anwendung mit eigener Interaktions-, Kamera- und XR-Logik. - Einsatz: Needle-Engine-Komponenten in TypeScript für Orbit-Steuerung, Raycast-Fokus, Kamerafahrten, Idle- und Distanzereignisse, Wasser- und Partikelanimationen sowie WebXR-Select-/Squeeze-Ereignisse und Teleportation; Vite-Build mit glTF-Transformationspipeline. - Projekt: TenneT 2GW Platform, Februar bis Oktober 2023. ### Unity Editor, UI Toolkit, Scene Templates und Batchmode - Komplexität: Entwicklung eines wiederverwendbaren Unity-Pakets, das interaktive Editor-Werkzeuge und automatisierte Content-Erzeugung verbindet. - Einsatz: UI-Toolkit-Wizard zur Auswahl von 2D- oder VR-Szenentemplates und Lokalisierungstabellen; Erzeugung von Teiltrainings, Workplans und VR-Builder-Prozessen; Aufruf über Unity CLI mit einer externen JSON-Konfiguration und anschließender WebGL-Build. - Projekt: VR Builder Scene Generation / TrainingGenerator, Oktober 2024 bis September 2025. ### Unity WebGL, JavaScript-Bridges sowie SCORM/AICC - Komplexität: Browserbasierte 3D-Anwendung mit bidirektionaler Kommunikation zu einem Learning-Management-System. - Einsatz: C#-/JavaScript-Brücke über `Application.ExternalCall`, `postMessage` und Iframes; Übernahme des Lernstands, Meldung erfolgreicher Teiltrainings und Aktualisierung des Gesamtstatus; Paketierung zunächst als SCORM und anschließend als AICC-HACP für das Cornerstone-LMS. - Projekt: Roche RMD Rotkreuz, September 2022 bis Januar 2025. - Zusatzwissen: Evaluation der Unity-xAPI-Unterstützung als mögliche Alternative zu SCORM-Paketen. ### Unity Addressables, WebGL-Templates und responsives Layout - Komplexität: Auslieferung modularer Trainingsszenen und Lokalisierungsressourcen für unterschiedliche Browser- und Bildschirmformate. - Einsatz: Addressable-Szenen sowie -Lokalisierungsgruppen und Szenenlader; Anpassung des WebGL-Templates für Fullscreen, Ladeanzeige, korrektes Seitenverhältnis und Hochformat-Hinweise auf iPad und Desktop. - Projekt: SaxoCellTraining, Juni bis September 2024. ### Unity Localization, CSV und Editor-Automatisierung - Komplexität: Pflege mehrsprachiger Inhalte für eine Anwendung mit zahlreichen Lernmodulen. - Einsatz: Nachbearbeitung von Unity-Localization-String-Tables aus CSV-Dateien in `StreamingAssets` mit `UnityWebRequest` und CsvHelper; Editor-Werkzeuge zum Erzeugen von Trainingskonfigurationen, Workplans und Prozessdateien aus Vorlagen. - Zusätzlicher Einsatz: Erstellung von Unity-Localization-`StringTable`-Collections aus CSV-Dateien und Ableitung von Teiltrainings sowie Infopunkten aus den Inhalts-Schlüsseln. - Zusätzlicher Einsatz: Synchronisation von String-Tables mit Google Sheets einschließlich Rich-Text-Unterstützung sowie Bereitstellung der Sprachressourcen als Addressables. - Projekte: Roche RMD Rotkreuz, September 2022 bis Januar 2025; SaxoCellTraining, Juni bis September 2024; und VR Builder Scene Generation / TrainingGenerator, Oktober 2024 bis September 2025. - Zusätzlicher Einsatz: Sprachabhängige Text-to-Speech-Ausgabe, Synchronisation von String-Tables mit Google Docs sowie Fehleranalyse bei fehlenden Übersetzungen in VRBits SpeakUp, 2025 bis 2026. - Zusätzlicher Einsatz: Einpflege deutsch- und englischsprachiger Texte, Video- und Guide-Medien für die Station „Livia Frege“ eines Unity-AR-Museumsrundgangs; Synchronisierung mit Karten- und Marker-Inhalten. - Projekt: Stadtgeschichtliches Museum Leipzig AR, März bis Mai 2024. ### Unity AR Foundation, ARCore und ARKit - Komplexität: Erstellung plattformübergreifender AR-Inhalte innerhalb eines Unity-Projekts. - Einsatz: Abhängigkeiten AR-Viewer für die Bereitstellung konfigurierbarer AR-Lernszenen. - Projekt: ChipAcademy AR-Viewer - Zusätzlicher Projektkontext: AR Foundation 4.2.10 mit ARKit- und ARCore-Paketen in einem markerbasierten iOS-Museumsrundgang; eigener Beitrag dort: Integration und Lokalisierung einer Station, nicht die AR-Kernimplementierung. - Projekt: Stadtgeschichtliches Museum Leipzig AR, 2024. ### Unity AssetBundles, ScriptableObjects und UnityEditor - Komplexität: Konfigurierbare 3D-Inhalte und plattformspezifische Distribution aus einem Unity-Projekt. - Einsatz: Editor-Menüs zum Erzeugen von AssetBundles für Android, Windows und iOS sowie zum Export eines Unity-Pakets; `ScriptableObject` für Modelle, Marker, Overlays und Cross-Section-Einstellungen. - Projekt: ChipAcademy AR-Viewer ### SteamVR, OpenVR, Oculus und VRTK - Komplexität: VR-Interaktion und Navigation für eine mehrszenige Trainingsanwendung. - Einsatz: Integration von SteamVR, OpenVR, Oculus und VRTK; erzwungene Teleportation mit konfigurierbarem Blink-Übergang sowie Controller- und Teleportationslogik in der Intro-Szene. - Projekt: VR-Training für EnviaM-Umspannwerk von Dezember 2019 bis Juli 2022. ### Mozilla DeepSpeech - Komplexität: Einrichtung einer lokal eingebundenen Spracherkennungs-Engine für eine Unity-Trainingsanwendung. - Einsatz: Dokumentation des DeepSpeech-Bootstrappings mit dem trainierten deutschen Mozilla-Netz, .NET-Core-3.1-Publisher und Unity-Szenenkonfiguration für sprachgesteuerte Umspannwerk-Projekte. - Kontext: TenneT VR Training und Umspannwerk-Projekte. ### Unity Package Manager und vrbits StepManager - Komplexität: Wiederverwendbare Paketabhängigkeiten und zustandsbasierte Schrittsteuerung für eine Trainingsanwendung. - Einsatz: Umstellung des StepManager von einer lokalen Paketquelle auf ein Git-Repository; Tutorial- und Testmodus sowie Laden des nächsten Arbeitsschritts über den StepManager. - Projekt: VR-Training für EnviaM-Umspannwerk im April und Juli 2022. ### Unity NavMesh, additive Szenen und Cinemachine - Komplexität: Navigation und Szenenverwaltung für eine mehrteilige interaktive Lernanwendung. - Einsatz: Mausgesteuerte Navigation über einen `NavMeshAgent`; additives Laden und Entladen von Innenraumszenen sowie Vorabladen von Minispiel- und Innenraumszenen mit Ladeanzeige; Kamerasteuerung mit Cinemachine. - Projekt: Roche Prozessrallye, April bis November 2021. ### Unity VideoPlayer, RenderTexture und uGUI - Komplexität: Einbindung und Bedienung von Lernvideos in einer Unity-Anwendung. - Einsatz: Wiedergabe lokaler oder per URL geladener Videos, Ausgabe auf `RawImage` über `RenderTexture`, dynamische Anpassung des Seitenverhältnisses sowie Play-/Pause- und Schließen-Steuerung. - Projekt: Roche Prozessrallye, April bis November 2021. ### NUnit, Moq und Test Driven Development - Komplexität: Testgetriebene Entwicklung einer asynchronen Unity- und .NET-Bibliothek mit Unit- und Integrationstests. - Einsatz: NUnit-Tests im Arrange-Act-Assert-Stil, Moq und eigene HTTP-Mocks; Testfälle für Download-Fortschritt, Abbruch, Resume, Dateiintegrität, Cache-Verhalten, Formatfehler und Ressourcenbereinigung. Schrittweises Ergänzen von Tests und darauf folgenden Implementierungsanpassungen. - Projekt: `MMS-AssetDownloader` Juli bis August 2025. - Zusätzlicher Einsatz: NUnit-Regressionstests für Trainingsszenen, die Positionen von UI- und 3D-Objekten, Kameraeinstellungen, Addressable-Gruppen, VR-Builder-Konfiguration und Lightmaps prüfen. - Projekt: VR Builder Scene Generation / TrainingGenerator, Oktober 2024 bis September 2025. ### .NET Standard, HttpClient und HTTP Range Requests - Komplexität: Unity-agnostische Kernbibliothek für parallele, asynchrone Dateiübertragungen mit Fehler- und Zustandsbehandlung. - Einsatz: `HttpClient` mit Streaming in temporäre Dateien, Fortschrittsereignissen, Abbruch, Retry-fähiger Fehlerdarstellung und Range-Requests zur Wiederaufnahme unterbrochener Downloads; Warteschlange mit konfigurierbarer Parallelität; Behandlung von `401`/`403` als Authentifizierungsfehlern, `404` als nicht gefundenem Asset sowie `429` und 5xx-Antworten als Netzwerkfehlern. - Projekt: MMS-AssetDownloader, August 2025. ### OpenAPI 3.1, REST-Asset-Service und OAuth2 - Komplexität: Einordnung eines Unity-Downloadclients in den Vertrag eines mandanten- und projektbezogenen Enterprise-Asset-Service. - Einsatz: Analyse der OpenAPI-3.1-Spezifikation „Asset Service API“ v1.0.14: Assetlisten mit Filterung, Suche und Paginierung; Metadaten mit Organisation, Projekt, Content-Type, Quelle, Sicherheitsstufe, Labels und frei definierbaren Attributen; Asset- und Revisionsverwaltung mit Multipart-Upload sowie binären Download-Endpunkten; Zugriff über OAuth2-Scopes für Lesen, Erstellen, Ändern und Löschen. Abgrenzung des eigenen Unity-Downloaders auf die URL-basierte Download-, Cache- und Importfunktion. - Projekt: MMS-AssetDownloader, Juli bis August 2025; API-Spezifikation im begleitenden Telekom-MMS-Ordner. ### glTF, GLB, USD und USDZ - Komplexität: Formatprüfung und Vorbereitung unterschiedlicher 3D-Assetformate für Unity. - Einsatz: Erkennung und grundlegende Validierung von glTF, GLB, USD, USDA, USDC und USDZ; Einbindung von glTFast und USD Importer in das Unity-Projekt. Der DownloadJob akzeptiert im dokumentierten Entwicklungsstand URL-Endungen für GLB und USDZ; die breitere Formatunterstützung liegt im Importer. - Projekt: MMS-AssetDownloader Juli bis August 2025. ### Drupal 8.7 und XML-Schnittstellen - Komplexität: Bereitstellung von Inhalts- und Metadaten für eine AR-Anwendung. - Einsatz: Drupal-8.7.7-Backend mit XML-Endpunkt; Übertragung von Szenen-UUIDs, Anbieter-, Revisions- und Zeitinformationen, Titeln, Beschreibungen, Bildern sowie iOS- und Android-AssetBundle-URLs an den Unity-AR-Viewer. - Projekt: ChipAcademy AR-Viewer ### Android und iOS - Komplexität: Mobile Zielplattformen innerhalb plattformübergreifender Unity-Projekte. - Einsatz: Bereitstellung von Anwendungen aus einer gemeinsamen Codebasis. - Kontext: vrbits GmbH. ### Rust - Komplexität: Grundlagen der Konsolen- und 3D-Anwendungsentwicklung mit Eingabeverarbeitung, Kontrollfluss, zeitgesteuerter Bewegung und Zustandsverwaltung. - Einsatz: Zufallszahlenerzeugung mit `rand`, Einlesen von Standardeingaben, Typumwandlung mit `match`-basierter Fehlerbehandlung und Vergleich über `Ordering`; 3D-Spielprototyp mit Spielfeldgrenzen, fallenden Spielsteinen und Gamepad-Eingaben. - Projekte: Rust-Ratespiel in `rust_guessing_game` (Oktober 2018) und Threetris in `threetris` (November 2018), jeweils durch eigene Commits belegt. ### kiss3d, nalgebra und stick - Komplexität: Aufbau eines interaktiven 3D-Spielprototyps mit Rendering, mathematischer Positionierung und Gamepad-Steuerung. - Einsatz: 3D-Fenster, Kamera, Plattform und Würfel mit `kiss3d`; Punkte und Translationen mit `nalgebra`; Abfrage von Gamepad-Eingaben mit `stick`. - Projekt: Threetris in `threetris`, belegt durch eigene Commits im November 2018. ### Python - Komplexität: Entwicklung von Web-, Scraping-, Datenmigrations- und Automatisierungswerkzeugen mit API-Anbindung, Datenkonvertierung und Dateiverarbeitung. - Einsatz: - Abruf eines MediaWiki über dessen API, HTML-zu-Markdown-Konvertierung, Download von Bildern, Erzeugung von Metadaten und interaktive Link-Konvertierung; - Web-Scraping, Mailbox-/MIME-Verarbeitung, Datumsnormalisierung und CSV-Ausgabe für Veranstaltungs- und Stiftungsdaten; - Anpassung des CARLA-Python-Clients, Konfiguration eines Logitech-G29-Controllers über Pygame und Übertragung der Lenkrad-/Pedaleingaben an die Simulations-API. - Projekte: - MediaWiki-zu-Obsidian-Migration in `ScrapeMediawiki`, belegt durch eigene Commits von August bis Oktober 2024; - eigene Beiträge zum Teamprojekt `info.ngo`, belegt durch Commits von Juli bis August 2019; - CARLA-VR, belegt durch eigene Commits von Dezember 2021 bis Februar 2022. ### Django, Django ORM und Django CMS - Komplexität: Vom schrittweisen Framework-Lernprojekt über einen CMS-Prototyp bis zu einer mehrschichtigen, datengetriebenen Webanwendung. - Einsatz: Projekt- und App-Struktur, URL-Routing, ORM-Modelle und Migrationen, Admin, Authentifizierung, funktionsbasierte und generische Views, Formulare, Templates, statische Dateien und Medien; Django-CMS-Seiten mit Toolbar, Navigation, Sekizai-Blöcken, editierbaren Platzhaltern und Plugin-Konfiguration. - Projekte: Eigenes Django-Lernprojekt `django-first-app` im Juni 2018; Django-CMS-Prototyp `/Volumes/rob/code/django-cms/info.ngo` im Juli 2019; Teamprojekt `info.ngo` im Juli und August 2019. ### Requests, Beautiful Soup, lxml und E-Mail-Parsing - Komplexität: Gewinnung und Normalisierung semistrukturierter Daten aus mehreren Web- und Nachrichtenquellen. - Einsatz: HTTP-GET- und POST-Abrufe; HTML-Parsing mit Beautiful Soup sowie `lxml` und `html5lib`; Behandlung unregelmäßiger Datumsangaben; CSV-Export; Einlesen von Thunderbird-Mailboxen und Dekodierung von MIME-Inhalten; Vorbereitung der Daten für eine Django-Importpipeline. - Projekt: Eigene Beiträge zum Teamprojekt `info.ngo`, belegt durch Git-Commits vom 30. Juli bis 27. August 2019. ### django-filter, Paginierung und transaktionaler Datenimport - Komplexität: Durchgängige Verarbeitung von extern gewonnenen Daten bis zur filterbaren, seitenweise dargestellten Webansicht. - Einsatz: Filterung von Events nach Titel, Datumsbereich und Veranstaltungsort; Erhalt der Filterparameter beim Seitenwechsel; Django-Paginator; Factory-/Service-Layer mit JSON-Serialisierung; atomare ORM-Operationen und Behandlung von Integritätsfehlern zur Vermeidung von Duplikaten. - Projekt: Teamprojekt `info.ngo`, Juli bis August 2019. ### Leaflet, GeoJSON, Geopy und interaktive Karten - Komplexität: Geokodierung, Speicherung und browserseitige Visualisierung räumlicher Veranstaltungsdaten. - Einsatz: Ermittlung von Koordinaten aus Ortsangaben mit Geopy; GeoJSON-Punktfelder über `djgeojson`; Ausgabe von Modelldaten als GeoJSON; Leaflet-Karte mit Popups, ein- und ausblendbarer Kartenansicht sowie zeitabhängig eingefärbten Material-Markern. - Projekt: Teamprojekt `info.ngo`, Juli bis August 2019. ### Django-Templates, Bootstrap und jQuery - Komplexität: Serverseitig gerenderte, interaktive Weboberfläche mit Formularen, Authentifizierung, Filtern und Kartendarstellung. - Einsatz: Template-Vererbung und statische Assets; Bootstrap-Layouts, Formulare und Toggles; Crispy Forms; jQuery-basierte UI-Steuerung und Validierung; Einbindung von Leaflet und Material Icons. - Projekt: Teamprojekt `info.ngo`, Juli bis August 2019. ### MySQL, SQLite, Conda und Python-Web-Deployment - Komplexität: Entwicklungs-, Datenbank- und Laufzeitkonfiguration einer Django-Anwendung für lokale und serverseitige Umgebungen. - Einsatz: MySQL als konfigurierte Anwendungsdatenbank; SQLite für Lernprojekt, CMS-Prototyp und Sicherung; reproduzierbare Python-3.7-Umgebung mit Conda und gepinnten Paketen; vorbereitete Abhängigkeiten für PostgreSQL, Gunicorn, WhiteNoise, Heroku sowie S3-kompatiblen Speicher mit `django-storages` und Boto3. - Projekte: `django-first-app`, Django-CMS-Prototyp `info.ngo` und Teamprojekt `info.ngo`, 2018 bis 2019. ### MediaWiki-API, Requests, Beautiful Soup und html2text - Komplexität: Authentifizierte API-Integration und automatisierte Inhaltsmigration. - Einsatz: Paginierter Abruf aller Wiki-Seiten; Login über Token; Auswertung von Kategorien, internen und externen Links, Bildern und Revisionen; Konvertierung von HTML nach Markdown. - Projekt: MediaWiki-zu-Obsidian-Migration in `ScrapeMediawiki`, belegt durch eigene Commits von August bis Oktober 2024. ### Obsidian und Markdown - Komplexität: Datenmigration und versionsierte Sicherung von Wissensdaten. - Einsatz: Konvertierung von MediaWiki-Inhalten nach Markdown für Obsidian; automatisiertes Backup eines Obsidian-Vaults. - Projekte: `ScrapeMediawiki` (August bis Oktober 2024) und `obsidian-backup` (März 2026), belegt durch eigene Commits. ### Jekyll und Liquid - Komplexität: Entwicklung und Erweiterung statischer Websites mit wiederverwendbaren, datengetriebenen Seitenelementen. - Einsatz: Erstellung eines Full-Width-Kartenlayouts und Einbindung von Karten über Liquid-Templates; Pflege von Seiten mit YAML-Front-Matter und Markdown; vollständiger WordPress-zu-Jekyll-Relaunch einer Unternehmenswebsite mit lokalisierter Inhaltsstruktur, Seitenbasis, Navigation und Footer sowie einer Card-Architektur aus zwölf Layoutvarianten und wiederverwendbaren Komponenten. - Projekte: Website für den Fuß- und Radentscheid Dresden in `fuss-und-radentscheid-dresden`, belegt durch eigene Commits von März bis Juli 2022; VRketing Website, Juli 2021 bis August 2022. ### Ruby und Bundler - Komplexität: Lokale Build- und Entwicklungsumgebung für eine statische Website unter Windows und Linux. - Einsatz: Gem-basierte Abhängigkeiten, lokale Bundler-Konfiguration und Dokumentation der Ausführung mit `bundle exec jekyll serve`. - Projekt: Website für den Fuß- und Radentscheid Dresden in `fuss-und-radentscheid-dresden`, belegt durch eigene Commits im März und Mai 2022. ### Sass - Komplexität: Responsive Komponenten- und Seiten-Styles innerhalb bestehender und eigener Jekyll-Themes. - Einsatz: Anpassung von Kartenüberschriften, Kartenlayout, Full-Width-Darstellung, Kontaktbereich, Footer und projektspezifischem Farbschema; responsive Header-, Menü-, Schrift-, Karten- und Hero-Layouts für die VRketing-Unternehmenswebsite. - Projekte: Website für den Fuß- und Radentscheid Dresden in `fuss-und-radentscheid-dresden`, belegt durch eigene Commits im Mai und Juli 2022; VRketing Website, Juli 2021 bis August 2022. ### Arduino C - Komplexität: Firmware-Entwicklung mit Klassenabstraktion, Hardware-Ansteuerung und Netzwerkkommunikation. - Einsatz: ESP8266-Firmware für einen WLAN-gesteuerten LED-Rahmen; Initialisierung und Ansteuerung eines adressierbaren LED-Streifens sowie HTTP-Routen zur Steuerung von Farben und Effekten. - Projekt: WLAN-gesteuerter LED-Rahmen in `VRKeting-LED-Rahmen`, belegt durch eigene Commits von September 2022 bis Januar 2023. ### ESP8266, ESPAsyncTCP und ESPAsyncWebServer - Komplexität: WLAN- und HTTP-Anbindung eines Mikrocontrollers. - Einsatz: WLAN-Verbindung, asynchroner HTTP-Server auf Port 80 sowie GET-Routen für die Weboberfläche, direkte Farbsteuerung und Regenbogeneffekt. - Projekt: WLAN-gesteuerter LED-Rahmen in `VRKeting-LED-Rahmen`, belegt durch eigene Commits von September 2022 bis Januar 2023. ### Adafruit NeoPixel und WS2811/WS2812 - Komplexität: Einzelpixelsteuerung und Animation eines adressierbaren LED-Streifens. - Einsatz: Initialisierung eines 80 LEDs umfassenden Streifens, Helligkeitssteuerung, RGB-Farbwerte und Effekte wie Farbwechsel, Lauflicht und Regenbogen. - Projekt: WLAN-gesteuerter LED-Rahmen in `VRKeting-LED-Rahmen`, belegt durch eigene Commits von September 2022 bis Januar 2023. ## Web, E-Commerce und Daten ### PHP, JavaScript und MySQL - Komplexität: E-Commerce- und Warenwirtschaftssysteme sowie komplexe Datenbankmigrationen. - Einsatz: Webshop-Entwicklung, eigene Lösungen, Migration komplexer Systeme und Datenbanken. - Kontext: selbstständige Full-Stack-Projekte, 2017 bis 2019. ### HTML5, CSS3 und jQuery - Komplexität: Webentwicklung mit responsiven Benutzeroberflächen. - Einsatz: - Entwicklung von Websites und Online-Shops; Responsive Design und Mobile First. - Kontext: nebenberufliche Webprojekte, 2012 bis 2017; - Eingebettete HTML- und CSS-Bedienoberfläche für die Steuerung eines LED-Rahmens im Browser. - Projekt: WLAN-gesteuerter LED-Rahmen in `VRKeting-LED-Rahmen`, September 2022 bis Januar 2023; - Responsive HTML-/CSS-Content-Overlay für eine Needle-Engine-Visualisierung mit Medienabfragen, dynamischer Panel- und Schriftgröße sowie Querformat-Handling. - Projekt: TenneT 2GW Platform, Februar bis Oktober 2023. ### JavaScript und XMLHttpRequest - Komplexität: Browserseitige Steuerung eines vernetzten Hardwaregeräts. - Einsatz: Auslösen parameterisierter HTTP-GET-Anfragen zur Auswahl von LED-Programmen, Farben und Effektgeschwindigkeit. - Projekt: WLAN-gesteuerter LED-Rahmen in `VRKeting-LED-Rahmen`, belegt durch eigene Commits von September 2022 bis Januar 2023. ### Node.js, React und Vue.js - Komplexität: Moderne Web- und Frontend-Entwicklung. - Einsatz: Web- und Full-Stack-Entwicklung. - Kontext: berufliche Erfahrung in Webentwicklung und Full-Stack-Projekten. ### Preact und Redux - Komplexität: Komponentenbasierte Single-Page Application mit mehreren voneinander abhängigen Datenansichten und gemeinsamem Interaktionszustand. - Einsatz: Aufbau des VISOR-Frontends mit Preact-Komponenten und Routing; zentrale Zustandsverwaltung für geladene und gefilterte OProc-Daten, Zoom, Suche, Markierungen und Auswahl; Redux-Actions und Reducer sowie Ableitung gefilterter Ansichten aus Daten- und Filterzustand. - Projekt: VISOR/OProc, August 2017 bis März 2018, belegt durch eigene Commits im Repository `in-transit`. ### SVG, Dagre und interaktive Prozessvisualisierung - Komplexität: Gemeinsame Visualisierung zeitlicher, hierarchischer und gerichteter Prozessbeziehungen mit miteinander gekoppelten Interaktionen. - Einsatz: SVG-Timeline mit Zeitachsen, Zoom, Verschieben, Swimlanes, kollisionsarmer Stapelung und Verbindungslinien; gerichteter Abhängigkeitsgraph mit Dagre-Layout; visuelle Kodierung von Beteiligung und übergeordneten Prozessen; Hover-, Auswahl-, Filter-, Such- und Detailinteraktionen über beide Ansichten. - Projekt: VISOR/OProc, September 2017 bis März 2018, belegt durch eigene Commits im Repository `in-transit`. ### Moment.js - Komplexität: Einheitliche Darstellung und Verarbeitung von Datumswerten in zeitbasierten Prozessansichten. - Einsatz: Formatierung der Zeitachse, Prozessbeschriftungen, Chronologie, Ergebnislisten und Detailansichten im Browser. - Projekt: VISOR/OProc, belegt durch Implementierung und eigene Commits im Repository `in-transit`. ### Shopware, WordPress und Apache-Weiterleitungen - Komplexität: Webshop- und Content-Management-Systeme sowie die Ablösung bestehender Websites bei Erhalt vorhandener URLs. - Einsatz: Entwicklung von Webshops mit Shopware sowie Webentwicklung; Auswertung eines WordPress-Exports, Übernahme ausgewählter Inhalte in eine Jekyll-Website und Pflege von Apache-`.htaccess`-Weiterleitungen für alte WordPress-Pfade. - Kontext: selbstständige Full-Stack-Projekte und VRketing Website. - Projekt: VRketing Website, Juli 2021 bis August 2022. ### SQL, CRUD/REST-APIs, JSON und XML - Komplexität: Datenmodellierung, Datenintegration und Schnittstellenprogrammierung. - Einsatz: Datenbankdesign und -optimierung; Integration und Kapselung von Schnittstellen, Datenformaten und Services. - Kontext: Webprojekte, selbstständige Full-Stack-Projekte und vrbits GmbH. - Zusätzlicher Einsatz: Entwurf und iterative Weiterentwicklung von OProc als offenem, URL-basiertem JSON-Datenmodell für Stadtentwicklungsprozesse mit Prozessen, Stakeholdern, Beteiligung, Orten, Resultaten, Dateien und Verweisen auf parlamentarische Daten. - Projekt: VISOR/OProc, August 2017 bis Mai 2018, belegt durch eigene Commits im Repository `oproc`. ## Betrieb, Qualität und Delivery ### Git, GitHub Actions und GameCI - Komplexität: Continuous Integration für mehrere Zielplattformen. - Einsatz: CI-Pipelines auf lokalen und Remote-Runnern für sämtliche Zielplattformen. - Kontext: vrbits GmbH. - Zusätzlicher Einsatz: Geplanter und manuell auslösbarer GameCI-WebGL-Build mit automatisiertem Deployment für Roche RMD Rotkreuz. - Zusätzlicher Einsatz: Unterstützung bei der Automatisierung von Build-Prozessen sowie Erarbeitung von Coding-Guidelines für VR-Builder-Trainings. ### Docker, Linux, POSIX Shell und Systemadministration - Komplexität: Betrieb und Administration von Entwicklungs- und Serversystemen. - Einsatz: IT-Support, Systemadministration und Infrastrukturarbeit. - Kontext: MAGIX Development GmbH, selbstständige Projekte sowie aktuelle Softwareentwicklung. - Systeme: Debian-Server, Fedora im privaten Einsatz, NixOS, FreeBSD und CentOS. - Zusätzlicher Einsatz: Eigene Shell-Automatisierung für Backups, Serverwartung und PhotoPrism-Indexierung in Docker. - Projekt: `lokale-scripte`, November 2018 bis Mai 2026. - Zusätzlicher Einsatz: Dokumentation Pflege eines VR-Builder-Glossars. - Zusätzlicher Einsatz: Containerisierung und ODC-/Kubernetes-Integrationsanweisungen für den Telekom-MMS-AI-Assist-Voice-Agent; Docker-Compose mit gemeinsamem Netzwerk und Testcontainer sowie GitLab-CI-gestützter Build und Push versionierter Images in die Telekom-Registry. ### Kubernetes, GitLab CI und Telekom ODC - Komplexität: Reproduzierbare Bereitstellung eines Echtzeit-WebSocket-Dienstes in einer Unternehmens-Cloud mit Container-Registry und mehreren Laufzeitumgebungen. - Einsatz: Erstellung der Docker- und Kubernetes-Anweisungen zur Einbindung des AI-Assist-Voice-Agent-Service in die Telekom Open Digital Cloud (ODC). - Projekt: Telekom MMS AI Assist, Repository `#_TelekomMMS/ai-assist_ai-assist-service`, mindestens Februar 2025. - Abgrenzung: Unreal-basierter Avatar und KI-Anbindung lagen bei Kolleg:innen; der eigene Schwerpunkt lag auf Betriebs- und Integrationsaspekten. ### NixOS und Nix - Komplexität: Modulare, deklarative Konfiguration eines Mehrzweckservers. - Einsatz: Aufteilung der Systemkonfiguration in Nix-Module für Nutzer, Speicher, Samba, Nextcloud, Tailscale, Cockpit, VeraCrypt und systemnahe Programme; automatische System-Upgrades. - Projekt: Deklarative NixOS-Heimserver-Konfiguration in `bfds-configuration.nix`, belegt durch eigene Commits von Januar bis November 2024. ### systemd - Komplexität: Definition und Terminierung systemnaher Dienste. - Einsatz: Service und stündlicher Timer für ein rsync-basiertes Backup sowie einmaliger Dienst zur Konfiguration der Festplatten-Energieverwaltung beim Systemstart. - Projekt: Deklarative NixOS-Heimserver-Konfiguration in `bfds-configuration.nix`, belegt durch eigene Commits von April bis November 2024. ### ZFS - Komplexität: Verwaltung mehrerer Storage-Datasets auf einem NixOS-Server. - Einsatz: Einbindung eines ZFS-Pools und separater Datasets für persönliche und gemeinsam genutzte Dateiablagen. - Projekt: Deklarative NixOS-Heimserver-Konfiguration in `bfds-configuration.nix`, belegt durch eigene Commits im Jahr 2024. ### Samba und SMB - Komplexität: Bereitstellung von Netzwerkfreigaben für heterogene Client-Systeme. - Einsatz: Konfiguration mehrerer Freigaben mit Berechtigungen; SMB2/SMB3-Protokollvorgaben, SMB-Signierung, Firewall-Freigaben und Windows-Netzwerkerkennung. - Projekt: Deklarative NixOS-Heimserver-Konfiguration in `bfds-configuration.nix`, belegt durch eigene Commits von Januar bis November 2024. ### nginx, ACME und Let's Encrypt - Komplexität: HTTPS-Bereitstellung und automatisierte Zertifikatsverwaltung für einen Dienst. - Einsatz: nginx Virtual Host mit HTTPS-Erzwingung und ACME-Zertifikatsautomatisierung für Nextcloud. - Projekt: Deklarative NixOS-Heimserver-Konfiguration in `bfds-configuration.nix`, belegt durch eigene Commits im August 2024. ### Tailscale und Cockpit - Komplexität: Fernzugriff und webbasierte Serveradministration. - Einsatz: Aktivierung des Tailscale-Dienstes sowie Bereitstellung der Cockpit-Verwaltungsoberfläche. - Projekt: Deklarative NixOS-Heimserver-Konfiguration in `bfds-configuration.nix`, belegt durch eigene Commits im Januar und November 2024. ### Restic - Komplexität: Automatisierte, verschlüsselte Backup- und Wiederherstellungsabläufe. - Einsatz: Sicherung über SFTP, Ausschlusslisten für nicht relevante Daten sowie Skripte für Backup und Wiederherstellung. - Projekt: Private Infrastruktur- und Backup-Automatisierung in `lokale-scripte`, belegt durch eigene Commits von November 2021 bis Juli 2022. ### rsync und SSH - Komplexität: Automatisierte, serverübergreifende Dateisynchronisation. - Einsatz: Nextcloud-Backups über SSH mit dediziertem Schlüssel, Ausschlussregeln und anschließender Berechtigungsanpassung; Offsite-Synchronisation; konfigurationsgesteuertes Obsidian-Backup mit Schlüsseldatei oder benutzerdefiniertem Remote-Shell-Kommando. - Projekte: Nextcloud-Backup und Betriebsautomatisierung sowie private Backup-Automatisierung in `lokale-scripte` (März 2020 bis Januar 2026) und Obsidian-Backup mit rsync und Git in `obsidian-backup` (März 2026), belegt durch eigene Commits. ### Git - Komplexität: Versionsierte Backup-Historie mit idempotentem Ablauf. - Einsatz: Automatische Initialisierung eines Backup-Repositorys und Commit-Erstellung ausschließlich nach erkannten Änderungen aus der rsync-Synchronisation. - Projekt: Obsidian-Backup mit rsync und Git in `obsidian-backup`, belegt durch eigene Commits im März 2026. ### Nextcloud - Komplexität: Betrieb und automatisierte Sicherung einer laufenden Instanz. - Einsatz: Wartungsmodus während Backups, Dateiscans und Aufräumarbeiten; Sicherung von Dateien und Datenbanken. - Projekt: Nextcloud-Backup und Betriebsautomatisierung in `lokale-scripte`, belegt durch eigene Commits von März 2020 bis Mai 2026. ### MySQL und PHP - Komplexität: Automatisierte Datenbank-Sicherungen und Archivierung. - Einsatz: Erstellung von Datenbank-Dumps und Archivierung für Nextcloud-Backups. - Projekt: Nextcloud-Backup und Betriebsautomatisierung in `lokale-scripte`, belegt durch eigene Commits im Oktober 2023. ### VeraCrypt, Robocopy und Windows Batch/PowerShell - Komplexität: Verschlüsselte, plattformübergreifende Offsite-Sicherungen. - Einsatz: Einbinden verschlüsselter Datenträger und Spiegeln von Daten für externe Backups unter Windows. - Projekt: Private Infrastruktur- und Backup-Automatisierung in `lokale-scripte`, belegt durch eigene Commits im November und Dezember 2024. ### Windows, macOS und Netzwerk - Komplexität: Arbeit in heterogenen IT- und Client-Umgebungen. - Einsatz: IT-Support, Systemadministration und plattformübergreifende Entwicklung. - Kontext: MAGIX Development GmbH, Compaq Computer Corporation und vrbits GmbH. ### Automatisierte Tests und Qualitätssicherung - Komplexität: Testentwicklung und Qualitätssicherung von Software. - Einsatz: Softwaretest, automatisierte Testentwicklung und Qualitätssicherung. - Kontext: MAGIX Development GmbH, 2006 bis 2017. ### PhotoPrism - Komplexität: Betriebsautomatisierung einer containerisierten Fotoverwaltung. - Einsatz: Periodische Indexierung aus einem cron-tauglichen Shell-Skript mit Sperrdatei, Signalbehandlung und Log-Rotation. - Projekt: PhotoPrism-Indexierungsautomatisierung in `lokale-scripte`, belegt durch eigene Commits von Oktober 2025 bis Januar 2026. ## 3D und technische Gestaltung ### OpenSCAD, Blender, OpenGL, 3ds Max und 3D-Druck - Komplexität: 3D-Bearbeitung und -Entwicklung. - Einsatz: Im Lebenslauf als 3D-Kenntnisse aufgeführt. - Kontext: nicht weiter spezifiziert. ## KI und maschinelles Lernen ### ANNs und LLMs - Komplexität: Anwendung und kontinuierliche Beschäftigung mit maschinellem Lernen und Sprachmodellen. - Einsatz: ANNs seit 2016; LLMs seit 2020; seit 2025 verstärkter Einsatz von KI im Unternehmenskontext und in der eigenen Softwareentwicklung. - Kontext: berufliche und private Softwareentwicklung. - Zusätzlicher Einsatz: Recherche und Dokumentation zu Neural Radiance Fields (NeRF), KI-Modellgenerierung mit Stable-3D und ComfyUI sowie Evaluation von Unity DOTS. ### RAG, OpenWebUI, LM Studio, GPUStack, MCP, BMAD und SpecKit - Komplexität: Werkzeuge und Methoden für KI-gestützte Softwareentwicklung und LLM-Anwendungen. - Einsatz: Im Lebenslauf als Kenntnisse aufgeführt. - Kontext: berufliche und private Softwareentwicklung. ### Context Engineering und spezifikationsgetriebene Entwicklung (SDD) - Komplexität: Steuerung einer überwiegend KI-generierten Anwendung durch persistente, fachlich konkrete Spezifikationen und Arbeitsregeln. - Einsatz: Projektkontext, Modulgrenzen und Datenfluss in Copilot-Instructions dokumentieren; Anwendungsmasterplan mit Excel-Struktur, PDF-Feldzuordnungen, Status- und Berechnungsregeln sowie Validierungskriterien formulieren; dateibezogene Anweisungen über `applyTo` zuordnen; Planung vor Implementierung, Aufgabenzerlegung und sequenzielle Bearbeitung vorgeben. - Qualitätssteuerung: Tests der Fachlogik, Eingabevalidierung und prüfbare Vorschauen als Anforderungen verankern; GUI-Erweiterung und Windows-Auslieferung separat planen. Abgleich von Spezifikation und tatsächlichem Ergebnis bleibt erforderlich. - Projekt: Anwesenheit PDF Generator (`SUFW/Anweisenheiten`), März bis Mai 2026. ### DeepSeek 4 pro und Copilot Chat in Visual Studio Code - Komplexität: KI-gestützte Umsetzung einer fachlich spezifizierten Verwaltungsanwendung mit CLI, GUI und Windows-Bereitstellung. - Einsatz: LLM im Copilot-Chat-Modul von VS Code mit projektbezogenen Agent-Dateien anleiten; Implementierung anhand von Plänen und fachlichen Korrekturen iterativ entwickeln lassen. - Projekt: Anwesenheit PDF Generator; KI-Nutzungskosten unter 3 US-Dollar bei insgesamt weniger als einer Woche eigenem Arbeitsaufwand. - Eigener Kompetenzschwerpunkt: Anforderungsformulierung, Kontextgestaltung und Steuerung des Entwicklungsprozesses. ### Caveman-Anweisungen für tokenbewusste Agent-Kommunikation - Komplexität: Konfiguration knapper Agent-Antworten zur Begrenzung des Tokenverbrauchs bei Erhalt technischer Inhalte. - Einsatz: Persistente Kommunikationsregeln mit Kürzungsstufen und Ausnahmen für erforderliche Klarheit in einer Copilot-Instructions-Datei hinterlegen; im Entwicklungsablauf zur Tokenersparnis einsetzen. - Projekt: Anwesenheit PDF Generator. Eine isolierte prozentuale Einsparung durch diese Anweisungen wurde nicht ermittelt. ## Werkzeuge ### Jira und Visual Studio Code - Komplexität: Werkzeuge für Projektarbeit und Softwareentwicklung. - Einsatz: Im Lebenslauf als Tools aufgeführt. - Kontext: nicht weiter spezifiziert.