About
I make electronic music — mostly Techno, House and DnB — and play it loud in dark rooms whenever I get the chance.
When the club lights go off, I build software and self-hosted tooling, with an academic background spanning Cognitive Sciences and Cyber Security.
Infrastructure
-
Mumble
Low-latency voice server. Open channel, open ears.
mumble.ftb.uber.space -
Nextcloud
Files, calendars, collaboration — self-hosted, no middlemen.
cloud.ftb.uber.space -
Yopass
One-time encrypted secret sharing. Send it once, it's gone.
yopass.ftb.uber.space -
Matrix
Federated, end-to-end encrypted chat. No platform, no lock-in.
matrix.ftb.uber.space
Projects
-
Angebots-Generator (PV)
Angebote für Photovoltaik-Anlagen wurden für jeden Kunden von Hand zusammengesetzt: Layout anfassen, Zahlen eintragen, exportieren.
Ein einzelnes Skript, das aus strukturierten Auftragsdaten ein fertig gelayoutetes Angebots-PDF erzeugt.
Python (PEP 723, Single-File) · Jinja2 · WeasyPrint · kein Hosting, läuft lokal
Im Aufbau, bisher keine Angebote im Echtbetrieb erzeugt; die Schwachstelle ist das pixelgenaue Nachbauen der bestehenden Vorlage, weil WeasyPrint Teile des CSS anders auslegt als der Browser — heute würde ich das Layout von Anfang an gegen WeasyPrint prüfen statt gegen den Browser.
-
Live-Übersetzung für dreisprachige Gespräche
Wenn am Tisch Deutsch, Spanisch und Arabisch gesprochen wird und kein Dolmetscher da ist, bricht die Verständigung entweder ab oder jemand übersetzt hinterher mühsam nach.
Ein System, das ohne Internetverbindung mithört, die gesprochene Sprache selbst erkennt, in die beiden anderen Sprachen übersetzt und beide Übersetzungen groß auf einem Monitor anzeigt; das Mikrofon ist ein iPhone im Browser.
Python · faster-whisper (Spracherkennung und Transkription) · lokales LLM über LM Studio auf einer RTX 3060 12 GB · Fullscreen-Frontend · iPhone-PWA als Mikrofon · kein Cloud-Dienst
In aktiver Entwicklung (Stand August 2026), noch keine echten Gesprächssessions gefahren; die Kette aus Erkennung und Übersetzung braucht zu lange, bei schnellem Sprechen läuft die Anzeige hinterher — heute würde ich Latenz als Kernanforderung behandeln und früh messen, statt sie am Ende optimieren zu wollen.
-
Poker im lokalen Netzwerk
Für Pokerrunden unter Freunden gab es nichts Passendes: entweder fremde Apps mit Anmeldung und Account, oder Zettel und Kieselsteine als Chips.
Ein Texas-Hold'em-Spiel für ein bis neun Spieler im heimischen Netzwerk, mit Bots als Mitspielern, einem Cash-Table-Modus und einem Turniermodus mit steigenden Blinds und Ausscheiden.
Stack noch offen — bisher liegt nur die Spezifikation vor (Stand Juli 2026)
Noch nicht live, keine gespielten Runden; die Spielstärke der Bots ist der schwierigste Teil des Projekts und in der Spezifikation bisher gar nicht beschrieben — heute würde ich sie zuerst festlegen, weil sie darüber entscheidet, ob das Spiel zu neunt überhaupt Spaß macht.
-
Lyrics-Display
Beim Musikhören läuft kein Text mit; wer die Zeilen groß auf einem zweiten Monitor mitlesen will, hat dafür keine Lösung.
Ein Tool, das die Songtexte holt und sie zeitlich passend zur laufenden Wiedergabe auf einem eigenen Monitor durchscrollen lässt.
Python · eigene Wiedergabe- und Synchronisationslogik, nicht an die Deezer-App gekoppelt · Renderer noch offen (Stand August 2026)
In Entwicklung, noch nicht im Alltag benutzt; zwei bekannte Grenzen: Texte gibt es nur, soweit Deezer sie überhaupt liefert, und ob die Synchronisation über einen ganzen Track hält, ist ungetestet — den Versatz über lange Titel würde ich heute als Erstes messen, bevor ich Zeit in die Darstellung stecke.
-
Stimm-Klon für Rap-Demos
Eine Textidee als Demo zu hören kostet viele Takes und einen ganzen Abend im Aufnahmeraum.
Eine lokale Pipeline aus drei Skripten: Aufnahme des Trainingsmaterials mit Pegelkontrolle, Aufbereitung der Aufnahmen, und automatisch erzeugte Sprechtexte, die die Laute der Sprache gleichmäßig abdecken.
Python (PEP 723) · RVC · faster-whisper · lokales LLM über einen OpenAI-kompatiblen Endpunkt (LM Studio) · kein Cloud-TTS
Seit August 2026 in der Aufnahmephase, Modell noch nicht trainiert; die Qualität hängt fast vollständig an Größe und Gleichmäßigkeit des Datensatzes — heute würde ich das Mikrofon-Setup einmal festlegen und dokumentieren, bevor die erste Aufnahme läuft, statt zwischendurch nachzujustieren.
-
DJ-Toolchain
Tracks für den nächsten Abend vorzubereiten hieß, dieselben Dateien durch mehrere Programme zu schleifen und die Reihenfolge anschließend von Hand nach Tonart und Tempo zu sortieren.
Eine Kommandozeilen-Toolchain, die Tracks analysiert, die Ergebnisse direkt in die Musikdatenbank schreibt, harmonisch passende Nachfolger vorschlägt und angefragte Titel vom Download bis in die Abspielliste durchreicht.
Python · pyrekordbox · SQLite (Mixxx-Datenbank) · Mixxx · DDJ-200 mit eigenem Mapping (Components-JS)
Produktiv im eigenen Einsatz auf der gesamten persönlichen Bibliothek; die Tools schreiben direkt in die Mixxx-Datenbank und brechen bei jedem Schema-Update, ein Migrationspfad existiert nicht — heute würde ich die Schreibzugriffe hinter eine Schicht legen, die die Schemaversion prüft und im Zweifel abbricht, statt Daten zu beschädigen.
-
DJ-Mixer im Browser
Wer ohne Installation auflegen will, findet im Browser entweder Spielzeug oder geschlossene Bezahl-Tools.
Ein DJ-Mixer im Browser mit mehreren Decks, automatischer Tempo- und Tonart-Erkennung und Vorschlägen für harmonisch passende Übergänge.
TypeScript · Vite · React · Web Audio API · kein Backend
Grundgerüst steht (Stand Juli 2026), noch nicht im Einsatz; die Audio-Schnittstelle des Browsers hat eine Verzögerung, die echtes Vorhören über Kopfhörer schwierig macht — heute würde ich genau diese Latenz als Erstes prototypisch messen, weil sie über die Machbarkeit des ganzen Projekts entscheidet.
-
Lokales LLM-Ökosystem
Über die eigenen Notizen zu suchen oder mit einem Sprachassistenten zu arbeiten ging bisher nur über Cloud-Dienste, denen man die Inhalte vollständig überlässt.
Mehrere zusammenhängende Werkzeuge, die alles auf dem eigenen Rechner erledigen: Suche über den persönlichen Notiz-Ordner, eine Sprachassistenz zum Zuhören und Antworten, eine Anbindung an Ableton, ein Web-Abruf für lokale Modelle und ein Aufbereiter für Discord-Exporte.
Python · LM Studio (RTX 3060) · LanceDB · SQLite · faster-whisper · Orpheus TTS mit SNAC · opencode mit OpenRouter · vollständig self-hosted
Mehrere der Tools sind produktiv im Einsatz, indiziert sind der eigene Obsidian-Vault und die Kursmaterialien; alles hängt an genau diesem Rechner und an LM Studio, ein Deployment auf einer anderen Maschine ist nicht vorgesehen — heute würde ich die Modellanbindung hinter eine austauschbare Schnittstelle legen.