Projekte

Ein Überblick über Projekte, an denen ich beruflich und privat gearbeitet habe.

Professionelle Projekte

Internationales Steuersystem

Weiterentwicklung eines Steuersystems für einen internationalen Konzern. Die teils sehr komplexen Steuerregeln werden in einem Entscheidungsbaum konfiguriert der dann bei der Berechnung der Steuern eines Kaufvorgangs durchlaufen wird.

Neben der Weiterentwicklung am Kern gab es einige technische Migrationen und auch das Open Source Projekt Squit ist dabei entstanden. Ich war in einigen Teilen an der Migration von Java zu Kotlin beteiligt und habe Schnittstellen entwickelt.

Spring BootKotlinGradle

Cloud für Parking und Zutrittssysteme

Neuentwicklung einer Cloud für Parking und Zutrittssysteme wie Freibäder. Herz der Platform ist ein MQTT-Broker der mit Geräten vor Ort (Parkautomaten, Schranken, ...) Daten austauscht. Über verschiedene Frontends kann damit dann interagiert werden. Betreiber der Anlagen können dynamisch konfigurieren (z.B. Tarife oder Logos), Statistiken einsehen und Stammdaten editieren. Endkunden verwenden ein eigenes Frontend auf das sie über die QR-Codes auf den Tickets kommen. Dort können Informationen eingesehen werden und auch Online-Payment via Stripe und PayPal ist möglich. Hinzu kommen noch verschiedene administrative Funktionen inklusive eines Provisionierungsprozesses für die Anlagen.

Die Anwendungen sind in Spring Boot Kotlin implementiert, die Frontends in Nuxt.js/Vue.js und alles ist in Kubernetes deployt. Größte Herausforderung war es dabei eine stabile Datenübertragung via MQTT zu schaffen auch bei hohem Nachrichtenvolumen. Als Datenbank haben wir Postgres eingesetzt und ein Multi-Tenancy Konzept auf Schema-Ebene umgesetzt für bessere Performance.

Spring BootKotlinNuxt.jsKubernetesMQTT

Software für die Abfallwirtschaft

Modernisierung und Neuentwicklungen für eine umfangreiche Software für die Abfallwirtschaft. Die Software ist führend und wird von vielen Landkreisen und Städten für die Planung der Leerungen, des Containerdienstes und dem Kundendienst genutzt. Die Software hat verschiedene Komponenten und ist sehr generisch gehalten um verschiedene kundenspezifische Use-Cases zu behandeln.

Als größte Neuerung haben wir ein neues Web-Frontend geschaffen, was die alte Windows Form UI ersetzten soll. Zusätzlich haben wir das Bürgerportal und die Bürgerapp neu entwickelt als separate Projekte. Beides sind Nuxt.js Anwendungen die über OData mit einer Schnittstelle kommunizieren. Ein weiteres Projekt ist die Hofwaage, über die Industriewaagen angeschlossen werden und deren Wägungen vom Wiegemeister verarbeitet werden. Zuletzt habe ich dann an der Einführung der Software in einer europäischen Hauptstadt gearbeitet.

.NETC#Nuxt.js

Open Source & Private Projekte

vue-i18n-lint

Mit der vue-i18n-lint CLI können die Übersetzungen von Vue.js Projekten überprüft werden. Vor allem in CI/CD oder als Pre-Commit-Hook ist das Tool hilfreich um fehlende und ungenutzte Übersetzungen zu finden. Auf Basis vom neuen OXC-Stack ist die CLI sehr schnell und schafft es ein mittelgroßes Projekt in unter einer Sekunde komplett zu verarbeiten. Es funktionieren Vue, JS und TS Dateien ohne weitere Konfiguration und verschiedene Dateiformate für Übersetzungen und Konfiguration werden unterstützt.

KotlinGradle

Android Geräte mitadb-wifi-connectverbinden

Androidgeräte können über die Android Debug Bridge (ADB) mit Computern verbunden werden. Ein lästiger Schritt ist dabei das Koppeln und Verbinden der Geräte. Das adb-wifi-connect Skript hilft dabei und stellt die Verbindung automatisch her. Dafür wird mDNS genutzt um entsprechende Geräte zu finden, über einen QR-Code zu koppeln und dann zu verbinden.

KotlinGradle

Test-ToolSquit

Squit ist ein API-Test-Executor, der als Gradle Plugin ins Projekt eingebunden wird. Tests und Suites werden auf Dateisystemebene angelegt und ausgeführt. Dabei gibt es umfassende Konfigurationsmöglichkeiten, die Möglichkeit Skripte vor und nach Tests auszuführen und SQL-Skripte auszuführen. Reports werden generiert direkt auf der Konsole, als XML-Datei nach dem JUnit-Format oder seit der neusten Version in einem schicken Vue.js HTML-Report.

KotlinGradle

Vokabeltrainerfür Android

Mein erstes größeres Open Source Projekt war ein kostenloser, nativer Vokabeltrainer für Android. Es gab mehrere Möglichkeiten zu lernen, Masken zur Verwaltung und einen Import/Export. Mittlerweile nicht mehr verfügbar (Android verlangt regelmäßige Updates um eine App im Store zu behalten) aber hatte über 200.000 Downloads im Play Store erreicht.

AndroidJava

Advent of Code20172018202020212022202320242025

In den meisten der letzten Jahre habe ich an Advent of Code teil genommen und einige der Rätsel in verschiedenen Programmiersprachen gelöst. Ziel war es dabei immer etwas zu lernen wie eine neue Programmiersprache oder neue Techniken.

RustGoTypeScriptKotlin