Schlagwörter
Skills
-----------------------------------------------------------------------------------
Bitte sehen Sie sich die Skill Matrix in meinem CV an:
https://www.tomsit.de/profile-cv
Projekthistorie
Rolle: Senior-Engeneer
Teamgröße: 6-8
Technologien
- Spring Boot Microservice 3.3 auf Java 17/21
- Keycloak 26
- Junit5, Mockito, Spring Test Framework, Testcontainer, Cypress (UI Testing)
- Docker, Kubernetes, Helm Charts, Harbor, Vault, ArgoCD,
- Grafana/Loki
- Github
- Posgre SQL
- Jira, Confluence, Google Workspaces
Die Aufgabe des Team ist es, ein neues Identity und Access Management (IAM) aufzubauen und zu betreiben, um die Sicherheit zu verbessern und neue Zugriffsmanagement-Funktionen in seinen Cloud Stack einführen, wie z.B. Token mit beschränktem Zugriff, verschiedene Login-Flows, rollenbasierte Zugriffsverwaltung, Identitätsverbund etc.
In folgende Tätigkeiten war ich im Rahmen dieser Zielstellung maßgeblich involviert:
- Entwicklung und Unit Test von Keycloak Extensions (z.B. Authenticator, UserStorageProvider, EmailSenderProvider, EmailTemplateProvider ) um die neue Lösung basierend auf Keycloak in die bestehenden Randsysteme zu integrieren.
- Rahmenbedingung ist dabei per sanfter Migration die Alt-Systeme abzulösen, was u.A. nach sich zog, diverse Microservices als Adapter und Proxies zwischen Keycloak und den Randsystemen einzuziehen.
- Neben diesen reinen Entwicklungstätigkeiten habe ich mich sehr am Aufbau der CI/CD Pipelines und Prozesse engagiert und allgemeine GitHub Workflows implementiert, um einheitliche Prozesse zu etablieren, was aufgrund der verschiedener Zielumgebungen/Platformen (Alt-Cluster, Neuer Cluster, Air Gaped Environment) nicht ganz trivial ist.
Im Zuge der Umsetzung habe ich mir so ein tiefes Verständnis der GitHub Actions aneignen können und drauf aufbauend E2E Tests für die CI /CD Workflows geschrieben.
Implementierung einer Applikation zur Produkt--Konfiguration und Verwaltung in einem Nischenmarkt
Technologien
- Spring Boot Backend-Service mit MySQL
- Frontend mit Eclipse Scout
- Gitlab
Hauptbestandteil meiner Arbeit war den existierenden Entwurf des Datenmodells, der sich stark an den bisherigen Excel Tabellen orientierte, zu „überarbeiten“. Dieses mündete schnell in das Einvernehmen mit dem Kunden, ein ganz neues zu schaffen und erforderte somit die Einarbeitung in die Anforderungen und Bedürfnisse der Zielanwendung. Im Rahmen der Modellierung und Implementierung des neuen Modells war eine beständige Überprüfung der technischen Marchbarkeit im Zusammenhang mit den gewählten Technologien von Nöten (JSON via REST API definiert über OpenAPI Spec sowie Code Generierung des Clients mit Jersy2 auf der einen Seite und JPA/Hibernate auf der DB Seite). Fortan war ich zentraler Ansprechpartner für die Detail Umsetzung und Nutzung des Modells für die weitere Entwicklung.
Das Modell sollte u.A. dabei folgende Aspekte lösen:
- Abbildung von maschinenenabhängigen Parametern auf bestimmt Attribute eines Produktes
- Mandatenfähigkeit in einer Unternehmensgruppe, bei denen die Produkte kundenseitig mandanten-übergreifend definiert sind, aber produktionsseitig aus mandatenspezifischen Ausgangs-Artikeln und -Konfigurationen auszudefinieren sind.
- Mehrsprachigkeit auf DB-Ebene
Daneben habe ich maßgeblich für die folgenden Themen den Lösungsansatz konzeptioniert und in Teilen implementiert:
- Migration der Bestandsdaten in das neue Modell
- Autom. Berechnung von Produkt-Kennwerten als auch deren Toleranzen auf Basis von Konfigurations-Daten, die pro Produkt-Attribut wahlweise übersteuert werden können.
Technologien
- Spring Boot Microservice (noch 2.7, angehend 3.x)
- Teilweise wird der Reactive Stack verwendet
- Java 11 (aktuell Migration auf 17)
- Lombok
- API First Ansatz mit OpenAPI 3 + Code Generatoren
- RabbitMQ
- MongoDB 4.4, Posgre SQL
- Junit5, Mockito, Spring Test Framework
- Docker, Kubernetes, AWS
- Gitlab, Graylog, Grafana, New Relic, Prometheus
- Jira, Confluence
Bei der GVL habe ich ein sehr professionell aufgesetztes Entwicklungsteam kennengelernt, in dem die Rollen Product Owner (Anforderungsmanagement), Entwicklung, Testing und Operations durch dedizierte und sehr kompetente Kollegen besetzt sind. Damit konnte ich mich weitestgehend auf die Entwicklung der Anforderungen konzentrieren, was sehr zur Entwicklungsgeschwindigkeit beigetragen hat.
Im Rahmen der Entwicklung konnte ich denn auch einigen Wissensaufbau verzeichnen:
- Pro/Con Reactive Stack
- Mongo DB
- Pro/Con Dokumentenbasierte Speicherung vs. Relationale DB
- Queries und ein bisschen Aggregations
- Eventdriven Architecture mit AMQP (RabbitMQ)
- Grenzen beim Einsatz von OpenAPI 3
- Kleinteilige Stories und Fokus bei der Entwicklung auf diese
- Echter Microservice-Ansatz
Rollen: Solution-Architekt, Lead-Developer
Technologien
- Kafka
- AWS Kinesis + KCL
- DynamoDB
- Spring Boot Microservice
- Junit5, Cucumber
- Java 11
- RactiveX 3
- Terraform
- Kubernetes + Flux
Ich bin in das Projekt ein paar Monate nach dessen Start gekommen. Erste maßgebliche Aufgabe war es, den per Trial-And-Error gewachsenen Service in strukturierte Funktionseinheiten und Abläufe zu refaktorisieren. Wesentliche Teile dessen waren:
- Konzeption
- Klärung der Lücken in den Anforderungen und des Verhaltens der Randsysteme (diese sind bis Dato (Juli 2021) noch nicht implementiert)
- Anpassung und Erweiterung des bestehenden Lösungskonzeptes, um die neuen Erkenntnisse zu berücksichtigen
- Aufräumen der ReactiveX Implementierung inkl. Migration nach V3
- Umstellung von einer simplen Kinesis-Consumer Implementierung auf Basis von AWS SDK auf die AWS KCL, um u.A. so automatisch auf Änderung der Shards reagieren zu können.
- Stabilisierung und Ordnung der Test sowie Aufbau der CI/CD Pipeline
- Aufbau eines Testkonzepts und Implementierung von Integrations-Tests mit Cucumber sowohl für den eigenen Service als auch den nachgelagerten, so dass beide als Einheit getestet werden können.
Tätigkeiten
- Design und Entwicklung der fachlichen Module für Data-Cleansing/Validation sowie Suche und Matching der Kunden
- Design und Aufbau der Macro-Architektur, d.h. der AWS Infrastruktur sowohl für die Applikation an sich als auch Build-Tooling (CI/CD) mit Blick auf Wartbarkeit und Applikation-Support (Logging, Observability)
- Technische Konzeptionierung, Entwicklung, Unit-, Integrations- und End-2-End-Tests
- Jira Task Management, d.h. Strukturierung der Aufgaben in Epics, Stories, Tasks unter Nutzung von Links zur Abbildung der Abhängigkeiten und Kategorien
- Teamgröße: 3-6
- Agile Entwicklung (“TUI Scrum“)
- Spring Boot
- Docker
- AWS Cloud via Terraform
- Beanstalk, ECS, ALB, Security Groups, Cognito, Elasticsearch, RDS/Aurora, SNS, CodeCommit, CodeBuild, CodePipeline, Parameter Store, VPC, S3, X-Ray, KIBANA, Gitlab, …
Fachlich geht es bei dieser neue zu schreibenden Applikation um eine eventbasierte Deduplizierung und Zusammenführung von Kunden aus verschiedenen Systemen. Damit wird eine Quelle für die Stammdaten aller Kunden für alle anderen Systeme geschaffen und die perspektivisch die bestehende Haupt-Kunden-DB ablösen soll.
Zu Beginn des Projektes bestand meine Hauptaufgabe im Aufbau der AWS Infrastruktur und der CI/CD Pipeline. Das war für mich (und auch TUI) komplettes Neuland und insofern war ich hier auf mich alleingestellt dieses auf der Taufe zu heben bis zu unserem initialen Go-Life. Nach einem Jahr bekam ich dann endlich Unterstützung seitens der TUI durch einen Spezialisten in diesem Umfeld, so dass wir dann einige Verbesserungen vornehmen konnten. Daraus ergab sich, dass ich auch aktuell hauptzuständig für die Deployments als auch den Betrieb bin.
Neben dieser Aufgabe habe ich maßgeblich für den „Integrationskitt“ der Anwendung gesorgt, d.h. Konfiguration der Spring Boot Anwendung für alle Stages, d.h. fachliche als auch technische Konfigurationen (Spring Context/Beans) inkl. den Integrationen in die AWS Services sowie mit MDM verbundenen Systemen der TUI.
Neben diesen eher rein technisch getriebenen Arbeiten habe ich die fachlichen Module der Kunden-Suche und des Regelbasiertes-Matching konzeptioniert und entwickelt, später dann auch das Modul zum regelbasierten Cleansing der Daten übernommen.
Auf Teamebene habe ich es zu meiner Aufgabe gemacht, die Entwicklungs-Arbeiten in sinnvolle Schritte zu strukturieren und als Jira-Tickets zu organisieren, mit dem Ziel das Vergangene nachvollziehbar zu halten, die Zukunft planbar zu machen und Abhängigkeiten festzuhalten.
J2EE / RCP Applikation „BIN“ für Talanx/HDI Tätigkeiten
Technologien
BIN wird als spartenübergreifendes vertragsbestandsführende System für die Talanx-Mitarbeiter weltweit aufgebaut. Durch die schiere Größe des Projektes (Umfang der Funktionen, Projektmitarbeiter) hat es eine hohe Komplexität und nicht zuletzt, weil es notwendigerweise eine Vielzahl von Schnittstellen in die Umsysteme unterhält. Meine Aufgabe im Modul „Dokumente und Drucksteuerung“ lag vornehmlich in der Analyse der Anforderungen (meist 2-Zeiler aus dem Fachbereich), einem technischen Lösungskonzept sowie dessen Implementierung. Dies erforderte auch immer software-archäologische Untersuchungen der aktuellen Funktionsweisen. Darüber hinaus habe ich eine Vielzahl von Anregungen eingebracht, um die Entwicklungsarbeit zu verbessern (Dokumentation, Schulungen, Tooling, Coding Standards, …). |
Webapplikation „Destimint“ für TUI Deutschland
Tätigkeiten
- Technische Konzeptionierung, Entwicklung, Unit- und Integration-Tests
- Teamgröße: 9
- Agile Entwicklung
Technologien
- Java 8
- Tomcat 8
- Spring 4
- Vaadin 7
- Oracle 11g
- JPA/Hibernate 5
Webapplikation „Engpasstool“ für die VW Inbound-Logistik
Tätigkeiten
- Technischer Projektleiter/Team-Lead
- Konzeption, Entwicklung, Release-Management
- Teamgröße: 4-6
- Scrum seit Jan 2016
Technologien
- Spring 4.x, Tomcat 7, WebSphere 8, JSF 2.1, PrimeFaces 5, Solr 3.6, Oracle 11g, STPs, JMS, JPA/Hibernate 4.3
Übernahme der technischen Team- und Projektleitung für eine Webapplikation mit Ziel dem Fachbereich ein Werkzeug für die Engpasssteuerung an die Hand zu geben. Zusätzlich zur Leitung der Entwicklung (auch als Software-Architekt und Anleitung der Teammitglieder via Code-Review) bin ich maßgeblich in die konzeptionelle Weiterentwicklung der Applikation in Absprache mit dem Fachbereich eingebunden (Rolle Product Owner, Analyst). Seit 2015 Q2 habe ich wieder vermehrte entwickelt, sowohl im Front- als auch Backend.
Ab 2016/07 nur noch beratend einige Stunden im Monat tätig.
Reisebereitschaft
- bevorzugt Remote
- Raum Hannover, Wolfsburg
- Normale Tageszeiten, ggf. auch Samstags
exali IT-Haftpflicht-Siegel (Sondertarif für Freelancermap-Mitglieder)
Das original exali IT-Haftpflicht-Siegel bestätigt dem Auftraggeber, dass die betreffende Person oder Firma eine aktuell gültige branchenspezifische Berufs- bzw. Betriebshaftpflichtversicherung abgeschlossen hat. Diese Versicherung wurde zum Sondertarif für Freelancermap-Mitglieder abgeschlossen.
Versicherungsbeginn:
03.01.2024
Versicherungsende:
01.02.2025