Files
my-knowledge/technologies.md
T

31 KiB

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.

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.

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

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.
  • Projekt: MMMMS-AssetDownloader August 2025.

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.
  • 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.
  • 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.

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: Erweiterung einer statischen Website um wiederverwendbare, datengetriebene Seitenelemente.
  • Einsatz: Erstellung eines Full-Width-Kartenlayouts und Einbindung von Karten über Liquid-Templates; Pflege von Seiten mit YAML-Front-Matter und Markdown.
  • Projekt: Website für den Fuß- und Radentscheid Dresden in fuss-und-radentscheid-dresden, belegt durch eigene Commits von März bis Juli 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 eines bestehenden Jekyll-Themes.
  • Einsatz: Anpassung von Kartenüberschriften, Kartenlayout, Full-Width-Darstellung, Kontaktbereich, Footer und projektspezifischem Farbschema.
  • Projekt: Website für den Fuß- und Radentscheid Dresden in fuss-und-radentscheid-dresden, belegt durch eigene Commits im Mai und Juli 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 und WordPress

  • Komplexität: Webshop- und Content-Management-Systeme.
  • Einsatz: Entwicklung von Webshops mit Shopware sowie Webentwicklung.
  • Kontext: selbstständige Full-Stack-Projekte.

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.

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, SpecKit, SDD, Context Engineering und Caveman

  • 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.

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.