About

Arbeit

Ich bin Softwareentwickler und arbeite derzeit bei der Smartsquare GmbH. Dort bin ich als “Full Stack” Entwickler unterwegs, beschäftige mich also mit nahezu allen technischen Aspekten der Projekte. Der Fokus liegt dabei auf Webanwendungen in der Cloud, häufig im Bereich IoT. Unten finden sich zwei konkrete Beispiele.

Beispiele

Phoenix Cloud

Ein Beispiel ist die Phoenix Cloud - eine komplette Platform für Park-, Camping- und Zutrittssysteme. Die Anwendung besteht aus mehreren Backend Services, Frontends sowohl im Desktop-Browser als auch mobil und dem Deployment mit Kubernetes. Parkautomaten und andere Zutrittssysteme werden über MQTT mit der Cloud verbunden und es gibt verschiedene Nutzeroberflächen für die jeweiligen Nutzergruppen. Betreiber können beispielsweise die Preisstrukturen ihre Anlagen konfigurieren, Servicemitarbeiter können technische Informationen einsehen und Endnutzer können online per QR-Code ihre Tickets bezahlen.

Technologien
  • Backend: Kotlin, Gradle, Spring, Vert.X, Node.js, MQTT (VerneMQ), TimescaleDB/PostgreSQL
  • Frontend: Vue.js, Nuxt.js, Vuetify, Socket.IO
  • DevOps: Kubernetes, Kustomize, Continous Deplyoment (Github Actions)
Bürger App

Ein weiteres Beispiel ist die Bürger App - eine Android und iOS App für Endnutzer. Hier haben wir nur den Teil des Frontends übernommen, ein Backend existierte bereits. Die App bietet veschiedene Features rund um die Abfallwirtschaft. Es können für Addressen in einer Kommune die Abfuhrtermine eingesehen werden. Sperrmüll kann bestellt werden und es gibt den “Containerfinder” - eine Funktion mit Karte wo beispielsweise nahe Glascontainer gefunden werden können. Die App ist als Skelett entwickelt, der Kunde c-trace GmbH hat also die Möglichkeit aus der Basis mehrere Apps für die jeweiligen Kunden aus den Kommunen zu generieren. Dafür gibt es im Projekt auch Infrastruktur und Skripte sodass mit einer Konfigurationsdatei und einem Skriptaufruf eine neue App generiert werden kann.

Technologien
  • Vue.js, Nuxt.js, Capacitor, Node.js, OData

Open Source

Ich bin ein großer Fan von Open Source und FOSS. Neben den Kundenprojekten arbeite ich gerne an quelloffenen Projekten welche auf Github zu finden sind. Im folgenden werden einige Beispiele vorgestellt an denen ich beteiligt war.

delete-old-packages

Eine Github Action mit der automatisiert Pakete aus der Github Package Registry gelöscht werden können. Das ist wichtig wenn Pakete automatisiert erstellt und veröffentlich werden. Alte, nicht mehr genutzte Pakte sollen gelöscht werden um Speicher und so Kosten zu sparen. Die Action wird aktiv in einem unserer Projekt genutzt und auch andere nutzen sie.

squit

Ein Tool für Dateisystembasierte automatisierte End-to-End-Tests von HTTP-Schnittstellen wie JSON, XML und SOAP. Tests werden im Dateisystem nach einer definierten Konvention abgelegt und werden dann nacheinander gegen die Schnittstelle geschickt. Im typischen Fall wird eine Anfrage und die erwartete Antwort abgelegt. Das Tool hat viele weitere Features wie einen hierachischen Konfigurationsmechanismus, Pre- und Post-Processing mit eigenem Code in verschiedenen möglichen Sprachen und Reporting in verschiedenen Formaten. Das Tool ist ein Gradle Plugin sodass es im Projekt direkt neben dem Code liegen kann und einfach in CI/CD Systemen aufgerufen werden kann. Da es ein Gradle Plugin ist, können auch die Caching-Funktionen und Optimierungen von Gradle verwendet werden.

mqtt-starter

Eine Bibliothek für Spring Boot zur Autokonfiguration von MQTT mit dem HiveMQ MQTT Java Client. Die bestehende Lösungen in die Richtung haben uns in unseren Projekten mehr Probleme gemacht als gelöst. Deshalb haben wir unseren eigenen Starter entwickelt der den MQTT Client von HiveMQ einbindet, korrekt konfiguriert und in der Anwendung nutzbar macht. Zusätzlich gibt es convenience Features - insbesondere die Annotationsbasierte Schreibweise von MQTT Konsumenten.