Referenzen

Dreizehn Jahre, neunzehn Branchen, rund 37.500 Commits. Hier steht, was in dieser Zeit gebaut wurde, in welcher Branche, und welcher Teil davon meiner war.

Wie diese Seite zu lesen ist

Kein Kundenname und kein Produktname steht auf dieser Seite, auch keiner meiner eigenen. Dafür Branche und Land, und dabei bleibt es, solange ich keine schriftliche Freigabe habe. Wen es genau betrifft, sage ich Ihnen im Gespräch. An diese Arbeit kommt man nur unter dieser Bedingung heran.

Jedes Blatt sagt außerdem, welcher Teil der Arbeit von mir stammt. Manche dieser Systeme sind zur Gänze von meiner Hand, bei anderen habe ich geleitet und die Verantwortung getragen, und ein paar Teile sind ausdrücklich nicht meine Arbeit: eine mobile App, ein Frontend, ein Erscheinungsbild.

Die Zahlen sind gerundet und aus den Quellarchiven gezählt: Commits, handgeschriebene Zeilen, Jahre. Abhängigkeiten, generierter Code und Build-Ergebnisse sind nicht mitgezählt. Eine Zeilenzahl ist kein Qualitätsmaß; sie sagt nur, wie groß das Ding ist, um das es geht.

Der Umfang

Vier Maße für alles, was auf dieser Seite steht.

13+ Jahre, dokumentierte Arbeit, 2013 bis heute
19 Branchen
~37.500 Commits, über die dokumentierten Archive
~1 Mio. Zeilen, handgeschriebener Code, überwiegend TypeScript

Wo diese Arbeit gemacht wurde

Keine Logos. Logos brauchen eine Freigabe, und eine Logowand sagt ohnehin nicht, was dahinter gebaut wurde. Diese Branchen habe ich von innen gesehen.

  • Gesundheitswesen und Apotheken
  • Energie- und Klimatechnik
  • Arbeitssicherheit und IoT
  • Öffentliche Hand und gesetzliche Körperschaften
  • Verkehrsinfrastruktur
  • Möbelfertigung
  • IT-Sicherheit
  • Kulturelles Erbe
  • Hilfs- und Rettungsorganisationen
  • Schienenverkehr und Simulation
  • Eichpflichtige Messgeräte
  • Industrieanlagen
  • Öffentlich-rechtlicher Rundfunk
  • Profisport
  • Kreativwirtschaft
  • Konsumgüter online
  • Consumer Social und Geo
  • Hochschulen
  • Gastronomie

Womit

Nicht alles, was ich einmal angefasst habe, sondern das, worin diese Systeme laufen. Falls bei Ihnen jemand aus der Technik mitliest.

Backend

  • TypeScript
  • Node.js
  • NestJS
  • PHP
  • Java

Frontend und mobil

  • Angular
  • Flutter
  • Ionic
  • Electron
  • Three.js
  • Mapbox GL

Daten

  • MongoDB
  • PostgreSQL
  • ClickHouse
  • Redis
  • Couchbase
  • Oracle
  • IBM DB2

Schnittstellen

  • REST
  • gRPC
  • GraphQL
  • WebSockets
  • BLE
  • Modbus
  • Exchange Web Services

Betrieb

  • Docker
  • Kubernetes
  • Helm
  • GitLab CI
  • Prometheus
  • Grafana
  • Loki

Modelle

  • OpenAI
  • Anthropic Claude
  • agentische Systeme

Sechs Blätter im Detail

Die sechs Engagements, zu denen am meisten im Archiv liegt. Jedes mit seinem Umfang als Maßlinie und mit der Angabe, welcher Teil von wem stammt.

01

Vom Chip über die Cloud bis ans Ende der Fertigungslinie

Branche Energie- und Klimatechnik · europäisches Scale-up

Ein europäisches Scale-up baut Elektroheizungen und Boiler, deren Wärme aus Bitcoin-Mining-Chips kommt; der Mining-Erlös senkt die Stromkosten. Ich bin der leitende Ingenieur dieses Systems und verantworte die technische Seite der Produktführung.

Verantworten heißt hier: der Dienst, der im Gerät läuft, die Treiber für die Mining-Hardware, der Cloud-Broker zwischen Gerät und App, die Kubernetes-Plattform, die PKI für die Geräteidentität und der Prüfstand am Bandende. Ein Gerät, das vom Band läuft, hat eine Stunde Dauerlauf gegen versionierte Grenzwerte hinter sich, und das Ergebnis liegt in einem fälschungssicheren Protokoll.

Das gesamte System wird mit Ende 2026 ans hauseigene Team des Kunden übergeben, nach einem Fahrplan, zu dem die Suche und die Einarbeitung einer internen technischen Leitung gehören. Dafür ist diese Rolle gedacht: einsteigen, bauen, übergeben.

~20 Repositories
~11.500 Commits
~270.000 Zeilen, handgeschriebener Code
~400 Testdateien
Im Gerät
Ein ARM64-Rechner im Heizkörper: Lüfter, Temperatur, GPIO und Modbus, Bluetooth, Netzwerkkonfiguration über D-Bus, gehärtetes Netzwerk, eine lokale Schnittstelle mit Token, signierte Systempakete mit Watchdog und ein eigenes Betriebssystem-Abbild. Über mehrere Produktgenerationen, von zwei Heizungsvarianten über ein Modell mit mehreren Rechenkarten bis zum Boiler.
Treiber
Eine Treiberschicht über HTTP, gRPC und GraphQL, mit Adaptern für mehrere Miner-Firmwares, für Stromzähler und für Testgeräte.
Cloud
Ein WebSocket-Broker, der Geräte und App zusammenbringt: Kopplung über Token, Registrierung, Ereignisbus, Redis für die Verteilung über mehrere Instanzen, MongoDB für den Zustand, ClickHouse für die Telemetrie. Horizontal skaliert.
Mobile App
Geleitet und architektonisch verantwortet, nicht selbst geschrieben: die App in Flutter, mit Bluetooth-Einrichtung und automatisierter Veröffentlichung. Davor eine ältere Generation in einer anderen Technologie.
Geräteidentität
Eine eigene PKI mit Wurzel- und Zwischenzertifikaten, ein Ausstellungsdienst, gesicherter Fernzugang für den Support, dazu die Umstellung der bereits ausgelieferten Geräte im Feld auf diese Identität.
Prüfstand
Ein Gateway in der Fertigung steuert jedes Gerät über das Netz. Der Dauerlauf wird gegen versionierte Grenzwerte bewertet, das Ergebnis wandert in ein fälschungssicheres Protokoll. Die Station selbst läuft als zweisprachige Tablet-Anwendung mit Etikettendruck. Ausgeliefert in sechs dokumentierten Schritten und am Prüftisch abgenommen.
Betrieb
Ein hochverfügbarer Kubernetes-Cluster in einer europäischen Cloud, Umstellung des Ingress auf die Gateway API ohne Ausfall, eigene CI-Strecken, eigene Registry, Prometheus, Grafana, Loki, Schwachstellenscans und ein Paketspiegel für Geräteupdates.
Nachweise
Eine Lückenanalyse gegen Anhang I des EU Cyber Resilience Act mit Nachweisregister, eine Datenschutz-Folgenabschätzung samt Telemetrie-Prüfung und eine Analyse des Bluetooth-Kanals.
Mein Teil
Leitender Ingenieur, technisch verantwortlich für den gesamten Stack. Ein Teil der Umsetzung, vor allem die mobile App, kommt nicht von meiner Hand; diesen Teil habe ich geleitet und verantwortet, nicht geschrieben.
Zeitraum
Machbarkeitsnachweis Jänner 2024, laufendes Engagement seit April 2024. Übergabe ans hauseigene Team mit Ende 2026.
02

Vier Kassensysteme hinter einer Schnittstelle, alle im Produktivbetrieb

Branche Gesundheitswesen · Apotheken in Österreich

Eine eigene, lizenzierte Plattform, die Apotheken direkt mit ihren Kunden verbindet: verschlüsselt schreiben, Rezepte schicken, vorbestellen und dann an der Tara, am Abholautomaten rund um die Uhr oder gleich aus dem Kommissionierroboter abholen. Das Personal arbeitet in einem Portal, das in der Apotheke selbst läuft und am bestehenden Kassen- und Warenwirtschaftssystem hängt, damit Lagerstand, Kundenkonditionen und Auftragsstatus ohne Doppelerfassung durchlaufen.

Dazu eine lesende Schnittstelle mit austauschbaren Treibern für vier verschiedene Kassen- und Warenwirtschaftssysteme, alle vier im Produktivbetrieb: Oracle-SQL, teils aus dem Datenbankschema rekonstruiert. IBM DB2 über ODBC, vor Ort in der Apotheke debuggt. Eine REST-Schnittstelle und ein Webservice von Herstellerseite. Vier Technologien, ein Modell darüber.

Das zentrale Backend dieser Plattform habe ich von der ersten bis zur letzten Zeile selbst geschrieben.

12 Repositories
~5.000 Commits
~70.000 Zeilen, handgeschriebener Code
4 Kassensysteme, im Produktivbetrieb
~7 Jahre, durchgehendes Engagement, ab dem Konzept 2019
Portal in der Apotheke
Eine Desktop-Anwendung mit eingebettetem Backend, die im Netz der Apotheke läuft, dazu die Oberfläche und ein Kern ohne Oberfläche für Auftragsabläufe, Benachrichtigungen, Lizenzen und automatische Updates.
Zentrales Backend
Ein Relay für Ende-zu-Ende-verschlüsselte Nachrichten: Nachrichten-Gateway, Gerätekopplung über zeitbasierte Einmalkennwörter, hybride Verschlüsselung, Lizenzierung, Verwaltung, Push und Produktmodule für Abholung, Roboter-Rückmeldungen, Zahlungsbestätigung und lizenzgebundene Downloads. Überwacht mit Prometheus und Loki, ausgerollt in vier Umgebungen. Rund 1.170 Commits und rund 495 Releases, alles von mir.
Automaten und Roboter
Der Ablauf am Abholautomaten mit Fachvergabe, Freigabe über QR-Code und Rezeptprüfung; die Schnittstelle eines Automatisierungsherstellers; dazu die Übergabe an den Kommissionierroboter mit Lagerreservierung, Freischaltcode aufs Telefon und Wiederholung im Fehlerfall.
Kunden-App
Von mir kommt die Seite, mit der die App spricht: das Protokoll, die Nachrichtentypen, die versionierte gemeinsame Spezifikation mit 30 typisierten Klassen und die Abläufe im Portal. Die App selbst nicht. Sie stammt nicht von mir, und ich führe sie hier nicht als meine Arbeit an.
Erste Generation
Das Portal von 2020, mit dem ersten Oracle-Konnektor und automatischen Antworten zu Lagerstand und Vorbestellung nach Arzneimittelcode. Es wurde später von der heutigen Architektur abgelöst.
Kaufmännisches Drumherum
Lizenzierung je Standort, kostenpflichtige Zusatzfunktionen, die ohne Release freigeschaltet werden, signierte Installationspakete, automatische Updates, Anbindung eines Zahlungsdienstleisters.
Vor Ort
Datenbankwiederherstellung, Serverumzüge, Diagnosepakete, Lizenzverschiebungen.
Mein Teil
Eigenes Produkt. Das zentrale Backend ist zur Gänze von mir. Die App auf der Kundenseite ist ausdrücklich nicht meine Arbeit; die Zahlen oben schließen sie nicht ein.
Zeitraum
Konzept ab November 2019, Bau ab Mai 2020, seit damals im Produktivbetrieb und 2026 weiter im Ausbau. Im Entwurf: eine Brücke aus Webshops für rezeptfreie Produkte.
03

Das Cloud-Rückgrat eines Wearables, an dem ein Leben hängt

Branche Arbeitssicherheit · vernetzte Schutzausrüstung, DACH

Ein Start-up baut ein vernetztes Wearable für Menschen, die in elektrischen Gefahrenbereichen arbeiten; es wird im DACH-Raum verkauft. Cloud-Backend, Nutzerportal, Verwaltungskonsole und SMS-Gateway dahinter habe ich entworfen und gebaut. Erkennt das Gerät einen Unfall, meldet sich die Hardware am Backend an, der Vorfall wird festgeschrieben und mit der letzten bekannten Position an eine Notrufzentrale übergeben; ab dort laufen Eskalations-Timer und mehrfach abgesicherte Benachrichtigungen.

Bei einem solchen System ist nicht der Normalfall schwierig, sondern der Fehlerfall. Was passiert, wenn die Zentrale nicht antwortet oder das Gerät zweimal meldet. Wenn ein Timer abläuft, während gerade ausgerollt wird. Diese Fragen sind der Grund, warum ich dafür 3,5 Jahre im Haus des Kunden gesessen bin und die Schnittstellen gemeinsam mit den Leuten geschrieben habe, die Hardware, App und ERP verantworten.

Angefangen hat es mit einem Prototyp in JavaScript; am Ende stand eine durchgehend typisierte, getestete und messbare Plattform mit fünf Umgebungen.

4 Repositories
~3.800 Commits
~55.000 Zeilen, handgeschriebener Code
88 Testsuites, allein im Backend
3,5 Jahre, im Haus des Kunden
Backend
Eine REST-Schnittstelle mit Challenge-Response-Anmeldung je Hardware-Hub, Vorfällen, Zentralen-Anbindung, eskalierenden Melde-Timern, Diagnose-Upload, versionierter Dienstkonfiguration, Abonnements und Freischaltcodes, dazu zwölf zeitgesteuerte Verarbeitungsjobs.
Härtung
Verzögerung bei wiederholten Anmeldeversuchen, zeitlich begrenzte Challenges, verschlüsselte Umgebungsdateien mit einem eigenen Kommandozeilenwerkzeug, TLS bis zur Datenbank.
Anbindung
Die ERP-Schnittstelle des Kunden für Kontakte, Hubs und die Zuordnung Firma–Mitarbeiter–Gerät. Das SMS-Gateway als eigener Dienst, damit ein Ausfall dort nicht den Alarmweg mitnimmt.
Portale
Ein Nutzerportal, mehrsprachig und mit internationaler Telefonnummernprüfung, über mehrere Angular-Generationen mitgezogen, dazu eine Verwaltungskonsole.
Messbarkeit
Prometheus-Metriken, Loki, Endpunkte für Latenz und Speicher, eine CI-Strecke mit Audit, Versionierung, Abdeckung, End-to-End- und Schnittstellentests, fünf Umgebungen.
Mein Teil
Entwurf und Umsetzung der Cloud-Seite von mir. Hardware, mobile App und ERP lagen nicht bei mir; die Schnittstellen dazwischen sind gemeinsam geschrieben worden.
Zeitraum
Juni 2019 bis Dezember 2022, rund 3,5 Jahre.
04

Handwerksregeln, die als Maschinendaten herauskommen

Branche Möbelfertigung · österreichischer Massivholz-Zulieferer

Zwei Produkte für denselben Hersteller, der europaweit über Händler und auch direkt verkauft. Das erste ist ein 3D-Konfigurator im Onlineshop: Händler, Tischler und Endkunden entwerfen damit Maßschränke, auch Eckschränke, Dachschrägen und Schiebetüren. Jede Konfiguration wird gegen das echte Fertigungsprogramm und gegen die Konstruktionsregeln geprüft, live bepreist und dann in Fertigungsdaten übersetzt: ein Maschinenprojekt je Korpus, Stücklisten, XML.

Ein Konfigurator, der ein schönes Bild zeigt, ist ein Werbemittel. Einer, der ein Projekt für die Maschine ausgibt, ist Fertigungssoftware. Dazwischen liegt ein parametrisches Konstruktionsmodell, das eine Gesamtmaßangabe in Korpusse zerlegt, die statisch und auf der Maschine wirklich herstellbar sind, und das über zwölf Schranktypen hinweg. Diese Regeln standen vorher in Köpfen und in Excel-Tabellen.

Das zweite Produkt ist ein Küchenplaner: Raum in 2D zeichnen, mit Dachschrägen, Türen, Fenstern und Anschlüssen, in 3D einrichten, Arbeitsplatten und Innenausstattung konfigurieren, bepreisen, Pläne als PDF in den Bestellweg. Dazu ein Backend und ein eigenes Verwaltungssystem, mit dem der Hersteller Produkte, Dekore und Übersetzungen selbst pflegt, ohne Entwickler.

~5.000 Commits, über beide Produkte
~155.000 Zeilen, handgeschriebener Code
12+ Schranktypen, parametrisch konstruiert
Konstruktionsmodell
Zwölf und mehr Schranktypen, zerlegt unter statischen und maschinenseitigen Nebenbedingungen. Nicht jede Zerlegung, die rechnerisch aufgeht, lässt sich auch spannen und fräsen; das ist der Teil, den man nur mit den Leuten aus der Fertigung bauen kann.
Preisrechner
Eine regelbasierte Preisberechnung. Eigene Umwandler füttern sie aus den Preismatrizen des Herstellers, und über die Jahre ist sie durch mehrere Preisrunden mitgeführt worden.
Fertigungsausgabe
32 Bauteil-Handler und fünf Projektschemata, dazu Stücklisten als CSV, gebündelt als eine Datei. Seit 2024 und 2025 enthält die XML-Ausgabe zusätzlich die 3D-Position jedes Bauteils, damit nachgelagerte Systeme die Montage exakt nachbauen können.
Küchenplaner
2D-Raumlogik mit Schrägen und Anschlüssen, ein 3D-Planer, in dem Möbel an Wänden einrasten, ein Arbeitsplattenmodul mit materialabhängigen Regeln, PDF-Pläne, OBJ-Ausgabe, Speichern und Laden, sechs Sprachen.
Pflege statt Projekt
Das Verwaltungssystem ist der Grund, warum die Partnerschaft lang geworden ist. Wer seinen Katalog selbst pflegen kann, ruft nicht wegen jedes neuen Dekors an. Das kostet mich Folgeaufträge.
Migration im Betrieb
Der Konfigurator ist über die Jahre durch mehrere Angular-Generationen gezogen worden, ohne dass der Shop dabei stillgestanden ist.
Mein Teil
Verantwortet und ausgeliefert: Konstruktionsmodell, Preisrechner, Fertigungsausgabe, Planer, Backend und Verwaltungssystem.
Zeitraum
Konfigurator 2017 bis 2022, XML-Erweiterung 2024 und 2025. Küchenplaner 2018 bis 2020. Beide im Produktivbetrieb.
05

KI im Produktivbetrieb, nicht im Foliensatz

Branche Consumer Social und Geo · eigenes Produkt

Ein ortsbezogenes soziales Netz auf einer bildschirmfüllenden 3D-Karte. Man folgt Zeitleisten, die an echten Orten hängen; posten darf nur, wer dort ist, und das prüft eine kryptografisch gesicherte Positionsspur. Acht Sprachen mit Übersetzung im Betrieb, dazu Abonnements.

Diese Plattform ist das Gegenstück zu den Kundenprojekten auf dieser Seite: Hier betreibe ich selbst, was ich gebaut habe, Rufbereitschaft inklusive. Eine KI-Pipeline füllt jeden Ort automatisch mit historischem, kulturellem und aktuellem Inhalt aus mehr als zehn offenen Daten- und Veranstaltungsquellen. Sie läuft in einer Warteschlange, mit Rücksicht auf Ratenlimits, hinter einer Modellschicht, die den Anbieter austauschbar hält.

Ein KI-Agent für den Betrieb wird gerade ausgerollt: Überwachung, Vorsortierung von Störungen, Tagesbericht. Zur Sicherheitsarchitektur sage ich hier bewusst nur das Allgemeine: strikte Aufgabentrennung, geringste Rechte, Isolation, mehrere Verteidigungsebenen und ein festgelegter Umgang mit Eingaben, denen man nicht trauen kann.

~6.700 Commits
~360.000 Zeilen, handgeschriebener Code
~580 Testdateien
10+ offene Datenquellen
Frontend
Eine installierbare Webanwendung mit 3D-Karte, Rechenarbeit in Web Workern abseits des Hauptthreads, Service Worker für den Betrieb ohne Netz, dazu eine native iOS-Hülle.
Backend
Echtzeit über WebSockets, Rechteverwaltung in vier Stufen, Bildverarbeitung, Abrechnung samt Kundenportal und Rückmeldungen des Zahlungsdienstleisters.
Anreicherung
Ein eigener Dienst, der ein Sprachmodell mit strukturierten Abfragen gegen offene Wissens- und Kartendaten, ein historisches Zeitungsarchiv und Veranstaltungsschnittstellen kombiniert. Dahinter ein Crawler mit Worker-Threads.
Kartenkacheln
Ein eigener Zwischenspeicher davor: Der Zugriffsschlüssel bleibt am Server, es gilt eine Freigabeliste, und fällt die Quelle aus, liefert die Karte weiter aus dem Zwischenspeicher.
Ausrollen
Kubernetes mit Rollouts, die gegen einen Smoke-Test fahren und bei Fehlschlag selbst zurückrollen, dazu End-to-End-Tests über den ganzen Stack.
Mein Teil
Eigenes Produkt. Entwurf, Code und Betrieb von mir.
Zeitraum
Seit Juli 2023, im Produktivbetrieb.
06

Ein eigenes Protokoll für Ende-zu-Ende-verschlüsselte Nachrichten

Branche Sichere Kommunikation · eigene Technologieplattform

Ein eigenes Protokoll für Ende-zu-Ende-verschlüsselte Nachrichten, mit Client-SDKs und einem Relay-Server. Ein Produkt kann damit verschlüsselte Kommunikation zwischen Geräten einbauen, ohne selbst Kryptografie zu schreiben. Nachrichten werden am Gerät verschlüsselt, das Relay sieht ausschließlich Chiffrat, und wer gerade offline ist, bekommt seine Nachrichten später. Die Apothekenplattform auf Blatt 02 läuft darauf.

Der Entwurf leistet hybride Verschlüsselung je Nachricht und eine passwortlose Geräteanmeldung. Was er nicht leistet, ist Forward Secrecy, und ein externes Audit liegt nicht vor.

Die erste Generation ab 2016 war ein Mailbox-Server ohne Kenntnis des Inhalts: Ordner, Entwürfe, Anhänge, stückweise verschlüsselte Inhalte, und am Server nur öffentliche Schlüssel und vom Client verpackte private. Rund 890 Commits und rund 22.000 Zeilen, Zeile für Zeile von mir. Dieselbe Aufgabe ist seither über drei Technologiegenerationen neu gebaut worden.

~1.575 Commits, Relay
~22.000 Zeilen, davon rund 10.000 Zeilen Tests
~790 Releases, automatisiert
10 Jahre, an einer Plattform
Verschlüsselung
Hybrid und im Browser: Für jede Nachricht entsteht ein frischer AES-256-Schlüssel, der mit einem 4096-Bit-RSA-Schlüssel verpackt wird. Die Schlüsselpaare entstehen am Gerät.
Anmeldung
Ohne Passwort und ohne Sitzung: Jede Anfrage trägt ein zeitbasiertes Einmaltoken des jeweiligen Geräts.
Kontakte
Kopplung über ein zweistufiges Token- und Challenge-Verfahren, mit Berechtigungen zwischen gekoppelten Seiten.
Relay
Ein WebSocket-Relay mit Zwischenspeicher für Empfänger, die gerade nicht da sind, Push-Weckruf und einer Verbindungszuordnung, die für mehrere Serverinstanzen gedacht ist.
Module
Anwendungsmodule am Server, damit ein Produkt eigene Nachrichtentypen und Abläufe mitbringt, ohne das Protokoll anzufassen. Genau so hängt die Apothekenplattform daran.
Clients
Ein SDK für Webanwendungen, das auch im Web Worker läuft, eine iOS-App, ein Verwaltungsportal und ein Kommandozeilenwerkzeug.
Betrieb
Automatisierte Releases und ein eigener, deklarativ verwalteter Cluster in einer europäischen Cloud mit drei Steuerknoten und Arbeitsknoten in zwei Regionen.
Werkzeug darum
Eine automatische Zertifikatsverwaltung über die DNS-Challenge mit Anbieter-Hooks, von 2018 bis 2024 im Einsatz, und ein eigenes Grundgerüst für neue Dienste, mit dem jedes weitere Backend startet.
Mein Teil
Eigene Plattform. Protokoll, Relay, SDK und Cluster von mir, die erste Generation zur Gänze.
Zeitraum
Konzept und erste Generation ab 2016, aktuelle Generation seit 2020 im Produktivbetrieb hinter meinen eigenen Produkten.

Weitere Arbeiten

Fünfzehn kürzere Fälle, in derselben Form: Branche, was gebaut wurde, welcher Teil meiner war, wann.

Öffentliche Hand · gesetzliche Interessenvertretung, Österreich

Zeitraum Juli 2023 bis 2026, mit laufenden Rückmelderunden und Übergabe. Rund 450 Commits, rund 12.000 Zeilen Backend.

Backend und Rechenkern hinter einer Bildungsförderung

Eine Anwendung hat die Papieranträge für mehrere Bildungsförderungen ersetzt: Sachbearbeiter erfassen, prüfen, rechnen, fordern Unterlagen nach, genehmigen und verbuchen. Der Kern ist eine Förderrechnung, die die bestehenden Berechnungstabellen und Parameter eins zu eins übersetzt: zehn Einkommensarten, Schwellenregeln, Berechnungen je Qualifikation. Alles konfigurierbar und nicht hart verdrahtet, weil sich die Fördersätze jedes Jahr ändern. Dazu Rollen und Fallhistorie, PDF-Bescheide, zeitgesteuerte Erinnerungsmails und Export.

Mein Teil Von mir kommen Backend und Rechenkern, nicht das Frontend. Das ist der Grund, warum hier nicht „alles aus einer Hand“ steht.

Verkehrsinfrastruktur · Mautstraßenbetreiber

Zeitraum 2023 bis 2026.

Onlineshop an der nationalen Videomaut

Einzelfahrten, Jahreskarten, Gutscheine und vergünstigte Tickets werden online verkauft und dabei über die nationale Videomaut an ein Kennzeichen gebunden. Dafür habe ich einen Konnektor für sechs Mautvorgänge gebaut: Ticket holen, Kennzeichen prüfen, bestellen, bestätigen erst nach erfolgreicher Zahlung, stornieren, gutschreiben. Dazu kommen eine eigene Kasse mit Kennzeichenprüfung und getrennte Test- und Produktivumgebungen. Außerdem ein Backend, das Straßenzustand, Sperren und Meldungen veröffentlicht. Grundlage war eine formale Schnittstellenspezifikation zwischen drei Parteien, über mehrere Versionen.

Mein Teil Das Erscheinungsbild des Shops stammt nicht von mir. Von mir kommen der Mautkonnektor, die Kassenlogik und das Backend für den Straßenzustand.

IT-Sicherheit · gemeinsames Produkt

Zeitraum Juli 2022 bis Mai 2023. Rund 190 Commits.

Passwörter verschicken, ohne sie zu verschicken

Eine App für iOS und Android, mit der zwei gekoppelte Personen Passwörter und Geheimnisse austauschen: Kopplung über QR-Code oder Kontaktanfrage, Abholung durch Push ausgelöst, Nachrichten wieder löschbar, Entsperren per Biometrie, verschlüsselter lokaler Speicher. Verschlüsselt wird am Gerät, auf dem Nachrichtenprotokoll von Blatt 06. Vom Machbarkeitsnachweis bis zur Abgabereife im App Store rund zehn Monate.

Konsumgüter online · Medienproduktion

Zeitraum Dezember 2018 bis August 2020, vom Konzept bis zur laufenden Druckstrecke rund 18 Monate. Rund 670 Commits über 6 Repositories, rund 25.000 Zeilen.

Von neun Handyfotos zur druckfertigen Leinwand

Eine Webanwendung fürs Telefon machte aus 9 bis 64 Fotos eine Collage auf Leinwand: Mosaik, Voronoi-Zerlegung, Streifen und weitere Layouts, mit Filtern und Bearbeitung je Zelle. Bestellt wurde über einen Shop, gerendert serverseitig in Druckauflösung. Der Trick lag in einer gemeinsamen Filterbibliothek für Vorschau und Rendering, damit das gedruckte Bild dem am Bildschirm entspricht. Sonst kommt die Leinwand zurück. Vor dem Bau stand eine Machbarkeitsstudie. Das Produkt ist nicht mehr am Markt.

Mein Teil Das Projekt lief mit einem Team von rund fünf Personen. Geleitet und zum größten Teil selbst gebaut habe ich die Backend- und Renderstrecke sowie die Webanwendung.

IT-Sicherheit · unabhängiges Testlabor

Zeitraum 2015 bis 2016. Rund 18.000 Zeilen eigener Code.

Rohe Messdaten als öffentlich vergleichbares Ergebnis

Ein öffentliches Portal macht aus den Rohdaten eines Testlabors interaktive Produkt- und Herstellervergleiche. Dahinter liegen eine Diagrammstrecke mit Verlaufs-, Streu- und Vergleichsdarstellungen und eine Schnittstelle mit sechs Endpunkten, die auf vorberechneten Zwischentabellen sitzt, sodass ein Vergleich über mehrere Jahre schnell bleibt und nicht bei jedem Aufruf neu gerechnet wird. Wird ein Ergebnis veröffentlicht, entstehen die Auszeichnungsgrafiken dazu serverseitig von selbst.

Kulturelles Erbe · universitäres Literaturarchiv

Zeitraum 2016 bis 2017.

Langsame Forschungsdatenbanken, in Millisekunden durchsuchbar

Mehrere Forschungsdatenbanken wurden in einem öffentlichen Portal zusammengeführt: ein Autorenlexikon mit rund 1.000 Einträgen, eine verortete Literaturkarte, eine Rezensionszeitschrift. Der Kern ist eine Datenbrücke mit 29 Endpunkten, die die langsamen akademischen Hintergrundsysteme spiegelt und indiziert, zeitgesteuert nachzieht und sich selbst überwacht. Eine Suche antwortet in Millisekunden, ohne dass an den Quellsystemen etwas geändert werden musste. Die Anforderungen sind in einem Workshop vor Ort mit den Forschenden aufgenommen worden.

Mein Teil Von mir kommen die Datenbrücke (rund 285 Commits, davon etwa 93 Prozent von meiner Hand) und die Anwendungslogik. Das Erscheinungsbild nicht.

Rettungs- und Hilfsorganisation · Bezirksstelle

Zeitraum 2015 bis 2018.

Kurskalender, der sich mit einem Bundessystem abgleicht

Öffentliche Erste-Hilfe- und Ausbildungskurse werden aus dem zentralen Kursverwaltungssystem der Bundesorganisation übernommen: Webservices über CSV, fünf Entitätstypen, vollständiger Abgleich mit Anlegen, Ändern und Löschen. Bürger melden sich online an, die Anmeldungen gehen zeitgesteuert wieder zurück. Gebaut gegen eine schriftliche Schnittstellenspezifikation, über Jahre im Betrieb gehalten und in drei versionierten Releases nachgezogen.

Mein Teil Das Erscheinungsbild stammt nicht von mir. Von mir kommen die Anbindung und die Anmeldelogik.

Kreativwirtschaft · unabhängige Schriftengießerei

Zeitraum 2016 bis 2019/20. Rund 140 Commits am Konnektor.

Ein Shop, der neue Schriften selbst anlegt

Ein Direktverkauf für Schriften. Mein Konnektor beobachtet den Ausgabeordner der Gießerei und legt daraus alles selbst an: Produkte aus Schriftfamilien und Schnitten, die Lizenzoptionen dazu und das Downloadpaket je Bestellung. Eine neue Veröffentlichung geht online, ohne dass jemand Produkte anlegt. Dazu die Lizenzlogik aus Lizenzarten, Paketen und Schnitten, sieben Schnittstellen, darunter eine für den Schriftprobe-Tester, eine zeitgesteuerte Bestellbenachrichtigung, eine angepasste Kasse und eine Verrechnung, die der EU-Umsatzsteuer entspricht.

Mein Teil Das Erscheinungsbild stammt nicht von mir. Von mir kommen der Konnektor, die Lizenzlogik und die Kasse.

Unternehmensanbindung · Konsumgütermarke und Ärztekammer

Zeitraum 2018 und 2019.

Exchange-Kalender nach außen, ohne Exchange nach außen zu öffnen

Ein Dienst ohne Oberfläche liest Kalender über die Exchange-Web-Services, normalisiert die Termine und liefert sie alle paar Minuten als CSV an nachgelagerte Webplattformen. Die bekommen damit nie direkten Zugang zu Exchange, und genau darum ging es. Schwierig war anderes: die Drosselung auf Exchange-Seite, gelöst mit einer serialisierten Warteschlange, dazu Zeitzonen, die Auflösung von Verzeichnisnamen und ein Wechsel des Lieferwegs mitten im Projekt. Beim zweiten Kunden lief derselbe Konnektor nach rund zehn Tagen auf einer anderen Exchange-Generation.

Schienenverkehr und Simulation · Masterarbeit

Zeitraum Etwa 2013 bis 2015. Rund 190 Java-Quelldateien, rund 42.000 Zeilen über etwa 25 Module, dazu die geschriebene Arbeit.

Ein Regelwerk, das als Simulation läuft

Meine Masterarbeit war ein Simulator für den Eisenbahnbetrieb auf einem nationalen Streckennetz: Gleise, Weichen, Signale, Bahnhöfe und Liniensysteme, Fahrpläne und Zugfahrten unter realer Fahrdynamik. Zeit- und ereignisgesteuerte Modelle allein bringen unabhängig handelnde Akteure nicht glaubwürdig zum Laufen, also ist daraus ein hybrider Kern geworden: jeder Zug ein eigener Thread, der mit Stellwerks- und Fahrplanlogik über gemeinsame Sperrobjekte zusammenarbeitet. Dazu eine Fahrdynamik aus Zugkraft, Fahrwiderstand und Bremshundertsteln mit einem Bremskurven-Assistenten, die Modellierung der geltenden Vorschriften samt Zugsicherung, und eine Datenstrecke aus rund 20 Importmodulen, die rohe Infrastruktur- und Fahrplandaten in ein rechenbares Netz übersetzt – Weichen etwa über eine geometrische Suche nach Berührungspunkten.

Das Ergebnis ist laut Arbeit für die Grundschulung von Fahrdienstleitern geeignet.

Eichpflichtige Messgeräte · Hersteller im DACH-Raum

Zeitraum 2016 bis 2017. Rund 470 Commits, rund 15.000 Zeilen in der Live-Version.

Eine Eichvorschrift als Software, mit gültigem Nachweis am Ende

Eine Datenbankanwendung führt die gesetzlich vorgeschriebene Konformitätsbewertung von Taxametereinbauten durch. Assistenten leiten den Techniker durch die Prüfung, vergleichen die Messwerte mit den zulässigen Toleranzen von ±1 und ±1,5 Prozent, setzen die Verträglichkeitsregeln zwischen den Komponenten durch und erzeugen am Ende das amtliche Zertifikat und das Typenschild. Von mir kommen die Diensteschicht, das Datenmodell, der Regel- und Toleranzkern, die Berichterstellung und die Oberfläche. Danach ging der Code strukturiert an die eigenen Entwickler des Kunden, die ihn weitergeführt haben.

Industrieanlagen · UV-Entkeimung und Wasseraufbereitung

Zeitraum 2016 bis 2017. Rund 590 Commits, rund 7.000 Zeilen.

Das Feld und das Büro in einem Portal

Ein Kundenportal für den installierten Anlagenbestand eines Herstellers: Kunden- und Flottenverwaltung, ein Dokumentenbrowser, Deep Links in ein Fernzugriffs-Gateway für den Service an der Maschine, und der Import gezippter Datenlogger-Dateien aus den Anlagen in eine Datenbank, damit man sie auswerten kann. Wie ein Release abläuft, steht in einem eigenen Handbuch.

Mein Teil Verantwortet und ausgeliefert.

Öffentlich-rechtlicher Rundfunk · Landesstudio

Zeitraum Mitte der 2010er. Rund 3.000 Zeilen.

Ein Werkzeug, das am Wahlsonntag funktionieren muss

Ein Werkzeug für den Wahlabend: Es holt die amtlichen Ergebnisse laufend über einen gesicherten Dateitransfer, wandelt sie um und schiebt sie ins Grafiksystem der Sendung. Zwischen den beiden Wahlgängen ist ein eigener Modus für die Stichwahl dazugekommen. Klein, unspektakulär und mit genau einem Termin, an dem es nicht ausfallen darf.

Profisport · Fußballverein

Zeitraum 2014 bis 2016. Rund 8.000 Zeilen.

Taktiktafel und Aufstellungsgrafiken im Browser

Zeichenwerkzeuge im Browser für Taktiktafeln und Aufstellungsgrafiken. Jedes Werkzeug ist ein eigenes Modul, dazu Bildexport und versionierte Releases. Ein Trainerstab macht die Grafiken damit selbst, statt sie zu bestellen.

Konsumgüter online · Geschenkhandel

Zeitraum November bis Dezember 2021, rund sechs Wochen von Start bis Launch.

Zweites Leinwandprodukt, in sechs Wochen ausgeliefert

Eine Webanwendung fürs Telefon, in der Kunden aus Anlassvorlagen für Geburt, Geburtstag, Kommunion, Hochzeit und Weihnachten ein Fotomosaik auf Leinwand bauen, bezahlen und damit eine fertige Druckdatei anstoßen. Die Bestellschnittstelle läuft in drei Stufen: Hochladen, Kasse, Storno. Weil die Bezahlung asynchron läuft, lässt sich die Zahlung nach einem fehlgeschlagenen Upload sauber zurücknehmen, statt eine Bestellung ohne Bild zu hinterlassen. Dahinter läuft ein eigener Renderdienst: er erzeugt die Druckdateien mit Schnittmarken und verständigt Kunde und Betreiber. Möglich war das in sechs Wochen, weil das Wissen aus dem Collagen-Projekt schon da war.

Mein Teil Mein Projekt und meine Verantwortung. Geleitet und ausgeliefert, den Code geschrieben hat ein anderer.

Welcher dieser Fälle Ihrem Haus am nächsten kommt, lässt sich in zwanzig Minuten am Telefon klären. Der Anfang ist so oder so derselbe: ein Tag, ein Ablauf, ein Ergebnis-Briefing mit Zahlen und Preisen.