Erster Stand mit etlichen vrbits Projekten erstellt.. (ohne KI skill und instruction files)

This commit is contained in:
trnq1ll0 committed 2026-09-02 15:46:15 +02:00
commit 320bd4f227
4 files changed
+966

No files matched your search

+194
View File
@@ -0,0 +1,194 @@
# Inhalt
Enthält alle Projekte/Kontexte in denen ich schon tätig war.
Jedes Projekt/Kontext besteht aus einem Link bzw Quell, einer Beschreibung, den Herausforderungen des Projektes und den verwendeten Lösungen.
## Private Infrastruktur- und Backup-Automatisierung
- Zeitraum: November 2018 bis Mai 2026, belegt durch eigene Commits im Repository.
- Quelle: lokales Git-Repository `lokale-scripte`.
- Kontext: Sammlung eigener Shell-, Batch- und PowerShell-Skripte zur Administration von Linux-, Server- und Arbeitsplatzumgebungen.
- Herausforderungen: Zuverlässige Sicherung verteilter Daten, Redundanz durch externe Datenträger, plattformübergreifende Backup-Abläufe und Ausschluss nicht relevanter Daten wie Caches oder Papierkörbe.
- Lösungen: Restic-Backups über SFTP; rsync-basierte Synchronisation; automatisierte Offsite-Backups; Geräteerkennung über Labels und UUIDs; VeraCrypt-gestützte Sicherungen unter Windows mit Robocopy; Wiederherstellungs- und Hilfsskripte.
## Nextcloud-Backup und Betriebsautomatisierung
- Zeitraum: März 2020 bis Mai 2026, belegt durch eigene Commits im Repository.
- Quelle: `lokale-scripte/linux/rsync-nextcloud/` und `lokale-scripte/boogie/`.
- Kontext: Automatisierung der Sicherung und Wartung eigener Nextcloud-Instanzen.
- Herausforderungen: Konsistente Sicherung einer laufenden Nextcloud-Instanz einschließlich Datenbanken; Zugriff auf Daten in Container- beziehungsweise Serverumgebungen; passwortlose und automatisierbare Serverkommunikation.
- Lösungen: Umschalten des Nextcloud-Wartungsmodus während des Backups; rsync über SSH mit dediziertem Schlüssel; PHP-gestützte Datenbank-Dumps und Archivierung; Berechtigungsanpassungen nach der Synchronisation; Skripte für Nextcloud-Dateiscans und Aufräumarbeiten.
## PhotoPrism-Indexierungsautomatisierung
- Zeitraum: Oktober 2025 bis Januar 2026, belegt durch eigene Commits im Repository.
- Quelle: `lokale-scripte/bfds/root/photoprism-auto-index.sh`.
- Kontext: Automatisierte, cron-taugliche Indexierung einer PhotoPrism-Installation in Docker.
- Herausforderungen: Vermeidung paralleler Indexierungsläufe, zuverlässiges Aufräumen bei Fehlern oder Abbrüchen und begrenztes Log-Wachstum.
- Lösungen: Sperrdatei mit Ablaufzeit; Signalbehandlung für `EXIT`, `INT`, `TERM` und `ERR`; zeitgestempelte Protokollierung und Begrenzung der Logdateigröße; Ausführung des PhotoPrism-Kommandos über `docker exec`.
## MediaWiki-zu-Obsidian-Migration
- Zeitraum: August bis Oktober 2024, belegt durch eigene Commits im Repository.
- Quelle: lokales Git-Repository `ScrapeMediawiki`.
- Kontext: Python-Werkzeug zum vollständigen Abruf eines MediaWiki und zur Ablage der Inhalte als Markdown für Obsidian.
- Herausforderungen: Vollständiger Abruf paginierter Wiki-Inhalte, Umwandlung von HTML und MediaWiki-Links in Markdown, Übernahme von Bildern und Revisionsinformationen sowie Abbildung von Seitenhierarchien.
- Lösungen: Authentifizierte Abfrage der MediaWiki-API mit Fortsetzungsmarken; HTML-zu-Markdown-Konvertierung; Ablage von Seiten in Verzeichnissen anhand ihrer Titel; Download und Verlinkung von Bildern; Erzeugung eines Inhaltsverzeichnisses und von Metadaten zu Kategorien, Links und Revisionen; interaktive Nachbearbeitung von Wiki-Links.
## Obsidian-Backup mit rsync und Git
- Zeitraum: März 2026, belegt durch eigene Commits im Repository.
- Quelle: lokales Git-Repository `obsidian-backup`.
- Kontext: Konfigurationsgesteuertes Backup eines Obsidian-Vaults auf einem TrueNAS-Server mit Dateisynchronisation und versionsierter Historie.
- Herausforderungen: Portabler, sicherer Zugriff auf entfernte Daten; Vermeidung leerer Backup-Commits; reproduzierbare Einrichtung ohne Zugangsdaten im Skript.
- Lösungen: Umgebungsdatei für Quelle, Ziel, SSH-Konfiguration und Commit-Präfix; Validierung der Konfiguration; rsync über SSH mit Schlüssel oder benutzerdefiniertem Remote-Shell-Kommando; automatische Initialisierung eines Git-Repositorys; Commit nur bei tatsächlich geänderten Daten.
## Deklarative NixOS-Heimserver-Konfiguration
- Zeitraum: Januar bis November 2024, belegt durch eigene Commits im Repository.
- Quelle: lokales Git-Repository `bfds-configuration.nix`.
- Kontext: Modulare, deklarative Konfiguration eines NixOS-Servers für Dateiablage, private Cloud, Speicherverwaltung, Fernzugriff und Systemadministration.
- Herausforderungen: Integration mehrerer Infrastrukturservices mit konsistenten Netzwerk-, Speicher- und Sicherheitsvorgaben; Bereitstellung von Dateiablagen für unterschiedliche Clients; automatisierbarer Betrieb und Upgrade-Prozess.
- Lösungen: Aufteilung der NixOS-Konfiguration in eigenständige Module; Nextcloud mit PostgreSQL, nginx, HTTPS und ACME-Zertifikaten; ZFS-Datasets für die Dateiablage; Samba-Freigaben mit SMB2/SMB3 und erzwungener Signatur; Tailscale, OpenSSH und Cockpit für Fernzugriff und Administration; systemd-Service und -Timer für automatisierte Backup-Ausführung sowie automatische System-Upgrades.
## Website für den Fuß- und Radentscheid Dresden
- Zeitraum: März bis Juli 2022, belegt durch eigene Commits im Repository.
- Quelle: lokales Git-Repository `fuss-und-radentscheid-dresden`.
- Kontext: Statische Website einer Dresdner Bürgerinitiative für sichere, klima- und fußverkehrsfreundliche Mobilität.
- Herausforderungen: Wiederverwendbare, responsive Seitenelemente für unterschiedliche Informationsinhalte; einheitliche Einbindung von Navigation, Kontakt- und Social-Media-Links; lokal reproduzierbarer Build unter Windows und Linux.
- Lösungen: Erweiterung der Jekyll-Website um ein Full-Width-Kartenlayout auf Basis von Liquid-Templates; Anpassung von Karten- und Kontakt-Styles mit Sass; Pflege von Navigation, Footer und Social-Media-Verlinkungen; Dokumentation der lokalen Ruby-/Bundler-Installation und des Jekyll-Entwicklungsservers für Windows und Linux.
## VISOR/OProc – Visualisierung offener Stadtentwicklungsprozesse
- Zeitraum: August 2017 bis Mai 2018, belegt durch eigene Commits in den drei Projekt-Repositories.
- Quellen: lokale Git-Repositories `/Users/rob/code/visor/oproc`, `/Users/rob/code/visor/in-transit` und `/Users/rob/code/visor/d3-oproc`.
- Kontext: BMBF/Prototype-Fund-gefördertes Civic-Tech-Projekt in Kooperation mit Forschenden der HTW Dresden zur maschinenlesbaren Beschreibung und interaktiven Visualisierung öffentlicher, insbesondere partizipativer Stadtentwicklungsprozesse.
- Teilprojekte: `oproc` enthält die Spezifikation eines offenen JSON-Datenmodells; `in-transit` implementiert den webbasierten VISOR-Prototyp; `d3-oproc` dokumentiert die Idee eines separaten Gantt-artigen Visualisierungsmoduls, blieb aber ein nicht implementiertes Konzeptgerüst.
- Entwicklung des OProc-Datenmodells, Aufbau der Timeline, Datenimport und -fluss; Zeitachsen, Zoom und Verschieben; Swimlanes und kollisionsarme Prozessanordnung; Filterung, Suche; Weiterentwicklung und visuelle Integration des Abhängigkeitsgraphen.
- Herausforderungen: Abbildung hierarchischer und miteinander verbundener Prozesse in einem offenen Datenformat; gleichzeitige Vermittlung von zeitlichem Verlauf, Abhängigkeiten und Beteiligten; lesbare Anordnung überlappender Prozesszeiträume; konsistente Interaktion und Filterung über mehrere gekoppelte Ansichten.
- Lösungen: URL-basiertes OProc-Modell mit JSON-Objekten und Referenzen; komponentenbasierte Single-Page Application mit Preact; zentraler Anwendungszustand und abgeleitete Filterdaten mit Redux; SVG-basierte Timeline mit dynamischer Zeitprojektion, Zoom, Pan, Swimlanes und Überlappungsbehandlung; gerichtetes Graphlayout mit Dagre; Datumsausgabe mit Moment.js; gekoppelte Hover-, Auswahl-, Such-, Filter- und Detailinteraktionen.
## Django-Lernprojekt mit Umfrage- und Blog-App
- Zeitraum: 20. bis 28. Juni 2018
- Quelle: `/Volumes/rob/code/django-first-app`.
- Kontext: Schrittweiser Aufbau einer Django-Webanwendung mit den Apps `polls` und `blog` zum Erlernen der zentralen Framework-Konzepte.
- Herausforderungen: Strukturierung von Projekt und Apps; Verknüpfung verschachtelter URL-Konfigurationen; Modellierung und Abfrage relationaler Daten; Verarbeitung von Formular-POSTs sowie Trennung von Darstellung und Anwendungslogik.
- Lösungen: Django-ORM-Modelle `Question` und `Choice` mit Fremdschlüssel und Migration; SQLite als Entwicklungsdatenbank; Registrierung der Modelle im Django-Admin; funktionsbasierte und generische `ListView`-/`DetailView`-Ansichten; Templates und Kontextvariablen; Namespaces, `get_object_or_404`, `reverse` und Redirect-after-POST für den Abstimmungsablauf.
## info.ngo – Django-CMS-Prototyp
- Zeitraum: Juli 2019, belegt durch die Projektdateien vom 30. Juli 2019.
- Quelle: lokales Projektverzeichnis `/Volumes/rob/code/django-cms/info.ngo`.
- Kontext: Prototyp einer redaktionell pflegbaren Website auf Basis von Django CMS 3.6 und Django 1.x.
- Herausforderungen: Aufbau frei editierbarer Seitenlayouts; Integration eines umfangreichen CMS-Plugin-Ökosystems; Navigation, Sitemap sowie konsistente Verwaltung von statischen Dateien und Medien.
- Lösungen: Django-CMS-Templates mit Toolbar, Menüs, Sekizai-Blöcken und Platzhaltern für Vollbreiten- und Sidebar-Layouts; CMS-Sitemap und Django-Admin; SQLite-Datenbank; Plugins für CKEditor-Text, Links, Bilder, Dateien, Spalten, Styles, Snippets, Google Maps und Videos sowie `django-filer`, `easy-thumbnails`, Treebeard und MPTT.
## info.ngo – Event-, Karten- und Datenplattform
- Zeitraum: Juli bis August 2019; Teamprojekt mit eigenen, durch Git belegten Beiträgen vom 30. Juli bis 27. August 2019.
- Quellen: Git-Repository `/Volumes/rob/code/info.ngo/info.ngo`, Django-Anwendung `/Volumes/rob/code/info.ngo/info.ngo/InfoNgo_django` und Wiederaufbaukopie `/Volumes/rob/code/info.ngo/rebuild-rob/InfoNgo_django`.
- Kontext: Gemeinsame Entwicklung einer Python- und Django-Plattform zur Gewinnung, Normalisierung, Speicherung, Filterung und kartografischen Darstellung von Veranstaltungs- und Stiftungsinformationen.
- Eigene belegte Beiträge: Abruf und Parsing der Stiftungssuche; Einlesen von Thunderbird-Mailboxen und Grundstruktur eines Mail-Parsers; Weiterentwicklung der Kalenderdaten-Auswertung; Dokumentation und Zusammenführung von Teamänderungen.
- Herausforderungen: Heterogene Websites, HTML-Seiten und E-Mail-Formate; unregelmäßige Datumsangaben; Vermeidung doppelter Events und Orte; Geokodierung und räumliche Darstellung; gemeinsames Filtern und Paginieren; Überführung eigenständiger Scraper in eine Webanwendung bei weiter möglicher Standalone-Ausführung.
- Lösungen: Requests, Beautiful Soup, `lxml`/`html5lib`, Python-`mailbox` und MIME-Verarbeitung sowie CSV-Ausgabe für die Datenerfassung; Django-2.1-Anwendung mit ORM-Modellen für Events und Locations, Migrationen, Many-to-many-Beziehung, eindeutigen Feldern und transaktionaler Importlogik; Factory-/Service-Layer zur JSON-Serialisierung und DB-Übernahme; Geokodierung mit Geopy und GeoJSON-Punkte mit `djgeojson`; Listenansicht mit `django-filter`, Datumsbereichsfilter und Paginierung; Leaflet-Karte mit zeitabhängig eingefärbten Material-Markern; Django-Templates, Authentifizierung, Crispy Forms, Bootstrap und jQuery; MySQL-Konfiguration mit SQLite-Sicherung sowie Python-3.7-/Conda-Umgebung und vorbereiteten Abhängigkeiten für PostgreSQL, Gunicorn, WhiteNoise, Heroku und S3-Speicher.
- Varianten: Die Wiederaufbaukopie enthält denselben grundlegenden Django-, App- und Service-Layer; die Hauptvariante erweitert sie um dynamische Popup-Inhalte, zeitabhängige Farbwerte und Material-Icons für Leaflet-Marker.
## WLAN-gesteuerter LED-Rahmen
- Zeitraum: September 2022 bis Januar 2023, belegt durch eigene Commits im Repository.
- Quelle: lokales Git-Repository `VRKeting-LED-Rahmen`.
- Kontext: Entwicklung eines ESP8266-basierten LED-Rahmens mit browserbasierter Steuerung von Farbe und Lichteffekten.
- Herausforderungen: Ansteuerung adressierbarer LEDs, Parametrisierung von Farben und Effekten über ein Netzwerk sowie Trennung von Websteuerung und LED-Logik.
- Lösungen: ESP8266-Firmware mit WLAN-Verbindung und HTTP-Routen; eingebettete HTML-/JavaScript-Bedienoberfläche; C++-Klassen zur Kapselung der LED-Ansteuerung und von Effekten wie Farbwechsel, Lauflicht und Regenbogen; Anbindung eines 80 LEDs umfassenden WS2811/WS2812-kompatiblen Streifens über die Adafruit-NeoPixel-Bibliothek.
## Rust-Ratespiel
- Zeitraum: Oktober 2018, belegt durch eigene Commits im Repository.
- Quelle: lokales Git-Repository `rust_guessing_game`.
- Kontext: Konsolenbasiertes Lernprojekt in Rust.
- Herausforderungen: Einlesen und Validieren von Nutzereingaben sowie Steuerung eines wiederholten Spielablaufs.
- Lösungen: Erzeugung einer Zufallszahl mit dem Crate `rand`; Verarbeitung von Standardeingaben; Umwandlung in einen vorzeichenlosen Integer mit `match`-basierter Fehlerbehandlung; Vergleich der Werte über `Ordering`; Schleife bis zum korrekten Tipp; Cargo-Konfiguration und VS-Code-Task für `cargo run`.
## Threetris: 3D-Falling-Block-Prototyp
- Zeitraum: November 2018, belegt durch eigene Commits im Repository.
- Quelle: lokales Git-Repository `threetris`.
- Kontext: Früher 3D-Prototyp eines Falling-Block-Spiels in Rust.
- Herausforderungen: Aufbau einer 3D-Szene, zeitgesteuerte Bewegung eines Spielsteins, Verarbeitung von Gamepad-Eingaben und Begrenzung der Bewegung auf das Spielfeld.
- Lösungen: 3D-Fenster, Kamera, Plattform und Würfel mit `kiss3d`; Zustandsmodell über eine `BrickPos`-Struktur; zeitgesteuertes Fallen mit `Instant` und `Duration`; Gamepad-Abfrage über `stick`; Begrenzung der X-, Y- und Z-Koordinaten durch eine eigene Funktion; erneutes Erzeugen eines Würfels beim Erreichen des Spielfeldbodens.
## ChipAcademy AR-Viewer-PackageBuilder
- Zeitraum: 2020
- Quelle: lokales Unity-Arbeitsverzeichnis `ChipAcademy/ARViewer Package`, `ChipAcademy/BackendConnector` und `ChipAcademy/Backend/Scripts`.
- Kontext: Unity-PackageBuilder für konfigurierbare AR-Lernszenen und deren Bereitstellung im AR Viewer.
- Herausforderungen: Wiederverwendbare Konfiguration von 3D-Modellen und Interaktionen; plattformspezifische Bereitstellung von Szeneninhalten; Abbildung von Lern- und Prüfungsinteraktionen mit Text-, Bild-, Video- und Animationsmarkern.
- Lösungen: Unity-Editor-Menüs zum Erzeugen von AssetBundles für Android, Windows und iOS sowie zum Export des Builder-Pakets; `ScriptableObject` zur Konfiguration von Modell, Markern und Cross-Section-Darstellung; Laufzeitlogik für Lern- und Prüfungsmodus, Schrittsequenzen, Videoanzeige und Zuordnungsinteraktionen; Drupal-8.7.7-Backend mit XML-Endpunkt für Szenenmetadaten, Bild- und Beschreibungsdaten sowie plattformspezifische AssetBundle-URLs.
## VR-Training für EnviaM-Umspannwerk
- Zeitraum: Dezember 2019 bis Juli 2022
- Quelle: `vr-bits/EnviaM_Umspannwerk`.
- Öffentlicher Showcase: https://www.vrbits.de/portfolio/virtuelle-trainingsanwendungen-enviam/
- Kontext: Unity-VR-Anwendung zur Vermittlung von Abläufen in einem Umspannwerk.
- Herausforderungen: Geführte und prüfbare Arbeitsschritte mit unterschiedlichen Schwierigkeitsgraden; realistische Rückmeldung von Spannungszuständen; zuverlässige Teleportation und GUI bei Szenenwechseln.
- Lösungen: Integration von SteamVR, OpenVR, Oculus und VRTK; StepManager-basierte Schrittsteuerung mit Tutorial- und Testmodus; Zustandsmodell für Schalterverriegelungen und Spannungsprüfung einschließlich LED- und Display-Rückmeldung; Fehlererkennung für falsche Verriegelungen; asynchrones Laden und Entladen von Szenen sowie Teleportation mit konfigurierbarem Bildschirm-Übergang.
## MMS AssetDownloader
- Zeitraum: Juli bis August 2025
- Quelle: `vr-bits/AssetDownloader` und Telekom DevOps GitLab.
- Kontext: Unity- und .NET-Standard-Bibliothek zum Herunterladen, Zwischenspeichern und Vorbereiten von 3D-Assets für eine Production-Manual-Anwendung.
- Herausforderungen: Robuste asynchrone Downloads großer Dateien mit Fortschrittsanzeige, Abbruch und Wiederaufnahme; überprüfbare Cache-Konsistenz; Trennung einer Unity-agnostischen Kernbibliothek von der Unity-Anbindung; Unterstützung mehrerer 3D-Dateiformate.
- Lösungen: HTTP-Streaming mit temporären Dateien und Range-Requests für wiederaufnehmbare Downloads; konfigurierbare parallele Download-Jobs, Fortschritts- und Fehlerereignisse sowie Dateicache mit Prüfsummen und Metadaten; Formatprüfung für glTF, GLB, USD und USDZ sowie Unity-Wrapper; testgetriebene Entwicklung mit NUnit, Moq, HTTP-Mocks und Arrange-Act-Assert-Tests für Download, Cache, Abbruch, Integrität, Import und Resume.
## Roche Prozessrallye
- Zeitraum: April bis November 2021
- Quelle: `vr-bits/RocheProzessRallye`.
- Kontext: Unity-Anwendung zur spielerischen Vermittlung von Prozessschritten in Produktion, Produktionskoordination, Ansatz, In-Process-Kontrolle, Abfüllung, Verpackung und Endfreigabe.
- Herausforderungen: Abbildung eines fortlaufenden Lernspiels mit aufeinander aufbauenden Stationen; Verwaltung von Versuchen, Erfolgen, Zeit und Budget; Navigation zwischen Weltkarte, Innenräumen und Minispielen sowie Einbindung von Lernvideos.
- Lösungen: Sieben Minispiele mit ereignisgesteuerter Freischaltung der nächsten Station; persistente Spiel-, Charakter-, Zeit-, Budget- und Ergebnisdaten sowie ein mit Paritätsbit geschützter Fortsetzungscode; Navigation über NavMesh mit additiv geladenen Innenraumszenen und vorab geladenen Szenen; Video-UI mit Streaming-URLs, Ladezustand, Seitenverhältnis- und Wiedergabesteuerung.
## TenneT 2GW Platform
- Zeitraum: Februar bis Oktober 2023, belegt durch eigene Commits im Repository.
- Quelle: lokales Git-Repository `Tennet2GWPlatform`.
- Öffentlicher Showcase: https://www.vrbits.de/portfolio/tennet-2gw-program/
- Kontext: Interaktive 3D-Webvisualisierung von TenneTs 2-GW-Offshore-Konverterstation. Sie erläutert die direkte 66-kV-Anbindung von Windparks, die Kombination aus Umspannwerk und HGÜ-Konverter sowie den Stromfluss bis zur Landanbindung in Deutsch, Englisch und Niederländisch.
- Herausforderungen: Hochwertige 3D-Visualisierung einer komplexen Energieinfrastruktur für Web und XR; intuitive Navigation zwischen Außen-, Innen- und Detailansichten; browserübergreifend lesbare, mehrsprachige Inhalte auf Desktop, Tablet und Mobilgeräten.
- Lösungen: Unity-Szene mit Needle-Engine-Export in eine Vite-/TypeScript-/Three.js-Webanwendung und glTF-Optimierung; eigene TypeScript-Komponenten für erweiterte Orbit-Kamerasteuerung mit Raycast-Fokus und weichen Kameraübergängen, Distanz- und Idle-Verhalten, Wasser- und Partikelanimationen; WebXR-Interaktion mit Select-/Squeeze-Ereignissen und Teleportation; HTML-/CSS-Content-Overlay mit Steuerung aus der 3D-Anwendung; responsive Layouts, Medienabfragen, dynamische Textgrößen und Querformat-Hinweise für verschiedene Bildschirmgrößen und Pixeldichten.
## Roche RMD Rotkreuz – WebGL-Training für Laborabläufe
- Zeitraum: September 2022 bis Januar 2025
- Quelle: Git-Repository `Roche-RMD-Rotkreuz`
- Nicht öffnentlicher Showcase: https://local.vr-bits.de/showcases/Roche-iPad/
- Kontext: Unity-WebGL-Anwendung für interaktive, modulare Schulungen zu Laborbereichen und -abläufen, darunter Chemieraum, Kühlraum, Schleusen, Flowbox, Freezer und Abfallmanagement.
- Herausforderungen: Wiederverwendbare Umsetzung zahlreicher Teiltrainings mit geführten 3D-Interaktionen; zuverlässige Persistenz und Auswertung von Trainingsfortschritten im Browser; Übergabe der Lernstände an das Cornerstone-LMS; wartbare mehrsprachige Inhalte und automatisierte Auslieferung der WebGL-Anwendung.
- Lösungen: Mindport VR Builder mit JSON-basierten Prozessen sowie eigene Komponenten und Editor-Werkzeuge zum Generieren von Teiltrainings und `ScriptableObject`-basierten Workplans; Zustandsverwaltung pro Trainingsmodul und Rücksetzen der Browserdaten über `PlayerPrefs`; C#-/JavaScript-Brücke mittels `Application.ExternalCall`, `postMessage` und eingebetteter Iframes zur Übernahme und Meldung erfolgreicher Teiltrainings sowie des Gesamtstatus an das LMS; SCORM- und anschließend AICC-HACP-Paketierung für Cornerstone; Anpassung von Unity-Localization-String-Tables anhand von CSV-Dateien; GitHub-Actions-Pipeline mit GameCI für WebGL-Build und Deployment.
## SaxoCellTraining – WebGL-Training für die Personalschleuse
- Zeitraum: Juni bis September 2024
- Quelle: lokales Git-Repository `SaxoCellTraining`.
- Öffentlicher Showcase: https://www.vrbits.de/portfolio/digitaler-tuersteher/
- Nicht öffentlicher Showcase: https://local.vr-bits.de/showcases/SaxoCell-iPad/index.html
- Kontext: Auf Basis der Roche-RMD-Erfahrung entwickelte Unity-WebGL-Anwendung für interaktive Schulungen in einer Personalschleuse. Die Anwendung kombiniert eine Übersichtskarte mit einem Trainingsbereich und vermittelt unter anderem Umkleide-, Schuh- und Handschuhabläufe.
- Herausforderungen: Übertragung der modularen Trainingsarchitektur auf ein neues Fachszenario; geführte und nachvollziehbare Teiltrainings mit Fortschritt; mehrsprachige, redaktionell pflegbare Inhalte; nutzbare Darstellung auf Desktop und iPad im Browser.
- Lösungen: Mindport-VR-Builder-Prozesse und `WorkplanData`-basierte Modulverwaltung mit lokalisierter Dropdown-Navigation, Erfolgsmarkierungen, optionaler sequenzieller Freischaltung und automatischem Start des nächsten Trainings; Addressable-Szenen und Lokalisierungsressourcen für das Nachladen von Trainings- und Sprachinhalten; Synchronisation der String-Tables mit Google Sheets einschließlich Rich-Text-Unterstützung; angepasste WebGL-Templates für Fullscreen, Seitenverhältnis, Ladeanzeige und Hinweise bei Hochformat; Entwicklung eines SceneGenerator-Zweigs mit konfigurierbarer Interactable-Auswahl, Workplan-Output und Prozessvorlagen, aus dem später das eigenständige TrainingGenerator-Paket hervorging.
## VR Builder Scene Generation / TrainingGenerator
- Zeitraum: Oktober 2024 bis September 2025
- Quelle: lokales Git-Repository `_vrbits\de.vrbits.vrbuilder.scenegeneration`.
- Kontext: Aus dem Roche-RMD-Projekt ausgegliedertes Unity-UPM-Paket zur wiederverwendbaren Erzeugung von 2D-Web-/Standalone- und VR-Trainingsszenen aus Lokalisierungs-CSV-Dateien. Das Paket liegt in Version 0.2.0 vor und verwendet Mindport VR Builder 5.3.2.
- Herausforderungen: Reproduzierbare Erzeugung vieler Teiltrainings samt Lernfortschritt aus einer Inhaltsquelle; konsistente Verknüpfung von Unity-Szene, Lokalisierung, Workplan und VR-Builder-Prozess; Unterstützung sowohl interaktiver Editor-Nutzung als auch automatisierter Erstellung und Prüfung.
- Lösungen: UI-Toolkit-basierter Unity-Editor-Wizard mit Auswahl von 2D- oder VR-Szenentemplates und String-Tables; CSV-Import in Unity Localization, Auswertung der Inhalts-Schlüssel für Teiltrainings und Infopunkte sowie Generierung der zugehörigen `StringTable`-Collections; Erzeugung von `ScriptableObject`-Workplans und VR-Builder-Prozessdateien aus JSON-Templates, einschließlich Eintrag des jeweils erzeugten Prozesses in die Runtime-Konfiguration; Paketstruktur mit getrennten Assembly Definitions, Samples und 2D-/VR-Templates; JSON-parametrisierter Batchmode-Aufruf über Unity CLI mit anschließendem WebGL-Build; NUnit-Regressionstests für UI- und Objektpositionen, Kamera, Addressables, VR Builder und Lightmaps.
## 3D Vista Rundgang: Netzbooster Kupferzell
# Öffentlicher Showcase: https://www.transnetbw.de/de/netzbooster-anwendung/
## 3D Vista Rundgang: Umspannwerk Conneforde
# Nicht öffentlicher Showcase: https://local.vr-bits.de/showcases/UWConneforde/index.htm
+222
View File
@@ -0,0 +1,222 @@
# Ordner mit meinen Python-Projekten
/Users/rob/code/SomaFM-Playlists
/Users/rob/code/Steuererklärung-CSVs-Auswerten
/Users/rob/code/PDF-with-JS-hack
/Users/rob/code/scrape-immobillien
/Users/rob/code/Fix-SamsungNX-Photos-in-Immich
/Users/rob/code/BündnisOst/Ostdeutsche-Politiker/scripts/converter
/Users/rob/code/BündnisOst/bo-page/scripts
/Users/rob/code/SUFW/Jo-Job2026
/Users/rob/code/SUFW/Zeitabrechung
/Users/rob/code/SUFW/Tätigkeitsnachweise/1_Erstes-Tool-Komplizert
/Users/rob/code/SUFW/Tätigkeitsnachweise/3_Tätigkeitsnachweise-generieren
/Users/rob/code/ScrapeMediawiki
/Users/rob/code/Lotto-Zocken
/Volumes/rob/code
/Volumes/rob/code/argümen/arguman.org
/Volumes/rob/code/django-cms/info.ngo
/Volumes/rob/code/django-first-app
/Volumes/rob/code/filemonitor
/Volumes/rob/code/gallery-screenlet
/Volumes/rob/code/machine_learling_minimalbeispiel
/Volumes/rob/code/neuronale_netze_einfach_erklärt
/Volumes/rob/code/pls-2-m3u
/Volumes/rob/code/pythonAlgorithmik
/Volumes/rob/code/Wiederstandsberechnung
/Volumes/rob/code/led-stripe-c3d2
/Volumes/rob/code/c3d2/pentabot
/Volumes/rob/code/c3d2/pentanews-localtest/backend
/Volumes/rob/code/c3d2/led-stripe
/Volumes/rob/code/info.ngo/info.ngo
/Volumes/rob/code/info.ngo/info.ngo/InfoNgo_django
/Volumes/rob/code/info.ngo/docker-rob
/Volumes/rob/code/info.ngo/rebuild-rob/InfoNgo_django
/Volumes/rob/code/offenesdresden.de/stadtrat
/Volumes/rob/code/offenesdresden.de/stadtrat/scrape-a-ris/scrape-a-ris_DD
/Volumes/rob/code/offenesdresden.de/stadtrat/scrape-a-ris/scrape-a-ris
/Volumes/rob/code/offenesdresden.de/stadtrat/scrape-a-ris/test_repo
/Volumes/rob/code/offenesdresden.de/parkenDD/ParkAPI
/Volumes/rob/code/offenesdresden.de/themenstadtscraper
# Python-Tätigkeiten und Schlagwörter
Diese Liste fasst die mit Python umgesetzten Tätigkeiten aus der Knowledge Base und den bekannten Projekten zusammen.
## Webentwicklung und Backends
- Django-Webanwendungen
- Django CMS
- Django-Projekt- und App-Architektur
- URL-Routing und Namespaces
- Funktionsbasierte und generische Views
- Django ORM und relationale Datenmodelle
- Datenbankmigrationen
- Django Admin
- Authentifizierung und Formulare
- Template-Vererbung
- Statische Dateien und Medien
- Filterung und Paginierung
- Transaktionale Datenimporte
- Factory- und Service-Layer
- Streamlit-Webanwendungen
- Bootstrap- und jQuery-Integration
- Hugo-Prebuild-Automatisierung
## APIs, Web-Scraping und Datengewinnung
- REST- und Web-API-Anbindung
- MediaWiki-API
- Tokenbasierte Anmeldung
- Session- und Cookie-Verwaltung
- HTTP-GET- und POST-Anfragen
- Web-Scraping
- HTML-Parsing
- Beautiful Soup
- Requests
- lxml und html5lib
- OpenGraph-Metadaten extrahieren
- Bilder und Medien automatisiert herunterladen
- Immobilienangebote auslesen
- Veranstaltungsdaten sammeln
- Stiftungsinformationen extrahieren
- Lottoziehungen automatisiert erfassen
- Radiosender und Playlists auslesen
- Browserformulare und Zeitbuchungen automatisieren
- HTML-Formularabläufe rekonstruieren
- Mailbox- und MIME-Inhalte verarbeiten
- Thunderbird-Mailboxen einlesen
## Datenverarbeitung und Datenanalyse
- CSV-, JSON- und Excel-Verarbeitung
- JSON-zu-CSV-Konvertierung
- CSV-zu-JSON-Zusammenführung
- Pandas-Datenanalyse
- Bank- und Steuerdaten kategorisieren
- Deutsche Zahlen- und Datumsformate normalisieren
- Unregelmäßige Datumsangaben verarbeiten
- Daten aus mehreren Quellen zusammenführen
- Datenbereinigung und Normalisierung
- Dubletten erkennen und verhindern
- Namensnormalisierung und Datensatz-Matching
- Mehrdeutige Zuordnungen auflösen
- Geschäftsregeln validieren
- Förderquoten berechnen
- Häufigkeitsanalysen durchführen
- Statistische Ergebnisse visualisieren
- Matplotlib-Diagramme erzeugen
- Konfigurationsgesteuerte Verarbeitungspipelines
## Excel- und Office-Automatisierung
- Excel-Dateien mit OpenPyXL lesen und schreiben
- Mehrere Arbeitsblätter verarbeiten
- Spalten und Felder konfigurierbar zuordnen
- Mitarbeiter- und Stammdaten zusammenführen
- Excel-Vorlagen automatisiert befüllen
- Arbeitsblätter aus Templates erzeugen
- Tätigkeitsnachweise generieren
- Anwesenheitslisten generieren
- Personalisierte Dokumente im Batch erstellen
- Dateinamen regelbasiert erzeugen
- Eingabedateien und Templates validieren
- Dry-Run und Ausgabevorschau implementieren
## PDF-Verarbeitung
- PDF-Formularfelder analysieren
- AcroForm-Felder automatisiert befüllen
- Personalisierte PDFs generieren
- PDF-Templates validieren
- PDF-Inhalte und Feldpositionen untersuchen
- JavaScript aus PDFs entfernen
- Bearbeitungseinschränkungen entfernen
- Read-only-Flags korrigieren
- PDF-Appearance-Streams reparieren
- PDFs mit PyPDF, PikePDF und PyMuPDF bearbeiten
- PDF-Ergebnisse automatisiert überprüfen
## Inhaltsmigration und Dateiverarbeitung
- MediaWiki nach Obsidian migrieren
- HTML nach Markdown konvertieren
- Wiki-Links nachbearbeiten
- Seitenhierarchien als Verzeichnisse abbilden
- Inhaltsverzeichnisse erzeugen
- Kategorien, Links und Revisionen extrahieren
- Metadaten als JSON speichern
- Rekursive Verzeichnisverarbeitung
- Dateien automatisiert strukturieren und benennen
## Bild- und Metadatenverarbeitung
- EXIF-Metadaten analysieren
- Fehlerhafte Aufnahmedaten korrigieren
- Datumsangaben aus Ordnernamen ableiten
- Zeitspannen auf Fotos übertragen
- Dateisystem-Zeitstempel ändern
- Vorschaubilder erzeugen
- Rekursive Fotosuche
- Automatische Backups vor Dateiänderungen
- Undo-Funktionen und Änderungsprotokolle
- Immich-Metadatenprobleme untersuchen
## Geodaten und Karten
- Adressen geokodieren
- Koordinaten ermitteln
- GeoJSON-Daten erzeugen
- Räumliche Daten in Django speichern
- Leaflet-Karten integrieren
- Kartenmarker aus Datenmodellen erzeugen
- Dynamische Popups erstellen
- Marker abhängig von Zeitwerten einfärben
## Benutzeroberflächen und Kommandozeilenwerkzeuge
- Streamlit-Dashboards
- Tkinter-Desktop-GUIs
- Dateiauswahl und Verzeichnis-Browser
- Thumbnail- und Änderungsvorschauen
- Interaktive Filter und Mehrfachauswahl
- Kommandozeilenprogramme mit Click
- CLI-Programme mit Argparse
- Interaktive Eingabe und Bestätigung
- Headless- und Cold-Run-Modi
- Batch-Verarbeitung
- Fortschritts-, Status- und Fehlermeldungen
## Architektur und Softwarequalität
- Modularisierung in Parser, Validator, Matcher und Writer
- Dataclasses und typisierte Datenmodelle
- Type Hints
- Eigene Exception-Hierarchien
- Konfigurationsdateien mit JSON und INI
- Eingabe- und Geschäftsregelvalidierung
- Logging und Debug-Ausgaben
- Dry-Run-Sicherheitsmechanismen
- Unit-Tests mit Pytest
- End-to-End-Tests
- Fixtures und temporäre Testverzeichnisse
- Testabdeckung mit pytest-cov
- Codeformatierung mit Black
- Linting mit Flake8
- Typprüfung mit MyPy
## Datenbanken und Betrieb
- SQLite
- MySQL
- PostgreSQL-Vorbereitung
- ORM-Transaktionen
- Behandlung von Integritätsfehlern
- Virtuelle Python-Umgebungen
- Conda-Umgebungen
- Abhängigkeiten mit Requirements-Dateien verwalten
- Gunicorn und WhiteNoise
- Heroku-Vorbereitung
- S3-kompatibler Speicher mit Boto3 und django-storages
- Plattformübergreifende Startskripte für macOS, Linux und Windows
+120
View File
@@ -0,0 +1,120 @@
# Inhalt
Enthält alle Rollen in denen ich schon Tätig war
## Berufliche Rollen
### Hauptentwickler und Projektkoordinator für VISOR/OProc
- Kontext: Prototype-Fund-gefördertes Civic-Tech-Projekt VISOR/OProc zur Beschreibung und Visualisierung öffentlicher, insbesondere partizipativer Stadtentwicklungsprozesse.
- Zeitraum: August 2017 bis Mai 2018, belegt durch eigene Commits in den Repositories `oproc`, `in-transit` und `d3-oproc`.
- Kooperation: Regelmäßige Arbeits- und Abstimmungstreffen mit Forschenden der HTW Dresden zur Erhebung fachlicher Anforderungen, Weiterentwicklung des Datenmodells und Gestaltung des Visualisierungswerkzeugs.
- Rolle: Hauptentwickler mit Verantwortung für die inhaltliche und konzeptionelle Weiterentwicklung des Tools, die Zusammenarbeit mit der HTW und das Vorantreiben des Entwicklungsprozesses; enge Zusammenarbeit mit Astro, dessen Schwerpunkt auf der technischen Umsetzung lag.
- Tätigkeiten: Entwurf und iterative Weiterentwicklung des offenen OProc-Datenmodells; Überführung fachlicher Anforderungen in Funktionen und Visualisierungskonzepte; Konzeption und Entwicklung der Prozess-Timeline, von Swimlanes, Filtern, Suche, Auswahl- und Detailansichten sowie der Verbindung von zeitlicher Darstellung und Prozessgraph; Abstimmung, Priorisierung und Begleitung der technischen Implementierung.
### Systemadministrator und Entwickler für private Infrastruktur
- Kontext: Eigene Infrastruktur-, Automatisierungs- und Datenmigrationsprojekte in den Repositories `lokale-scripte`, `ScrapeMediawiki` und `obsidian-backup`.
- Zeitraum: November 2018 bis Mai 2026, belegt durch eigene Commits.
- Tätigkeiten: Entwicklung und Pflege von Skripten für Backups, Server- und Client-Wartung, Nextcloud-Betrieb, Datenbank-Sicherungen, verschlüsselte Offsite-Sicherungen und Docker-basierte Automatisierung; Entwicklung eines Python-Werkzeugs zur Migration von MediaWiki-Inhalten nach Obsidian; modulare, deklarative Konfiguration eines NixOS-Servers mit Speicher-, Datei-, Cloud- und Fernzugriffsdiensten.
### Embedded-Softwareentwicklung
- Kontext: Privates Projekt `VRKeting-LED-Rahmen`.
- Zeitraum: September 2022 bis Januar 2023, belegt durch eigene Commits.
- Tätigkeiten: Entwicklung von ESP8266-Firmware zur WLAN- und HTTP-gesteuerten Ansteuerung adressierbarer LEDs; Strukturierung der LED-Logik in C++-Klassen; Implementierung von Farb- und Animationseffekten sowie einer eingebetteten Web-Bedienoberfläche.
### AR/VR Developer und Unity Software Engineer
- Unternehmen: vrbits GmbH
- Zeitraum: seit 2019
- Ort: Leipzig
- Tätigkeiten:
- Konzeption, Entwicklung und Betreuung komplexer interaktiver VR-, AR- und Flat-3D-Anwendungen;
- plattformübergreifende Entwicklung;
- Integration von SDKs,
- Schnittstellen,
- Datenformaten und Services;
- Aufbau und Pflege von CI-Pipelines;
- Performance-Optimierung;
- Entwicklung von ChipAcademy AR-Viewer mit konfigurierbaren Lerninteraktionen, plattformspezifischen Unity-AssetBundles und Drupal-XML-Schnittstelle für Szenenmetadaten;
- Implementierung eines Unity-VR-Trainings für Umspannwerksabläufe mit Schrittsteuerung, Spannungsprüfung, Fehlererkennung und SteamVR-gestützter Navigation;
- Entwicklung eines testgetriebenen Unity- und .NET-AssetDownloaders mit HTTP-Streaming, Cache und Formatprüfung für 3D-Assets;
- Entwicklung der Roche Prozessrallye mit persistenter Lernspiel-Logik, Minispielen, Budget- und Zeitmodell sowie Navigation zwischen Weltkarte und Innenräumen;
- Entwicklung der TenneT-2GW-Platform als mehrsprachige, interaktive Web- und WebXR-Visualisierung auf Basis von Unity, Needle Engine, TypeScript und Three.js;
- Entwicklung eines Unity-WebGL-Trainings für Roche mit VR-Builder-Prozessen, Workplan-Steuerung,
- CSV-basierter Lokalisierung, SCORM-/AICC-HACP-Anbindung an Cornerstone und GameCI-Delivery-Pipeline;
- Entwicklung von SaxoCellTraining als mehrsprachiges WebGL-Training mit Addressables, Workplan-Navigation und responsiver WebGL-UI;
- Ausgliederung und Weiterentwicklung des TrainingGenerators zu einem Unity-UPM-Paket mit UI-Toolkit-Wizard, Szenentemplates, CLI-/Batchmode-Erzeugung, WebGL-Build und Regressionstests.
### Freelance Full-Stack Developer
- Kontext: selbstständig
- Zeitraum: 2017 bis 2019
- Ort: Dresden
- Tätigkeiten: Entwicklung von E-Commerce-, Warenwirtschafts- und Webshop-Lösungen; Frontend-Entwicklung; IT-Consulting; Systemadministration; Migration komplexer Systeme und Datenbanken.
### Web Developer
- Kontext: verschiedene nebenberufliche Projekte
- Zeitraum: 2012 bis 2017
- Ort: Dresden
- Tätigkeiten: Entwicklung von Websites und Online-Shops; Responsive Design und Mobile First; Datenbankdesign und -optimierung.
### Software Tester und IT Support
- Unternehmen: MAGIX Development GmbH
- Zeitraum: 2006 bis 2017
- Ort: Dresden
- Tätigkeiten: Softwaretest und Qualitätssicherung; automatisierte Testentwicklung; IT-Support; Systemadministration; Inhouse-Webentwicklungsprojekte.
### Server Support
- Unternehmen: Compaq Computer Corporation
- Zeitraum: 2001
- Ort: München
- Tätigkeiten: 1st-Level-Support und technischer Support für Serverprodukte.
## Engagement und Wissensvermittlung
### Ehrenamtliche Website-Entwicklung
- Organisation: Fuß- und Radentscheid Dresden.
- Zeitraum: März bis Juli 2022, belegt durch eigene Commits im Repository `fuss-und-radentscheid-dresden`.
- Tätigkeiten: Weiterentwicklung einer statischen Jekyll-Website; Implementierung und Gestaltung wiederverwendbarer Kartenlayouts; Anpassung von Navigation, Footer, Kontakt- und Social-Media-Darstellung; Dokumentation der lokalen Entwicklungsumgebung.
### Mentor und Jury-Mitglied
- Organisation: Jugend hackt Dresden
- Zeitraum: seit 2015
- Ort: Dresden
- Tätigkeiten: Betreuung Jugendlicher bei Coding-Projekten; Jury-Tätigkeit bei Hackathons; Förderung des IT-Nachwuchses.
### Dozent und Workshop-Leiter
- Organisation: Chaos macht Schule
- Zeitraum: 2014 bis 2018
- Ort: Sachsen
- Tätigkeiten: IT-Workshops an Schulen; Aufklärung über Datenschutz und IT-Sicherheit; praktische Programmier-Workshops für Schülerinnen und Schüler.
### Speaker
- Organisationen: Web Montag Dresden und CCC-Veranstaltungen
- Zeitraum: 2012 bis 2019
- Ort: Dresden
- Tätigkeiten: Vorträge zu Webentwicklung und IT-Trends; Wissensaustausch in der Developer-Community.
## Ausbildung
### Fachinformatiker für Systemintegration
- Institutionen: BSZET Dresden und MAGIX AG
- Zeitraum: 2003 bis 2006
- Ort: Dresden
- Schwerpunkte: Softwaretest und Systemintegration.
### Technischer Assistent für Automatisierungs- und Computertechnik
- Institution: Berufliches Schulzentrum Weißwasser
- Zeitraum: 1997 bis 2000
- Ort: Weißwasser
- Inhalte: Grundlagen der Programmierung und Automatisierungstechnik; Hardware- und Softwareentwicklung.
+430
View File
@@ -0,0 +1,430 @@
# 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
### OpenXR, Meta Quest SDK, Mindport VR Builder, Needle Engine und 3D Vista
- 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.
### 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.
### 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.
### 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.
### 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: MM`MMS-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.
### 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.
### 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.
### 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.