Architekt/Entwickler/Teamlead für Microservices und Cloud
Aktualisiert am 09.01.2025
Profil
Freiberufler / Selbstständiger
Verfügbar ab: 09.01.2025
Verfügbar zu: 100%
davon vor Ort: 10%
AWS
Java API for RESTful Web Services
Spring Boot
SQL
JSON
Microservices
XML
Testautomatisierung
GitHub
GitLab
JMS
RabbitMQ
Java Application Server
JPA
Cucumber
Aspektorientierte Programmierung
JSF
Vaadin
OpenAPI
Kubernetes
OpenID
Docker
Java 21
Deutsch
Muttersprache
Englisch
wie Muttersprache

Einsatzorte

Einsatzorte

Hannover (+50km) Höxter (+100km) Haldensleben (+75km) Schwalmstadt (+75km)
nicht möglich

Projekte

Projekte

1 Jahr
2024-01 - heute

IAM Lösung basierend auf Keycloak

Senior-Entwickler Spring Boot Microservice 3.3+ auf Java 17/21 Keycloak 26 JWT ...
Senior-Entwickler

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.

  • Entwicklung und Unit Test von Keycloak Extensions (z.B. Authenticator, UserStorageProvider, EmailSenderProvider, EmailTemplateProvider, Protocol Mapper) 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.
  • Zu Beginn war ich auch noch stärker in der Erstellung und Anpassung von Helm Charts involviert, was ich mir an dieser Stelle in einigem Umfang habe aneignen können. Zur Mitte des Jahres hat diese Aufgaben dann ein neuer Kollege schwerpunktmäßig übernommen.
  • Beheben von CVS in unseren Deliverables

Spring Boot Microservice 3.3+ auf Java 17/21 Keycloak 26 JWT OIDC OAuth2 Junit5 Mockito Spring Test Framework Testcontainer Cypress (UI Testing) gRPC/Protbuf Docker Kubernetes Helm Charts Harbor Vault ArgoCD Grafana/Loki Github Posgre SQL Jira Confluence Google Workspaces
IONOS SE
3 Jahre 1 Monat
2020-12 - 2023-12

Implementierung einer Applikation zur Produkt-Konfiguration

Solution-Architekt, Lead-Developer, Analyst Spring Boot (3.2) Backend-Services mit PostgreS Frontend mit Eclipse Scout (22.0.41) Gitlab ...
Solution-Architekt, Lead-Developer, Analyst

Hauptbestandteil meiner Arbeit war es den existierenden Entwurf des Datenmodells, der sich stark an den bisherigen Excel-Tabellen orientierte, zu ?überarbeiten?. Dieses mündete schnell in die Erkenntnis in Übereinstimmung mit dem Kunden, ein ganz neues DM 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 sowie Code Generierung des Clients mit Jersy2 auf der einen Seite und JPA/Hibernate auf der DB Seite). Seither bin ich Ansprechpartner für die Umsetzung und Nutzung des Modells für die weitere Entwicklung. Das Modell sollte u.A. dabei folgende Aspekte lösen:

  • Implementierung einer Applikation zur Produkt-Konfiguration und Verwaltung in einem Nischenmarkt
    • Abbildung von maschinenabhängigen Parametern auf bestimmt Attribute eines Produktes
    • Mandatenfähigkeit in einer Unternehmensgruppe
    • 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.
    • REST Frontend (Facade) zur Integration für Jasper Reports
  • Im Laufe der Zeit ist auch ein wenig Entwicklung im Frontend mit dem Eclipse Scoute UI Componenten-Framwork dazugekommen.

Spring Boot (3.2) Backend-Services mit PostgreS Frontend mit Eclipse Scout (22.0.41) Gitlab Jasper Reports
2 Jahre 1 Monat
2021-10 - 2023-10

Verarbeitung von File- als auch Event-basierten Datenströmen

Senior-Entwickler Spring Boot Microservice (noch 2.7 angehend 3.x) Reactive Stack ...
Senior-Entwickler

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.

  • Pro/Con Reactive Stack
  • Mongo DB
    • Pro/Con Dokumentenbasierte Speicherung vs. Relationale DB
    • Queries und Aggregations
  • Eventdriven Architecture mit AMQP (RabbitMQ)
  • Grenzen beim Einsatz von OpenAPI 3
  • Schneiden kleinteiliger Stories/Merge Requests zur Schärfung des Fokus und Minimierung von Merge-Konflikten
  • Echter Microservice-Ansatz (40+ Services)
Spring Boot Microservice (noch 2.7 angehend 3.x) Reactive Stack 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 AWS EKS S3 SQS ECR Secret Manager Gitlab Graylog Grafana New Relic Prometheus Jira Confluence
GVL mbH
6 Monate
2021-04 - 2021-09

Design und Entwicklung eines Microservices

Solution-Architekt, Lead-Developer Kafka AWS Kinesis + KCL DynamoDB ...
Solution-Architekt, Lead-Developer

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

  • Design und Entwicklung eines Microservices für Reaktive Datenverarbeitung in einem Hochlast-Scenario
  • Konzeption
    • Klärung der Lücken in den Anforderungen und des Verhaltens der Randsysteme (diese waren bis 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 einfachen AWS SDK Kinesis-Consumer Implementierung auf 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 als auch den nachgelagerten Service, so dass beide als Einheit getestet werden können.
Kafka AWS Kinesis + KCL DynamoDB Spring Boot Microservice Junit5 Cucumber Java 11 RactiveX 3 Terraform Kubernetes + Flux
TUI
3 Jahre
2018-04 - 2021-03

Customer Master Data Management

Co-Solution-Architekt, Lead-Developer, AWS Cloud Engineer 9 RESTful Microservices auf Basis von Spring Boot 2.3 Maven Java 11 ...
Co-Solution-Architekt, Lead-Developer, AWS Cloud Engineer

  • Fachlich geht es bei dieser neue zu schreibenden Applikation um eine eventbasierte Deduplizierung und Zusammenführung von Kunden aus verschiedenen Systemen. Damit wird für die Stammdaten aller Kunden für alle anderen Systeme geschaffen, 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 aus der Taufe zu heben. Nach einem Jahr bekam ich 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 Hauptzuständiger für Releases und den Betrieb geworden 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 (es fehlten sowohl ein Scrum-Master als auch ein echter Product-Owner), die Entwicklungs-Arbeiten in sinnvolle Schritte zu strukturieren und als Jira-Tickets zu organisieren, mit dem Ziel das Vergangene nachvollziehbar zu halten und die Zukunft planbar zu machen sowie Abhängigkeiten festzuhalten
    • Customer Master Data Management für TUI auf Basis von Spring Boot Microservices in AWS
    • 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) via Terraform
    • 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: 2-6
    • Agile Entwicklung (?TUI Scrum?)
9 RESTful Microservices auf Basis von Spring Boot 2.3 Maven Java 11 Hibernate JUnit 5 Mockframeworks PostgreSQL 10 JAXB Swagger Elasticsearch Angular JS Spring Sleuth AWS Cloud Componenten mit Setup via Terraform ECS ALB Security Groups IAM Cognito Kibana RDS/Aurora PostgreSQL lambda Parameter Store VPC S3 CloudWatch X-Ray Beanstalk EC2 Docker Gitlab CodeCommit CodeBuild CodePipeline Container CI/CD TDD CleanCode
TUI
1 Jahr 1 Monat
2017-03 - 2018-03

J2EE / RCP Applikation ?BIN?

Websphere Java 6 Oracle 11g ...

BIN wird als spartenübergreifendes Vertragsbestands-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 -- 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, ?).

  • Technische Konzeptionierung, Entwicklung, Unit- und Integration-Tests im Bereich Dokumente und Drucksteuerung
  • Teamgröße: ~12
  • Projektgröße: >50 Entwickler
  • Agile Entwicklung

Websphere Java 6 Oracle 11g JPA/Hibernate 4 Eclipse RCP SOAP Webservices over JMS EJB 2 Maven SonarQube
Talanx/HDI
9 Monate
2016-07 - 2017-03

Webapplikation ?Destimint?

Java 8 Tomcat 8 Spring 4 ...

Destimint dient TUI als zentrale Anwendung für interne Verwaltungsprozesse sowohl der eigenen Hotels als auch aus externen Quellen. Hierbei ist es in die Systemlandschaft integriert und unterhält bidirektionale Schnittstellen in die Buchungssysteme der TUI.

  • Technische Konzeptionierung, Entwicklung, Unit- und Integration-Tests
  • Teamgröße: 9
  • Agile Entwicklung

Java 8 Tomcat 8 Spring 4 Vaadin 7 Oracle 11g JPA/Hibernate 5
TUI Deutschland
4 Jahre 5 Monate
2012-08 - 2016-12

Webapplikation ?Engpasstool?

Technischer Projektleiter/Team-Lead Spring 4.x Tomcat 7 WebSphere 8 ...
Technischer Projektleiter/Team-Lead
Ü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.
  • Konzeption, Entwicklung, Release-Management
  • Teamgröße: 4-6
  • Scrum seit Jan 2016
Spring 4.x Tomcat 7 WebSphere 8 JSF 2.1 PrimeFaces 5 Solr 3.6 Oracle 11g STPs JMS JPA/Hibernate 4.3
VW Inbound-Logistik
7 Monate
2012-07 - 2013-01

Generalisierung des eccenca-Frameworks

eccenca/SMILA Solr 3.5

Weitere Generalisierung des eccenca-Frameworks zur gleichzeitigen Einbindung mehrerer Suchtechnologien.

  • Konzeption und Architektur der Weiterentwicklung
  • Implementierung
  • Teamgröße: 1-2

eccenca/SMILA Solr 3.5
1 Jahr 6 Monate
2011-02 - 2012-07

Eclipse Projekt SMILA und BROX eccenca

Integration Suchserver Solr 1.4 eccenca 2.x SMILA

eccenca 1.0 war noch eine Hybridlösung bestehend aus dem neuen SMILA Indexierungs-Processing und den AnyFinder-Bestandteilen der Suche basierend auf Lucene. Mit eccenca 2.0 wurde dieser ältere Code ebenfalls durch SMILA ersetzt als auch Lucene durch Solr 1.4. Für die Architektur, Umsetzung und Weiterentwicklung von eccenca (und SMILA zum Teil) zeichne ich nun auf technischer Seite verantwortlich.

  • SMILA Co-Projekt-Leiter
  • eccenca Projekt-Leiter und Architekt
  • Implementierung
  • Teamgröße: 2-3

Integration Suchserver Solr 1.4 eccenca 2.x SMILA
4 Monate
2012-03 - 2012-06

Suche basierend auf eccenca für ein internes Web-Portal

eccenca/SMILA Google Search Appliance 6.14 (GSA)

Umsetzung neuer Features im Framework des AG und Einbindung der GSA als Suchtechnologie

  • Konzeption und Architektur der Weiterentwicklung
  • Implementierung
  • Teamgröße: 1-2



eccenca/SMILA Google Search Appliance 6.14 (GSA)
VW
8 Monate
2011-11 - 2012-06

Liferay CMS Suche basierend auf eccenca für ein internes Web-Portal

Liferay 6 Solr 3.5 eccenca/SMILA
  • Für den Suche einer Search-Driven Liferay Applikation soll eccenca zum Zuge kommen. Hierbei gilt es ca. 80.000 gleichzeitige Nutzer bedienen zu können, was in der Spitze zu geforderten 1.1 Mio. (technischen) Such-Anfragen pro Stunde führt bei einer Datenbasis von anfänglich ca. 100.00 Dokument (MS Office, PDF und andere).
  • Meine Aufgabe hierbei war zusammen mit dem Projektleiter zunächst die Anforderungen des Kunden und deren Umsetzung im Pflichtenheft festzuhalten. Umsetzung der Spezifikation, Design der SW-Architektur sowie deren Leitung und Qualitätssicherung oblagen mir.
    • Konzeption und Architektur
    • Implementierung
    • Teamgröße: 2-3
Liferay 6 Solr 3.5 eccenca/SMILA
VW
8 Monate
2011-03 - 2011-10

Suche basierend auf eccenca für das Intranet-Portal

eccenca/SMILA Lucene Solr 1.
  • Das Projekt war als Weiterentwicklung angelegt und basierte zu dem Zeitpunkt auf einer frühen eccenca/SMILA Version, die stark für die Bedürfnisse des Projektes modifiziert wurde. Ziel war es zum einen den Code auf eine aktuelle, unangepasste SMILA Version zu migrieren sowie neue Quellen zu integrieren und für die Suche zugänglich zu machen. 
  • Meine Aufgabe bestand im Wesentlichen darin, den bestehenden Code zu analysieren und fortzuschreiben, ohne die Möglichkeit auf das Wissen der früheren Programmierer zugreifen zu können. Trotz dieses widrigen Umstandes gelang es durch effektive Zusammenarbeit mit dem AG die neuen Anforderungen zur vollen Zufriedenheit abzubilden und innerhalb der von mir geschätzten Aufwände zu verbleiben. In dieser fruchtbaren Zusammenarbeit wurde das Framework des AG weiter generalisiert, um zukünftig einfach Quellen anbinden zu können.
    • Konzeption und Architektur der Weiterentwicklung
    • Implementierung
    • Teamgröße: 1-2
eccenca/SMILA Lucene Solr 1.
VW
5 Monate
2010-03 - 2010-07

Tagungs-Konfigurator Großkunden

Techn. Projektleiter, Gesamt-Projektleiter Tomcat SQL Server Spring 3 ...
Techn. Projektleiter, Gesamt-Projektleiter
  • Das Projekt habe ich über seine ganze Laufzeit begleitet. An deren Beginn Stand die Konzeption in Form von Lasten- und Pflichtenheft, die ich mit meinem Kollegen gemeinschaftlich verfasst habe. Hierbei habe ich mich auf die Prozesse und Architektur (Datenbank-Design, externe Schnittstellen) fokussiert, während mein Kollege für die UI zuständig war. Ebenso haben wir uns auch die Projektleitung geteilt, in der ich für die technischen Aspekte verantwortlich zeichnete. Dies beinhaltete vornehmlich die Kommunikation mit den Ansprechpartnern der zu integrierenden Systeme sowie mit dem Offshore-Entwicklungspartner (UI Programmierung) bzgl. der geforderten Funktionsweise und dem Zusammenspiel mit den übrigen Komponenten. 
  • In diesem Zusammenhang hat es sich als sehr vorteilhaft erwiesen, dass ich das DB-Design/JPA Objekt-Modell vollständig vorgegeben und implementiert habe und ebenso die Implementierung der Integration in das Sihot ERP System bzw. den Ontobroker. Im Rahmen dieses Projektes habe sich die folgenden Dinge gezeigt:
    • Eine gute Spezifikation ist die halbe Miete
    • Eine Offshore-Entwicklung geht gut, wenn eine hohe Verzahnung der Entwicklungsarbeit und -Teams gegeben ist, so dass die Kommunikationswege kurz sind.
    • Entwicklung mit JPA und Spring
    • Sihot ERP
    • Inferenzmaschine Ontobroker zur Abbildung von Regeln bzgl. der Buchungsoptionen
  • Regelbasierte Web Applikation für Großkunden zur Buchung von Schulung inkl. Integration in Hotel ERP Software
    • Konzeption und Architektur
    • Implementierung
    • Teamgröße: 8 (2-3 Intern 5 Offshore)
Tomcat SQL Server Spring 3 JPA via Hibernate 3.3 Sihot (Hotel ERP) Ontobroker 6.1
Commundo Tagungshotels
2 Jahre 1 Monat
2008-03 - 2010-03

Eclipse Projekt SMILA und BROX eccenca Unified Information Access Architecture

Eclipse OSGi/Equinox PDE Build ...
  • Die Firmen BROX und empolis haben beide ein hausinternes Such-Framework entwickelt und vermarkten dieses in Zusammenhang mit einer eigenen Such-Engine. Um die Aufwände für die Wartung und Weiterentwicklung des Frameworks zu bündeln und neue Technologien einzubeziehen, wurde beschlossen, auf Basis der Best-Practices beider Frameworks das neue Framework SMILA zu entwickeln, das den neueren Anforderungen in großen Unternehmen genügt und welches im Kern öffentlich ist. eccenca baut auf diesem Kern auf und erweitert diesen um BROX-eigene Komponenten.
  • Der Anfängliche Schwerpunkt meiner Arbeit lag im Bereich der Storages insbesondere der Verwendung von XML Datenbanken. Darüber hinaus habe ich wesentliche Beträge zur Definition des Entwicklungsprozesses und der Entwicklungsstruktur im Projekt geleistet und deren Übereinstimmungen mit den Anforderungen seitens Eclipse. Im weiteren Verlauf habe ich verschiedene suchrelevante Technologien untersucht und teilweise in das Framework integriert.
    • Konzeption und Architektur Bereich Storages.
    • Entwicklungs-Prozess
      • Code Conventions
      • Eclipse Intellectual Property Process
      • Eclipse Build
      • Tests
      • Dokumentation
  • Integration verschiedener Technologien
  • Teamgröße: bis zu 15 (BROX, empolis und Offshore)
Eclipse OSGi/Equinox PDE Build p2 ? Update
BROX, empolis

Aus- und Weiterbildung

Aus- und Weiterbildung

6 Jahre
2000-04 - 2006-03

Studium der Elektrotechnik/Technische Informatik

Universität Hannover
Universität Hannover
  • Studienarbeit: auf Anfrage
  • inkl. Fachpratikum:
    • Linux basierte Embedded Systems für DSP-Anwendungen bei Thomson in Hannover
  • Diplomarbeit: auf Anfrage
2 Jahre 7 Monate
1996-10 - 1999-04

Studium der Elektrotechnik/Technische Informatik

Universität Hannover
Universität Hannover

Kompetenzen

Kompetenzen

Top-Skills

AWS Java API for RESTful Web Services Spring Boot SQL JSON Microservices XML Testautomatisierung GitHub GitLab JMS RabbitMQ Java Application Server JPA Cucumber Aspektorientierte Programmierung JSF Vaadin OpenAPI Kubernetes OpenID Docker Java 21

Schwerpunkte

  • Backendentwicklung von (Micro)services in Java mit Spring Boot
  • Datenmodellierung
  • Analyse und Konzeption von Anwendungslösungen
  • Automatisierte (Integrations-)Tests
  • CI/CD
  • (Cloud-) Architektur
  • (Unterstützung in der) Team-/Projektleitung sowie Entwicklungsplanung

Produkte / Standards / Erfahrungen / Methoden

Profil

  • Meine Stärke liegt ganz klar in dem Interesse ein gutes technisches Verständnis von Systemen zu erlangen und zu wissen wie diese arbeiten. Es gelingt mir deshalb vergleichsweise schnell mir dieses anzueignen und zu merken. Für mich ist in diesem Zusammenhang extrem wichtig, dabei eine präzise Sprache zu haben oder zu entwickeln; Begriffe müssen gut zu definieren sein und korrekt verwendet werden. Mit diesem Rüstzeug gelingt es mir dann auch komplizierte Sachverhalte zu beschreiben und im Gespräch mit anderen zu diskutieren und zu verfeinern.
  • Neben diesen analytischen Fähigkeiten zeichne ich mich durch eine hohe Belastbarkeit aus. Ich habe Projekte mit hohem Einsatz über einen langen Zeitraum als auch die typischen Stress-Phasen in Projekten, z.B. kurz vor dem Release-Termin ohne Probleme gemeistert.


Kenntnisse:

  • Ich besitzte allgmein ein gutes Verständnis von Daten und deren Zusammenhänge, ebenso kenne ich auch die grundlegenden Prinzipien der Arbeitsweise und Internas von DBs.
  • Dabei sind mir die Standard-Objekte der Datenbanken wie Views, Tabellen, Trigger, Indexe vertraut und ich beherrsche derem Umgang. Besonders das Schreiben von SQL Queries mit komplexten Joins habe ich im Rahmen eines OLAP/DWH-Projektes in großem Umfang betrieben.
  • Mein Kontakt zu Datenbanken war stehts im Kontext der Entwicklung zu sehen, wozu es u.A. als Architekt und Technischer Projektleiter auch gehört Datenbank-Schemata zu entwerfen als auch die Infrastruktur zu planen und in Auftrag zu geben. Der Portierbarkeit wegen wurde i.d.R. auf Stored Procedures verzichtet und möglichst mit Standard-DB-Mitteln und -Mechnismen gearbeitet. Gleichwohl besitze ich hier Grundkenntnisse und habe Funktionen sowohl für SQL Server als auch Oracle umgesetzt.
  • Viel interessanter wäre heutzutage in diese Zusammenhang zu erfragen, wie das mit der Sicherheit in der Datenkommunkation ist - z.B. Zertifikate, Verschlüsselung etc. Hier habe ich grundlegende Kenntnisse der Arbeitsweisen und muss mich in der Entwicklung darum kümmern, dass gemäß den allgmeinen und speziellen Anforderungen eine Einschätzung zur Datenklassifikation erfolgt und entsprechend umgesetzt wird.
  • Daher habe ich nur wenig pratisches Wissen zur Einrichtung und Administration, da dieses in meinem Projekten von der Infrastruktur-Abteilung erledigt wird.
  • Wenn man daher nicht unbedingt nach einem Adminstrator in der Infra sucht, ist von den obigen Punkten einzig "Message Queues" interessant. Diese habe ich sowohl in J2EE als auch sonstigen Server-Applikationen als Transport-Kanal genutzt, um Daten zwischen verschiedenen Applikation auszutauschen oder aber an die Knoten in einem Server-Cluster zu verteilen.
  • Neben den MQs finde ich auch Datenformate zur Übertragung wie XML oder JSON in diesem Bereich interessanter und erwähnenswerter als z.B. "Router".
  • In XML habe ich äußerst umfangreiche und fortgeschrittene Kenntnisse, da ich es seit 2000 in vielen Projekten genutzt habe, sowohl zur Konfiguration als auch zum Austausch von Daten zwischen Systemen. Ich auch inbesondere fortgeschritte Kenntnisse im im Design von XML Schemata und deren Nutzung zur Validierung eines XML Dokumentes.
  • JSON habe ich erst in den letzten 3 Jahren gelegentlich zur Serialisierung und Übetragung genutzt und schätze dabei seine teilweise bessere Lesbarkeit aufgrund der kompakteren schreibweise.


Methoden

  • Entwicklungsprozess (Agile Development)
    • Bis 2016 habe ich in keinem Projekt formal Agile Methodik genutzt aber auch nie ein reines V- oder Wasserfallmodell. Die Wahrheit liegt, wie so oft, dazwischen, d.h. viele der Agilen Prinzipien ergeben sich in der Praxis von selbst, will man eine funktionierende und für den Kunden nützliche und nutzbare Software erstellen, auch wenn formal ein eher klassischer Prozess definiert ist.
    • Wesentlichster Punkt ist für mich als Teamlead, der meistens auch für Analyse Konzeption und Planung zuständig war, auf Änderungen von Anforderungen und Gegebenheiten reagieren und eingehen zu können. Das schmeißt zwar immer wieder Planungen über den Haufen, aber am Ende muss die Software die tatsächlichen Anforderungen des Kunden erfüllen und nicht unbedingt was zu Beginn gefordert wurde, selbst wenn es abgestimmt und spezifiziert war.
    • Zum Glück werden seit einiger Zeit auch in Konzernen auf Agile Methoden formal umgestellt

  • Scrum
    • Ab 2016 wurde im Projekt Engpasstool auf Scrum umgestellt. Hierbei übernahm ich für die bislang verantwortete Applikation einen Gutteil der Rolle des Product Owners als auch die des Entwicklers (obwohl diese Rollen nicht in Personalunion ausgeführt werden sollten).
  • Team- und Projektleitung
    • Kernaspekte sind hier aus der Entwicklung heraus:
      • die Aufwände realistisch zu schätzen
      • in einen Release-Zyklus einzuplanen
      • die Aufgaben im Team zu verteilen
      • die Koordination mit anderen Bereichen bzw. Schnittstellen-Partnern
      • sich um das Ganze Drum-Herum (z.B. Entwicklungs-Infrastruktur, Berechtigungen und System-Zugängen, etc.) zu kümmern (Mädchen für alles)
    • Anmerkung: Derzeit liegt mein gewünschter Fokus mehr auf der Entwicklung. Bin aber gerne bereit auch in Teilen Leitungsfunktionen zu übernehmen bzw. darin zu unterstützen.
  • Anforderungs-Analyse Lösungs-Design und Spezifikation
    • Meine starke analytische Fähigkeit auch komplexe und komplizierte Sachverhalte zu durchdringen, sie zu formulieren und in verdaubarere Teile zerlegen zu können, sind für mich Schlüssel-Faktoren in diesem Bereich.
    • Oft werden diese Tätigkeiten separat betrachtet und haben auch eigene Schwerpunkte und Ziele, aber sie komplett zu trennen (klassisches Modell) erachte ich nicht als sinnvoll, weil sehr große Wechselwirkungen bestehen und u.A. die Agilen Entwicklung motiviert haben.
    • Wesentlich ist für mich hierbei das Formulieren und Verbalisieren sowohl der Anforderung als auch der zugehörigen Lösung(en) in einem konsistenten und wohl definierten Vokabular (DSL).
    • Die zahlreichen Dokumente, die ich hier selber verfasst habe, reich(t)en von wenigen Seiten bis zu Werken mit über 100 Seiten.
    • Als sehr hilfreiche empfinde ich es hierbei, mit dem breiten Wissen aus der Entwicklung zu praktikablen Lösungskonzepten zu kommen, die auch mit vertretbarem Aufwand implementiert werden können.
  • Unit Testing/TDD
    • TDD nutze ich sehr gerne aber nicht in der reinen Form, da diese mir zu kleinteilig ist und der Code aus den vielen Zwischenschritten am Ende weggeworfen wird. Von den Auswirkungen schätze ich:
      • Fokus auf das Ziel, was die Auseinandersetzung mit den Anforderungen erzwingt
      • Den produktiven Code aus einer anderen Warte zu betrachten
      • testbarere Einheiten (DI)
      • eine bessere Testabdeckung
      • eine echte Kunst ist es die Testfälle möglichst orthogonal anzuordnen
    • Tooling/Libraries
      • Junit 5
      • JaCoCo (Coverage mit Sonar)
      • Cucumber
      • Testcontainers
  • Mocking
    • jMockit
    • EasyMock 
    • Mockito
  • Rollout- /Release-/Deploy -Management
    • Hierbei handelt es sich i.d.R. um die Installation der Entwicklungs-Pakete auf dem Server durch den Betrieb. 
    • Dieses war entsprechend vorzubereiten und mit allen Beteiligten abzustimmen (z.B. Firewall-Freischaltungen für neue Schnittstellen, MQ Konfigurationen, etc.) aber es schließt auch Nutzerschulungen mit ein
  • UML
    • UML wird fast immer gefordert, tatsächlich habe ich es bisher kaum nutzen müssen, lediglich das ein oder andere State-, Activity- und Use Case-Diagramm und dann nur im Rahmen der Spezifikation bzw. Diskussion im Team
  • BPMN
    • Für die praktische Arbeit und das besprechen von Abläufen finde ich BPMN Diagramme i.A. leichter verständlich und bevorzuge diese über UML Activity Diagrammen.
  • Software/Applikations-Architektur
    • Design der inneren Architektur der Applikation: d.h. Aufteilung der Module und Schichten, genutzte Technologien & Frameworks.
    • Design der äußeren Architektur anhand der Rahmenbedungen: d.h. Schnittstellen und Protokolle zu anderen Systemen, Integration in die Betriebslandschaft
  • Patterns
    • Das schönste ist, wenn man ein Muster angewandt hat, ohne es vorher zu kennen.


Softskills

  • Motivation
    • Ich hatte noch nie ein Problem mich zu motivieren, höchstens mit mangelnder Motivation anderer.
    • Insofern ist auch meine Belastbarkeit eher überdurchschnittlich, denn ?wenn es Freude macht, ist es keine Arbeit?; andere sagen dazu ?Workaholic
  • Arbeitsweise
    • eigenständige, strukturierte und nachvollziehbare Arbeitsweise
    • Anforderung möglichst direkt und ohne Goldkante erstmal erreichen. Dabei aber auf Potentiale aufmerksam machen.
    • sehr Effizienz-orientiert (scripting)
    • möglichst wenig Planungsoverhead
    • immer auf der Suche nach Optimierung/Automatisierung der Abläufe und Prozesse
  • Kommunikation
    • Offene und zielgerichtete Kommunikation gegenüber allen Projektbeteiligten mit dem Fokus auf ?Denotation?.
    • Darüber hinaus ist mir natürlich auch die konnotative Dimension bewusst und ist u.A. wichtig, um frühzeitig auf Probleme in der Beziehungs-Ebene im Team reagieren zu können.
  • Teamfähigkeit
    • bringe mich stets ein
    • helfe ohne Umschweife
    • äußere meine Meinung und Sicht und respektiere andere


AWS Cloud

  • Terraform
    • Ich hatte erst mit manuell Skripten unter Nutzung der AWS CLI begonnen. TF macht das Leben aber viel leichter
      • Parametrisierung des Infra-Stacks so dass dieser für alle Stages verwendet werden konnte unter Nutzung von Workspaces
  • Beanstalk
    • Einfacher Weg skalierende Applikationen zu deployen aber halt etwas eingeschränkter
  • ECS
    • Der nächste Schritt nach Beanstalk seine Docker-Container zu deployen. 
    • Grundgerüst wurde bereitgestellt und ich habe hauptsächlich dieses dann an die Bedürfnisse angepasst
  • ALB
    • Grundgerüst wurde bereitgestellt und ich habe gelegentlich die Regeln angepasst
  • Cognito
    • Genutzt als einfaches User-Management für die UI mit manueller bzw. geskripteter Anlage der User
  • RDS/Aurora
    • Naja, es ist ein RDBMs in der Wolke, ohne nennenswerte Sonder-Konfigurationen
  • SNS
    • Nur im Rahmen der AWS CodePipeline manuell eingerichtet Benachrichtigungen
  • CodeCommit
    • AWS Git Repo, mit viel Luft nach oben
  • CodeBuild, CodePipeline
    • Inzwischen gar nicht so schlechte Möglichkeit seine Applikationen zu bauen. 
    • Habe von Grund auf unsere CI/CD-Pipeline aufgesetzt
  • ParameterStore
    • Genutzt als Datenspeicher für die Parametrisierung der CI/CD Pipeline als auch der Applikation in den einzelnen Stages
  • VPC
    • Genutzt zur Trennung der verschiedenen Stages auf Netzwerk-Ebene.
  • S3 
    • Genutzt als ausschließlich interne Ablage für verschiedenste Artefakte mit Nutzung von Versionen.
  • X-Ray
    • Service ?missbraucht? um im Betrieb eher fachliche Datenströme zu visualisieren
  • Kibana
    • ELK Stack für die Logs inkl. Einrichtung von Dashboard aber hauptsächlich genutzt um Logs für die Fehleranalyse zu sichten.
    • Für komplexerer Analyse-Aufgaben habe ich dann aber eine kleines Tool geschrieben, das mittels Elasticsearch Logeinträge sucht und korreliert.
  • AWS Kinesis 
  • SecurityGroups 
    • Genutzt um klassisch Zugriffe auf Ressourcen ähnlich zu einer Firewall zu beschränken.
  • IAM
    • Genutzt haben ich Rollen und Policies (auch Cross-Account) um weiter den Zugriff auf Ressourcen beschränken zu können.


IDEs & Tools

  • IntelliJ
    • Habe nach langer Zeit meinen Wiedersand dagegen aufgrund der Anforderungen in einem Projekt aufgegeben und finde es nun tatsächlich konsistenter als Eclipse, auch wenn ich von dort noch das ein oder andere Feature vermisse
  • Eclips
    •  Überzeugter Nutzer von Eclipse trotz einiger Schwachstellen:
      • Egit ? nutze daher die Git Bash
      • Mangelhafter JS Support
    • War bislang immer einer der Most-Advanced User in den jeweiligen Teams, bin mir aber sicher nicht alles zu wissen
    • J2EE und RCP Distributions
    • Plugins
    • Maven
    • RBE
    • MoreUnit
    • JAutoDoc
    • Spring IDE
    • JRebel
    • Mylyn
    • AutoDeriv
    • Asciidoc
    • PlantUMLo
  • Maven
    • Mittlere Komplexität unter Nutzung diverser Plugins.
  • Git Seit
    • Habe in 2015 begonnen Git zunächst als Frontend für SVN, Perforce zu nutzen.
    • Seit 2017 nutze ich nur noch Git direkt und kann mir gar nichts anders mehr vorstellen
    • Hoster: Gitlab, Github, Bitbucket
  • Docker
    • Nutzung im Rahmen der lokalen Entwicklung /Debugging
    • Docker compose
  • CI/CD
    • Gitlab (bis 2023), GitHub (2024)
    • Hudson/Jenkins (bis 2016)
    • Bamboo (bis 2012)
    • ArgoCD (2024)
  • Sonar
    • 2024 Einbindung von SonarCloud in CI Pipeline auf Github getriggert durch Maven
  • Bash/CMD
    • Automatisierung immer wieder kehrender Aufgaben sowohl privat als auch im Projekt
    • Immer auch Teil und nötig für CI/CD Pipelines
    • Angefangen mit DOS/CMD auf Windows mit mit GnuWin32 u.Ä Erweiterung um es Unix-ähnlicher zu machen. 
    • Ab 2016 mit Git Bash auf Windows und danach mit WSL echtes Linux/Posix Bash


Microsoft Office

  • Word
    • Hauptsächlich und viel im Rahmen von Spezifikationen genutzt
    • Zur Automatisierung auch einige VBA Skripte erstellt
    • Styles sind selbst in der Version 2016 immer noch ein Kampf und die wenigsten wissen leider diese einzusetzen, was besonders schlimm ist, wenn diese dann Templates bereitstellen.
    • Seit 2016 schreibe ich nur noch wenig in Word, weil vielfach im Rahmen der Agilen Entwicklung zu Wikis übergegangen wurde. Dennoch bin im in Word immer noch deutlich produktiver als in den Wikis und bevorzuge es daher.
  • Excel
    • Übliche Office-Nutzung professionell und privat
    • Diagramme
    • Daten-Import/Export auch mit Java Bibliotheken
  • PowerPoint
    • einfache Präsentationen
  • OneNote
    • Ein super Wiki für die Dokumentation in kleinen Teams und auch probates Mittel gegen die persönliche Zettelwirtschaft


Beruflicher Werdegang

07/2012 ? heute

Rolle: Software-Engineer, -Architekt, Teamlead, Techn. Projektleiter 


04/2005 ? 07/2012

Rolle: Software-Engineer, -Architekt, Projektleiter

Kunde: BROX IT Solutions GmbH, Hannover


04/2000 ? 04/2005

Rolle: Software-Engineer (50% Stelle neben Studium)

Kunde: BROX IT Solutions GmbH, Hannover


04/1999 ? 04/2000

Rolle: Software-Engineer 

Kunde: BROX IT Solutions GmbH, Hannover


Betriebssysteme

WSL2
Windows
Linuxe

WSL2

  • Mit WSL2 habe ich nun für mein Entwicklungssetup die goldene Mitte zwischen der Produktivität der Windowsumgebung und den Linux Toolchains gefunden.
  • D.h. meine IDE (via X-Server) und alles was für die Entwicklung nötig ist, läuft in WSL, der Rest in Windows.


Windows

  • Habe ich seit Anbeginn der Tage genutzt (Win 3.11)
  • Der Level bezieht sich auf die Nutzung und nicht auf die Administration von Windows-Netzwerken, obwohl ich da auch ein paar Kenntnisse habe
  • Viele kleinere Tools um das Leben zu erleichtern
  • Seit 2019 arbeite ich entwicklungs-technisch ausschließlich aus der WSL heraus -> siehe Linuxe


Linuxe

  • Seit 2005 liefen die Webanwendungen meiner Projekte standartmäßig auf Linux Umgebungen
  • Seit 2019 arbeite ich entwicklungs-technisch ausschließlich aus der WSL heraus, grundsätzlich auf einem aktuellen Ubuntu LTS
  • Mein Host OS ist aber weiterhin Windows weil ich einfach in Windows zu produktiv bin, als dass ich die Muße hätte, dass auf ein Linux zu übertragen.

Programmiersprachen

Java
21
Spring Boot
Data, REST, Cloud
Spring
J2EE
AOP
Spring AOP via Proxies
JMS
Active MQ, IBM MQ Series, TIBCO EMS, Queues, Topics, Einfacher Austausch XML-basierter Nachrichten
Kafka
AMQP
Rabbi MQ
JPA
Flyway
Eclipse Scout
JSF 2
Vaadin
OpenAPI Sepcification (OAS) /Swagger
REST(ful)
HATEOAS
SOAP
gRPC
YAML
JSON
XML
XML Schema Design
Protobuf
Used this
XSLT
Kubernetes
Tomcat
7,8
OSGi
Solr/Lucene/Elastic Search
IAM
AWS Cognito, Keycloak
JWT
OIDC
OAuth2

Spring

  • In diversen Kundenprojekten als DI Container eingesetzt
  • ?Der kleine Bruder von OSGi?
  • Aspekte
    • Profile
    • AOP
    • XML- und Annotationsbasierte Konfiguration
    • Data-Integration
    • Integration-Testing


J2EE

  • Aufgrund der Kundenanforderungen in den Projekten hatte ich bis auf das Projekt bei der Talanx nie den Bedarf für einen vollen J2EE Server; ein Tomcat + Spring + ggf. JPA/JMS reichte aus.
    • Bei der Talanx wurde das Thema EJB aber weitestgehend in einem hauseigenen Framework versteckt und die Entwicklungsarbeiten war i.d.R. so weit davon entfernt, so dass dies nur wenig zum Tragen kam

JPA

  • Hibernate 6
  • Mapping der Entities auf DB Schema bzw. Generierung des Schemas aus den Entities heraus.
  • Custom und Embedded Types
  • Inheritance Mapping
  • Interceptors


Flyway

  • Nutzung zur Migration von Daten in DBs sowohl Standalone als auch integriert in Spring-Boot


Eclipse Scout

  • Bislang nur ein paar Implementierungen und Anpassungen von Maskenteilen


JSF 2

  • Im Rahmen meiner Kernrolle des Teamleiters und Architekten im VW Projekt in 2012 habe ich mich zunächst theoretisch mit den Grundlagen befasst und dann bei Problemstellungen auch praktisch Lösungen entwickelt und umgesetzt. 
  • Insofern besitze ich ein gutes Grundverständnis der Frameworks (Phasen, Komponenten, Zusammenspiel aller Teile) vor allem auf der Server-Seite


Vaadin

  • Mit Vaadin bin ich im TUI Projekt mit in Berührung gekommen und ist analog zu JSF ein Komponentenbasiertes Web-Framework. 
  • Im Rahmen der Tätigkeiten habe ich mich in ein paar Aspekte einarbeiten können, was erstaunlich leicht ging. 


OpenAPI Sepcification (OAS) /Swagger

  • Hauptsächlich im Rahmen von API First, also erst OAS schreiben und daraus Java POJOs generieren inkl. Konfiguration und Anpassung nach den Bedürfnissen des Projektes.
  • Gelegentlich auch Generierung der OAS/Swagger UI aus dem bestehende Programm Code bei älterem Code.


REST(ful)

  • Design und Nutzung von APIs, bevorzugt im Zusammenhang mit OpenAPI/Swagger
  • Nutzung von:
    • definierten HTTP Status Codes
    • ggf. auch ProblemDetail für Error Responses
  • Kein HATEOAS


JSON

  • Inzwischen in einigen Projekten genutzt, meist mit Jackson o.Ä.
  • Im Vergleich zu XML und YAML fehlt mir hier immer wieder, dass es keine Kommentare gibt
  • Insofern OK für reinen Datatransport in der Applikation


XML

  • Neben dem normalen lesen/schreiben von XML Dokumenten verstehe ich darunter auch vor allem die Aspekte:
    • Validierung
    • Generierung via JAXB


XML Schema Design

  • Habe in diversen Projekten XML Schemata entworfen, hauptsächlich mit XML Spy.
  • Im Grunde braucht man die gleichen Skills wie bei OO und DB Design
  • Features
    • (multiple) Namespaces
    • Ableitungen
    • Groups
    • Ref. Constraints


XSLT

  • Einfache Transformationen
  • Es muss bewusst sein: funktionales Paradigma


Kubernetes

  • Normale Nutzung als Entwickler, d.h.
    • Deployments via Helm Charts und argoCD
    • Leichte Administration im Rahmen des Betriebes der Installierten Anwendungen mit kubectl zur Problembehebung , Debugging etc


Tomcat 7,8

  • Grundlegende Administrations-Kenntnisse zum Aufsetzen für die Entwicklung
    • Applikations-Kontexte
    • Ports
    • Bibliotheks-Management
    • Rechte (LDAP Integration)
  • SSL
  • Seit Spring Boot ist der Webserver idR integriert


OSGi

  • Im Rahmen von SMILA/eccenca benötigt
  • Implementierung Equinox
  • Diese Welt ist riesig, weshalb ich mir hier nur Level 5 gebe.
    • Dependency Management
    • OSGi Console
    • Declarative Services
  • Build (extrem aufwändig


Solr/Lucene/Elastic Search

  • Hauptsächlich im Rahmen der Produktentwicklung der Brox GmbH als auch in diversen Kunden-Projekten eingesetzt.
  • Aspekte:
    • Importieren der Daten in den Index (~ETL)
    • Design der Indizierung-Schritte und des Indexes, damit vernünftig gefunden werden kann
    • Abbildung von Berechtigungs-Strukturen bei der Suche
  • Integration von 3rd-Party Komponenten wie Thesauri und Wortstamm-Analyse/Reduktion


JWT, OIDC, OAuth2

  • Intensiv an einer IAM Lösung auf Basis von Keycloak gearbeitet die alle diese Elemente beinhaltet

Datenbanken

Datenbank Design
SQL
ETL
Microsoft SQL Server
Oracle Database
PostgreSQL
Mongo DB 4
Queries und Aggregation Pipelines

Datenbank Design

  • DB Design ist eine eigene Disziplin und wenn auch eng verwandt mit OOD, so ist es doch hinreichend unterschiedlich dazu, um nicht ohne weiteres die Prinzipien von der einen in die andere Welt übertagen zu können: Es geht in der DB immer um Mengen und deren Relationen und nicht um Objekt-Graphen.
  • Aspekte
    • Indexe
    • Constraints
    • Trigger
    • Locking
    • Schemata
    • Tabelspaces


SQL

  •  Kein Projekt ohne auch eine DB zu haben und daher war auch immer SQL im Spiel, mal mehr mal weniger.
  • Wichtig hierbei ist das Denken in Mengen und Mengen-Operationen und nicht in einzelnen Schrittfolgen (Deklarative vs. Imperative Programmierung)
  • Vor allem in den DWH Projekten 2004-2007 habe ich enorm an Können gewonnen


ETL

  • Kam in reiner Form in den DWH Projekten 2004-2007 vor als auch im Projekt Engpasstool ab 2012
  • Aufgrund meiner Affinität zu Datenbanken und deren Operationen auf Mengen haben sich mir die hier nötigen Prinzipien und Handwerkszeuge schnell erschlossen und habe dem Thema ETL zunächst keine weitere Bedeutung zugemessen, weil in irgendeiner Form das immer in Projekten vorkommt ? besonders in Konzernen.
  • Inzwischen habe ich gelernt, dass eine performante und vor allem wartbare (d.h. betrifft vor allem auch Fehlerdiagnose im Betrieb) von enormen Wert ist und derartige Schnittstellen zu designen auch erfahrene Entwickler vor eine große Herausforderung stellt.


Microsoft SQL Server

  • Bezogen auf das MS spezifische Produkt:
    • Administration von DBs für Entwicklungszwecke
    • Rechte
    • Backup/Restore
  • T-SQL
    • Hauptsächlich um Abläufe zu automatisieren oder zum Debugging
    • Highlight: Umsetzung einer FSM im Rahmen eines DWH Projektes
  • Tools
    • SQL Server Manager
    • Query Analyzer


Oracle Database

  • Geringe Administrative Kenntnisse
  • PL/SQL
    • Aufwändigere STPs im Rahmen des Projektes Engpasstool ab 2012 für den ETL Prozess
  • Tools
    • Oracle SQL Developer
    • SQLPLUS


PostgreSQL

  • Einfache Administrative Kenntnisse:
    • aufsetzen des Servers, import/export von DBs/Daten
  • Reine Nutzung als SQL DB via Standard-SQL

Datenkommunikation

Internet, Intranet
wer hat hier heutzutage keine Kenntnisse?
LAN, LAN Manager
Ich habe schon in den neutziger Jahren für private Zwecke Netzwerke aufgebaut, als das mit den Koaxkabeln und Abschusswiderständen noch deutlich problembehafteter war als heute.
Message Queuing
im Rahmen von Projekten via JMS sowohl Active MQ als auch IBM MQ Series
Router
habe auch einen Zuhause ;) - ehrlich was soll man hier sagen? Portfreigabe, NAT, VPN Konfigurieren, Firewall, DHCP Server?
SMTP
nutze ich (fast) täglich, um meine Emails abzurufen - wer denn nicht? Ansonsten habe ich auch aus Applikationen heraus sowohl Text als auch HTML Nachrichten verschickt. Kenntnisse zu MIME sind da recht praktisch
TCP/IP


Hardware

Amiga
als Schüler noch
Digitale Signalprozessoren
im Rahmen Diplom-Arbeit
embedded Systeme
im Rahmen Fachptraktikum
Motorola
als Schüler noch mit Amiga

Design / Entwicklung / Konstruktion

OOA
OOD
OOP

Branchen

Branchen

  • Automotive
  • Telekom
  • Schulung
  • Hotels

Einsatzorte

Einsatzorte

Hannover (+50km) Höxter (+100km) Haldensleben (+75km) Schwalmstadt (+75km)
nicht möglich

Projekte

Projekte

1 Jahr
2024-01 - heute

IAM Lösung basierend auf Keycloak

Senior-Entwickler Spring Boot Microservice 3.3+ auf Java 17/21 Keycloak 26 JWT ...
Senior-Entwickler

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.

  • Entwicklung und Unit Test von Keycloak Extensions (z.B. Authenticator, UserStorageProvider, EmailSenderProvider, EmailTemplateProvider, Protocol Mapper) 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.
  • Zu Beginn war ich auch noch stärker in der Erstellung und Anpassung von Helm Charts involviert, was ich mir an dieser Stelle in einigem Umfang habe aneignen können. Zur Mitte des Jahres hat diese Aufgaben dann ein neuer Kollege schwerpunktmäßig übernommen.
  • Beheben von CVS in unseren Deliverables

Spring Boot Microservice 3.3+ auf Java 17/21 Keycloak 26 JWT OIDC OAuth2 Junit5 Mockito Spring Test Framework Testcontainer Cypress (UI Testing) gRPC/Protbuf Docker Kubernetes Helm Charts Harbor Vault ArgoCD Grafana/Loki Github Posgre SQL Jira Confluence Google Workspaces
IONOS SE
3 Jahre 1 Monat
2020-12 - 2023-12

Implementierung einer Applikation zur Produkt-Konfiguration

Solution-Architekt, Lead-Developer, Analyst Spring Boot (3.2) Backend-Services mit PostgreS Frontend mit Eclipse Scout (22.0.41) Gitlab ...
Solution-Architekt, Lead-Developer, Analyst

Hauptbestandteil meiner Arbeit war es den existierenden Entwurf des Datenmodells, der sich stark an den bisherigen Excel-Tabellen orientierte, zu ?überarbeiten?. Dieses mündete schnell in die Erkenntnis in Übereinstimmung mit dem Kunden, ein ganz neues DM 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 sowie Code Generierung des Clients mit Jersy2 auf der einen Seite und JPA/Hibernate auf der DB Seite). Seither bin ich Ansprechpartner für die Umsetzung und Nutzung des Modells für die weitere Entwicklung. Das Modell sollte u.A. dabei folgende Aspekte lösen:

  • Implementierung einer Applikation zur Produkt-Konfiguration und Verwaltung in einem Nischenmarkt
    • Abbildung von maschinenabhängigen Parametern auf bestimmt Attribute eines Produktes
    • Mandatenfähigkeit in einer Unternehmensgruppe
    • 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.
    • REST Frontend (Facade) zur Integration für Jasper Reports
  • Im Laufe der Zeit ist auch ein wenig Entwicklung im Frontend mit dem Eclipse Scoute UI Componenten-Framwork dazugekommen.

Spring Boot (3.2) Backend-Services mit PostgreS Frontend mit Eclipse Scout (22.0.41) Gitlab Jasper Reports
2 Jahre 1 Monat
2021-10 - 2023-10

Verarbeitung von File- als auch Event-basierten Datenströmen

Senior-Entwickler Spring Boot Microservice (noch 2.7 angehend 3.x) Reactive Stack ...
Senior-Entwickler

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.

  • Pro/Con Reactive Stack
  • Mongo DB
    • Pro/Con Dokumentenbasierte Speicherung vs. Relationale DB
    • Queries und Aggregations
  • Eventdriven Architecture mit AMQP (RabbitMQ)
  • Grenzen beim Einsatz von OpenAPI 3
  • Schneiden kleinteiliger Stories/Merge Requests zur Schärfung des Fokus und Minimierung von Merge-Konflikten
  • Echter Microservice-Ansatz (40+ Services)
Spring Boot Microservice (noch 2.7 angehend 3.x) Reactive Stack 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 AWS EKS S3 SQS ECR Secret Manager Gitlab Graylog Grafana New Relic Prometheus Jira Confluence
GVL mbH
6 Monate
2021-04 - 2021-09

Design und Entwicklung eines Microservices

Solution-Architekt, Lead-Developer Kafka AWS Kinesis + KCL DynamoDB ...
Solution-Architekt, Lead-Developer

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

  • Design und Entwicklung eines Microservices für Reaktive Datenverarbeitung in einem Hochlast-Scenario
  • Konzeption
    • Klärung der Lücken in den Anforderungen und des Verhaltens der Randsysteme (diese waren bis 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 einfachen AWS SDK Kinesis-Consumer Implementierung auf 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 als auch den nachgelagerten Service, so dass beide als Einheit getestet werden können.
Kafka AWS Kinesis + KCL DynamoDB Spring Boot Microservice Junit5 Cucumber Java 11 RactiveX 3 Terraform Kubernetes + Flux
TUI
3 Jahre
2018-04 - 2021-03

Customer Master Data Management

Co-Solution-Architekt, Lead-Developer, AWS Cloud Engineer 9 RESTful Microservices auf Basis von Spring Boot 2.3 Maven Java 11 ...
Co-Solution-Architekt, Lead-Developer, AWS Cloud Engineer

  • Fachlich geht es bei dieser neue zu schreibenden Applikation um eine eventbasierte Deduplizierung und Zusammenführung von Kunden aus verschiedenen Systemen. Damit wird für die Stammdaten aller Kunden für alle anderen Systeme geschaffen, 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 aus der Taufe zu heben. Nach einem Jahr bekam ich 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 Hauptzuständiger für Releases und den Betrieb geworden 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 (es fehlten sowohl ein Scrum-Master als auch ein echter Product-Owner), die Entwicklungs-Arbeiten in sinnvolle Schritte zu strukturieren und als Jira-Tickets zu organisieren, mit dem Ziel das Vergangene nachvollziehbar zu halten und die Zukunft planbar zu machen sowie Abhängigkeiten festzuhalten
    • Customer Master Data Management für TUI auf Basis von Spring Boot Microservices in AWS
    • 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) via Terraform
    • 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: 2-6
    • Agile Entwicklung (?TUI Scrum?)
9 RESTful Microservices auf Basis von Spring Boot 2.3 Maven Java 11 Hibernate JUnit 5 Mockframeworks PostgreSQL 10 JAXB Swagger Elasticsearch Angular JS Spring Sleuth AWS Cloud Componenten mit Setup via Terraform ECS ALB Security Groups IAM Cognito Kibana RDS/Aurora PostgreSQL lambda Parameter Store VPC S3 CloudWatch X-Ray Beanstalk EC2 Docker Gitlab CodeCommit CodeBuild CodePipeline Container CI/CD TDD CleanCode
TUI
1 Jahr 1 Monat
2017-03 - 2018-03

J2EE / RCP Applikation ?BIN?

Websphere Java 6 Oracle 11g ...

BIN wird als spartenübergreifendes Vertragsbestands-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 -- 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, ?).

  • Technische Konzeptionierung, Entwicklung, Unit- und Integration-Tests im Bereich Dokumente und Drucksteuerung
  • Teamgröße: ~12
  • Projektgröße: >50 Entwickler
  • Agile Entwicklung

Websphere Java 6 Oracle 11g JPA/Hibernate 4 Eclipse RCP SOAP Webservices over JMS EJB 2 Maven SonarQube
Talanx/HDI
9 Monate
2016-07 - 2017-03

Webapplikation ?Destimint?

Java 8 Tomcat 8 Spring 4 ...

Destimint dient TUI als zentrale Anwendung für interne Verwaltungsprozesse sowohl der eigenen Hotels als auch aus externen Quellen. Hierbei ist es in die Systemlandschaft integriert und unterhält bidirektionale Schnittstellen in die Buchungssysteme der TUI.

  • Technische Konzeptionierung, Entwicklung, Unit- und Integration-Tests
  • Teamgröße: 9
  • Agile Entwicklung

Java 8 Tomcat 8 Spring 4 Vaadin 7 Oracle 11g JPA/Hibernate 5
TUI Deutschland
4 Jahre 5 Monate
2012-08 - 2016-12

Webapplikation ?Engpasstool?

Technischer Projektleiter/Team-Lead Spring 4.x Tomcat 7 WebSphere 8 ...
Technischer Projektleiter/Team-Lead
Ü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.
  • Konzeption, Entwicklung, Release-Management
  • Teamgröße: 4-6
  • Scrum seit Jan 2016
Spring 4.x Tomcat 7 WebSphere 8 JSF 2.1 PrimeFaces 5 Solr 3.6 Oracle 11g STPs JMS JPA/Hibernate 4.3
VW Inbound-Logistik
7 Monate
2012-07 - 2013-01

Generalisierung des eccenca-Frameworks

eccenca/SMILA Solr 3.5

Weitere Generalisierung des eccenca-Frameworks zur gleichzeitigen Einbindung mehrerer Suchtechnologien.

  • Konzeption und Architektur der Weiterentwicklung
  • Implementierung
  • Teamgröße: 1-2

eccenca/SMILA Solr 3.5
1 Jahr 6 Monate
2011-02 - 2012-07

Eclipse Projekt SMILA und BROX eccenca

Integration Suchserver Solr 1.4 eccenca 2.x SMILA

eccenca 1.0 war noch eine Hybridlösung bestehend aus dem neuen SMILA Indexierungs-Processing und den AnyFinder-Bestandteilen der Suche basierend auf Lucene. Mit eccenca 2.0 wurde dieser ältere Code ebenfalls durch SMILA ersetzt als auch Lucene durch Solr 1.4. Für die Architektur, Umsetzung und Weiterentwicklung von eccenca (und SMILA zum Teil) zeichne ich nun auf technischer Seite verantwortlich.

  • SMILA Co-Projekt-Leiter
  • eccenca Projekt-Leiter und Architekt
  • Implementierung
  • Teamgröße: 2-3

Integration Suchserver Solr 1.4 eccenca 2.x SMILA
4 Monate
2012-03 - 2012-06

Suche basierend auf eccenca für ein internes Web-Portal

eccenca/SMILA Google Search Appliance 6.14 (GSA)

Umsetzung neuer Features im Framework des AG und Einbindung der GSA als Suchtechnologie

  • Konzeption und Architektur der Weiterentwicklung
  • Implementierung
  • Teamgröße: 1-2



eccenca/SMILA Google Search Appliance 6.14 (GSA)
VW
8 Monate
2011-11 - 2012-06

Liferay CMS Suche basierend auf eccenca für ein internes Web-Portal

Liferay 6 Solr 3.5 eccenca/SMILA
  • Für den Suche einer Search-Driven Liferay Applikation soll eccenca zum Zuge kommen. Hierbei gilt es ca. 80.000 gleichzeitige Nutzer bedienen zu können, was in der Spitze zu geforderten 1.1 Mio. (technischen) Such-Anfragen pro Stunde führt bei einer Datenbasis von anfänglich ca. 100.00 Dokument (MS Office, PDF und andere).
  • Meine Aufgabe hierbei war zusammen mit dem Projektleiter zunächst die Anforderungen des Kunden und deren Umsetzung im Pflichtenheft festzuhalten. Umsetzung der Spezifikation, Design der SW-Architektur sowie deren Leitung und Qualitätssicherung oblagen mir.
    • Konzeption und Architektur
    • Implementierung
    • Teamgröße: 2-3
Liferay 6 Solr 3.5 eccenca/SMILA
VW
8 Monate
2011-03 - 2011-10

Suche basierend auf eccenca für das Intranet-Portal

eccenca/SMILA Lucene Solr 1.
  • Das Projekt war als Weiterentwicklung angelegt und basierte zu dem Zeitpunkt auf einer frühen eccenca/SMILA Version, die stark für die Bedürfnisse des Projektes modifiziert wurde. Ziel war es zum einen den Code auf eine aktuelle, unangepasste SMILA Version zu migrieren sowie neue Quellen zu integrieren und für die Suche zugänglich zu machen. 
  • Meine Aufgabe bestand im Wesentlichen darin, den bestehenden Code zu analysieren und fortzuschreiben, ohne die Möglichkeit auf das Wissen der früheren Programmierer zugreifen zu können. Trotz dieses widrigen Umstandes gelang es durch effektive Zusammenarbeit mit dem AG die neuen Anforderungen zur vollen Zufriedenheit abzubilden und innerhalb der von mir geschätzten Aufwände zu verbleiben. In dieser fruchtbaren Zusammenarbeit wurde das Framework des AG weiter generalisiert, um zukünftig einfach Quellen anbinden zu können.
    • Konzeption und Architektur der Weiterentwicklung
    • Implementierung
    • Teamgröße: 1-2
eccenca/SMILA Lucene Solr 1.
VW
5 Monate
2010-03 - 2010-07

Tagungs-Konfigurator Großkunden

Techn. Projektleiter, Gesamt-Projektleiter Tomcat SQL Server Spring 3 ...
Techn. Projektleiter, Gesamt-Projektleiter
  • Das Projekt habe ich über seine ganze Laufzeit begleitet. An deren Beginn Stand die Konzeption in Form von Lasten- und Pflichtenheft, die ich mit meinem Kollegen gemeinschaftlich verfasst habe. Hierbei habe ich mich auf die Prozesse und Architektur (Datenbank-Design, externe Schnittstellen) fokussiert, während mein Kollege für die UI zuständig war. Ebenso haben wir uns auch die Projektleitung geteilt, in der ich für die technischen Aspekte verantwortlich zeichnete. Dies beinhaltete vornehmlich die Kommunikation mit den Ansprechpartnern der zu integrierenden Systeme sowie mit dem Offshore-Entwicklungspartner (UI Programmierung) bzgl. der geforderten Funktionsweise und dem Zusammenspiel mit den übrigen Komponenten. 
  • In diesem Zusammenhang hat es sich als sehr vorteilhaft erwiesen, dass ich das DB-Design/JPA Objekt-Modell vollständig vorgegeben und implementiert habe und ebenso die Implementierung der Integration in das Sihot ERP System bzw. den Ontobroker. Im Rahmen dieses Projektes habe sich die folgenden Dinge gezeigt:
    • Eine gute Spezifikation ist die halbe Miete
    • Eine Offshore-Entwicklung geht gut, wenn eine hohe Verzahnung der Entwicklungsarbeit und -Teams gegeben ist, so dass die Kommunikationswege kurz sind.
    • Entwicklung mit JPA und Spring
    • Sihot ERP
    • Inferenzmaschine Ontobroker zur Abbildung von Regeln bzgl. der Buchungsoptionen
  • Regelbasierte Web Applikation für Großkunden zur Buchung von Schulung inkl. Integration in Hotel ERP Software
    • Konzeption und Architektur
    • Implementierung
    • Teamgröße: 8 (2-3 Intern 5 Offshore)
Tomcat SQL Server Spring 3 JPA via Hibernate 3.3 Sihot (Hotel ERP) Ontobroker 6.1
Commundo Tagungshotels
2 Jahre 1 Monat
2008-03 - 2010-03

Eclipse Projekt SMILA und BROX eccenca Unified Information Access Architecture

Eclipse OSGi/Equinox PDE Build ...
  • Die Firmen BROX und empolis haben beide ein hausinternes Such-Framework entwickelt und vermarkten dieses in Zusammenhang mit einer eigenen Such-Engine. Um die Aufwände für die Wartung und Weiterentwicklung des Frameworks zu bündeln und neue Technologien einzubeziehen, wurde beschlossen, auf Basis der Best-Practices beider Frameworks das neue Framework SMILA zu entwickeln, das den neueren Anforderungen in großen Unternehmen genügt und welches im Kern öffentlich ist. eccenca baut auf diesem Kern auf und erweitert diesen um BROX-eigene Komponenten.
  • Der Anfängliche Schwerpunkt meiner Arbeit lag im Bereich der Storages insbesondere der Verwendung von XML Datenbanken. Darüber hinaus habe ich wesentliche Beträge zur Definition des Entwicklungsprozesses und der Entwicklungsstruktur im Projekt geleistet und deren Übereinstimmungen mit den Anforderungen seitens Eclipse. Im weiteren Verlauf habe ich verschiedene suchrelevante Technologien untersucht und teilweise in das Framework integriert.
    • Konzeption und Architektur Bereich Storages.
    • Entwicklungs-Prozess
      • Code Conventions
      • Eclipse Intellectual Property Process
      • Eclipse Build
      • Tests
      • Dokumentation
  • Integration verschiedener Technologien
  • Teamgröße: bis zu 15 (BROX, empolis und Offshore)
Eclipse OSGi/Equinox PDE Build p2 ? Update
BROX, empolis

Aus- und Weiterbildung

Aus- und Weiterbildung

6 Jahre
2000-04 - 2006-03

Studium der Elektrotechnik/Technische Informatik

Universität Hannover
Universität Hannover
  • Studienarbeit: auf Anfrage
  • inkl. Fachpratikum:
    • Linux basierte Embedded Systems für DSP-Anwendungen bei Thomson in Hannover
  • Diplomarbeit: auf Anfrage
2 Jahre 7 Monate
1996-10 - 1999-04

Studium der Elektrotechnik/Technische Informatik

Universität Hannover
Universität Hannover

Kompetenzen

Kompetenzen

Top-Skills

AWS Java API for RESTful Web Services Spring Boot SQL JSON Microservices XML Testautomatisierung GitHub GitLab JMS RabbitMQ Java Application Server JPA Cucumber Aspektorientierte Programmierung JSF Vaadin OpenAPI Kubernetes OpenID Docker Java 21

Schwerpunkte

  • Backendentwicklung von (Micro)services in Java mit Spring Boot
  • Datenmodellierung
  • Analyse und Konzeption von Anwendungslösungen
  • Automatisierte (Integrations-)Tests
  • CI/CD
  • (Cloud-) Architektur
  • (Unterstützung in der) Team-/Projektleitung sowie Entwicklungsplanung

Produkte / Standards / Erfahrungen / Methoden

Profil

  • Meine Stärke liegt ganz klar in dem Interesse ein gutes technisches Verständnis von Systemen zu erlangen und zu wissen wie diese arbeiten. Es gelingt mir deshalb vergleichsweise schnell mir dieses anzueignen und zu merken. Für mich ist in diesem Zusammenhang extrem wichtig, dabei eine präzise Sprache zu haben oder zu entwickeln; Begriffe müssen gut zu definieren sein und korrekt verwendet werden. Mit diesem Rüstzeug gelingt es mir dann auch komplizierte Sachverhalte zu beschreiben und im Gespräch mit anderen zu diskutieren und zu verfeinern.
  • Neben diesen analytischen Fähigkeiten zeichne ich mich durch eine hohe Belastbarkeit aus. Ich habe Projekte mit hohem Einsatz über einen langen Zeitraum als auch die typischen Stress-Phasen in Projekten, z.B. kurz vor dem Release-Termin ohne Probleme gemeistert.


Kenntnisse:

  • Ich besitzte allgmein ein gutes Verständnis von Daten und deren Zusammenhänge, ebenso kenne ich auch die grundlegenden Prinzipien der Arbeitsweise und Internas von DBs.
  • Dabei sind mir die Standard-Objekte der Datenbanken wie Views, Tabellen, Trigger, Indexe vertraut und ich beherrsche derem Umgang. Besonders das Schreiben von SQL Queries mit komplexten Joins habe ich im Rahmen eines OLAP/DWH-Projektes in großem Umfang betrieben.
  • Mein Kontakt zu Datenbanken war stehts im Kontext der Entwicklung zu sehen, wozu es u.A. als Architekt und Technischer Projektleiter auch gehört Datenbank-Schemata zu entwerfen als auch die Infrastruktur zu planen und in Auftrag zu geben. Der Portierbarkeit wegen wurde i.d.R. auf Stored Procedures verzichtet und möglichst mit Standard-DB-Mitteln und -Mechnismen gearbeitet. Gleichwohl besitze ich hier Grundkenntnisse und habe Funktionen sowohl für SQL Server als auch Oracle umgesetzt.
  • Viel interessanter wäre heutzutage in diese Zusammenhang zu erfragen, wie das mit der Sicherheit in der Datenkommunkation ist - z.B. Zertifikate, Verschlüsselung etc. Hier habe ich grundlegende Kenntnisse der Arbeitsweisen und muss mich in der Entwicklung darum kümmern, dass gemäß den allgmeinen und speziellen Anforderungen eine Einschätzung zur Datenklassifikation erfolgt und entsprechend umgesetzt wird.
  • Daher habe ich nur wenig pratisches Wissen zur Einrichtung und Administration, da dieses in meinem Projekten von der Infrastruktur-Abteilung erledigt wird.
  • Wenn man daher nicht unbedingt nach einem Adminstrator in der Infra sucht, ist von den obigen Punkten einzig "Message Queues" interessant. Diese habe ich sowohl in J2EE als auch sonstigen Server-Applikationen als Transport-Kanal genutzt, um Daten zwischen verschiedenen Applikation auszutauschen oder aber an die Knoten in einem Server-Cluster zu verteilen.
  • Neben den MQs finde ich auch Datenformate zur Übertragung wie XML oder JSON in diesem Bereich interessanter und erwähnenswerter als z.B. "Router".
  • In XML habe ich äußerst umfangreiche und fortgeschrittene Kenntnisse, da ich es seit 2000 in vielen Projekten genutzt habe, sowohl zur Konfiguration als auch zum Austausch von Daten zwischen Systemen. Ich auch inbesondere fortgeschritte Kenntnisse im im Design von XML Schemata und deren Nutzung zur Validierung eines XML Dokumentes.
  • JSON habe ich erst in den letzten 3 Jahren gelegentlich zur Serialisierung und Übetragung genutzt und schätze dabei seine teilweise bessere Lesbarkeit aufgrund der kompakteren schreibweise.


Methoden

  • Entwicklungsprozess (Agile Development)
    • Bis 2016 habe ich in keinem Projekt formal Agile Methodik genutzt aber auch nie ein reines V- oder Wasserfallmodell. Die Wahrheit liegt, wie so oft, dazwischen, d.h. viele der Agilen Prinzipien ergeben sich in der Praxis von selbst, will man eine funktionierende und für den Kunden nützliche und nutzbare Software erstellen, auch wenn formal ein eher klassischer Prozess definiert ist.
    • Wesentlichster Punkt ist für mich als Teamlead, der meistens auch für Analyse Konzeption und Planung zuständig war, auf Änderungen von Anforderungen und Gegebenheiten reagieren und eingehen zu können. Das schmeißt zwar immer wieder Planungen über den Haufen, aber am Ende muss die Software die tatsächlichen Anforderungen des Kunden erfüllen und nicht unbedingt was zu Beginn gefordert wurde, selbst wenn es abgestimmt und spezifiziert war.
    • Zum Glück werden seit einiger Zeit auch in Konzernen auf Agile Methoden formal umgestellt

  • Scrum
    • Ab 2016 wurde im Projekt Engpasstool auf Scrum umgestellt. Hierbei übernahm ich für die bislang verantwortete Applikation einen Gutteil der Rolle des Product Owners als auch die des Entwicklers (obwohl diese Rollen nicht in Personalunion ausgeführt werden sollten).
  • Team- und Projektleitung
    • Kernaspekte sind hier aus der Entwicklung heraus:
      • die Aufwände realistisch zu schätzen
      • in einen Release-Zyklus einzuplanen
      • die Aufgaben im Team zu verteilen
      • die Koordination mit anderen Bereichen bzw. Schnittstellen-Partnern
      • sich um das Ganze Drum-Herum (z.B. Entwicklungs-Infrastruktur, Berechtigungen und System-Zugängen, etc.) zu kümmern (Mädchen für alles)
    • Anmerkung: Derzeit liegt mein gewünschter Fokus mehr auf der Entwicklung. Bin aber gerne bereit auch in Teilen Leitungsfunktionen zu übernehmen bzw. darin zu unterstützen.
  • Anforderungs-Analyse Lösungs-Design und Spezifikation
    • Meine starke analytische Fähigkeit auch komplexe und komplizierte Sachverhalte zu durchdringen, sie zu formulieren und in verdaubarere Teile zerlegen zu können, sind für mich Schlüssel-Faktoren in diesem Bereich.
    • Oft werden diese Tätigkeiten separat betrachtet und haben auch eigene Schwerpunkte und Ziele, aber sie komplett zu trennen (klassisches Modell) erachte ich nicht als sinnvoll, weil sehr große Wechselwirkungen bestehen und u.A. die Agilen Entwicklung motiviert haben.
    • Wesentlich ist für mich hierbei das Formulieren und Verbalisieren sowohl der Anforderung als auch der zugehörigen Lösung(en) in einem konsistenten und wohl definierten Vokabular (DSL).
    • Die zahlreichen Dokumente, die ich hier selber verfasst habe, reich(t)en von wenigen Seiten bis zu Werken mit über 100 Seiten.
    • Als sehr hilfreiche empfinde ich es hierbei, mit dem breiten Wissen aus der Entwicklung zu praktikablen Lösungskonzepten zu kommen, die auch mit vertretbarem Aufwand implementiert werden können.
  • Unit Testing/TDD
    • TDD nutze ich sehr gerne aber nicht in der reinen Form, da diese mir zu kleinteilig ist und der Code aus den vielen Zwischenschritten am Ende weggeworfen wird. Von den Auswirkungen schätze ich:
      • Fokus auf das Ziel, was die Auseinandersetzung mit den Anforderungen erzwingt
      • Den produktiven Code aus einer anderen Warte zu betrachten
      • testbarere Einheiten (DI)
      • eine bessere Testabdeckung
      • eine echte Kunst ist es die Testfälle möglichst orthogonal anzuordnen
    • Tooling/Libraries
      • Junit 5
      • JaCoCo (Coverage mit Sonar)
      • Cucumber
      • Testcontainers
  • Mocking
    • jMockit
    • EasyMock 
    • Mockito
  • Rollout- /Release-/Deploy -Management
    • Hierbei handelt es sich i.d.R. um die Installation der Entwicklungs-Pakete auf dem Server durch den Betrieb. 
    • Dieses war entsprechend vorzubereiten und mit allen Beteiligten abzustimmen (z.B. Firewall-Freischaltungen für neue Schnittstellen, MQ Konfigurationen, etc.) aber es schließt auch Nutzerschulungen mit ein
  • UML
    • UML wird fast immer gefordert, tatsächlich habe ich es bisher kaum nutzen müssen, lediglich das ein oder andere State-, Activity- und Use Case-Diagramm und dann nur im Rahmen der Spezifikation bzw. Diskussion im Team
  • BPMN
    • Für die praktische Arbeit und das besprechen von Abläufen finde ich BPMN Diagramme i.A. leichter verständlich und bevorzuge diese über UML Activity Diagrammen.
  • Software/Applikations-Architektur
    • Design der inneren Architektur der Applikation: d.h. Aufteilung der Module und Schichten, genutzte Technologien & Frameworks.
    • Design der äußeren Architektur anhand der Rahmenbedungen: d.h. Schnittstellen und Protokolle zu anderen Systemen, Integration in die Betriebslandschaft
  • Patterns
    • Das schönste ist, wenn man ein Muster angewandt hat, ohne es vorher zu kennen.


Softskills

  • Motivation
    • Ich hatte noch nie ein Problem mich zu motivieren, höchstens mit mangelnder Motivation anderer.
    • Insofern ist auch meine Belastbarkeit eher überdurchschnittlich, denn ?wenn es Freude macht, ist es keine Arbeit?; andere sagen dazu ?Workaholic
  • Arbeitsweise
    • eigenständige, strukturierte und nachvollziehbare Arbeitsweise
    • Anforderung möglichst direkt und ohne Goldkante erstmal erreichen. Dabei aber auf Potentiale aufmerksam machen.
    • sehr Effizienz-orientiert (scripting)
    • möglichst wenig Planungsoverhead
    • immer auf der Suche nach Optimierung/Automatisierung der Abläufe und Prozesse
  • Kommunikation
    • Offene und zielgerichtete Kommunikation gegenüber allen Projektbeteiligten mit dem Fokus auf ?Denotation?.
    • Darüber hinaus ist mir natürlich auch die konnotative Dimension bewusst und ist u.A. wichtig, um frühzeitig auf Probleme in der Beziehungs-Ebene im Team reagieren zu können.
  • Teamfähigkeit
    • bringe mich stets ein
    • helfe ohne Umschweife
    • äußere meine Meinung und Sicht und respektiere andere


AWS Cloud

  • Terraform
    • Ich hatte erst mit manuell Skripten unter Nutzung der AWS CLI begonnen. TF macht das Leben aber viel leichter
      • Parametrisierung des Infra-Stacks so dass dieser für alle Stages verwendet werden konnte unter Nutzung von Workspaces
  • Beanstalk
    • Einfacher Weg skalierende Applikationen zu deployen aber halt etwas eingeschränkter
  • ECS
    • Der nächste Schritt nach Beanstalk seine Docker-Container zu deployen. 
    • Grundgerüst wurde bereitgestellt und ich habe hauptsächlich dieses dann an die Bedürfnisse angepasst
  • ALB
    • Grundgerüst wurde bereitgestellt und ich habe gelegentlich die Regeln angepasst
  • Cognito
    • Genutzt als einfaches User-Management für die UI mit manueller bzw. geskripteter Anlage der User
  • RDS/Aurora
    • Naja, es ist ein RDBMs in der Wolke, ohne nennenswerte Sonder-Konfigurationen
  • SNS
    • Nur im Rahmen der AWS CodePipeline manuell eingerichtet Benachrichtigungen
  • CodeCommit
    • AWS Git Repo, mit viel Luft nach oben
  • CodeBuild, CodePipeline
    • Inzwischen gar nicht so schlechte Möglichkeit seine Applikationen zu bauen. 
    • Habe von Grund auf unsere CI/CD-Pipeline aufgesetzt
  • ParameterStore
    • Genutzt als Datenspeicher für die Parametrisierung der CI/CD Pipeline als auch der Applikation in den einzelnen Stages
  • VPC
    • Genutzt zur Trennung der verschiedenen Stages auf Netzwerk-Ebene.
  • S3 
    • Genutzt als ausschließlich interne Ablage für verschiedenste Artefakte mit Nutzung von Versionen.
  • X-Ray
    • Service ?missbraucht? um im Betrieb eher fachliche Datenströme zu visualisieren
  • Kibana
    • ELK Stack für die Logs inkl. Einrichtung von Dashboard aber hauptsächlich genutzt um Logs für die Fehleranalyse zu sichten.
    • Für komplexerer Analyse-Aufgaben habe ich dann aber eine kleines Tool geschrieben, das mittels Elasticsearch Logeinträge sucht und korreliert.
  • AWS Kinesis 
  • SecurityGroups 
    • Genutzt um klassisch Zugriffe auf Ressourcen ähnlich zu einer Firewall zu beschränken.
  • IAM
    • Genutzt haben ich Rollen und Policies (auch Cross-Account) um weiter den Zugriff auf Ressourcen beschränken zu können.


IDEs & Tools

  • IntelliJ
    • Habe nach langer Zeit meinen Wiedersand dagegen aufgrund der Anforderungen in einem Projekt aufgegeben und finde es nun tatsächlich konsistenter als Eclipse, auch wenn ich von dort noch das ein oder andere Feature vermisse
  • Eclips
    •  Überzeugter Nutzer von Eclipse trotz einiger Schwachstellen:
      • Egit ? nutze daher die Git Bash
      • Mangelhafter JS Support
    • War bislang immer einer der Most-Advanced User in den jeweiligen Teams, bin mir aber sicher nicht alles zu wissen
    • J2EE und RCP Distributions
    • Plugins
    • Maven
    • RBE
    • MoreUnit
    • JAutoDoc
    • Spring IDE
    • JRebel
    • Mylyn
    • AutoDeriv
    • Asciidoc
    • PlantUMLo
  • Maven
    • Mittlere Komplexität unter Nutzung diverser Plugins.
  • Git Seit
    • Habe in 2015 begonnen Git zunächst als Frontend für SVN, Perforce zu nutzen.
    • Seit 2017 nutze ich nur noch Git direkt und kann mir gar nichts anders mehr vorstellen
    • Hoster: Gitlab, Github, Bitbucket
  • Docker
    • Nutzung im Rahmen der lokalen Entwicklung /Debugging
    • Docker compose
  • CI/CD
    • Gitlab (bis 2023), GitHub (2024)
    • Hudson/Jenkins (bis 2016)
    • Bamboo (bis 2012)
    • ArgoCD (2024)
  • Sonar
    • 2024 Einbindung von SonarCloud in CI Pipeline auf Github getriggert durch Maven
  • Bash/CMD
    • Automatisierung immer wieder kehrender Aufgaben sowohl privat als auch im Projekt
    • Immer auch Teil und nötig für CI/CD Pipelines
    • Angefangen mit DOS/CMD auf Windows mit mit GnuWin32 u.Ä Erweiterung um es Unix-ähnlicher zu machen. 
    • Ab 2016 mit Git Bash auf Windows und danach mit WSL echtes Linux/Posix Bash


Microsoft Office

  • Word
    • Hauptsächlich und viel im Rahmen von Spezifikationen genutzt
    • Zur Automatisierung auch einige VBA Skripte erstellt
    • Styles sind selbst in der Version 2016 immer noch ein Kampf und die wenigsten wissen leider diese einzusetzen, was besonders schlimm ist, wenn diese dann Templates bereitstellen.
    • Seit 2016 schreibe ich nur noch wenig in Word, weil vielfach im Rahmen der Agilen Entwicklung zu Wikis übergegangen wurde. Dennoch bin im in Word immer noch deutlich produktiver als in den Wikis und bevorzuge es daher.
  • Excel
    • Übliche Office-Nutzung professionell und privat
    • Diagramme
    • Daten-Import/Export auch mit Java Bibliotheken
  • PowerPoint
    • einfache Präsentationen
  • OneNote
    • Ein super Wiki für die Dokumentation in kleinen Teams und auch probates Mittel gegen die persönliche Zettelwirtschaft


Beruflicher Werdegang

07/2012 ? heute

Rolle: Software-Engineer, -Architekt, Teamlead, Techn. Projektleiter 


04/2005 ? 07/2012

Rolle: Software-Engineer, -Architekt, Projektleiter

Kunde: BROX IT Solutions GmbH, Hannover


04/2000 ? 04/2005

Rolle: Software-Engineer (50% Stelle neben Studium)

Kunde: BROX IT Solutions GmbH, Hannover


04/1999 ? 04/2000

Rolle: Software-Engineer 

Kunde: BROX IT Solutions GmbH, Hannover


Betriebssysteme

WSL2
Windows
Linuxe

WSL2

  • Mit WSL2 habe ich nun für mein Entwicklungssetup die goldene Mitte zwischen der Produktivität der Windowsumgebung und den Linux Toolchains gefunden.
  • D.h. meine IDE (via X-Server) und alles was für die Entwicklung nötig ist, läuft in WSL, der Rest in Windows.


Windows

  • Habe ich seit Anbeginn der Tage genutzt (Win 3.11)
  • Der Level bezieht sich auf die Nutzung und nicht auf die Administration von Windows-Netzwerken, obwohl ich da auch ein paar Kenntnisse habe
  • Viele kleinere Tools um das Leben zu erleichtern
  • Seit 2019 arbeite ich entwicklungs-technisch ausschließlich aus der WSL heraus -> siehe Linuxe


Linuxe

  • Seit 2005 liefen die Webanwendungen meiner Projekte standartmäßig auf Linux Umgebungen
  • Seit 2019 arbeite ich entwicklungs-technisch ausschließlich aus der WSL heraus, grundsätzlich auf einem aktuellen Ubuntu LTS
  • Mein Host OS ist aber weiterhin Windows weil ich einfach in Windows zu produktiv bin, als dass ich die Muße hätte, dass auf ein Linux zu übertragen.

Programmiersprachen

Java
21
Spring Boot
Data, REST, Cloud
Spring
J2EE
AOP
Spring AOP via Proxies
JMS
Active MQ, IBM MQ Series, TIBCO EMS, Queues, Topics, Einfacher Austausch XML-basierter Nachrichten
Kafka
AMQP
Rabbi MQ
JPA
Flyway
Eclipse Scout
JSF 2
Vaadin
OpenAPI Sepcification (OAS) /Swagger
REST(ful)
HATEOAS
SOAP
gRPC
YAML
JSON
XML
XML Schema Design
Protobuf
Used this
XSLT
Kubernetes
Tomcat
7,8
OSGi
Solr/Lucene/Elastic Search
IAM
AWS Cognito, Keycloak
JWT
OIDC
OAuth2

Spring

  • In diversen Kundenprojekten als DI Container eingesetzt
  • ?Der kleine Bruder von OSGi?
  • Aspekte
    • Profile
    • AOP
    • XML- und Annotationsbasierte Konfiguration
    • Data-Integration
    • Integration-Testing


J2EE

  • Aufgrund der Kundenanforderungen in den Projekten hatte ich bis auf das Projekt bei der Talanx nie den Bedarf für einen vollen J2EE Server; ein Tomcat + Spring + ggf. JPA/JMS reichte aus.
    • Bei der Talanx wurde das Thema EJB aber weitestgehend in einem hauseigenen Framework versteckt und die Entwicklungsarbeiten war i.d.R. so weit davon entfernt, so dass dies nur wenig zum Tragen kam

JPA

  • Hibernate 6
  • Mapping der Entities auf DB Schema bzw. Generierung des Schemas aus den Entities heraus.
  • Custom und Embedded Types
  • Inheritance Mapping
  • Interceptors


Flyway

  • Nutzung zur Migration von Daten in DBs sowohl Standalone als auch integriert in Spring-Boot


Eclipse Scout

  • Bislang nur ein paar Implementierungen und Anpassungen von Maskenteilen


JSF 2

  • Im Rahmen meiner Kernrolle des Teamleiters und Architekten im VW Projekt in 2012 habe ich mich zunächst theoretisch mit den Grundlagen befasst und dann bei Problemstellungen auch praktisch Lösungen entwickelt und umgesetzt. 
  • Insofern besitze ich ein gutes Grundverständnis der Frameworks (Phasen, Komponenten, Zusammenspiel aller Teile) vor allem auf der Server-Seite


Vaadin

  • Mit Vaadin bin ich im TUI Projekt mit in Berührung gekommen und ist analog zu JSF ein Komponentenbasiertes Web-Framework. 
  • Im Rahmen der Tätigkeiten habe ich mich in ein paar Aspekte einarbeiten können, was erstaunlich leicht ging. 


OpenAPI Sepcification (OAS) /Swagger

  • Hauptsächlich im Rahmen von API First, also erst OAS schreiben und daraus Java POJOs generieren inkl. Konfiguration und Anpassung nach den Bedürfnissen des Projektes.
  • Gelegentlich auch Generierung der OAS/Swagger UI aus dem bestehende Programm Code bei älterem Code.


REST(ful)

  • Design und Nutzung von APIs, bevorzugt im Zusammenhang mit OpenAPI/Swagger
  • Nutzung von:
    • definierten HTTP Status Codes
    • ggf. auch ProblemDetail für Error Responses
  • Kein HATEOAS


JSON

  • Inzwischen in einigen Projekten genutzt, meist mit Jackson o.Ä.
  • Im Vergleich zu XML und YAML fehlt mir hier immer wieder, dass es keine Kommentare gibt
  • Insofern OK für reinen Datatransport in der Applikation


XML

  • Neben dem normalen lesen/schreiben von XML Dokumenten verstehe ich darunter auch vor allem die Aspekte:
    • Validierung
    • Generierung via JAXB


XML Schema Design

  • Habe in diversen Projekten XML Schemata entworfen, hauptsächlich mit XML Spy.
  • Im Grunde braucht man die gleichen Skills wie bei OO und DB Design
  • Features
    • (multiple) Namespaces
    • Ableitungen
    • Groups
    • Ref. Constraints


XSLT

  • Einfache Transformationen
  • Es muss bewusst sein: funktionales Paradigma


Kubernetes

  • Normale Nutzung als Entwickler, d.h.
    • Deployments via Helm Charts und argoCD
    • Leichte Administration im Rahmen des Betriebes der Installierten Anwendungen mit kubectl zur Problembehebung , Debugging etc


Tomcat 7,8

  • Grundlegende Administrations-Kenntnisse zum Aufsetzen für die Entwicklung
    • Applikations-Kontexte
    • Ports
    • Bibliotheks-Management
    • Rechte (LDAP Integration)
  • SSL
  • Seit Spring Boot ist der Webserver idR integriert


OSGi

  • Im Rahmen von SMILA/eccenca benötigt
  • Implementierung Equinox
  • Diese Welt ist riesig, weshalb ich mir hier nur Level 5 gebe.
    • Dependency Management
    • OSGi Console
    • Declarative Services
  • Build (extrem aufwändig


Solr/Lucene/Elastic Search

  • Hauptsächlich im Rahmen der Produktentwicklung der Brox GmbH als auch in diversen Kunden-Projekten eingesetzt.
  • Aspekte:
    • Importieren der Daten in den Index (~ETL)
    • Design der Indizierung-Schritte und des Indexes, damit vernünftig gefunden werden kann
    • Abbildung von Berechtigungs-Strukturen bei der Suche
  • Integration von 3rd-Party Komponenten wie Thesauri und Wortstamm-Analyse/Reduktion


JWT, OIDC, OAuth2

  • Intensiv an einer IAM Lösung auf Basis von Keycloak gearbeitet die alle diese Elemente beinhaltet

Datenbanken

Datenbank Design
SQL
ETL
Microsoft SQL Server
Oracle Database
PostgreSQL
Mongo DB 4
Queries und Aggregation Pipelines

Datenbank Design

  • DB Design ist eine eigene Disziplin und wenn auch eng verwandt mit OOD, so ist es doch hinreichend unterschiedlich dazu, um nicht ohne weiteres die Prinzipien von der einen in die andere Welt übertagen zu können: Es geht in der DB immer um Mengen und deren Relationen und nicht um Objekt-Graphen.
  • Aspekte
    • Indexe
    • Constraints
    • Trigger
    • Locking
    • Schemata
    • Tabelspaces


SQL

  •  Kein Projekt ohne auch eine DB zu haben und daher war auch immer SQL im Spiel, mal mehr mal weniger.
  • Wichtig hierbei ist das Denken in Mengen und Mengen-Operationen und nicht in einzelnen Schrittfolgen (Deklarative vs. Imperative Programmierung)
  • Vor allem in den DWH Projekten 2004-2007 habe ich enorm an Können gewonnen


ETL

  • Kam in reiner Form in den DWH Projekten 2004-2007 vor als auch im Projekt Engpasstool ab 2012
  • Aufgrund meiner Affinität zu Datenbanken und deren Operationen auf Mengen haben sich mir die hier nötigen Prinzipien und Handwerkszeuge schnell erschlossen und habe dem Thema ETL zunächst keine weitere Bedeutung zugemessen, weil in irgendeiner Form das immer in Projekten vorkommt ? besonders in Konzernen.
  • Inzwischen habe ich gelernt, dass eine performante und vor allem wartbare (d.h. betrifft vor allem auch Fehlerdiagnose im Betrieb) von enormen Wert ist und derartige Schnittstellen zu designen auch erfahrene Entwickler vor eine große Herausforderung stellt.


Microsoft SQL Server

  • Bezogen auf das MS spezifische Produkt:
    • Administration von DBs für Entwicklungszwecke
    • Rechte
    • Backup/Restore
  • T-SQL
    • Hauptsächlich um Abläufe zu automatisieren oder zum Debugging
    • Highlight: Umsetzung einer FSM im Rahmen eines DWH Projektes
  • Tools
    • SQL Server Manager
    • Query Analyzer


Oracle Database

  • Geringe Administrative Kenntnisse
  • PL/SQL
    • Aufwändigere STPs im Rahmen des Projektes Engpasstool ab 2012 für den ETL Prozess
  • Tools
    • Oracle SQL Developer
    • SQLPLUS


PostgreSQL

  • Einfache Administrative Kenntnisse:
    • aufsetzen des Servers, import/export von DBs/Daten
  • Reine Nutzung als SQL DB via Standard-SQL

Datenkommunikation

Internet, Intranet
wer hat hier heutzutage keine Kenntnisse?
LAN, LAN Manager
Ich habe schon in den neutziger Jahren für private Zwecke Netzwerke aufgebaut, als das mit den Koaxkabeln und Abschusswiderständen noch deutlich problembehafteter war als heute.
Message Queuing
im Rahmen von Projekten via JMS sowohl Active MQ als auch IBM MQ Series
Router
habe auch einen Zuhause ;) - ehrlich was soll man hier sagen? Portfreigabe, NAT, VPN Konfigurieren, Firewall, DHCP Server?
SMTP
nutze ich (fast) täglich, um meine Emails abzurufen - wer denn nicht? Ansonsten habe ich auch aus Applikationen heraus sowohl Text als auch HTML Nachrichten verschickt. Kenntnisse zu MIME sind da recht praktisch
TCP/IP


Hardware

Amiga
als Schüler noch
Digitale Signalprozessoren
im Rahmen Diplom-Arbeit
embedded Systeme
im Rahmen Fachptraktikum
Motorola
als Schüler noch mit Amiga

Design / Entwicklung / Konstruktion

OOA
OOD
OOP

Branchen

Branchen

  • Automotive
  • Telekom
  • Schulung
  • Hotels

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.