IT-Architekt / Software-Engineer für Java, Kafka, PHP im OnPremise & Cloud (AWS/GCP/Azure/Docker/Kubernetes), DevOps, Web, Security und Legacy.
Aktualisiert am 26.11.2024
Profil
Freiberufler / Selbstständiger
Remote-Arbeit
Verfügbar ab: 01.12.2024
Verfügbar zu: 100%
davon vor Ort: 100%
Java
Migration
IT-Architekt
AWS
Google Cloud
Kubernetes
Docker
Kafka
Go
Cloud
Security Konzepte
Schnittstellen-Entwicklung
Spring Boot
Angular
Scrum
Python
Grafana
Requirements Engineering
Solution Architect

Einsatzorte

Einsatzorte

Hamburg (+50km)
Deutschland, Schweiz, Österreich
möglich

Projekte

Projekte

3 Jahre 2 Monate
2021-10 - heute

Architektur-Migration (Java / Kafka / Security) SpringBoot Rest auf

IT-Architekt und -Software-Engineer
IT-Architekt und -Software-Engineer
IT-Architekt und -Software-Engineer in mehreren Teilprojekten:
  • Architektur-Konzeption und -Migration mehrerer verteilter Systeme von REST auf Apache Kafka für eine maximale Robustheit und Resilienz
    • Analyse und Bewertung unterschiedlicher Optionen der Architektur-Migration
    • ?Stakeholder?-Management für fachliche und technische Entscheidungen
  • Implementierung von Features im verteilten System (Java, Kafka, MongoDB, Angular)
  • Schaffung eines Monitoring-Systems mit fachlichen und technischen Metriken, Unterstützung der QS, aktive Begleitung von IT-Security-Prozessen
  • Aktive DevOps-Rolle z.B. bei Anpassungen von Kubernetes-Deployments oder GitLab-Migrationen, Unterstützung im produktiven Betrieb bis zur Durchführung von Releases.
priv. Unternehmen der Kritischen Sicherheits-Infrastruktur
3 Jahre 2 Monate
2021-10 - heute

Unterstützung des IT-Managements, DevOps

IT-Architekt und Senior-Entwickler Java 17 SpringBoot (Data/Security) Kubernetes ...
IT-Architekt und Senior-Entwickler

Projekt 1 (Fortsetzung Kunde: Kritische Sicherheits-Infrastruktur)

Eine in die Jahre gekommene C++-Windows-Anwendung wurde durch eine Web-Applikation auf Basis von AngularJS mit SpringBoot im Backend abgelöst. Ein Prototyp, der als MVP bereits vorlag, wurde im Rahmen meiner Tätigkeit in einem kleinen, neuen Team zur Produktionsreife hin entwickelt.

Neben einigen fachlichen Komponente wurde u.a. eine Benutzer-Authentifizierung nachgerüstet und eine umfassende Qualitätssicherung in den Bereichen Integrationstests, End2End-Tests(Cucumber, Gherkin) und IT-Security durchgeführt.

Organisatorisch waren einige Schwerpunkte zu setzen:

  • Klärung der Produktanforderungen für fehlende fachlichen Modul der Anwendung durch Interviews von Anwendern der Zielgruppe. Aufbauend auf den Gesprächen wurde eine technische Analyse durchgeführt, um die erkannten Anforderungen auf die Technik zu übertragen
  • Trennung unterschiedlicher Domänen über eine REST-Schnittstelle, gleichzeitig wurde so die Interoperabilität zu angrenzenden Systemen ermöglicht
  • Zur Abbildung der End2End-Browser-Tests wurde eine produktionsnahe Umgebung erzeugt; im ersten Schritt mit Docker-Compose und anschließend mit Kubernetes (Implementierung: Cucumber mit Gherkin).
  • Für die Benutzer-Authentifizierung wurden im Team verschiedene Lösungen evaluiert. Die Wahl fiel auf KeyCloak als erste unternehmensweite Lösung, so dass neben der Benutzer-Authentifizierung künftig auch die abgesicherte Kommunikation von WebServices und anderen (externen) Applikationen eingesetzt werden kann. Im Rahmen der Evaluierung wurde mit einem Proof of Concept das erfolgreiche Zusammenspiel zwischen Frontend, Backend-Services und KeyCloak bewiesen.


Projekt 2 ?Transparenz und Resilienz mittels Prometheus & Grafana

Schwerpunkt IT-Architektur und Management: Bei diesem Projekt geht es um die Weiterentwicklung und Stabilisierung sowie den Umbau eines größeren Software-Systems, das erstellt wurde, um Warn-Meldungen für die Kritische Sicherheits-Infrastruktur der BRD in Katastrophen-Szenarien verlässlich und sicher zuzustellen und zu verteilen. Die Verteilung der Daten erfolgt hierfür über eine selbst entwickelte Hard- und Software von Satelliten-Infrastruktur.

  • Analyse der IT-Architektur im Hinblick auf mögliche ?Bruchstellen?, die zu einem Ausfall des Systems, Engpässen in der Zustellung der Warn-Meldungen oder weiteren Problemen führen könnten
  • Erheben fachlicher und nicht-nachfachlicher Anforderungen, aktive Betriebs-Unterstützung
  • Entwicklung und Vorstellung einer Ziel-Architektur, die diese Bruchstellen beseitigen wird
  • Einbringen der Aufgaben und notwendigen Meilensteine in den Produkt-Entwicklungszyklus
  • Analyse der Software und des Entwicklungs-Prozesses hinsichtlich IT-Sicherheit m
  • Unterstützung der QS bei Last-Tests und Regressionen aus dem Entwicklungsprozess
  • Optimierung von Datenbank-Abfragen, die den Produktionsbetrieb gefährden könnten
    • Die Analysen wurden dem Management vorgestellt und zur Umsetzung im Entwicklungs-Team abgestimmt
    • Ein Teil-Ergebnis der Analyse ergab, dass der Betrieb der Software in vielerlei Hinsicht aktuell ?auf Sicht? erfolgt.
  • Ein umfangreiches fachliches und technisches Monitoring wurde deswegen vorgeschlagen und umgesetzt. Dies erfolgte mithilfe von SpringBoot Metrics, Prometheus, Grafana sowie Elastic und Kibana (ELK).
  • Weiterhin wurde die Durchführung von Stress- und Last-Tests durchgeführt, um die Reaktion der Software in außergewöhnlichen Situationen zu erkennen und ?Flaschenhälse? zu entfernen.
    • Weitergehende Tätigkeiten bestanden im Software-Refactoring nach ?Clean Code?, Erhöhung der Testabdeckung, Beheben von Bugs, Lösen von IT-Security-relevanten Themen, Migration aller Services auf Java 17 u.v.m.


Projekt 3 ? Konzeption und Feature-Entwicklung

  • Führende Weiterentwicklung der Software (siehe nächster Abschnitt, Projekt 2) zur Umsetzung eines Features, mit dessen Hilfe der Bund Aufgaben an die Bundesländer delegieren und überwachen kann. Der Implementierung des Features ging eine Product Discovery voraus, um die technische Realisierbarkeit, Spezifikation der neuen Schnittstellen sowie fachliche Workflows herauszuarbeiten.
  • Begleitung und aktive Lenkung des parallel laufenden Architektur-Umbaus, so dass eine laufende Entwicklung des Features ohne Regressionen möglich ist.
  • Durchführung von Releases und Unterstützung des Betriebs im Produktions-System


Projekt 4 ? Anbindung externer Daten-Lieferanten an Kafka-Endpoint

  • Ziel des Teilprojektes ist die Anbindung unterschiedlicher externer Daten-Lieferanten, z.B. zum Stand von Meeres- und FlussPegelständen und Unwetterwarnungen mit dem Ziel, daraus behördliche Warnungen über die existierende Infrastruktur an NINA, KatWarn oder CellBroadcast ausspielen zu können. Zu diesem Zweck werden mehrere Kafka-Cluster miteinander verbunden, so dass Daten aus dem ?Quell-Cluster? in ein eigenes Topic des Ziel-Clusters überführt, validiert und transformiert werden können.
  • Parallel dazu: Migration aller Services von SpringBoot 2.7 auf SpringBoot 3.2.

Java 17 SpringBoot (Data/Security) Kubernetes Jenkins/GitLab Elastic Grafana Hazelcast Kafka Erweiterung Tests (Cucumber Gherkin) Prometheus Code-Analyse IT-Architektur Kafka IT-Security Java 11+17 Oracle AngularJS 11 API-Design und -Implementierung Anbindung KeyCloak Sicherheitsanalysen Erweiterung Tests (Cucumber
Kritischen Sicherheits-Infrastruktur
1 Monat
2024-01 - 2024-01

AWS / MongoDB Projekt für meldepflichtige Finanz-Transaktionen

Python HTTP / WebScraping XSLT ...
  • Zur Auswertung großer Börsen-Transaktionen wird die Website der BaFin (Bundesanstaltung für Finanzdienstleistungen) stündlich ausgewertet.
  • Technische Grundlage ist Apache Nifi mit Python-Skripten, die die Website ?scrapen?, d.h. auswerten und die Daten nach verschiedenen Transformationen in eine MongoDB einspeisen.
  • Die nachfolgend abgebildeten Charts wurden mithilfe der MongoDB und verschiedener Aggregation-Queries erstellt und bilden die Top 30 Unternehmens-Käufe und -Verkäufe aus dem Jahr 2024 ab, sortiert nach Summe in EUR
  • Geplant ist ferner, weitere Abfragen zu erstellen und deren Inhalt über eine API (Schnittstelle) anzubieten, um daraus Charts und Diagramm mittels JavaScript dynamisch generieren zu lassen.
  • Weiterhin geplant ist eine Abindung an Microsoft Azure und einen Kafka-Endpoint, um Events über neue Transaktionen einzuspielen und Interessenten über diese Transaktionen zu benachrichtigen.
Python HTTP / WebScraping XSLT MongoDB AWS Cloud
1 Jahr
2023-01 - 2023-12

ETL-Projekt: Flugdaten

Python HTTP Apache NiFi ...

  • Ein privat durchgeführt Grüne-Wiese-Projekt zur Auswertung, Transformation und Visualisierung von Flügen des Hamburger Flughafens. 
  • Die Daten werden über eine HTTP-Schnittstelle mit einem Python-Skript in mehreren Schritten abgerufen, nach Parametern wie Geo-Koordinaten gefiltert und transformiert und anschließend in einen ETL-Prozess überführt.
  • Mithilfe des Apache NiFi-Frameworks (vergleichbar z.B. mit Talend) werden die verschiedenen Prozess-Schritte miteinander verbunden und das Gesamtsystem orchestriert.
  • Als Persistenz-Layer die eine cloud-basierte MongoDB, mit der die Daten nicht nur gespeichert, sondern auch aggregiert und visualisiert werden können

Python HTTP Apache NiFi MongoDB GIS
Airport Hamburg
3 Monate
2022-10 - 2022-12

GoLang / Workflow-Management zur Identitätsprüfung, Document Management

Senior IT-Entwickler Kotlin SpringBoot / GoLang Protocol Buffers ...
Senior IT-Entwickler
  • Im Zuge der Erweiterung seines KFZ-Leasing-Angebotes wurde in diesem Projekt mithilfe einer Workflow-Engine der gesamte Prozess entwickelt, mit dessen Hilfe Kunden Leasing-Angebote wahrnehmen können.
  • Der Prozess umfasst z.B. die Identifikation mittels IDNow, den Upload von Verifizierungs Dokumenten in einen geschützten Bereich der Azure-Cloud bishin zur gesetzes-konformen Archivierung der Dokumente in einem internen DocumentManagementSystem.
  • Der in Golang entwickelte Service wird aus Microservices innerhalb der Cloud angesprochen, die auf Kotlin und SpringBoot basieren und entsprechend angebunden wurden.
Kotlin SpringBoot / GoLang Protocol Buffers Temporal-Workflow Kafka Azure Cloud/Kubernetes
Finanz-Branche / KFZ-Leasing
Hamburg
1 Jahr 1 Monat
2020-09 - 2021-09

Kotlin/Cloud/AWS (OTTO GmbH), Terrafom, reactive Java

Senior Software Entwickler Kotlin Java 17 AWS ...
Senior Software Entwickler
  • Senior Software Entwickler Kotlin/Cloud/AWS für Deutschlands führenden eCommerce-Anbieter mit Themen rund um den Benutzer-Account (Login, Session-Handling, Password-Reset, Konto-Migration)
Kotlin Java 17 AWS E-Commerce Datenmigration
eCommerce: Internationaler Konzern
1 Jahr 1 Monat
2020-09 - 2021-09

Refactoring eines Monolithen von 2015

Senior Fullstack-Entwickler Kotlin SpringBoot 2 / WebFlux ThymeLeaf ...
Senior Fullstack-Entwickler
  • Der Kunde, früher bekannt für seine Print-Kataloge, ist einer der größten und etablierten eCommerce-Player auf dem deutschen Markt. In den vergangenen Jahren wurde ein erheblicher Teil der IT in die Cloud verlagert und dabei ein enormer Wandel vollzogen ? sowohl im Hinblick auf die Organisationsstruktur als auch auf die Neugestaltung der gesamten IT-Architektur. 
  • Ziel des Projektes ist das Refactoring eines Monolithen von 2015 aus dem Fachbereich der Benutzerkonto-Verwaltung hin zu einem Verbund von schlanken MicroServices innerhalb der AWS-Cloud. 
  • Notwendig ist diese Maßnahme einerseits vor dem Hintergrund steigender Benutzerzahlen, denen der monolithische Service wegen mangelnder Skalierbarkeit bei Lastspitzen nicht mehr gewachsen ist. Zum Zweiten ist die veraltete, starre Architektur nicht flexibel genug, um den Wandel des Kunden hin zu einem führenden Anbieter als eCommerce-Marktplatz zu gestatten. Das Projekt wird mit Kotlin umgesetzt, ganz ohne Java, zusätzlich noch mit der sog. Reactive-Erweiterung. 
  • Die Services werden mithilfe der GitHub-Pipeline gebaut und auf AWS als EC2-Instanzen publiziert. ?Infrastructure as Code? wird mithilfe von AWS-CloudFormation gelebt. So kann eine komplette Cloud-Infrastruktur vollautomatisiert auf Knopfdruck neu erstellt werden. Das Projekt im 8-köpfigen Entwickler-Team wird agil und test-getrieben durchgeführt. 
  • Es wird stets im Pair gearbeitet; eine Arbeitsweise, die sich im ganzen Unternehmen etabliert und Qualitätsmaßstäbe gesetzt hat. Mit der Anpassung der Benutzerverwaltung einher gehen UseCases wie der Login, das Session-Management, PasswortRücksetzung, Password-Validierung nach verschiedenen Regeln, Änderung persönlicher Daten.
  • Dies erfordert einen besonders sorgfältigen Umgang mit benutzerbezogenen Daten und auch die Berücksichtigung nichtfunktionaler Anforderungen aus dem Bereich IT-Security. Als Beispiel hierfür seien der Schutz vor CSRF und Rate-Limiting genannt. 
  • Letzteres wird z.B. benötigt, um frühzeitig Betrugsversuche zu verhindern, etwa durch Brutforce-Angriffe auf den Benutzer-Login, was Identitäts-Diebstahl ermöglichen kann.
Kotlin SpringBoot 2 / WebFlux ThymeLeaf TypeScript GitHub MongoDB Redis AWS Git Gradle AWS-Dienste (Auswahl): EC2 SNS SQS Lambda SSM CloudFormation
OTTO GmbH & Co.KG
Hamburg
6 Monate
2020-04 - 2020-09

Teilmodul der Elektronischen Patienten-Akte

Senior Software Entwickler
Senior Software Entwickler
  • Senior Software Entwickler Java und Kotlin in einem agilen Team im Bereich Versicherungen für ein Teilmodul der Elektronischen Patienten-Akte
Insurance and Public Health
6 Monate
2020-04 - 2020-09

MicroServices und das Hardware-Security-Modul

Senior Java-Entwickler Java 11 Kotlin DropWizard ...
Senior Java-Entwickler

  • Senior Java-Entwickler für MicroServices und das Hardware-Security-Modul (HSM) im Cluster z.B. für digitale Signaturen, Ver- und Entschlüsselung mittels RSA und CMS
  • Als übergeordneter Auftraggeber fungiert in diesem Projekt das Bundesgesundheitsministerium, das die Digitalisierung im Gesundheitswesen vorantreiben möchte. Konkrete UseCases sind dabei die elektronische Patientenakte sowie die elektronische Arbeitsunfähigkeitsbescheinigung. 
  • Damit diese fachlichen Anforderungen bedient werden können, wird im Rahmen dieses Projekts die technische Infrastruktur entwickelt, die ab dem Jahr 2021 von Arztpraxen und Krankenversicherungen genutzt werden kann.
  • Aus naheliegenden Gründen werden Datenschutz und Sicherheit hinsichtlich aller zu kommunizierenden Daten besonders groß geschrieben. Dadurch entfällt ein Großteil der Implementierungsaufgaben auf die Anwendung kryptographischer Methoden (wiez.B. Verschlüsselung, Entschlüsselung, Zertifikatsprüfung, digitale Signaturen erstellen und prüfen), das Erfüllen von Spezifikationen und eine ausgiebige Test-Umgebung, um den Prüf- und Test-Vorgaben des Auftraggebers gerecht zu werden. Die technischen Schnittstellen werden größtenteils (aufgrund technischer Rahmenbedingungen) über SOAP abgebildet. Die Business-Logik wird dabei in einzelnen Java-Modulen vorgenommen, die als (Micro)Services im Cluster veröffentlicht werden. 
  • Das Zusammenspiel der Schnittstellen-Implementierung mit der HSM und weiteren Fach-Modulen wird über UnitTests, Integrationstests und End2End-Tests abgedeckt. Diese werden in einem dynamisch erstellen Namespace eines KubernetesClusters automatisiert ausgeführt. Ein HSM-Simulator stellt dabei eine sehr produktionsnahe Umgebung für die Verschlüsselungsverfahren zur Verfügung. Die Qualitätssicherung erfolgt statisch durch SonarQube, aber auch durch ein hohes Maß an Pairprogramming und einem Entwicklungs-Workflow, bei dem Code-Änderungen nur nach Code-Reviews (Pull-Requests) stattfinden.


Projekt 2

  • Ein bekannter Prozess im digitalisierten Versicherungswesen ist das Einreichen von Formularen und Dateien durch den Kunden ? sei es zur Antragstellung, bei Schadensfällen oder beim Einscannen von Rechnungen. Für diesen Anwendungsfall gibt es bereits einen Service zur Annahme der Kundendokumente, die vor der eigentlichen Verarbeitung durch einen Virenscanner geschleust werden. 
  • In diesem Zusammenhang fällt der Performance-Test des Virenscanners auf in meine Verantwortung. Zum Einsatz kommt hierfür das in Scala geschriebene Tool ?Gatling?, mit dessen Hilfe Performance-Test-Szenarios für HTTP-API geschrieben werden können. Wesentliche Stellschrauben für die Tests sind hierbei: Parallele Benutzer, Anzahl und Größe der übermittelten Dateien, Ressourcen der verbundenen Services im Cluster. 
  • Die Tests wurden unter verschiedenen Parametern und Konstellationen durchgeführt und graphisch visualisiert.

Java 11 Kotlin DropWizard Gradle IT-Security / Hardware-Security und Kryptographie Apache CXF Cucumber/Gherkin Jenkins ArgoCD Kubernetes IBM BlueMix
IT-Joint-Venture von Versicherungen
Hamburg
5 Monate
2019-12 - 2020-04

Migration des Flugdaten-Projekts in die Google Cloud

Spring Boot REST Docker GCP: Kubernetes GKE ...

Migration einer monolithischen Java-Anwendung zur Erfassung und Auswertung von Flug- und Wetterdaten hin zu einer cloudnativen, MicroService-basierten Applikation im Google Kubernetes-Cluster (GKE). Die ursprüngliche Anwendung aus dem Jahr 2016 (siehe unten) auf Basis von Spring Boot wird hierfür nach dem Ansatz von DomainDriven-Design in fachlich getrennte MicroServices zerlegt. Entwickelt werden u.a. folgende Services:

  • Service zum periodischen Abrufen, Filtern und Persistieren von Flug-Daten mit API zum Lesen von Daten
    • Vor-Klassifizierung von Flügen nach Start und Landung für den Airport Hamburg
    • Ermittlung der gewählten An-/Abflug-Piste
  • Service zum periodischen Abrufen, Persistieren und Liefern von Wetter-Daten
    • Kalkulation verschiedener Wind-Parameter für Hamburgs vier Pisten
  • Service zur Bereitstellung einer exponierten REST-API für alle Domain-Daten
  • Service für Benutzer-Management
  • Batch-Job zur Auswertung von Benutzer-bezogenen Statistiken
  • Service zum Versenden täglicher E-Mail-Reports mit jenen Statistiken
  • Service für Alerting-Funktion von Flug-Ereignissen


Als besonders ressourcen-schonend und effizient hat sich die Entwicklung einzelner MicroServices mit der Programmiersprache GoLang erwiesen

  • Ein Container ist lediglich 3MB groß und benötigt nicht mal 6MB Arbeitsspeicher. Im Vergleich dazu brachte derselbe Service mit einem schlanken OpenJDK11/SpringBoot-Container 220MB bzw. 300MB auf die Waage ? mehr als das 50-fache ? und dieses je Cluster-Knoten. Dies ist nicht nur technisch bemerkenswert, sondern auch ein großer Kostenvorteil.
  • Die Anwendung wird nach und nach erweitert bzw. auf die neue Architektur umgestellt.
  • Neben den oben erwähnten Services soll ein Publish/Subscribe-Ansatz auf Basis von ?Google PubSub? zum Einsatz kommen, um die Kommunikation zwischen einzelnen Services voneinander zu entkoppeln und auf bestimmte Flugereignisse gezielt reagieren zu können, etwa zur Benachrichtigung von Nutzern bei Überflügen in einem bestimmten Gebiet.

Spring Boot REST Docker GCP: Kubernetes GKE Google Compute Engine/MariaDB PubSub Go Kubernetes
1 Jahr 6 Monate
2018-09 - 2020-02

Bereich ?Inkasso? mit Java und GraphQL

Senior Software Entwickler
Senior Software Entwickler
  • Senior Software Entwickler für den Aufbau eines modernen B2B-Portals im Bereich ?Inkasso? mit Java und GraphQL sowie Migration der Anwendung hin zu Kubernetes.
Finance: Internationales Finanz-Unternehmen
1 Jahr 6 Monate
2018-09 - 2020-02

Unterstützung IT-Architektur, Coaching neuer Entwickler

Senior Java Developer Spring Boot 2 mit Java 11 JPA Spring Security ...
Senior Java Developer

  • In diesem Projekt geht es um die Weiterentwicklung und das Refactoring einer B2B-Web Applikation, die im Rahmen einer einjährigen Entwicklungsphase als MVP für einen bestimmten Kunden entwickelt wurde, hin zu einem mandantenfähigen System. Die B2B-Anwendung erlaubt es Nutzern der Plattform, Klärungsfälle zu bestehenden Inkasso Forderungen erstellen, kommunizieren und mit dem Auftraggeber einvernehmlich klären zu können. 
  • Ein zentraler Bestandteil ist die Nutzung des unternehmens-internen Archivs, für dessen Anbindung und Entwicklung der API ich unter anderem verantwortlich zeichnete. 
  • Die Applikation wurde federführend durch mich auf Kubernetes umgestellt.
  • Weiterhin fiel die Schulung neuer interner Mitarbeiter an zwei Unternehmens-Standorten in meine Verantwortung. Nach dem Prinzip ?You build it, you run it? erfolgte die Umstellung der Applikation auf ein von mir angepasstes, standardisiertes Verfahren im Rahmen einer Jenkins Build-Pipeline. Diese ermöglicht das vollautomatische Bauen und Testen der Artefakte sowie das anschließende Deployment in den Kubernetes-Cluster. Dadurch verkürzten sich die Entwicklungs-Zyklen; ferner ermöglicht ein Versions-Wechsel im Produktionsbetrieb ein ?Zero-Downtime-Deployment? dank des Rolling-Update-Mechanismus. 
  • Eine Besonderheit im Projekt stellt die Nutzung von GraphQL dar, womit nicht nur eine dedizierte Schnittstelle zwischen Front- und Backend beschrieben wird: Es gestattet daneben auch einen sehr effizienten und strukturierten Datenaustausch und erlaubt auch die Veränderung von Ressourcen. Weiterhin wird die GraphQL-Schnittstelle beim Datenaustausch mit den kunden-internen InkassoServern verwendet, welche einen Großteil der Daten und Berechtigungsinformationen zu Forderungen bereitstellen. 
  • Eine besondere Herausforderung stellte dabei die Verfügbarkeit der existierenden Umgebungssysteme wie den Inkassosystemen dar: Hier halfen Mocks in der Entwicklung sowie Consumer Driven Contracts beim Monitoring der verschiedenen Stages weiter. 
  • Zur Ausführung der Unit- und Integrations-Tests wurde eine API entwickelt, um Test-Daten zu generieren und Seiteneffekt-freie Tests zu gestatten. 
  • Als positive Besonderheit ist die stets hohe ?team-immanente? Messlatte für die Code-Qualität und Test-Abdeckung zu nennen. Neben einer agilen Entwicklung, teilweise auch im Pair Programming, führt das Vorgehen mit Pull-Requests gestützt durch statische Code-Analysen mit SonarQube zu einem verständlichen und robusteren Code und Produkt.

Spring Boot 2 mit Java 11 JPA Spring Security GraphQL REST React Nginx Oracle Docker Jenkins Grafana Rancher und Kubernetes
int. Finanz-Unternehmen
Hamburg
1 Jahr
2017-10 - 2018-09

Entwicklung einer Webapplikationen

Senior Fullstack-Entwickler
Senior Fullstack-Entwickler
  • Senior Fullstack-Entwickler für die Entwicklung einer Webapplikationen für Logistik Prozesse in einem OpenShiftCluster auf Basis von SpringBoot und AngularJS.
Logistics: Internationale Spedition
1 Jahr
2017-10 - 2018-09

Ausgangspunkt war eine Legacy-Anwendung

Lead-Entwickler MicroServices in OpenShift/Kubernetes mit Java 8 Spring Boot PostgreSQL; Schnittstellen-Design mittels SwaggerAPI (REST) ...
Lead-Entwickler
  • Ausgangspunkt war eine Legacy-Anwendung, die binnen drei Monaten durch mich auf eine moderne (micro-)Service-basierte Architektur gehoben wurde. Anschließend fand eine Weiterentwicklung statt.
  • Inhaltlich handelt es sich um eine Web-Anwendung zur Verwaltung von unternehmsinternen Prozessen, die der Abwicklung der Logistik-Dienstleistungen des Kunden dienen. Die AngularJS-basierte Web-Anwendung ermöglicht neben einer Suche über ein vielfältiges Such-Formular auch die Pflege von Prozess-Definitionen für interne Mitarbeiter. 
  • Kern des Backends und Bestandteil der Entwicklung ist eine REST-API, die neben der Benutzer-Authentifizierung und den üblichen ?CRUD?-Funktionen auch CSV-Exporte der aktuellen Ansicht, Benutzer/Berechtigungs-Management und die Anbindung eines DMS zum Upload/Download von Dokumenten bietet. 
  • Weitere MicroServices sorgen für eine Anbindung und Daten-Synchronisation mit JIRA, dem Abgleich von statistischen Laufzeitdaten der Prozess-Daten und ein umfangreiches Kontakt-Management. 
  • Alle Services laufen im OpenShift-Cluster. Das Monitoring der ?Vital-Daten? der Services wie z.B. die Anzahl fehlerhafter APIRequests und Antwortzeiten je Endpunkt, Speicher, CPU-Last usw. findet per JMX statt und wird in Grafana visualisiert. 
  • Die MicroServices werden mithilfe von Jenkins-Jobs per Gradle gebaut, in einen Docker-Container gepackt und an die DockerRegistry des Clusters gesendet. 
  • Kubernetes führt anschließend selbständig ein Rolling Update im OpenShift-Cluster aus. Insgesamt wurden für die Web-Applikation fünf MicroServices entwickelt. 
  • Nach der Entwicklung fiel die Schulung zweier interner Mitarbeiter in meinen Verantwortungsbereich, um die langfristige Weiterentwicklung des Produkts im Hause des Kunden gewährleisten zu können.
MicroServices in OpenShift/Kubernetes mit Java 8 Spring Boot PostgreSQL; Schnittstellen-Design mittels SwaggerAPI (REST) Gradle Docker. Im Frontend: AngularJS6 Nginx
internationale Spedition
Hamburg
3 Monate
2017-07 - 2017-09

verschiedene Backends zur Verwaltung der Konzern-Distributionen

Senior Software Entwickler
Senior Software Entwickler
  • Senior Software Entwickler für verschiedene Backends zur Verwaltung der Konzern Distributionen in der AWSCloud mit ECS und SpringBoot.
IT einergroßen Lebensmittel-Genossenschaft

Aus- und Weiterbildung

Aus- und Weiterbildung

  • B. Sc. Informatik


Zertifikate

  • Cert. Scrum-Master
  • Cert. Product Owner

Kompetenzen

Kompetenzen

Top-Skills

Java Migration IT-Architekt AWS Google Cloud Kubernetes Docker Kafka Go Cloud Security Konzepte Schnittstellen-Entwicklung Spring Boot Angular Scrum Python Grafana Requirements Engineering Solution Architect

Produkte / Standards / Erfahrungen / Methoden

Das Profil in Kürze

  • Über 12 Jahre Berufserfahrung als Software-Engineer mit breiter Aufstellung (?T-Shape?-Mentalität) und Schwerpunkt-Bereichen Java, IT-Architektur, Daten-Migration und -Integration, API-Design, MicroService- und Cloud-Entwicklung, Web-Technologien sowie Frontend
  • Team-Player: Wissen und Motivation teilen, zusammen Lösungen erarbeiten, stets lernen
  • Das ?große Ganze? sehen und gemeinsam Ziele erarbeiten


Hard Skills

Cloud:

  • AWS
  • GCP
  • Docker
  • Kubernetes / kubectl
  • OpenShift


Architektur:

  • Konzeption
  • Migration
  • z.B. Umstellung von REST auf Apache Kafka


API:

  • REST/JSON
  • GraphQL
  • SOAP
  • XML
  • gRPC


DevOps:

  • GitLab
  • GitHub
  • ArgoCD
  • K8s
  • Kustomize
  • Maven
  • Gradle
  • Jib


Frontend

  • TypeScript
  • HTML5
  • CSS
  • Angular


Quality:

  • TDD
  • CleanCode
  • SonarQube
  • Selenium
  • BDD mit Cucumber & Gherkin


IT-Security:

  • OWASP-Dependency-Check
  • Trivy
  • RenovateBot/DependaBot?


Monitoring

  • Elastic
  • Prometheus
  • Grafana


Soft Skills

  • Kommunikativ, offen für Neues, mit Fokus aufs Produkt bzw. die Produkt-Vision
  • Agile Methoden: Kanban und Scrum
  • Übernahme von Verantwortung 

Programmiersprachen

Java 11-21+
Experte
Kotlin
Fortgeschritten
Spring (Boot, MVC, Security, Data)
Experte
JPA
Fortgeschritten
Groovy
Fortgeschritten
GoLang
Fortgeschritten
Python
Fortgeschritten
PHP
Fortgeschritten

Datenbanken

MongoDB
Experte
Oracle
Fortgeschritten
Postgres
Fortgeschritten
MariaDB (MySQL)
Fortgeschritten
Solr

Branchen

Branchen

- kritische Sicherheitsinfrastruktur

- eCommerce

- Finanzen

Einsatzorte

Einsatzorte

Hamburg (+50km)
Deutschland, Schweiz, Österreich
möglich

Projekte

Projekte

3 Jahre 2 Monate
2021-10 - heute

Architektur-Migration (Java / Kafka / Security) SpringBoot Rest auf

IT-Architekt und -Software-Engineer
IT-Architekt und -Software-Engineer
IT-Architekt und -Software-Engineer in mehreren Teilprojekten:
  • Architektur-Konzeption und -Migration mehrerer verteilter Systeme von REST auf Apache Kafka für eine maximale Robustheit und Resilienz
    • Analyse und Bewertung unterschiedlicher Optionen der Architektur-Migration
    • ?Stakeholder?-Management für fachliche und technische Entscheidungen
  • Implementierung von Features im verteilten System (Java, Kafka, MongoDB, Angular)
  • Schaffung eines Monitoring-Systems mit fachlichen und technischen Metriken, Unterstützung der QS, aktive Begleitung von IT-Security-Prozessen
  • Aktive DevOps-Rolle z.B. bei Anpassungen von Kubernetes-Deployments oder GitLab-Migrationen, Unterstützung im produktiven Betrieb bis zur Durchführung von Releases.
priv. Unternehmen der Kritischen Sicherheits-Infrastruktur
3 Jahre 2 Monate
2021-10 - heute

Unterstützung des IT-Managements, DevOps

IT-Architekt und Senior-Entwickler Java 17 SpringBoot (Data/Security) Kubernetes ...
IT-Architekt und Senior-Entwickler

Projekt 1 (Fortsetzung Kunde: Kritische Sicherheits-Infrastruktur)

Eine in die Jahre gekommene C++-Windows-Anwendung wurde durch eine Web-Applikation auf Basis von AngularJS mit SpringBoot im Backend abgelöst. Ein Prototyp, der als MVP bereits vorlag, wurde im Rahmen meiner Tätigkeit in einem kleinen, neuen Team zur Produktionsreife hin entwickelt.

Neben einigen fachlichen Komponente wurde u.a. eine Benutzer-Authentifizierung nachgerüstet und eine umfassende Qualitätssicherung in den Bereichen Integrationstests, End2End-Tests(Cucumber, Gherkin) und IT-Security durchgeführt.

Organisatorisch waren einige Schwerpunkte zu setzen:

  • Klärung der Produktanforderungen für fehlende fachlichen Modul der Anwendung durch Interviews von Anwendern der Zielgruppe. Aufbauend auf den Gesprächen wurde eine technische Analyse durchgeführt, um die erkannten Anforderungen auf die Technik zu übertragen
  • Trennung unterschiedlicher Domänen über eine REST-Schnittstelle, gleichzeitig wurde so die Interoperabilität zu angrenzenden Systemen ermöglicht
  • Zur Abbildung der End2End-Browser-Tests wurde eine produktionsnahe Umgebung erzeugt; im ersten Schritt mit Docker-Compose und anschließend mit Kubernetes (Implementierung: Cucumber mit Gherkin).
  • Für die Benutzer-Authentifizierung wurden im Team verschiedene Lösungen evaluiert. Die Wahl fiel auf KeyCloak als erste unternehmensweite Lösung, so dass neben der Benutzer-Authentifizierung künftig auch die abgesicherte Kommunikation von WebServices und anderen (externen) Applikationen eingesetzt werden kann. Im Rahmen der Evaluierung wurde mit einem Proof of Concept das erfolgreiche Zusammenspiel zwischen Frontend, Backend-Services und KeyCloak bewiesen.


Projekt 2 ?Transparenz und Resilienz mittels Prometheus & Grafana

Schwerpunkt IT-Architektur und Management: Bei diesem Projekt geht es um die Weiterentwicklung und Stabilisierung sowie den Umbau eines größeren Software-Systems, das erstellt wurde, um Warn-Meldungen für die Kritische Sicherheits-Infrastruktur der BRD in Katastrophen-Szenarien verlässlich und sicher zuzustellen und zu verteilen. Die Verteilung der Daten erfolgt hierfür über eine selbst entwickelte Hard- und Software von Satelliten-Infrastruktur.

  • Analyse der IT-Architektur im Hinblick auf mögliche ?Bruchstellen?, die zu einem Ausfall des Systems, Engpässen in der Zustellung der Warn-Meldungen oder weiteren Problemen führen könnten
  • Erheben fachlicher und nicht-nachfachlicher Anforderungen, aktive Betriebs-Unterstützung
  • Entwicklung und Vorstellung einer Ziel-Architektur, die diese Bruchstellen beseitigen wird
  • Einbringen der Aufgaben und notwendigen Meilensteine in den Produkt-Entwicklungszyklus
  • Analyse der Software und des Entwicklungs-Prozesses hinsichtlich IT-Sicherheit m
  • Unterstützung der QS bei Last-Tests und Regressionen aus dem Entwicklungsprozess
  • Optimierung von Datenbank-Abfragen, die den Produktionsbetrieb gefährden könnten
    • Die Analysen wurden dem Management vorgestellt und zur Umsetzung im Entwicklungs-Team abgestimmt
    • Ein Teil-Ergebnis der Analyse ergab, dass der Betrieb der Software in vielerlei Hinsicht aktuell ?auf Sicht? erfolgt.
  • Ein umfangreiches fachliches und technisches Monitoring wurde deswegen vorgeschlagen und umgesetzt. Dies erfolgte mithilfe von SpringBoot Metrics, Prometheus, Grafana sowie Elastic und Kibana (ELK).
  • Weiterhin wurde die Durchführung von Stress- und Last-Tests durchgeführt, um die Reaktion der Software in außergewöhnlichen Situationen zu erkennen und ?Flaschenhälse? zu entfernen.
    • Weitergehende Tätigkeiten bestanden im Software-Refactoring nach ?Clean Code?, Erhöhung der Testabdeckung, Beheben von Bugs, Lösen von IT-Security-relevanten Themen, Migration aller Services auf Java 17 u.v.m.


Projekt 3 ? Konzeption und Feature-Entwicklung

  • Führende Weiterentwicklung der Software (siehe nächster Abschnitt, Projekt 2) zur Umsetzung eines Features, mit dessen Hilfe der Bund Aufgaben an die Bundesländer delegieren und überwachen kann. Der Implementierung des Features ging eine Product Discovery voraus, um die technische Realisierbarkeit, Spezifikation der neuen Schnittstellen sowie fachliche Workflows herauszuarbeiten.
  • Begleitung und aktive Lenkung des parallel laufenden Architektur-Umbaus, so dass eine laufende Entwicklung des Features ohne Regressionen möglich ist.
  • Durchführung von Releases und Unterstützung des Betriebs im Produktions-System


Projekt 4 ? Anbindung externer Daten-Lieferanten an Kafka-Endpoint

  • Ziel des Teilprojektes ist die Anbindung unterschiedlicher externer Daten-Lieferanten, z.B. zum Stand von Meeres- und FlussPegelständen und Unwetterwarnungen mit dem Ziel, daraus behördliche Warnungen über die existierende Infrastruktur an NINA, KatWarn oder CellBroadcast ausspielen zu können. Zu diesem Zweck werden mehrere Kafka-Cluster miteinander verbunden, so dass Daten aus dem ?Quell-Cluster? in ein eigenes Topic des Ziel-Clusters überführt, validiert und transformiert werden können.
  • Parallel dazu: Migration aller Services von SpringBoot 2.7 auf SpringBoot 3.2.

Java 17 SpringBoot (Data/Security) Kubernetes Jenkins/GitLab Elastic Grafana Hazelcast Kafka Erweiterung Tests (Cucumber Gherkin) Prometheus Code-Analyse IT-Architektur Kafka IT-Security Java 11+17 Oracle AngularJS 11 API-Design und -Implementierung Anbindung KeyCloak Sicherheitsanalysen Erweiterung Tests (Cucumber
Kritischen Sicherheits-Infrastruktur
1 Monat
2024-01 - 2024-01

AWS / MongoDB Projekt für meldepflichtige Finanz-Transaktionen

Python HTTP / WebScraping XSLT ...
  • Zur Auswertung großer Börsen-Transaktionen wird die Website der BaFin (Bundesanstaltung für Finanzdienstleistungen) stündlich ausgewertet.
  • Technische Grundlage ist Apache Nifi mit Python-Skripten, die die Website ?scrapen?, d.h. auswerten und die Daten nach verschiedenen Transformationen in eine MongoDB einspeisen.
  • Die nachfolgend abgebildeten Charts wurden mithilfe der MongoDB und verschiedener Aggregation-Queries erstellt und bilden die Top 30 Unternehmens-Käufe und -Verkäufe aus dem Jahr 2024 ab, sortiert nach Summe in EUR
  • Geplant ist ferner, weitere Abfragen zu erstellen und deren Inhalt über eine API (Schnittstelle) anzubieten, um daraus Charts und Diagramm mittels JavaScript dynamisch generieren zu lassen.
  • Weiterhin geplant ist eine Abindung an Microsoft Azure und einen Kafka-Endpoint, um Events über neue Transaktionen einzuspielen und Interessenten über diese Transaktionen zu benachrichtigen.
Python HTTP / WebScraping XSLT MongoDB AWS Cloud
1 Jahr
2023-01 - 2023-12

ETL-Projekt: Flugdaten

Python HTTP Apache NiFi ...

  • Ein privat durchgeführt Grüne-Wiese-Projekt zur Auswertung, Transformation und Visualisierung von Flügen des Hamburger Flughafens. 
  • Die Daten werden über eine HTTP-Schnittstelle mit einem Python-Skript in mehreren Schritten abgerufen, nach Parametern wie Geo-Koordinaten gefiltert und transformiert und anschließend in einen ETL-Prozess überführt.
  • Mithilfe des Apache NiFi-Frameworks (vergleichbar z.B. mit Talend) werden die verschiedenen Prozess-Schritte miteinander verbunden und das Gesamtsystem orchestriert.
  • Als Persistenz-Layer die eine cloud-basierte MongoDB, mit der die Daten nicht nur gespeichert, sondern auch aggregiert und visualisiert werden können

Python HTTP Apache NiFi MongoDB GIS
Airport Hamburg
3 Monate
2022-10 - 2022-12

GoLang / Workflow-Management zur Identitätsprüfung, Document Management

Senior IT-Entwickler Kotlin SpringBoot / GoLang Protocol Buffers ...
Senior IT-Entwickler
  • Im Zuge der Erweiterung seines KFZ-Leasing-Angebotes wurde in diesem Projekt mithilfe einer Workflow-Engine der gesamte Prozess entwickelt, mit dessen Hilfe Kunden Leasing-Angebote wahrnehmen können.
  • Der Prozess umfasst z.B. die Identifikation mittels IDNow, den Upload von Verifizierungs Dokumenten in einen geschützten Bereich der Azure-Cloud bishin zur gesetzes-konformen Archivierung der Dokumente in einem internen DocumentManagementSystem.
  • Der in Golang entwickelte Service wird aus Microservices innerhalb der Cloud angesprochen, die auf Kotlin und SpringBoot basieren und entsprechend angebunden wurden.
Kotlin SpringBoot / GoLang Protocol Buffers Temporal-Workflow Kafka Azure Cloud/Kubernetes
Finanz-Branche / KFZ-Leasing
Hamburg
1 Jahr 1 Monat
2020-09 - 2021-09

Kotlin/Cloud/AWS (OTTO GmbH), Terrafom, reactive Java

Senior Software Entwickler Kotlin Java 17 AWS ...
Senior Software Entwickler
  • Senior Software Entwickler Kotlin/Cloud/AWS für Deutschlands führenden eCommerce-Anbieter mit Themen rund um den Benutzer-Account (Login, Session-Handling, Password-Reset, Konto-Migration)
Kotlin Java 17 AWS E-Commerce Datenmigration
eCommerce: Internationaler Konzern
1 Jahr 1 Monat
2020-09 - 2021-09

Refactoring eines Monolithen von 2015

Senior Fullstack-Entwickler Kotlin SpringBoot 2 / WebFlux ThymeLeaf ...
Senior Fullstack-Entwickler
  • Der Kunde, früher bekannt für seine Print-Kataloge, ist einer der größten und etablierten eCommerce-Player auf dem deutschen Markt. In den vergangenen Jahren wurde ein erheblicher Teil der IT in die Cloud verlagert und dabei ein enormer Wandel vollzogen ? sowohl im Hinblick auf die Organisationsstruktur als auch auf die Neugestaltung der gesamten IT-Architektur. 
  • Ziel des Projektes ist das Refactoring eines Monolithen von 2015 aus dem Fachbereich der Benutzerkonto-Verwaltung hin zu einem Verbund von schlanken MicroServices innerhalb der AWS-Cloud. 
  • Notwendig ist diese Maßnahme einerseits vor dem Hintergrund steigender Benutzerzahlen, denen der monolithische Service wegen mangelnder Skalierbarkeit bei Lastspitzen nicht mehr gewachsen ist. Zum Zweiten ist die veraltete, starre Architektur nicht flexibel genug, um den Wandel des Kunden hin zu einem führenden Anbieter als eCommerce-Marktplatz zu gestatten. Das Projekt wird mit Kotlin umgesetzt, ganz ohne Java, zusätzlich noch mit der sog. Reactive-Erweiterung. 
  • Die Services werden mithilfe der GitHub-Pipeline gebaut und auf AWS als EC2-Instanzen publiziert. ?Infrastructure as Code? wird mithilfe von AWS-CloudFormation gelebt. So kann eine komplette Cloud-Infrastruktur vollautomatisiert auf Knopfdruck neu erstellt werden. Das Projekt im 8-köpfigen Entwickler-Team wird agil und test-getrieben durchgeführt. 
  • Es wird stets im Pair gearbeitet; eine Arbeitsweise, die sich im ganzen Unternehmen etabliert und Qualitätsmaßstäbe gesetzt hat. Mit der Anpassung der Benutzerverwaltung einher gehen UseCases wie der Login, das Session-Management, PasswortRücksetzung, Password-Validierung nach verschiedenen Regeln, Änderung persönlicher Daten.
  • Dies erfordert einen besonders sorgfältigen Umgang mit benutzerbezogenen Daten und auch die Berücksichtigung nichtfunktionaler Anforderungen aus dem Bereich IT-Security. Als Beispiel hierfür seien der Schutz vor CSRF und Rate-Limiting genannt. 
  • Letzteres wird z.B. benötigt, um frühzeitig Betrugsversuche zu verhindern, etwa durch Brutforce-Angriffe auf den Benutzer-Login, was Identitäts-Diebstahl ermöglichen kann.
Kotlin SpringBoot 2 / WebFlux ThymeLeaf TypeScript GitHub MongoDB Redis AWS Git Gradle AWS-Dienste (Auswahl): EC2 SNS SQS Lambda SSM CloudFormation
OTTO GmbH & Co.KG
Hamburg
6 Monate
2020-04 - 2020-09

Teilmodul der Elektronischen Patienten-Akte

Senior Software Entwickler
Senior Software Entwickler
  • Senior Software Entwickler Java und Kotlin in einem agilen Team im Bereich Versicherungen für ein Teilmodul der Elektronischen Patienten-Akte
Insurance and Public Health
6 Monate
2020-04 - 2020-09

MicroServices und das Hardware-Security-Modul

Senior Java-Entwickler Java 11 Kotlin DropWizard ...
Senior Java-Entwickler

  • Senior Java-Entwickler für MicroServices und das Hardware-Security-Modul (HSM) im Cluster z.B. für digitale Signaturen, Ver- und Entschlüsselung mittels RSA und CMS
  • Als übergeordneter Auftraggeber fungiert in diesem Projekt das Bundesgesundheitsministerium, das die Digitalisierung im Gesundheitswesen vorantreiben möchte. Konkrete UseCases sind dabei die elektronische Patientenakte sowie die elektronische Arbeitsunfähigkeitsbescheinigung. 
  • Damit diese fachlichen Anforderungen bedient werden können, wird im Rahmen dieses Projekts die technische Infrastruktur entwickelt, die ab dem Jahr 2021 von Arztpraxen und Krankenversicherungen genutzt werden kann.
  • Aus naheliegenden Gründen werden Datenschutz und Sicherheit hinsichtlich aller zu kommunizierenden Daten besonders groß geschrieben. Dadurch entfällt ein Großteil der Implementierungsaufgaben auf die Anwendung kryptographischer Methoden (wiez.B. Verschlüsselung, Entschlüsselung, Zertifikatsprüfung, digitale Signaturen erstellen und prüfen), das Erfüllen von Spezifikationen und eine ausgiebige Test-Umgebung, um den Prüf- und Test-Vorgaben des Auftraggebers gerecht zu werden. Die technischen Schnittstellen werden größtenteils (aufgrund technischer Rahmenbedingungen) über SOAP abgebildet. Die Business-Logik wird dabei in einzelnen Java-Modulen vorgenommen, die als (Micro)Services im Cluster veröffentlicht werden. 
  • Das Zusammenspiel der Schnittstellen-Implementierung mit der HSM und weiteren Fach-Modulen wird über UnitTests, Integrationstests und End2End-Tests abgedeckt. Diese werden in einem dynamisch erstellen Namespace eines KubernetesClusters automatisiert ausgeführt. Ein HSM-Simulator stellt dabei eine sehr produktionsnahe Umgebung für die Verschlüsselungsverfahren zur Verfügung. Die Qualitätssicherung erfolgt statisch durch SonarQube, aber auch durch ein hohes Maß an Pairprogramming und einem Entwicklungs-Workflow, bei dem Code-Änderungen nur nach Code-Reviews (Pull-Requests) stattfinden.


Projekt 2

  • Ein bekannter Prozess im digitalisierten Versicherungswesen ist das Einreichen von Formularen und Dateien durch den Kunden ? sei es zur Antragstellung, bei Schadensfällen oder beim Einscannen von Rechnungen. Für diesen Anwendungsfall gibt es bereits einen Service zur Annahme der Kundendokumente, die vor der eigentlichen Verarbeitung durch einen Virenscanner geschleust werden. 
  • In diesem Zusammenhang fällt der Performance-Test des Virenscanners auf in meine Verantwortung. Zum Einsatz kommt hierfür das in Scala geschriebene Tool ?Gatling?, mit dessen Hilfe Performance-Test-Szenarios für HTTP-API geschrieben werden können. Wesentliche Stellschrauben für die Tests sind hierbei: Parallele Benutzer, Anzahl und Größe der übermittelten Dateien, Ressourcen der verbundenen Services im Cluster. 
  • Die Tests wurden unter verschiedenen Parametern und Konstellationen durchgeführt und graphisch visualisiert.

Java 11 Kotlin DropWizard Gradle IT-Security / Hardware-Security und Kryptographie Apache CXF Cucumber/Gherkin Jenkins ArgoCD Kubernetes IBM BlueMix
IT-Joint-Venture von Versicherungen
Hamburg
5 Monate
2019-12 - 2020-04

Migration des Flugdaten-Projekts in die Google Cloud

Spring Boot REST Docker GCP: Kubernetes GKE ...

Migration einer monolithischen Java-Anwendung zur Erfassung und Auswertung von Flug- und Wetterdaten hin zu einer cloudnativen, MicroService-basierten Applikation im Google Kubernetes-Cluster (GKE). Die ursprüngliche Anwendung aus dem Jahr 2016 (siehe unten) auf Basis von Spring Boot wird hierfür nach dem Ansatz von DomainDriven-Design in fachlich getrennte MicroServices zerlegt. Entwickelt werden u.a. folgende Services:

  • Service zum periodischen Abrufen, Filtern und Persistieren von Flug-Daten mit API zum Lesen von Daten
    • Vor-Klassifizierung von Flügen nach Start und Landung für den Airport Hamburg
    • Ermittlung der gewählten An-/Abflug-Piste
  • Service zum periodischen Abrufen, Persistieren und Liefern von Wetter-Daten
    • Kalkulation verschiedener Wind-Parameter für Hamburgs vier Pisten
  • Service zur Bereitstellung einer exponierten REST-API für alle Domain-Daten
  • Service für Benutzer-Management
  • Batch-Job zur Auswertung von Benutzer-bezogenen Statistiken
  • Service zum Versenden täglicher E-Mail-Reports mit jenen Statistiken
  • Service für Alerting-Funktion von Flug-Ereignissen


Als besonders ressourcen-schonend und effizient hat sich die Entwicklung einzelner MicroServices mit der Programmiersprache GoLang erwiesen

  • Ein Container ist lediglich 3MB groß und benötigt nicht mal 6MB Arbeitsspeicher. Im Vergleich dazu brachte derselbe Service mit einem schlanken OpenJDK11/SpringBoot-Container 220MB bzw. 300MB auf die Waage ? mehr als das 50-fache ? und dieses je Cluster-Knoten. Dies ist nicht nur technisch bemerkenswert, sondern auch ein großer Kostenvorteil.
  • Die Anwendung wird nach und nach erweitert bzw. auf die neue Architektur umgestellt.
  • Neben den oben erwähnten Services soll ein Publish/Subscribe-Ansatz auf Basis von ?Google PubSub? zum Einsatz kommen, um die Kommunikation zwischen einzelnen Services voneinander zu entkoppeln und auf bestimmte Flugereignisse gezielt reagieren zu können, etwa zur Benachrichtigung von Nutzern bei Überflügen in einem bestimmten Gebiet.

Spring Boot REST Docker GCP: Kubernetes GKE Google Compute Engine/MariaDB PubSub Go Kubernetes
1 Jahr 6 Monate
2018-09 - 2020-02

Bereich ?Inkasso? mit Java und GraphQL

Senior Software Entwickler
Senior Software Entwickler
  • Senior Software Entwickler für den Aufbau eines modernen B2B-Portals im Bereich ?Inkasso? mit Java und GraphQL sowie Migration der Anwendung hin zu Kubernetes.
Finance: Internationales Finanz-Unternehmen
1 Jahr 6 Monate
2018-09 - 2020-02

Unterstützung IT-Architektur, Coaching neuer Entwickler

Senior Java Developer Spring Boot 2 mit Java 11 JPA Spring Security ...
Senior Java Developer

  • In diesem Projekt geht es um die Weiterentwicklung und das Refactoring einer B2B-Web Applikation, die im Rahmen einer einjährigen Entwicklungsphase als MVP für einen bestimmten Kunden entwickelt wurde, hin zu einem mandantenfähigen System. Die B2B-Anwendung erlaubt es Nutzern der Plattform, Klärungsfälle zu bestehenden Inkasso Forderungen erstellen, kommunizieren und mit dem Auftraggeber einvernehmlich klären zu können. 
  • Ein zentraler Bestandteil ist die Nutzung des unternehmens-internen Archivs, für dessen Anbindung und Entwicklung der API ich unter anderem verantwortlich zeichnete. 
  • Die Applikation wurde federführend durch mich auf Kubernetes umgestellt.
  • Weiterhin fiel die Schulung neuer interner Mitarbeiter an zwei Unternehmens-Standorten in meine Verantwortung. Nach dem Prinzip ?You build it, you run it? erfolgte die Umstellung der Applikation auf ein von mir angepasstes, standardisiertes Verfahren im Rahmen einer Jenkins Build-Pipeline. Diese ermöglicht das vollautomatische Bauen und Testen der Artefakte sowie das anschließende Deployment in den Kubernetes-Cluster. Dadurch verkürzten sich die Entwicklungs-Zyklen; ferner ermöglicht ein Versions-Wechsel im Produktionsbetrieb ein ?Zero-Downtime-Deployment? dank des Rolling-Update-Mechanismus. 
  • Eine Besonderheit im Projekt stellt die Nutzung von GraphQL dar, womit nicht nur eine dedizierte Schnittstelle zwischen Front- und Backend beschrieben wird: Es gestattet daneben auch einen sehr effizienten und strukturierten Datenaustausch und erlaubt auch die Veränderung von Ressourcen. Weiterhin wird die GraphQL-Schnittstelle beim Datenaustausch mit den kunden-internen InkassoServern verwendet, welche einen Großteil der Daten und Berechtigungsinformationen zu Forderungen bereitstellen. 
  • Eine besondere Herausforderung stellte dabei die Verfügbarkeit der existierenden Umgebungssysteme wie den Inkassosystemen dar: Hier halfen Mocks in der Entwicklung sowie Consumer Driven Contracts beim Monitoring der verschiedenen Stages weiter. 
  • Zur Ausführung der Unit- und Integrations-Tests wurde eine API entwickelt, um Test-Daten zu generieren und Seiteneffekt-freie Tests zu gestatten. 
  • Als positive Besonderheit ist die stets hohe ?team-immanente? Messlatte für die Code-Qualität und Test-Abdeckung zu nennen. Neben einer agilen Entwicklung, teilweise auch im Pair Programming, führt das Vorgehen mit Pull-Requests gestützt durch statische Code-Analysen mit SonarQube zu einem verständlichen und robusteren Code und Produkt.

Spring Boot 2 mit Java 11 JPA Spring Security GraphQL REST React Nginx Oracle Docker Jenkins Grafana Rancher und Kubernetes
int. Finanz-Unternehmen
Hamburg
1 Jahr
2017-10 - 2018-09

Entwicklung einer Webapplikationen

Senior Fullstack-Entwickler
Senior Fullstack-Entwickler
  • Senior Fullstack-Entwickler für die Entwicklung einer Webapplikationen für Logistik Prozesse in einem OpenShiftCluster auf Basis von SpringBoot und AngularJS.
Logistics: Internationale Spedition
1 Jahr
2017-10 - 2018-09

Ausgangspunkt war eine Legacy-Anwendung

Lead-Entwickler MicroServices in OpenShift/Kubernetes mit Java 8 Spring Boot PostgreSQL; Schnittstellen-Design mittels SwaggerAPI (REST) ...
Lead-Entwickler
  • Ausgangspunkt war eine Legacy-Anwendung, die binnen drei Monaten durch mich auf eine moderne (micro-)Service-basierte Architektur gehoben wurde. Anschließend fand eine Weiterentwicklung statt.
  • Inhaltlich handelt es sich um eine Web-Anwendung zur Verwaltung von unternehmsinternen Prozessen, die der Abwicklung der Logistik-Dienstleistungen des Kunden dienen. Die AngularJS-basierte Web-Anwendung ermöglicht neben einer Suche über ein vielfältiges Such-Formular auch die Pflege von Prozess-Definitionen für interne Mitarbeiter. 
  • Kern des Backends und Bestandteil der Entwicklung ist eine REST-API, die neben der Benutzer-Authentifizierung und den üblichen ?CRUD?-Funktionen auch CSV-Exporte der aktuellen Ansicht, Benutzer/Berechtigungs-Management und die Anbindung eines DMS zum Upload/Download von Dokumenten bietet. 
  • Weitere MicroServices sorgen für eine Anbindung und Daten-Synchronisation mit JIRA, dem Abgleich von statistischen Laufzeitdaten der Prozess-Daten und ein umfangreiches Kontakt-Management. 
  • Alle Services laufen im OpenShift-Cluster. Das Monitoring der ?Vital-Daten? der Services wie z.B. die Anzahl fehlerhafter APIRequests und Antwortzeiten je Endpunkt, Speicher, CPU-Last usw. findet per JMX statt und wird in Grafana visualisiert. 
  • Die MicroServices werden mithilfe von Jenkins-Jobs per Gradle gebaut, in einen Docker-Container gepackt und an die DockerRegistry des Clusters gesendet. 
  • Kubernetes führt anschließend selbständig ein Rolling Update im OpenShift-Cluster aus. Insgesamt wurden für die Web-Applikation fünf MicroServices entwickelt. 
  • Nach der Entwicklung fiel die Schulung zweier interner Mitarbeiter in meinen Verantwortungsbereich, um die langfristige Weiterentwicklung des Produkts im Hause des Kunden gewährleisten zu können.
MicroServices in OpenShift/Kubernetes mit Java 8 Spring Boot PostgreSQL; Schnittstellen-Design mittels SwaggerAPI (REST) Gradle Docker. Im Frontend: AngularJS6 Nginx
internationale Spedition
Hamburg
3 Monate
2017-07 - 2017-09

verschiedene Backends zur Verwaltung der Konzern-Distributionen

Senior Software Entwickler
Senior Software Entwickler
  • Senior Software Entwickler für verschiedene Backends zur Verwaltung der Konzern Distributionen in der AWSCloud mit ECS und SpringBoot.
IT einergroßen Lebensmittel-Genossenschaft

Aus- und Weiterbildung

Aus- und Weiterbildung

  • B. Sc. Informatik


Zertifikate

  • Cert. Scrum-Master
  • Cert. Product Owner

Kompetenzen

Kompetenzen

Top-Skills

Java Migration IT-Architekt AWS Google Cloud Kubernetes Docker Kafka Go Cloud Security Konzepte Schnittstellen-Entwicklung Spring Boot Angular Scrum Python Grafana Requirements Engineering Solution Architect

Produkte / Standards / Erfahrungen / Methoden

Das Profil in Kürze

  • Über 12 Jahre Berufserfahrung als Software-Engineer mit breiter Aufstellung (?T-Shape?-Mentalität) und Schwerpunkt-Bereichen Java, IT-Architektur, Daten-Migration und -Integration, API-Design, MicroService- und Cloud-Entwicklung, Web-Technologien sowie Frontend
  • Team-Player: Wissen und Motivation teilen, zusammen Lösungen erarbeiten, stets lernen
  • Das ?große Ganze? sehen und gemeinsam Ziele erarbeiten


Hard Skills

Cloud:

  • AWS
  • GCP
  • Docker
  • Kubernetes / kubectl
  • OpenShift


Architektur:

  • Konzeption
  • Migration
  • z.B. Umstellung von REST auf Apache Kafka


API:

  • REST/JSON
  • GraphQL
  • SOAP
  • XML
  • gRPC


DevOps:

  • GitLab
  • GitHub
  • ArgoCD
  • K8s
  • Kustomize
  • Maven
  • Gradle
  • Jib


Frontend

  • TypeScript
  • HTML5
  • CSS
  • Angular


Quality:

  • TDD
  • CleanCode
  • SonarQube
  • Selenium
  • BDD mit Cucumber & Gherkin


IT-Security:

  • OWASP-Dependency-Check
  • Trivy
  • RenovateBot/DependaBot?


Monitoring

  • Elastic
  • Prometheus
  • Grafana


Soft Skills

  • Kommunikativ, offen für Neues, mit Fokus aufs Produkt bzw. die Produkt-Vision
  • Agile Methoden: Kanban und Scrum
  • Übernahme von Verantwortung 

Programmiersprachen

Java 11-21+
Experte
Kotlin
Fortgeschritten
Spring (Boot, MVC, Security, Data)
Experte
JPA
Fortgeschritten
Groovy
Fortgeschritten
GoLang
Fortgeschritten
Python
Fortgeschritten
PHP
Fortgeschritten

Datenbanken

MongoDB
Experte
Oracle
Fortgeschritten
Postgres
Fortgeschritten
MariaDB (MySQL)
Fortgeschritten
Solr

Branchen

Branchen

- kritische Sicherheitsinfrastruktur

- eCommerce

- Finanzen

Vertrauen Sie auf Randstad

Im Bereich Freelancing
Im Bereich Arbeitnehmerüberlassung / Personalvermittlung

Fragen?

Rufen Sie uns an +49 89 500316-300 oder schreiben Sie uns:

Das Freelancer-Portal

Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.