Hi, ich bin Maxi — Entwickler und Hobbyfotograf

Hi, ich bin Maxi — Entwickler und Hobbyfotograf

Programmieren ist sowohl Handwerk als auch Werkzeug – ich entwickle gut strukturierte, zuverlässige Systeme, die den Alltag still und leise verbessern. Mein Schwerpunkt liegt auf Backend-Entwicklung und KI/ML, wobei ich Wert auf eine saubere Architektur, praktische Schnittstellen und leicht verständliche Tools lege.

Ich arbeite hauptsächlich mit Python und betreibe meine Dienste in ordentlichen Docker-Containern auf meinem Heimserver. Linux ist ein fortlaufendes Projekt, bei dem ich jedes Detail so lange optimiere, bis das System genau das tut, was ich möchte. Ich schreibe pragmatischen, lesbaren Code, der unnötige Abhängigkeiten vermeidet – einfach genug, um ihn zu verstehen, spezifisch genug, um echte Probleme zu lösen, und immer mit Blick auf zukünftige Erweiterbarkeit.

Mein Interesse an KI basiert auf praktischer Arbeit. Für meine Bachelorarbeit habe ich ein neuronales Netzwerk von Grund auf in Python und Rust implementiert und einen benutzerdefinierten Benchmark entwickelt, um die Kompromisse zwischen Leistung und Präzision bei diesen Implementierungen zu untersuchen.

Außerhalb der Technik finde ich Klarheit in der Fotografie und der Natur – ein Auge für Licht, Struktur und Details bringt zusätzliche Präzision in meinen Code. Viele meiner Nebenprojekte beginnen klein, entwickeln sich aber nach und nach zu robusten Werkzeugen.

Lass dir Zeit beim Umsehen.

Produktionsreife Kubernetes-Homelab mit GitOps-Automatisierung

Produktionsreife Kubernetes-Homelab mit GitOps-Automatisierung

Zeitspanne

2 Monate (Dez 2024 - Jan 2025)

Verwendete Technologien

Kubernetes, K3s, ArgoCD, GitOps, GitHub Actions, Docker, Prometheus, Grafana, Proxmox, CI/CD, DevOps

Beschreibung

Aufbau einer vollständigen Kubernetes-Infrastruktur von Grund auf in Proxmox, um DevOps-Praktiken durch praktische Umsetzung statt reinem Tutorial-Folgen zu erlernen.

Implementierung eines 3-Node K3s-Clusters mit High-Availability-Deployment-Patterns, privater Docker-Registry und self-hosted GitHub Actions Runner, um die gesamte Pipeline im lokalen Netzwerk zu halten.

Etablierung eines GitOps-Workflows mit ArgoCD für automatisierte Deployments - Code-Änderungen triggern die CI/CD-Pipeline, aktualisieren Manifeste in Git, und ArgoCD synchronisiert automatisch zum Cluster (~5 Minuten von Push bis Production).

Konfiguration eines umfassenden Monitorings mit Prometheus und Grafana, inklusive Custom Application Metrics via FastAPI-Instrumentierung und ServiceMonitor-Konfiguration.

Lösung realer Infrastruktur-Herausforderungen: Debugging von ServiceMonitor-Discovery-Problemen, Verhinderung von Infinite CI/CD-Loops mit skip-ci-Tags und Path-Ignores, sowie Implementierung von Anti-Affinity-Scheduling für Pod-Verteilung.

Vollständige Dokumentation des gesamten Aufbaus inklusive aller Troubleshooting-Schritte und gelernten Lektionen zur Reproduzierbarkeit und als Lernressource.

Kernpunkte

  • 3-Node K3s-Cluster mit High-Availability-Konfiguration über Worker-Nodes
  • GitOps-Automatisierung mit ArgoCD (Auto-Sync alle ~3 Minuten)
  • Private Docker-Registry mit Basic Authentication
  • Self-hosted GitHub Actions Runner für lokale CI/CD-Ausführung
  • Automatisierte CI/CD-Pipeline mit SHA-basiertem Image-Tagging für Nachverfolgbarkeit
  • Prometheus + Grafana Monitoring-Stack mit Custom Application Metrics
  • Zero-Downtime Rolling Updates mit Health-Checks und Resource-Limits
  • 8-Replica-Deployment als Demonstration produktionsreifer Patterns
  • Vollständige Dokumentation mit Architecture-Overview und Step-by-Step-Guides
  • Self-hosted auf Proxmox mit privater Netzwerk-Isolation
Bachelorarbeit – From-Scratch-Benchmark Neuronales Netz (Python vs. Rust)

Bachelorarbeit – From-Scratch-Benchmark Neuronales Netz (Python vs. Rust)

Zeitspanne

3 Monate

Verwendete Technologien

Python, Rust, Neuronale Netze, MLP, Künstliche Intelligenz, Benchmarking, CSV-Logging, PNG-Plots, CLI

Beschreibung

Implementierung eines minimalen, aber vollständigen MLP (Multilayer Perceptron) von Grund auf in zwei Sprachen: einer Python-Variante auf Basis des Buches 'Neural Networks from Scratch in Python' (NNFS) sowie einer unabhängig entwickelten, low-level Rust-Version.

Ziel war ein direkter Vergleich beider Implementierungen, um zu bewerten, ob ein komplett eigenständiges Rust-Modell in Bezug auf Korrektheit und Performance mit dem NNFS-basierten Python-Modell mithalten kann.

Aufbau eines reproduzierbaren Workflows mit CSV-Logging und statischer Visualisierung (PNG) von Metriken wie Loss, Genauigkeit und Vorhersageverteilung.

Evaluation auf dem Fashion-MNIST-Datensatz, um eine standardisierte Basis für Klassifikationsexperimente zu schaffen.

Definition von Vergleichskriterien sowie Auswertung der Lernkurven und finalen Kennzahlen zur Validierung numerischer Konsistenz.

Bereitstellung einer schlanken CLI zur Durchführung und Auswertung der Experimente mit Fokus auf Transparenz und Wiederholbarkeit.

Kernpunkte

  • Eigenes MLP from scratch mit zentralen Trainingsbausteinen (SGD, Adam, Dropout)
  • Rust ohne große Frameworks; Python-Referenz auf Basis von NNFS
  • Direkte Benchmarks und Paritätsprüfungen zwischen Python und Rust
  • CSV-basiertes Tracking und statische PNG-Plots
  • Reproduzierbarer CLI-Workflow mit klarer Experimentkonfiguration
  • Vergleichende Performance-Profile (z. B. Epochendauer, Durchsatz)
  • Modulare, verständlich dokumentierte Code-Struktur
Multispektral-Messstand zur Früherkennung von Stickstoffmangel

Multispektral-Messstand zur Früherkennung von Stickstoffmangel

Zeitspanne

3 Monate (Mai 2024 - Juli 2024)

Verwendete Technologien

Raspberry Pi, Ubuntu, Bash, Cron, Docker Compose, SurrealDB (Prototyp), Netzwerk, VPN, SSH Reverse Tunnel, IoT, Git, Hochschulprojekt

Beschreibung

Exploratives Hochschulprojekt in Kooperation mit der Fakultät Gartenbau. In einem 10-köpfigen Team verantwortete ich die serverseitige Dateninfrastruktur sowie die Netzwerkanbindung zwischen Raspberry-Pi-Messknoten und dem zentralem Server.

Aufsetzen eines Ubuntu-Servers für Ingestion/Storage und Aufbau einer stabilen Verbindung zum Raspberry Pi (Raspberry Pi OS 12) über eduVPN sowie SSH-Reverse-Tunneling durch das Uninetz.

Automatisierte Datensynchronisation (Stickstoff-Sensordaten und Bilder) vom Pi zum Server mittels Cron und Bash; Integration des Bildaufnahme-Skripts direkt auf dem Pi (Bash mit optionalem Python-Aufruf).

Strukturierte Ablage der Bilddaten in einer klaren Ordnerhierarchie; Versionsverwaltung mit Git und Python-Laufzeit für Skripte/Analysen.

Vorbereitung einer SurrealDB-Instanz via Docker Compose (prototypischer DB-Connection-Service; im Projektzeitraum nicht produktiv genutzt) sowie Zugang zu einem separaten Docker-basierten AI-Server, dessen Einrichtung ich begonnen habe.

Kernpunkte

  • End-to-End-Automatisierung mit Cron und Bash inkl. Plain-Text-Logs
  • Robuste Konnektivität über eduVPN und SSH-Reverse-Tunnel im Uninetz
  • On-Device-Services auf dem Raspberry Pi (eduVPN, ssh-tunnel, control, db-connection) und Deployment des Bildaufnahme-Skripts
  • Strukturierte Ablage & Synchronisation von Stickstoff-Sensordaten und Bildern (Ordnerhierarchie)
  • SurrealDB via Docker Compose (Prototyp) plus Git/Python als Toolchain
  • Getrennter AI-Server (Docker) – initiale Einrichtung; Ingestion/Storage-Server separat betrieben

Homelab

Zeitspanne

Laufend seit 2023

Self-Hosting & Infrastruktur

Proxmox VE, Docker, ZFS, Ubuntu LTS, Home Assistant

Beschreibung

Mein Homelab bildet die Basis meiner selbst-gehosteten Infrastruktur und verbindet Virtualisierung, Containerisierung, Speicher und Automatisierung.

Es stellt eine stabile Umgebung für Dienste wie Monitoring, Automatisierung, Produktivität und Dateiverwaltung bereit – komplett ohne Herstellerbindung.

Der Fokus liegt auf Wartbarkeit und Ausfallsicherheit, mit ZFS-gestütztem Speicher, automatisierten Backups und einem modularen Service-Stack.

Kernpunkte

  • Proxmox VE für Virtualisierung mit VMs und LXC-Containern
  • ZFS-Speicherpools mit Redundanz und Snapshot-basierten Backups
  • Docker Compose für Betrieb und Verwaltung containerisierter Dienste
  • Home Assistant mit Zigbee-Integration für Automatisierung und IoT
  • Monitoring und Benachrichtigungen zur Sicherstellung der Dienstverfügbarkeit
Visual Automation Bot

Visual Automation Bot

Zeitspanne

4 Wochen

Verwendete Technologien

Python, PyQt5, PyAutoGUI, OpenCV, Tesseract OCR, PIL/Pillow, Win32 API, JSON

Beschreibung

Ein experimentelles Desktop-Automatisierungswerkzeug, das versucht, repetitive Aufgaben durch visuelle Programmierung zu automatisieren. Die Anwendung macht Screenshots von UI-Elementen und versucht, mit Desktop-Anwendungen zu interagieren, indem sie Bilder erkennt und grundlegende Maus-/Tastaturaktionen ausführt. Nutzer können einfache Automatisierungssequenzen über eine Drag-and-Drop-Oberfläche erstellen, wobei das System noch Verbesserungen für den produktiven Einsatz benötigt.

Die Grundfunktionalität umfasst ein einfaches Aktionsmanagement mit Unterstützung für bedingte Logik und Ressourcenüberwachung. Aktionen können in Playsets und Actionsets für modulare Workflows organisiert werden, die durch visuelle Hinweise oder einfache Bedingungen ausgelöst werden. Die Anwendung implementiert Timing-Mechanismen, Maussimulation und Tastatureingabe sowie grundlegende Bilderkennung mit PyAutoGUI und OCR über Tesseract.

Die Architektur trennt UI-Management, Automatisierungslogik und JSON-basierte Konfigurationsspeicherung. Während die Grundkonzepte funktionieren, würde das System von verbessertem Error Handling, zuverlässigerer Bilderkennung und einer besseren Benutzererfahrung profitieren. Die aktuelle Implementierung dient als funktionsfähiger Prototyp, der Möglichkeiten automatisierter Interaktion demonstriert.

Kernpunkte

  • Einfache visuelle Programmieroberfläche mit Drag-and-Drop-Funktionalität.
  • Bildbasierte UI-Element-Erkennung (Zuverlässigkeit variiert).
  • OCR-Integration für einfache Texterkennungsaufgaben.
  • Bedingte Automatisierung mit grundlegenden Logikregeln.
  • JSON-basiertes Konfigurationssystem.
  • Einfache Task-Queue mit Threading-Unterstützung.
  • Konfigurierbare Timing- und grundlegende Randomisierungsfunktionen.
  • Modulares Actionset-Konzept für Workflow-Organisation.

Gesichtserkennung mit TensorFlow

Zeitspanne

k.A.

Computer Vision / Deep Learning

TensorFlow, OpenCV, CUDA, Labelme, Echtzeit

Beschreibung

Entwicklung eines Echtzeit-Systems zur Gesichtsdetektion und -erkennung mit OpenCV, TensorFlow und GPU-Beschleunigung über CUDA.

Trainingsdaten wurden über die Webcam aufgenommen und mit Labelme manuell gelabelt, um ein individuelles Erkennungsmodell zu trainieren.

Das System konnte bekannte Gesichter live im Webcam-Feed erkennen – mit durchaus brauchbarer Genauigkeit.

Kernpunkte

  • Echtzeit-Gesichtserkennung mit OpenCV und Haar-Kaskaden
  • Manuelle Datensatz-Annotation mit Labelme
  • Training eines TensorFlow-Erkennungsmodells
  • CUDA-Unterstützung zur Beschleunigung der Inferenz
  • Live-Loop zur Gesichtserkennung über Webcam
Fachschaftsportal-Überarbeitung

Fachschaftsportal-Überarbeitung

Zeitspanne

3 Monate

Web-App / Modernisierung

Angular, Firebase, UI-Umsetzung, Komponentenstruktur

Beschreibung

Technische Überarbeitung und Erweiterung einer bestehenden Fachschafts-Website mit Angular und Firebase.

Die öffentliche Seite und das interne Dashboard wurden auf Basis eines extern erstellten Designs (UX-Designer) neu umgesetzt und strukturell überarbeitet.

Funktionen wie eine To-do-Liste und eine Finanzübersicht mit Buchungsverwaltung wurden zur Unterstützung interner Abläufe ergänzt.

Kernpunkte

  • Frontend in Angular gemäß externem Designkonzept neu aufgebaut
  • Firebase-Anbindung für Authentifizierung und Datenspeicherung
  • Internes Dashboard mit Aufgabenliste und Buchungsansicht
  • Komponentenstruktur responsiv für Mobil- und Desktopgeräte
  • Altcode refaktoriert für bessere Wartbarkeit