Die Dr. Klein Privatkunden ist ein Finanzdienstleiter zur Vermittlung von Baufinanzierungen, Versicherungen und Ratenkrediten für Endverbraucher. Sie verwendet Holakratie als Organisationswerkzeug. Ich war hier im Team "Plattform" tätig um eine Software Plattform zu entwickeln um die diversen Akteure der Immobilienbranche (Markler, Architekten, etc.) mit Endverbrauchern zusammenzubringen.. Bei meinem Eintritt war das Projekt noch ziemlich am Anfang, sodass ich die Gelegenheit hatte an fast allen Teilen mitzuarbeiten:
Neuentwicklung des Kundenportals
Das Kundenportal ist eine mit Angular entwickelten Micro-Frontend Anwendung die über eine RESTful API mit diversen, mit Spring Boot implementierten Microservicen kommuniziert. Die Services kommunizieren untereinander und mit dem Rest der Plattform über ein Kafka basiertes Event System.
Neben einem Bereich für die persönlichen Daten des Kunden und die Anzeige des aktuellen Beraters enthält das Kundenportal auch einen komplexen, mehrstufigen Wizard zur Selbstauskunft einer Baufinanzierung und einem Upload-Bereich für die Dokumente des Kunden. Baufinanzierungen benötigen eine Menge zusätzlicher Unterlagen; ein Prozess der bisher manuell vom Kundenberater gemanaged wurde. Das Kundenportal automatisiert nicht nur den direkten Upload in unsere Vertriebsplattform, sondern enthält auch eine automatische klassifizierung der hochgeladenen Dokumente. Diese Komponente vereinfacht und beschleunigt den Prozess sowohl für den Berater als auch für den Kunden.
Wartung von Login und Registrierung
Nach einiger Zeit übernahm ich die Wartung und Weiterentwicklung unseres zentralen Login- und Registrierungsdienstes und das API-Gateways. Alle Nutzer der Plattform verwenden den gleichen OAuth 2 basierten Login und alle internen und externen API calls werden vom API-Gateway authentifiziert. Alle unsere APIs sind öffentlich erreichbar, so das dies ein kritischer Punkt unserer Plattform ist.
Mitarbeiter bei der Architektur und DevOps
Ich war Teil der Architektur und DevOps Kreise. Ziel des Architektur-Kreises ist die kontinuierliche Verbesserung und optimierung unserer Softwarearchitektur in Zusammenarbeit mit den Entwicklern. Der Kreis ist außerdem die funktionale Einheit in der zentrale Architekturfragen entschieden wurden.
Migration unseres Event-Systems von RabbitMQ zu Kafka
Unsere Microservice-Architektur benutzte einen Event basierten Transfer von Zustand und Daten zwischen den Diensten und besonders zwischen Kontext-Grenzen. Initial wurden diese Events über RabbitMQ in einer publish/subscribe Konfiguration übertragen. Um die von uns gewünschte logisches Konsistenz zwischen der Events zu wahren, war spezielle Logik in jedem Empfänger nötig. Zwar war diese Logik in eine zentrale Bibliothek ausgelagert aber wir haben relativ schnell festgestellt, dass diese Lösung selbst bei nur minimalem Traffic nicht performant genug ist. Daher haben wir uns entschieden diesen Teil durch eine Lösung auf Basis von Apache Kafka auszutauschen. Meine Arbeit hierbei waren das initiale Prototyping, das Entwickeln der Client-Bibliothek für unsere Java Services und der Entwickler-Support beim rollout.
Wartung interne Bibliotheken
Zusätzlich zur Bibliothek zur Kafka-Integration verwendeten wir auch zwei Bibliotheken für wiederkehrende Aufgaben wie Rest-Calls, Authentifizierung, Tracing und Logging die ich während meiner Zeit bei Dr. Klein gewartet und bei Bedarf weiterentwickelt habe.
Erforschung neuer Technologien
Neben meiner anderen Arbeit war ich auch häufig damit beschäftigt neue Technologien und Ansatz zu untersuchen und sie anderen Teammitgliedern vorzustellen. Ich habe unter anderem Kotlin als zweite JVM-basierte Sprache eingeführt und ein Monitoring-Tool in Rust entwickelt. Um mir und anderen Entwicklern das Leben einfacher zu machen, habe ich außerdem einen Yeoman basierten Code-generator für den internen Gebrauch entwickelt.
Unterstützung der anderen Entwickler
Als Fullstack Entwickler und relativ langes Mitglied im Team "Plattform" kannte ich fast alle Teile zu einem gewissen Teil. Aus diesem Grund war ich häufig Ansprechpartner zu übergeordneten Fragen von anderen Entwicklern und wurde beim debugging häufig dazugezogen.
Ich hatte außerdem mehrere Holakratie-spezifische Rollen wie Facilitator (leitet Meetings) und Secretary (ist eine Art Schriftführer und Organisator).