Zum Inhalt springen

Erfahrungen

Die folgenden Erfahrungen habe ich während des letzten Jahrzehnts gesammelt. Um die Details zu sehen, klappen sie die entsprechende Station aus.

Entwicklung einer IoT Plattform für erneuerbare Energien im Heimautomatisierungs-Umfeld

Als Java Software Engineer (Lead) half ich beim Aufbau einer IoT Plattform mit und verantwortete technisch die Entwicklung und den Betrieb des Betriebssystems der eingebetteten Hardware für die Endkunden. Die Softwarekomponenten umfassten unter anderem das Firmware-Update, ein Service Framework, die Konfigurationsoberfläche, die Interprozesskommunikation und die Anbindung der technischen Schnittstellen wie RS485, CAN und anderer. Die Basis für die Software bildete Java als Programmiersprache in einem Android System. Um viele verschiedene Geräte von Heimautomatisierungs-Herstellern anzubinden, entwickelte ich Treiber innerhalb des Java-Stacks und stellte den Zugriff zwischen den Systemen her. Dabei kamen standardisierte Protokolle wie Modbus und HTTP, allerdings auch viele herstellerspezifische zum Einsatz.

Um die vielen Softwarekomponten (>50) immer aktuell zu halten und ein reibungsloses Deployment zu ermöglichen sorgte ich für die Umsetzung von Build-Pipelines mit Hilfe von Jenkins. Für den Aufbau einer einheitlichen Buildumgebung wurde eine eigenes Gradle-Plugin geschaffen, um auch anderen Entwicklern die Möglichkeit zur Umsetzung von Anforderungen auf der Plattform zu schaffen. Auch in Java erfolgte eine lokale Bilanzierung aller Energieströme der angeschlossenen Geräte um eine Basis für die Regelung eben dieser Geräte zu schaffen.

Um die Flotte von Geräten zu beaufsichtigen entwickelte ich mit Hilfe von Python ein Programm zur Aggregation der Metriken und zur schnellen Erkennung von Problemfällen im Feld. Diese wurden mit einem eigenen System gesammelt und mittels Grafana auf für Kunden einsehbaren Dashboards visualisiert. Die Sicherstellung erfolgreicher Over-the-Air Updates erfolgte ebenfalls mit Hilfe dieses Tools.

Im Rahmen dieser Aufgabe arbeitete ich mit vielen verschiedenen Stakeholdern und teamübergreifend mit vielen ganz unterschiedlichen Entwicklern zusammen an der Plattform. Ich war für die fachliche Anleitung meiner Kollegen der erste Ansprechpartner.

Verbesserung einer IoT Plattform für erneuerbare Energien im Heimautomatisierungs-Umfeld durch die Nutzung neuer Technologien und Standards

Um die Plattform weiter zu verbessern führten wir Standards ein. Das Ziel dabei war die Verbesserung der Stabilität und Entwicklungsgeschwindigkeit. Die Komponenten wurden auf Basis von openHAB für die Heimautomatisierung und OSGi als Grundlage für die Service-Schicht angepasst. Als Schnittstelle kam MQTT zum Einsatz. In diesem Zuge wurde auch neue Infrastruktur geschaffen um die Messdaten zu verarbeiten. Diese wurde mit Standard-Webtechnologien wie OpenAPI, Micronaut, Spring Boot und AngularJS umgesetzt.

Detektierung von Patienten anhand von Filterkriterien im medizinischen Sektor

Die Suche nach Patienten, welche bestimme Filterkriterien erfüllen und deshalb für eine Behandlung in Frage komme wurde von mir in der Rolle als Seniorentwickler zusammen mit einem Juniorentwickler umgesetzt. Auf der Basis von Python entwickelten wir die Anbindung an verschiedene Patientendatenmanagementsysteme mit herstellerspezifischen und standardisierten (z.B. HL7v2) Formaten. Um das System zu konfigurieren wurde ein Vue.js Web-Frontend geschaffen, welches die HTTP-Endpunkte auf der Basis von Flask ansprach. Benachrichtigungen über erfolgreich ermittelten Patienten wurden über die Mail-Infrastruktur abgewickelt.

Wir aktualisierten mit Hilfe von Deployment-Pipelines in Gitlab unsere Software regelmäßig unter Sicherstellung der Qualität mit Cypress End-to-End Test. Per Ansible lieferten wir die dockerisierte Software auf die Umgebungen aus. Darüber hinaus wurde für Endkunden eine komplette VM geschaffen, um diese im Umgang mit den docker Technologien zu entlasten und ein fertiges Image zu liefern.

Ermittlung der wirtschaftlichen Machbarkeit von klinischen Studien

In einem Team von drei Entwicklern übernahm ich die Rolle der Projektleitung und die des Senior Entwicklers. Ziel des Projekts war die Schaffung eines Systems um klinische Studien von Ihrer Durchführung auf ihre Wirtschaftlichkeit hin zu bewerten. Auf der Basis von Java wurde eine Applikation geschaffen, welche die bisherige, Excel-basierte Lösung ersetzen sollte. Zum Einsatz kam Micronaut als Java-Backend-Framework um die Microservice-basierte Architektur aufzubauen. Die Absicherung der Komponenten wurde durch JWT und Keycloak vorgenommen. Neben dem Einsatz von PostgreSQL als Datenhaltung mussten Fremdquellen importiert und konsolidiert werden.

Ein Hauptaugenmerk lag auf der Umsetzung nutzerfreundlicher Oberflächen mit Hilfe von AngularJS, welches durch das Material Design erweitert wurde. Die Stakeholder wurden in den agilen Softwareentwicklungsprozess mit einbezogen und durch regelmäßige Rollouts wurde das Feedback zeitnah eingesammelt. Diese Rollouts wurden mit Hilfe von Gitlab sichergestellt, der Qualität konnte jederzeit über Cypress End-To-End Tests vertraut werden. In der Infrastruktur kam docker, docker-compose und ansible zum Einsatz.

Finden Sie heraus, welche Fähigkeiten ich mitbringe.