Erster Stand mit etlichen vrbits Projekten erstellt.. (ohne KI skill und instruction files)
This commit is contained in:
commit
320bd4f227
4 files changed
+966
No files matched your search
+194
@@ -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
|
||||
@@ -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
|
||||
@@ -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
@@ -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.
|
||||
Reference in new issue
Block a user