Senior Berater JAVA, J2EE, Spring Boot, REST, Keycloak, Gitlab CI/CD, Docker, Kubernetes, AWS
Aktualisiert am 09.07.2025
Profil
Freiberufler / Selbstständiger
Remote-Arbeit
Verfügbar ab: 01.07.2025
Verfügbar zu: 100%
davon vor Ort: 100%
Java
Java EE
Spring Boot
JUnit
Behavior Driven Development
Selenium
Cucumber
Gherkin
REST
JPA
Hibernate
Liquibase
SQL
MySQL
PostgreSQL
Kafka
Keycloak
Quarkus
ReactJS
TypeScript
JavaScript
Gitlab
CI/CD
Deutsch
Muttersprache
Englisch
Ungarisch

Einsatzorte

Einsatzorte

Remote
möglich

Projekte

Projekte

4 Jahre 10 Monate
2020-09 - heute

Weiterentwicklung einer bestehenden Identity Provider Software

Intellij Java 8 bis 21 Maven ...

Zusätzlich zu den Entwickler-Tätigkeiten, wurden in allen Projekten folgende DevOps Tätigkeiten durchgeführt:

  • Konfiguration durch Helm-Skripte, um alle Umgebungen per DevOps zu versorgen
  • Encrypten/Decrypten von Secrets
  • Erstellung von Kubernetes ConfigMaps, Services, ServiceAccounts, Deployments
  • Deployment über TeamCity Pipelines als Docker-Images in Richtung AWS Cloud
  • Überwachung der Kubernetes POD?s und aller DEV -und Integrationsumgebungen


Weiterentwicklung einer bestehenden Identity Provider Software (IDP) unter Einsatz von einem Custom-Keycloak und Quarkus-Integration:

Folgende Funktionalitäten wurden umgesetzt, um die Customization zu erreichen:

  • Generierung der Schnittstellen nach außen über den OpenAPI Generator Maven Plugin
  • Implementierung dieser Schnittstellen als eine Ressource und Keycloak-Erweiterung als Service Provider Interfaces (SPI)
  • Umsetzung der REST-Controller und dazugehörigen Services
  • Vertestung aller Controller und Services
  • Implementierung der Persistenzschicht
  • Implementierung eines Verschlüsselungsservices, um Datenbankspalten mit verschlüsselten Daten zu versorgen
  • Implementierung von Authenticators und Required Actions als SPI, um customized-Handhabung mit dem Keycloak zu erreichen
  • Implementierung von Required-Action-Frontends
  • Konfiguration von Keycloak Benutzern, Clients, Scopes und Roles in der Keycloak-AdminUI
  • Implementierung der Versendung von Daten an Kafka zur Versorgung der Umsysteme
  • Implementierung von Kafka-Listenern, um Daten von Umsystemen zu empfangen und zu verarbeiten
  • Einbau von Metriken
  • Implementierung von konfigurierbaren Hintergrundjobs durch Quarkus-Scheduler


Kenntnisse:

Intellij, Java 8 bis 21, Maven, Junit 5, Mockito, EasyMock, Hamcrest, Powermock, Selenium, Jakarta Persistence (JPA), Liquibase, SQL, MySQL, PostgreSQL, MariaDB, H2, Keycloak, REST, FreeMarker Templates (FTL), HTML, Javascript, CSS, Keycloak Admin UI, OAuth2, OpenID Connect, OpenAPI, Swagger, JSON Web Tokens (JWT), Nimbus Jose JWT, Quarkus, Kafka, Zookeeper, AKHQ, JSON, JSON-Path, Jackson, Camel, Quarkus-Scheduler, ShedLock, Postman, Insomnia, Docker, Kubernetes, Helm, AWS, Grafana, Metriken, Prometheus, Cloudwatch, TeamCity, Artifactory, GitLab


Implementierung von Kafka-Listenern, um Daten aus einem anderen System über Kafka zu importieren und in einer PostgrSQL Datenbank verschlüsselt zu speichern:

Folgende Funktionalitäten wurden umgesetzt:

  • Implementierung von Kafka-Listenern, Konvertierung der Daten in eine Datenbankstruktur
  • Speichern der Daten in der Datenbank. Dabei wurden sensible Daten verschlüsselt abgespeichert.
  • Implementierung eines Verschlüsselungsservices, um die Daten verschlüsselt zu speichern
  • Einbau von Metriken


Kenntnisse: 

Intellij, Java 8 bis 21, Maven, Spring Boot, Spring Security, Spring Kafka, Junit 5, Mockito, Jakarta Persistence (JPA), Liquibase, SQL, PostgreSQL, H2, OAuth2, OpenID Connect, OpenAPI, Kafka, AKHQ, JSON, JSON-Path, Jackson Databind, Docker, Kubernetes, Helm, AWS, Grafana, Metriken, Prometheus, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia

Vorgehensmodell: SCRUM


Implementierung von Kafka-Listenern, um Daten aus einem anderen System über Kafka zu importieren, Mapping vorzunehmen und die gemappten Daten an andere Kafka Topics zu schicken:

  • Es wurden Daten aus einem SAP-System über Kafka mittels über Kafka-Listener entgegengenommen. Anschließend wurden diese Daten in eine Struktur gebracht, die ein Zielsystem versteht und schließlich wurden diese über Kafka mittels KafkaTemplate ans Zielsystem verschickt.


Kenntnisse:

Intellij, Java 8 bis 21, Maven, Spring Boot, Spring Kafka, JUnit 5, PI-Tests, Mockito, Jakarta Persistence (JPA), Liquibase, SQL, PostgreSQL, H2, Keycloak, REST, OAuth2, OpenID Connect, OpenAPI, JSON Web Tokens (JWT), Kafka, Kafka Template, AKHQ, JSON, JSON-Path, Jackson Databind, Docker, Kubernetes, Helm, AWS, Grafana, Metriken, Prometheus, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia

Vorgehensmodell: SCRUM


Implementierung von REST-Schnittstellen über den openAPI Generator:

Folgende Implementierungen wurden vorgenommen:

  • Generierung der Schnittstellen nach außen über den OpenAPI Generator Maven Plugin
  • Umsetzung der REST-Controller und dazugehörigen Services
  • Vertestung aller Controller und Services
  • Einbau von Metriken


Kenntnisse:

Intellij, Java 8 bis 21, Maven, Spring Boot, Spring Security, Spring Kafka, Junit 5, PI-Tests, Mockito, Jakarta Persistence (JPA), Liquibase, SQL, PostgreSQL, H2, Keycloak, REST, OAuth2, OpenID Connect, OpenAPI, JSON Web Tokens (JWT), Logback, Kafka, AKHQ, JSON, JSON-Path, Jackson, Docker, Kubernetes, Helm, AWS, Grafana, Metriken, Prometheus, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia

Vorgehensmodell: SCRUM


Testsuite zur Automatisierung von Smoke-Tests:

Es wurde eine Testsuite implementiert, die dabei helfen sollte, die Smoketests nicht mehr manuell machen zu müssen.

Folgende Funktionalitäten wurden umgesetzt:

  • Erstellen von Cucumber Test Skripten (Feature-Dateien)
  • Verwendung von Gherkin-Keywords auf deutsch
  • Implementierung der Tests mittels WebDriver von Selenium
  • Verwendung des openAPI Generators, um REST-Schnittstellen in den Tests zu konsumieren


Kenntnisse:

Intellij, Java 21, Maven, Junit 5, Selenium, WebDriver, BDD, Cucumber, Gherkin, Jakarta Annotation API, Keycloak Admin Client, REST, JSON, Jackson, TeamCity, Artifactory, GitLab


Implementierung einer Applikation zur Verwendung von Support Mitarbeitern

Frontend:

  • Die Support-Mitarbeiter haben am Frontend Prozesse anstossen können, die Kunden helfen konnten, ihre Anfragen zu lösen. Das hat dazu geführt, dass viele Kundenanfragen sofort über den Support durchgeführt werden konnten, ohne stets mit dem 3rd Level Support in Kontakt zu treten. 
  • Das hatte eine schnellere Abarbeitung von Support-Tickets ermöglicht. Auch wurde im Frontend eine Möglichkeit geboten, Klärfälle bei Videoidentifikationsfehlern zu bearbeiten.


Backend:

Die Daten wurden aus der IDP-Software bezogen und im Frontend zur Anzeige gebracht. Dabei wurden Schnittstellen mittels openAPI generiert und zwar über den OpenAPI Generator Maven Plugin.

Folgende Funktionalitäten wurden im Backend umgesetzt:

  • Generierung der Schnittstellen nach außen über den OpenAPI Generator Maven Plugin
  • Umsetzung der REST-Controller und dazugehörigen Services
  • Vertestung aller Controller und Services
  • Einbau von Metriken


Kenntnisse:

React, ReactNative, Typescript, Javascript, JSEncrypt, Npm, Yarn, SwaggerClient, Nginx als Reverse-Proxy, Intellij, Java 21, Maven, Spring Boot Webflux, Reactor, Spring Security OAuth2, Junit 5, PI-Tests, Mockito, AssertJ, Keycloak, REST, OAuth2, OpenID Connect, OpenAPI, JSON Web Tokens (JWT), Kafka, AKHQ, JSON, JSON-Path, Jackson, Docker, Kubernetes, Helm, AWS, Sentry, Grafana, Metriken, Prometheus, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia


Applikation zum Exportieren von Prometheus-Metriken auf Basis von SQL-Abfragen zu konfigurierbaren Zeitintervallen:

Durch Abfrage der Datenbank und Exportieren der Ergebnisdaten in Prometheus, konnten zu statistischen Fragestellungen Metriken erstellt werden, die zu Monitoringzwecken dienten. Dazu wurde auf einer als Docker-Image vorliegende Lösung aufgesetzt, die in der eigenen Cloud verdrahtet wurde.

Folgende Funktionalitäten wurden umgesetzt:

  • Implementierung und Speicherung der SQL-Abfragen in einer Kubernetes ConfigMap


Kenntnisse:

Intellij, SQL, Docker, Kubernetes, Helm, AWS, Grafana, Metriken, Prometheus, TeamCity, Artifactory, GitLab

Vorgehensmodell: SCRUM


Applikation zur Identifizierung von Kundenidentitäten:

Neukunden, die sich registriert haben, mussten eine Videoidentifikation durchlaufen. Dabei mussten persönliche Daten geprüft werden, um ihre Identifikation zu verifizieren.

Folgende Funktionalitäten wurden umgesetzt:

  • Generierung der Schnittstellen nach außen über den OpenAPI Generator Maven Plugin
  • Umsetzung der REST-Controller und dazugehörigen Services
  • Vertestung aller Controller und Services
  • Verschlüsselung von Daten mittels Java-Kryptografie
  • Speicherung der verschlüsselten Daten in der Datenbank
  • Einbau von Metriken


Kenntnisse:

Intellij, Java 8 bis 21, Maven, Spring Boot, Spring Security, Spring Kafka, Junit 5, PI-Tests, Mockito, AssertJ, Jakarta Persistence (JPA), Liquibase, SQL, MySQL, H2, Keycloak, REST, OAuth2, OpenID Connect, OpenAPI, JSON Web Tokens (JWT), Logback, Kafka, AKHQ, JSON, JSON-Path, Jackson, Docker, Kubernetes, Helm, AWS, Grafana, Metriken, Prometheus, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia

Vorgehensmodell: SCRUM


Applikation zum Anlegen von Mock-Daten zur Identifizierung von Kundenidentitäten:

Zum einfacheren Testen der Applikation zur Identifizierung von Kundenidentitäten wurde ein Tool gebaut, das Mockdaten in das jeweilige Kafka-Topic gepumpt hat. Auf diese Weise konnte die Consumer-Appikation diese Mockdaten konsumieren und Test-Szenarien schneller durchgeführt werden.

Folgende Funktionalitäten wurden umgesetzt:

  • Umsetzung der REST-Controller und dazugehörigen Services
  • Verschlüsselung von Daten mittels Java-Kryptografie


Kenntnisse:

Intellij, Java 8 bis 21, Maven, Spring Boot Webflux, Spring Security, Spring Kafka, Logback, Kafka, AKHQ, JSON, JSON-Path, Jackson, Docker, Kubernetes, Helm, AWS, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia

Vorgehensmodell: SCRUM


Applikation zur Versendung von SMS und E-Mails aus Kafka Events:

Kunden wurden per Email/Sms benachrichtigt wenn bestimmte Ereignisse an ihren Konten passiert sind. Diese Ereignisse konnten die Kunden selbst über ihr App-Verhalten, aber auch das System selbst ausgelöst haben. Um gleiche Nachrichten nicht mehrfach zu verschicken, wurden Kafka-spezifische Informationen in einer Datenbank gespeichert.

Folgende Funktionalitäten wurden umgesetzt:

  • Kafka-Consumer inklusive Retry ?und Deadletter-Funktionalität zum Erhalt der Message
  • Speichern von Kafka-Topic Informationen in der Datenbank
  • Verschicken von SMS über einen externen Dienst
  • Verschicken der Emails durch AWS SES
  • Vertestung dieser Funktionalitäten


Kenntnisse:

Intellij, Java 8 bis 21, Maven, Spring Boot, Spring Security, Spring Kafka, Junit 5, PI-Tests, Mockito, Hamcrest, Jakarta Persistence (JPA), Liquibase, SQL, MySQL, H2, Wiremock, Kafka, AKHQ, JSON, JSON-Path, Jackson Core, Jackson Databind, Docker, Kubernetes, Helm, AWS SDK, AWS SES, AWS STS, Cloudwatch, TeamCity, Artifactory, GitLab

Vorgehensmodell: SCRUM


Weiterentwicklung einer Webapplikation zur Verwaltung von Kundenprofilen:

Frontend:

Kunden hatten die Möglichkeit in ihrem eigenen Profil Daten aktuell zu halten. Z.Bsp Änderung ihrer Telefonnumer etc. Dafür wurde in ReactJS ein Frontend implementiert, um dies zu bewerkstelligen.

Folgende Funktionalitäten wurden im Frontend umgesetzt:

  • Implementierung der Kommunikation zwischen Frontend und Backend
  • Implementierung der Anfrage an den IDP, um ein Access-Token zum Austausch mit dem IDP zur Abfrage von Benutzerkonten zu erhalten
  • Implementierung aller GU?s per ReactJS


Backend:

Die Daten wurden aus der IDP-Software bezogen und im Frontend zur Anzeige gebracht. Dabei wurden Schnittstellen mittels openAPI generiert und zwar über den OpenAPI Generator Maven Plugin.

Folgende Funktionalitäten wurden im Backend umgesetzt:

  • Generierung der Schnittstellen nach außen über den OpenAPI Generator Maven Plugin
  • Umsetzung der REST-Controller und dazugehörigen Services
  • Vertestung aller Controller und Services


Kenntnisse:

ReactJS, Javascript, HTML, CSS, NPM, Node, Axios, Intellij, Java 21, Maven, Spring Boot Webflux, Reactor, Spring Security OAuth2, Junit 5, PI-Tests, Mockito, Wiremock, Keycloak, Keycloak Admin Client, REST, OAuth2, OpenID Connect, OpenAPI, JSON Web Tokens (JWT), JSON, Jackson, Docker, Kubernetes, Helm, AWS, Sentry, Grafana, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia

Vorgehensmodell: SCRUM


Implementierung eines Import-Systems zur Versorgung von aktualisierten Benutzerkonten:

Da das führende System ein anderes System war, musste ein Import-Tool her, um Benutzerkonten in den IDP zu bekommen. Dabei ging es um Benutzerkonten, die aus verschiedenen Gründen aktualisiert wurden. Die Aktualisierung und Versorgung des IDP-Systems sollte durch dieses Tool umgesetzt werden.

Folgende Funktionalitäten wurden umgesetzt:

  • Importieren der Daten über einen Kafka-Consumer
  • Aggregation der Daten in konfigurierbaren Paketgrössen
  • Konvertierung der Daten in die Ziel-Struktur
  • Verschicken der Daten der neuen Struktur an den IDP
  • Vertestung dieser Funktionalitäten


Kenntnisse:

Intellij, Java 8 bis 17, Maven, Kafka, AKHQ, Apache Camel, Camel JSONPath, Spring Boot Webflux, Reactor, Spring Security, Junit 5, PI-Tests, Mockito, Logback, Keycloak, REST, OAuth2, OpenID Connect, OpenAPI, JSON Web Tokens (JWT), JSON, Jackson, Jackson Databind, Apache Avro, Docker, Kubernetes, Helm, AWS, Sentry, Grafana, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia

Vorgehensmodell: SCRUM


Entwicklung eines Standalone-Tools zum Erzeugen von einem Certificate Signing Request (CSR) für AWS KMS

Das Cloud-Team hat dieses Tool angefragt.

Folgende Funktionalitäten wurden umgesetzt:

  • Entwicklung des CSR?s


Kenntnisse:

Intellij, Java 8, Maven, Spring Boot, AWS Java SDK, KMS und STS

Vorgehensmodell: Ausnahmsweise auf Anfrage


Entwicklung eines Tools zur Umwandlung von Daten aus einem JSON-Format in ein Java-Format

Folgende Funktionalitäten wurden umgesetzt:

  • Konvertierung der Daten aus dem JSON-Format nach Java


Kenntnisse:

Intellij, Java 17, Maven, Jackson, Jackson Databind, Junit 5, Mockito


Einmaljobs zur Versorgung von Umsystemen:

Umsysteme mussten zum Hauptsystem synchron gehalten werden. Dabei wurden Einmaljobs in Java Spring Batch implementiert, um grössere Datenmengen abzusetzen.

Folgende Funktionalitäten wurden umgesetzt:

  • Einlesen der Daten
  • Konvertierung der Daten in eine andere Struktur
  • Verschicken der neuen Struktur an Kafka Topics


Kenntnisse:

Intellij, Java 8 bis 21, Maven, Spring Batch, Spring Kafka, Kafka, AKHQ, Apache Avro

Intellij Java 8 bis 21 Maven Junit 5 Mockito EasyMock Hamcrest Powermock Selenium Jakarta Persistence (JPA) Liquibase SQL MySQL PostgreSQL MariaDB H2 Keycloak REST FreeMarker Templates (FTL) HTML Javascript CSS Keycloak Admin UI OAuth2 OpenID Connect OpenAPI Swagger JSON Web Tokens (JWT) Nimbus Jose JWT Quarkus Kafka Zookeeper AKHQ JSON JSON-Path Jackson Camel QuarkusScheduler ShedLock Postman Insomnia Docker Kubernetes Helm AWS Grafana Metriken Prometheus Cloudwatch TeamCity Artifactory GitLab SCRUM Spring Boot Spring Security Spring Kafka Jackson Databind ntellij Spring Kafka PITests Kafka Template PI-Tests Logback Java 21 WebDriver BDD Cucumber Gherkin Jakarta Annotation API Keycloak Admin Client SapUi5 NPM SwaggerClient Nginx als Reverse-Proxy Spring Boot Webflux Reactor Spring Security OAuth2 AssertJ JSON Web Tokens (JWT) Sentry Wiremock Jackson Core AWS SDK AWS SES AWS STS ReactJS Node Axios JSON Web Tokens (JWT) Java 8 bis 17 Apache Camel Camel JSONPath Apache Avro Java 8 AWS Java SDK KMS und STS Java 17 Spring Batch
Barmer Krankenkasse
1 Jahr 1 Monat
2024-06 - 2025-06

Entwicklung und Wartung eines Microservices mittels des Sidecar Patterns zur Persistierung der Zustandsveränderung von Prozessen diverser Fachabteilungen

Domain Driven Design Intellij Java 21 ...

Folgende Funktionalitäten wurden umgesetzt:

 

  • Erstellung der Schnittstellen auf Basis von OpenAPI nach dem Contract First Ansatz
  • Generierung der REST-Schnittstellen nach außen über den OpenAPI Generator Maven Plugin
  • Implementierung dieser Schnittstellen
  • Umsetzung der REST-Controller und dazugehöriger Services
  • Implementierung einer Pagination
  • Einbindung einer vom Kunden selbstgeschriebenen Java-Library in die eigene Anwendung, um das DB-Secret zu verschleiern
  • Einrichten einer Oracle Datenbank Version 19c als Docker Container auf der eigenen Maschine zur lokalen Entwicklung
  • Einrichten von Kafka und Zookeeper als Docker Image auf der eigenen Maschine zur lokalen Entwicklung
  • Erstellung von Avro Schemas, um die Kafka Nachrichten zu modellieren
  • Vertestung aller Controller und Services
  • Implementierung von Flyway Skripten
  • Implementierung der Persistenzschicht mit Spring Data JPA und Criteria API
  • Implementierung der Versendung von Daten an Kafka zur Versorgung der Umsysteme
  • Implementierung von Kafka-Listenern, um Daten von Umsystemen zu empfangen und zu verarbeiten
  • Implementierung und Durchführung von Lasttests mittels K6
  • Einbau von Metriken
  • Einrichtung der Anzeige der Applikationslogs in ELK Stack Kibana
  • Implementierung von konfigurierbaren Hintergrundjobs durch Spring-Scheduler mit Cron Expressions
Domain Driven Design Intellij Java 21 Spring Boot 3.5.0 Camunda BPMN Maven Junit 5 Mockito Hamcrest Jakarta Persistence (JPA) HQL Criteria API Flyway Hibernate SQL ORACLE Datenbank 19c H2 REST HTML Javascript OpenAPI 3.0.3 Swagger JSON Web Tokens (JWT) Kafka Zookeeper Avro Schema JSON JSON-Path Jackson Shedlock Postman Docker Kubernetes Helm Microsoft Azure DevOps OpenShift Grafana Metriken Prometheus Artifactory Logback ELK Stack Elasticsearch Kibana Logstash K6
3 Jahre
2017-10 - 2020-09

Implementierung eines Web-Frontends mit Java JSF PrimeFaces

Java 8 JSF PrimeFaces ...

Implementierung eines Web-Frontends mit Java JSF PrimeFaces:

  • Der Benutzer erhielt die Möglichkeit über ein Web-Frontend Daten zu erfassen. Diese wurden per Klick ans Backend per JSON weitergeleitet. Dies wurde mit der Java-Library GSON und anschließendem Verschicken per HttpClient-Library von Apache mittels http-POST vollzogen. 
  • Es gab auch die Option, die Daten über eine CSV-Datei vom Client-Rechner als Upload-Formular ins Frontend zu laden, um sie dann per einem Klick gebündelt ans Backend zu schicken. Auf der Backend Seite wurden die ankommenden Daten per Apache NIFI entgegengenommen, in sogenannte Queues geschickt, um sie dann schließlich in Apache SolR als Dokumente abzuspeichern. 
  • Danach wurden sie dort indexiert, um sie per schnellem Zugriff dem Frontend wieder zur Anzeige zu bringen. Die Abfrage der Daten aus dem SolR-Index geschah über die Java-Library SolrJ. Die Entwicklung geschah unter Windows 7. Die Target-Maschinen waren alle Linux-Maschinen.


Kenntnisse:

Java 8, JSF, PrimeFaces, REST, JSON, Maven, Jenkins, TeamCity, Ansible, Apache http Client, Apache SolR, WebServices (SOAP), Apache NIFI, Apache Tomcat, Apache SolrJ, XML, Windows/Linux, Javascript, HTML, CSS, GIT/Bitbucket, JIRA, Artifactory, GitLab, JUnit

Vorgehensmodell: SCRUM


Weiterentwicklung eines Web-Frontends mit Java JSF PrimeFaces:

  • Es sollte eine komfortable Möglichkeit geschaffen werden, über ein Web-Frontend Backend-Jobs und devops-Tätigkeiten anzustoßen. 
  • Gleichzeitig sollten diese Jobs während ihrer Läufe monitored werden.
  • Die Backend-Jobs hatten zur Aufgabe, Daten in einen bestimmten Index aufzunehmen.


Kenntnisse:

Java 8, Java Persistence API (JPA), Hibernate, Spring, JSF, PrimeFaces, REST, JSON, Oracle SQL , Java Expression Language (EL), SQL, MariaDB, Maven, Jenkins http Client, Apache SolR, Apache Tomcat, WebServices (SOAP), Autonomy/Microfocus IDOL Search Engine, Javascript, HTML, CSS, XML, GIT/Bitbucket, JIRA, Artifactory, GitLab, JUnit, Azure

Vorgehensmodell: SCRUM


Weiterentwicklung und Wartung eines Web-Frontends und Backends:

  • Es sollten Daten in einem Web-Frontend zur Anzeige gebracht werden, die aus mehreren Datentöpfen (jeweils einem Index stammen). 
  • Die Daten wurden per Filter und Benutzerberechtigung ausgeblendet. 
  • Darüber hinaus Legacy VBA-Code, der aus einem komplexen Excel Dateien generiert hat, in Java Code umgeschrieben.


Kenntnisse:

Java 8, JSF, PrimeFaces, Oracle SQL, Maven, Jenkins, Continuous Integration/Continuous Delivery, UNIX/LINUX Scripting, Apache SolR, Apache Tomcat, WebServices (SOAP), Autonomy/Microfocus IDOL Search Engine, Javascript, HTML, CSS, VBA, Lua, XML, GIT/Bitbucket, JIRA, Artifactory, GitLab, JUnit, Azure, Veracode, FindBugs

Vorgehensmodell: SCRUM


Weiterentwicklung und Wartung eines Web-Frontends und Backends:

  • Es sollten Daten in einem Web-Frontend zur Anzeige gebracht werden. Dabei wurden Dokumente über ein Angular Frontend an ein Spring Boot Backend per REST geschickt. 
  • Diese wurden dann über Apache NIFI in Apache SolR als Dokumente gespeichert. Im Nachhinein konnte der User über das Frontend diese Dokumente suchen und angezeigt bekommen.
  • Die Authentifizierung der User fand über OAuth 2.0 / Open ID Connect (OIDC) statt, um sich an einem Keycloak Server anzumelden.


Kenntnisse:

Java 8, Spring Boot, REST, JSON, Angular 8+, Angular Material, Angular CLI, TypeScript/Javascript, SCSS, Bootstrap, RxJS, Node.js, Npm, OAuth 2.0, OpenID Connect, Apache NIFI, Apache SolR

Vorgehensmodell: SCRUM


Konfigurationsmanagement: Devops Tätigkeiten zum Warten von 25 Umgebungen, Frontend und Backend:

  • Das Tagesgeschäft umfasste das Warten von 25 Umgebungen mit unterschiedlichen Frontend und Backend-Versionen. 
  • Beim Einchecken des Java-Codes nach GIT (Bitbucket), wurden die Java-Artefakte über Jenkins gebaut und gemäss Continuous Integration/Continuous Delivery ins Artifactory (binäres Repository) automatisiert hochgeladen. Von da aus wurden sie per einer Frontend-Anwendung auf die einzelnen Server-Umgebungen verteilt. Dafür wurden über Pipeline Script mit Groovy in Jenkins die Logik hinterlegt. 
  • Das Web-Frontend wurde in Java PrimeFaces und JSF realisiert. Das Backend enthielt einen Index pro Umgebung, der auf Anfrage per Full-Indexing oder Delta-Indexing aktualisiert werden musste.


Kenntnisse:

Java 8, Spring, JSF, PrimeFaces, SQL, Maven, Jenkins, Continuous Integration/Continuous Delivery, Pipeline Script mit Groovy, Apache SolR, Apache Tomcat, WebServices (SOAP), Autonomy/Microfocus IDOL Search Engine, XML, GIT/Bitbucket, JIRA, Artifactory


Bearbeitung von INCIDENTS, Annahme der Kundenanfragen zur Bearbeitung von Bugs per JIRA:

  • Erstellung/Schreiben von UNIX Shell Skripten zur automatischen Verteilung von Zusatz-Software
  • Anstossen der Downloads der binären WAR-Dateien aus dem Artifactory und anschließende Verteilung per UNIX/Linux Scripts.
  • Erste praktische Erfahrungen mit Azure, Kubernetes, Docker und OpenShift

Java 8 JSF PrimeFaces REST JSON Maven Jenkins TeamCity Ansible Apache http Client Apache SolR WebServices (SOAP) Apache NIFI Apache Tomcat Apache SolrJ XML Windows/Linux Javascript HTML CSS GIT/Bitbucket JIRA Artifactory GitLab JUnit SCRUM Java Persistence API (JPA) Hibernate Spring Oracle SQL Java Expression Language (EL) SQL MariaDB Jenkins http Client Autonomy/Microfocus IDOL Search Engine Azure Continuous Integration/Continuous Delivery UNIX/LINUX Scripting VBA Lua Veracode FindBugs Spring Boot Angular 8+ Angular Material Angular CLI TypeScript/Javascript SCSS Bootstrap RxJS Node.js Npm OAuth 2.0 OpenID Connect Pipeline Script mit Groovy
Deutsche Bank
9 Monate
2017-01 - 2017-09

Implementierung und Wartung eines eventbasierten Messaging-Systems

Java 8 Groovy Vert.x Framework ...

Implementierung und Wartung eines eventbasierten Messaging-Systems in Java zur Verwendung für die Kommunikation zwischen Hardware-Gerät (Device für Airlines) und bestehender Software für den Einsatz von Checkin bzw. Boarding Zwecken von Passagieren

  • Der Checkin-Mitarbeiter am Schalter (auch Agent genannt) sollte die Möglichkeit geboten bekommen, die Kreditkarte/Miles and More - Karte des Kunden per Software bequem und schnell einzulesen.  Weiterhin sollte er per Software einen Aufkleber mittels eines Devices (Bag Tag Printer) per Knopfdruck für den Kunden ausdrucken. Zusätzlich kann man einen Boarding Pass für den Kunden ausdrucken, was wiederum über ein dediziertes Device namens Boarding Pass Printer bewerkstelligt wird. Es gibt auch noch weitere Devices (Reader Devices, Printer Devices, AEA Devices), die im Rahmen dieses Projekts behandelt wurden.
  • Technisch gesehen sollte das System mit dem Device über eine vom Hersteller zur Verfügung gestellte Java-API kommunizieren und gleichzeitig mit einer Desktop-Applikation, die als Frontend dient über einen Event-Bus Nachrichten austauschen, um die ev. per Scanner gelesenen Daten im Frontend anzuzeigen. Auch der umgekehrte Weg kommt in der Praxis vor, nämlich dass der Agent den Druck eines Kofferaufklebers triggert. Im Rahmen dessen, schickt das Frontend die durch diesen Prozess generierten Nachrichten an den Event-Bus, über den sich die Consumer bedienen. In diesem Fall sind die Consumer diejenigen Instanzen im System, die mit dem Device mittels der bereitgestellten Java-Library kommunizieren. 
  • Das System ist somit ein Event-Handler, der verschiedene Zustände der Device-Kommunikation abbilden muss. Dazu gehören open, read, write init, write, lock, unlock und getStatus Operationen. Je nach vorliegendem Zustand, muss dafür gesorgt werden, dass die richtigen Events entgegen -bzw. weitergereicht -oder gar erweitert werden. Diese Zustandsübergänge wurden mit einer eventbasierten Technik mit Hilfe der Java-Library Apache SCXML als Final State Machine realisiert. Es wurden stets bei der Verarbeitung von Events ein gewisses Stück Logik durchgeführt, die in sogenannten Custom Actions gekapselt wurden. Diese wurden in Java geschrieben.


Weitere Tätigkeiten, die im Rahmen dieses Projekts angefallen sind:

  • Implementierung eines gemeinsam genutzten Moduls zur Maskierung von sensiblen Kreditkartendaten in Logdateien
  • Implementierungs eines Reader-Device Interpreters zur Identifizierung von Barcode-Daten, Kreditkartendaten oder Personalausweisdaten
  • Implementierung von Standalone-Logik zur direkten Kommunikation mit den Devices mit Hilfe der vorliegenden Java-API
  • Erweiterung der Implementierung um spezifische Reader-Devices, die aufgrund ihrer speziellen Natur keine direkte Integration in die bestehende Architektur ermöglicht haben.
  • Implementierung eines Parsers, der Outputs eines bestimmten Tools interpretiert und die Daten weiterverarbeitet, um Device-Konfigurationen dem System mitzuteilen

Java 8 Groovy Vert.x Framework Spring Framework Apache Commons State Chart XML (SCXML) Apache Commons Java Expression Language (JEXL) GIT Maven Jenkins Tomcat SCRUM
Lufthansa Systems
7 Monate
2016-06 - 2016-12

Schnüren einer Java-Library zur einfacheren Handhabung

Java 8 Spring Framework 4.1.3 Thymeleaf Template Engine ...

Schnüren einer Java-Library zur einfacheren Handhabung der Versendung von Emails mit Java in Spring

Es wurde um die bestehende Email-Funktionalität von Spring eine Abstraktion implementiert und als Java-Bibliothek zur Verfügung gestellt. Diese sollte bestehenden Microservices ein schnelles und redundanzfreies Werkzeug bieten, Funktionalität zum Email Versenden leicht einzubinden. Dadurch mussten die einzelnen Microservices diese Funktionalität nicht mehr in ihrer eigenen Logik selbst implementieren. Die Bibliothek umfasste folgende Features, die der Entwickler nach Belieben entweder als Fluent-Interface-Style oder klassischen Java-Objektaufruf verwenden konnte:

  • Optionale Konfiguration eines SMTP-Servers
  • Optionalen Email-Anhang als binäre- oder Textdatei mit zusätzlicher Konfiguration, ob der Anhang als ZIP-Archiv komprimiert werden soll
  • Optionale Konfiguration eines HTML-Layouts oder einfach plain bezüglich der Formatierung des Email-Inhalts
  • Optionale Konfiguration eines zusätzlichen Logos an Stelle der Email-Signatur


Kenntnisse:

Java 8, Spring Framework 4.1.3, Thymeleaf Template Engine, JUnit, GIT

Vorgehensmodell: SCRUM


Implementierung eines asynchronen REST-Microservices zum Abfragen von Benutzerdaten:

  • Es sollte ein sogenannter User-Dump per Knopfdruck erstellt und per Email an den eingeloggten Benutzer versandt werden. Der REST-Microservice musste mit dem Spring-Framework implementiert werden. Dabei sollte ein eingeloggter Benutzer in einem bereits bestehenden Frontend per Knopfdruck einen Request anstoßen, der die Benutzer mit ihren sämtlichen Berechtigungen und Rollen aus einer MongoDB auslesen, in eine CSV-Datei schreiben und als gezippten Anhang per Email an den eingeloggten Benutzer senden sollte.
  • Dabei wurde in einem Microservice-Umfeld ein Microservice implementiert, der einen bestehenden Microservice nach den Daten abgefragt hat und diese in eine CSV-Datei geschrieben hat. Technisch wurde dieser Service asynchron implementiert, um dem Client weitere Arbeiten verrichten zu lassen, sprich nicht blockiert zu werden.


Kenntnisse:

Java 8, Spring Framework 4.1.3, JUnit, REST, JSON, GIT

Vorgehensmodell: SCRUM


Implementierung von Integrationstests mit Spring Boot:

  • Es sollte die Arbeitsweise eines bestehenden Ext-JS-Frontends so nachimplementiert werden, dass REST-Schnittstellen verschiedener Komponenten automatisiert aufgerufen werden.
  • Dabei ging es fachlich darum, eine Reisebuchung mit all ihren umfangreichen Details automatisiert vorzunehmen. Die Buchung sollte angelegt, aufgerufen und am Ende der Tests wieder gelöscht werden.


Kenntnisse:

Java 8, Spring Boot, REST, JSON, GIT

Vorgehensmodell: SCRUM


Implementierung eines REST-Microservices als Report zur Aufdeckung möglicher Fehlerquellen in den einzelnen Microservices:

  • Es sollte ein Microservice implementiert werden, der die etwaigen Fehler anderer Microservices aufspüren sollte und sowohl einen Report im Browser einsehbar, als auch im wichtigeren Fehlerfall eine Email versendet.


Kenntnisse:

Java 8, Spring Framework 4.1.3 JUnit, REST, JSON, JSP, JSTL, HTML, CSS

Vorgehensmodell: SCRUM

Java 8 Spring Framework 4.1.3 Thymeleaf Template Engine JUnit GIT SCRUM REST JSON Spring Boot Spring Framework 4.1.3 JUnit JSP JSTL HTML CSS
Condor Flugdienst GmbH
3 Jahre 1 Monat
2013-05 - 2016-05

Übernahme der technischen Verantwortlichkeit zum Thema Druck

Java 5 und 6 OSGI JAXB ...

Übernahme der technischen Verantwortlichkeit zum Thema Druck der über den Smart-Client erfassten Daten. 

  • Aufgrund der hohen Datenvielfältigkeit wurde später über die automatisierte Auswertung der Änderung der Druckdaten nachgedacht. Dies wird weiter unten beschrieben.
  • Refactoring eines ähnlich funktionierenden historisch gewachsenen Druck-Systems zur Wahrung der Codequalität und der Möglichkeit auf Änderungen schneller zu reagieren.


Entwicklung eines Integrationstest-Frameworks in Java zur Auswertung von versicherungsspezifischen Daten, die aus anderen Software-Komponenten stammten:

  • Die Daten wurden mittels RTF-Technologie als PDF mit Hilfe der kommerziellen Software von CIB zu einem PDF-Druck aufbereitet.
  • Aufgrund der ständigen Änderung der Daten, sollte der technische und fachliche Test dieser Informationen per automatisierten Integrationstests ablaufen. Dies wurde durch ein selbstgeschriebenes Test-Framework umgesetzt.
  • Nach Aufspüren der Änderungen der Daten wurde ein Excel zur strukturierten Anzeige generiert, welches dem Fachbereich vorgelegt wurde. Dieser hat die Daten soweit korrigiert, woraufhin die Werte den Tests als korrekte Ergebnisse bekanntgemacht werden mussten. Zum Anerkennen der Werte auf Korrektheit wurde mit einem weiteren Java-Tool realisiert, den Testbestand automatisiert auf die neuen  Werte per Knopfdruck zuaktualisieren.

Java 5 und 6 OSGI JAXB JUnit XML-Unit XStream RTF
R+V Versicherung
Wiesbaden
2 Monate
2013-04 - 2013-05

Implementierung eines komplexen Algorithmus

Java 5 und 6 OSGI Riena ...

Implementierung eines komplexen Algorithmus nach einer fachlichen Vorgabe zur Realisierung einer versicherungsspezifischen Logik auf dem Smart-Client.

  • Implementierung des Algorithmus auf Basis eines Fachkonzepts
  • Implementierung von JUnit-Tests und Testen des Algorithmus

Java 5 und 6 OSGI Riena Eclipse RCP
R+V Versicherung
Wiesbaden
4 Monate
2013-01 - 2013-04

Entwicklung von GUI-Masken auf der Grundlage eines Smart-Client-Ansatzes

Java 5 und 6 JAXB OSGI ...

Entwicklung von GUI-Masken auf der Grundlage eines Smart-Client-Ansatzes über die Eclipse Riena Platform, die eine kompatible Ergänzung der Eclipse RCP ist.

  • Implementierung von GUI-Masken auf Basis von fachlichen Vorgaben
  • Implementierung von JUnit-Tests
  • Bugfixing von Issues und Wartung der Software

Java 5 und 6 JAXB OSGI Riena Eclipse RCP
R+V Versicherung
Wiesbaden
1 Jahr 4 Monate
2011-09 - 2012-12

Entwicklung einer Software für den touristischen Bereich

Java 5 und 6 Eclipse RCP EJB3 ...

Entwicklung einer Software für den touristischen Bereich auf Basis von Eclipse RCP, EJB3 und Hibernate und Wartung einer älteren Version.

  • Konzeption und Design der Client-Komponenten
  • Implementierung von JUnit-Tests/SWTBot Tests für die Client-Komponenten
  • Realisierung von Frontend-Komponenten
  • Bugfixing und Wartung älterer Versionen der Software

Java 5 und 6 Eclipse RCP EJB3 Hibernate JBOSS MagicDraw zur Datenmodellierung
DER, Deutsches Reisebüro
Frankfurt
6 Monate
2011-03 - 2011-08

Weiterentwicklung einer bestehenden Software

Windows XP Java 5 XML ...

Weiterentwicklung einer bestehenden Software zur Verwaltung, Reporting und Durchführung von Online-Befragungen.

  • Konzeption und Design für die Backend-Komponenten
  • Implementierung von JUnit-Tests für die Backend-Komponenten
  • Realisierung von Frontend-Komponenten

Windows XP Java 5 XML SQL Eclipse3.x Spring Hibernate MS SQL Server 2005 Eclipse RCP Eclipse RAP (Rich Ajax Plattform)
TTR IT Solutions
Frankfurt
5 Monate
2010-11 - 2011-03

Implementieren einer Web-Anwendung

Windows 7 Java 5 XML ...

Implementieren einer Web-Anwendung zum Zwecke der Marktforschung für den Kunden VW. 

Zu Marktforschungszwecken benötigte der Kunde eine Web-Anwendung, die Reports, Kennzahlen-Erfassungen, Besuchsberichte etc. mit einem Benutzerberechtigungskonzept und Rollen innerhalb komplexer Organisationsstrukturen zugänglich macht. Dies wurde auf der Backend-Seite mit Spring und Hibernate als DAOs und Services zur Verfügung gestellt. Zu Testzwecken wurde HSQLDB als Datenbank für jeden einzelnen Entwickler eingerichtet.

  • Realisierung von Backend-Komponenten der Businesslogik
  • Realisierung von Backend-Komponenten der Integrationslogik
  • Realisierung der Junit-Tests für die Backend-Komponenten
  • Durchführen des Systemtest mit Fehleranalyse und Fehlerbehebung

Windows 7 Java 5 XML SQL Eclipse 3.x Spring 2.5.6 Hibernate 3.3.2 MS SQL Server 2005 Maven HSQLDB Hudson
VW
Frankfurt
2 Monate
2010-10 - 2010-11

Implementieren eines Web Services

Windows XP Java 5 XML ...

Implementieren eines Web Services mit Spring für den Kunden BMW

Der Kunde sollte einen Web Service Request stellen, der eine URL anfordert, mit deren Hilfe man sich an einem System anmelden kann. Das Ganze sollte automatisiert und in einem heterogenen Systemumfeld ablaufen. Der Web Service wurde auf der Serverseite mit der Spring-Technologie realisiert und mit dem Tool SOAP-UI getestet. Darüberhinaus wurden auch Test-Clients mittels Apache Axis 2 implementiert.

  • Analyse des bestehenden Datenmodells für die spätere Aufbereitung der Daten für den Web Service
  • Implemetierung des Web Services mit Spring Web Services
  • Implementierung der Test-Clients mit Apache Axis 2

Windows XP Java 5 XML Web Services SOAP Spring Web Services MS SQL Server 2005 Maven Eclipse 3.x
BMW
1 Jahr
2009-10 - 2010-09

Entwicklung eines webbasierten Softwareproduktes

Windows XP Linux Java 5 ...

Entwicklung eines webbasierten Softwareproduktes zur Verwaltung, Reporting und Durchführung von Online Befragungen (Online Surveys)

Die Verwaltung der Fragebögen erfolgte über einen Web Client auf Basis von Eclipse RAP. Die Durchführung der Online Befragungen erfolgte über einen Web Client auf Basis von JSP und Struts.

  • Erstellung des Fachmodells als UML2 Modell und Umsetzung in Java-Klassen & - Interfaces (ca. 140 Klassen)
  • Schwerpunkte des Fachmodells (Benutzerverwaltung, Fragebögen, Datawarehouse)
  • Mapping der Domainmodell Klassen mittels JPA als Annotations unter Verwendung von Hibernate
  • (Die Umsetzung nutzte alle existierenden O/R Mapping Strategien der JPA)
  • Aufbau und Pflege der kompletten JUnit Suite zum Test des Domainmodels
  • Umsetzung eines I18N Supports auf Ebene von Enumerations des Domainmodells (Fachkonstanten z.B. Geschlecht, Fragetypen, Antworttypen usw)
  • Konfiguration und Deployment des Spring Frameworks für alle Klassen der Backend Komponenten
  • Installation und Konfiguration von Hibernate und Integration in Spring
  • Installation und Konfiguration eines Java Messaging Servers (JMS) auf Basis von Spring / ActiveMQ
  • Umsetzung asynchroner Services zum Speichern der Online Survey Ergebnisse in einem Datawarehouse über ActiveMQ

Windows XP Linux Java 5 XML SQL Eclipse 3.x Tomcat ActiveMQ Spring 3.x Hibernate 3.x/JPA Agilian Visual Paradigm 2.2 MS SQL Server 2005 Eclipse RAP (RichAjaxPlattform) Java Server Pages Struts JQuery Subversion Maven Hudson MS Office 2003
Online Surveys
5 Monate
2009-05 - 2009-09

Entwicklung einer Web-Anwendung für den Backoffice Bereich

Windows XP Eclipse PDT PHP 5 ...
Entwicklung einer Web-Anwendung für den Backoffice Bereich eines Medienunternehmens.

Das Projekt ?Formel 1? dient der Konsolidierung mehrerer teils redundanter Datenbanken zu einem zentralen System. Das Projekt wurde unter Einsatz von Smarty als Referenzprojekt umgesetzt, mit dem Ziel die Entwicklungsdauer zu reduzieren.

  • Modellierung eines konsolidierten Datenbankdesigns der betroffenen Datenbanken
  • Erstellung der logischen Transformations-/Migrationsregeln und Umsetzung in Form von Import/Export-Routinen für MySQL
  • Entwicklung eines webbasierten Administrationswerkzeug für die Redakteure
  • Entwicklung einer http-basierten Schnittstelle für die Bereitstellung der Daten im Teletext von RTL

Windows XP Eclipse PDT PHP 5 Smarty 2.x AJAX JavaScript JQuery JQueryUI REST MySQL 5.x
RTL New Media
Köln
3 Monate
2009-02 - 2009-04

Entwicklung einer Web-Anwendung

Windows XP Eclipse PDT MySQL 5.x ...

Entwicklung einer Web-Anwendung für den Backoffice Bereich eines Medienunternehmens.

Das Projekt ?Programmdatenbank? dient der Bereitstellung von Programmdaten. Ziel des Projektes war die Bereitstellung der Programmdaten als unternehmensweite Services

  • Entwicklung von REST-Services auf Basis des Zend-Framework für die Änderung und Bereitstellung von Programmdaten
  • Entwurf und Entwicklung der REST-Services und der XML-basierten Nachrichten
  • Entwicklung browserunabhängiger DOM-Elemente und Widgets mit JQuery und
  • JQueryUI zur Erhöhung des Benutzerkomforts

Windows XP Eclipse PDT MySQL 5.x PHP5 AJAX JavaScript JQuery/JQueryUI Zend Framework 1.x Smarty 2.x REST JQuery JQueryUI
RTL New Media
Köln
4 Monate
2008-10 - 2009-01

Portierung einer Applikation zur risikoadäquaten Kreditbewertung

Windows XP Eclipse IDE MS Visual Studio 2005 (C++) ...

Portierung einer Applikation zur risikoadäquaten Kreditbewertung von MS Access auf eine Swing basierte Lösung auf Basis einer JEE Architektur

  • Die JEE Architektur basierte auf JBoss, Oracle im Backend und Rich Client auf Basis von Swing.
  • Kapselung und Anbindung des bestehenden (C++) Rechenkerns zur Risikobewertung in Java. Die Einbindung in den Application Server JBoss erfolgte mittels SWIG
  • Entwicklung von C++ Testprogrammen zur Validierung größer Datenmengen in MS Visual Studio 2005
  • Planung und Aufbau der JEE Umgebung auf Basis von JBoss
  • Technisches Design und Umsetzung mittels Enterprise Java Beans(Stateless, Stateful, Message Driven Beans)
  • O/R Mapping mit JPA Annotations
  • Deployment über ANT auf Linux
  • Test der Datenbestände mit SQL und JUnit

Windows XP Eclipse IDE MS Visual Studio 2005 (C++) Java 5 C++ JBoss 4.2 EJB3 RMI Swing SWIG Oracle 8.x SOAP Apache Axis2 ANT Linux
Sal. Oppenheim
Frankfurt

Aus- und Weiterbildung

Aus- und Weiterbildung

  • Realschule eine Ausbildung zum Bürokaufmann(IHK) abgeschlossen
  • Fachabitur (Form B) an der Konrad Adenauer Schule in Kriftel


1999

Studium der Informatik

FH Wiesbaden

Kompetenzen

Kompetenzen

Top-Skills

Java Java EE Spring Boot JUnit Behavior Driven Development Selenium Cucumber Gherkin REST JPA Hibernate Liquibase SQL MySQL PostgreSQL Kafka Keycloak Quarkus ReactJS TypeScript JavaScript Gitlab CI/CD

Produkte / Standards / Erfahrungen / Methoden

Profil:

  • Seit meinem Studium sammelte ich meine Erfahrung bezüglich Java-Technologien, insbesondere im Bereich Web. Nach mehreren Projekten innerhalb des Studiums hatte ich gelernt mit Frameworks der Programmiersprache Java umzugehen
  • Nach dem Abschluss meines Studiums als Diplom-Informatiker hatte ich meine Kenntnisse im Java/J(2)EE-Bereich bei mehreren Unternehmen vertiefen dürfen. Auch Schulungen durfte ich besuchen, um manche Frameworks besser kennenzulernen
  • Ich biete Ihnen kompetente Unterstützung in allen Stufen des Softwareentwicklungsprozesses. In enger Abstimmung mit dem Fachbereich erstelle ich Entwürfe und führe die Realisierung mit den entsprechenden Tests durch. Aufgrund meiner bisherigen Erfahrung verfüge ich über fundiertes Fachwissen und kann eine hohe Qualität der entwickelten Software sicherstellen und diese verantwortungsvoll zum Einsatz bringen
  • Mein Arbeitsstil ist agil und zielorientiert. Er ist geprägt durch Teamfähigkeit und Kommunikationsstärke. Dabei sind für mich Zuverlässigkeit und selbständiges Arbeiten ebenso selbstverständlich wie Flexibilität und eine hohe Belastbarkeit. Auch in schwierigen Situationen behalte ich einen kühlen Kopf. Ich bin jederzeit motiviert, mich in neue Aufgabenstellungen rasch und sicher einzuarbeiten und habe einen hohen Grad an Lernbereitschaft
  • Ich bin interessiert an allen neuen Entwicklungen in der IT-Branche. Durch kontinuierliche Weiterbildung und autodidaktische Lernfähigkeit bleibe ich auf der Höhe der Zeit


Noch ein paar Worte über mich

  • Ich habe nach der Realschule eine Ausbildung zum Bürokaufmann(IHK) abgeschlossen. Danach habe ich mein Fachabitur (Form B) an der Konrad Adenauer Schule in Kriftel gemacht und habe im Anschluss daran im Jahre 1999 das Studium der Informatik an der FH Wiesbaden angefangen
  • Dies schloss ich im Jahre 2005 mit der Gesamtnote 2,1 ab. Seit 09/2005 bin ich in der IT-Branche als Softwareentwickler tätig


Besondere Kenntnisse im Überblick

Test-Frameworks und Werkzeuge:

  • JUnit 5 Jupiter
  • Mockito
  • EasyMock
  • Hamcrest
  • Powermock
  • AssertJ


BDD:

  • Selenium
  • Cucumber
  • Gherkin


Identity Provider und Werkzeuge:

  • Keycloak
  • OAuth2
  • OpenID Connect
  • OpenAPI
  • Swagger
  • JSON Web Token (JWT)
  • Nimbus Jose JWT


Messaging und Werkzeuge:

  • Kafka
  • Zookeeper
  • Spring Kafka
  • AKHQ


Abfragesprache

  • SQL
  • PL-SQL


Dokumentbasierte Technologien

  • NoSQL
  • MongoDB
  • Apache SolR
  • Lucene
  • IDOL MicroFocus


Build Management:

  • Maven
  • Gradle
  • Continuous Integration (CI)
  • Continuous Delivery (CD)
  • Jenkins
  • TeamCity
  • Ansible


Cloud Computing

  • Grundkenntnisse in Amazon Web Services AWS EC2, AWS S3, AWS RDS, AWS STS, AWS SES, AWS Cloudwatch, AWS KMS, Microsoft Azure


Metriken

  • Grafana
  • Prometheus


Container Technologien

  • Docker
  • Kubernetes
  • Helm
  • Grundkenntnisse in Openshift


Modellierungssprache:

  • UML2
  • OOA und OOD


Frameworks

  • Quarkus
  • Quarkus-Scheduler
  • ShedLock, Spring Core
  • Spring Boot
  • Spring RESTful Web Services and SOAP
  • Spring Security
  • Spring Mvc
  • Spring Batch
  • Spring Messaging
  • Spring Data
  • Hibernate(HSql, Criteria API)
  • iBATIS
  • Struts
  • JSF
  • Prime Faces
  • Java EL
  • Apache Axis
  • Apache Camel
  • Apache SCXML
  • Vert.X
  • XStream
  • iTEXT
  • XML-Unit
  • Log4j
  • Logback
  • Apache Commons & Lang
  • OGNL
  • Apache Http Client
  • Gson
  • Jackson GSON
  • Quartz(Scheduler)
  • Apache SolR
  • SolRJ
  • Apache NIFI
  • Apache POI
  • ZEND
  • Smarty
  • JQuery
  • JQuery UI


Template engines:

  • JSTL
  • Thymeleaf
  • FreeMarker Template


Datenbank-Migration

  • Liquibase


Werkzeuge

  • IntelliJ
  • Eclipse
  • Apache Tomcat
  • Microsoft Visual Studio
  • IBM Websphere
  • Oracle WebLogic
  • JBoss
  • JBossWS
  • Apache HTTP Server
  • CVS/SVN/GIT/ClearCase
  • Ant
  • Maven
  • Gradle
  • SoapUI
  • TCPMon
  • Postman
  • Insomnia
  • WebMethods
  • Apache Active MQ
  • Cygwin
  • Linux Shell
  • MySQLWorkbench
  • SQLDeveloper
  • HeidiSQL
  • WinSCP
  • Putty
  • Atlassian Bitbucket (GIT)
  • JIRA
  • Confluence
  • JFrog Artifactory
  • GitLab
  • Nexus


Codeanalyse

  • FindBugs
  • Grundkenntnisse in Veracode und SonarQube

Vorgehensmodell:

  • SCRUM
  • Wasserfall


Anwendungssoftware

  • MS Office
  • Visio


Darin verwendete Technologien:

  • ReactJS
  • Typescript
  • Javascript
  • Nextjs
  • Node
  • NPM
  • React
  • Material UI
  • Axios
  • Formik
  • NextIntl
  • Yup
  • Spring Boot
  • Spring Boot Security
  • Spring Boot JPA
  • Thymeleaf
  • PostgreSQL
  • Liquibase
  • iText
  • PdfBox
  • AngusMail
  • Logback

Betriebssysteme

Windows (NT, 2000, XP, Vista, Windows 7/10/11)
LINUX/UNIX
macOS

Programmiersprachen

Java 8 bis 21
PHP
C/C++/C#
J(2)EE
EJB3
JDBC
JAXB
JAXWs
JSP
Servlets
RMI
JNI
JMS
JTA
Javamail
XML
SCXML
XMLUnit
REST Web Services
XMLSchema
XmlBeans
XSLFO
SVG
XPATH
XSLT
DOM
SAX
StAX
XMLRPC
Web Services/SOA
SOAP WS
WSDL
ReactJS
Javascript
AJAX
HTML/DHTML/CSS
Bootstrap
JSON
JSONPath
Jackson Databind
Jackson Annotation
OSGI
Eclipse Equinox
Eclipse RCP
Eclipse RAP Jakarta Persistence (JPA)
JDO
Angular 8+
Angular Material
Flex Layout
Highcharts
TypeScript
SCSS
RxJS
Node.js
HammerJS
Npm
Nextjs

Datenbanken

Oracle SQL
PostgreSQL
MSSQL
Sybase
MySql
MariaDB
MongoDB
H2

Einsatzorte

Einsatzorte

Remote
möglich

Projekte

Projekte

4 Jahre 10 Monate
2020-09 - heute

Weiterentwicklung einer bestehenden Identity Provider Software

Intellij Java 8 bis 21 Maven ...

Zusätzlich zu den Entwickler-Tätigkeiten, wurden in allen Projekten folgende DevOps Tätigkeiten durchgeführt:

  • Konfiguration durch Helm-Skripte, um alle Umgebungen per DevOps zu versorgen
  • Encrypten/Decrypten von Secrets
  • Erstellung von Kubernetes ConfigMaps, Services, ServiceAccounts, Deployments
  • Deployment über TeamCity Pipelines als Docker-Images in Richtung AWS Cloud
  • Überwachung der Kubernetes POD?s und aller DEV -und Integrationsumgebungen


Weiterentwicklung einer bestehenden Identity Provider Software (IDP) unter Einsatz von einem Custom-Keycloak und Quarkus-Integration:

Folgende Funktionalitäten wurden umgesetzt, um die Customization zu erreichen:

  • Generierung der Schnittstellen nach außen über den OpenAPI Generator Maven Plugin
  • Implementierung dieser Schnittstellen als eine Ressource und Keycloak-Erweiterung als Service Provider Interfaces (SPI)
  • Umsetzung der REST-Controller und dazugehörigen Services
  • Vertestung aller Controller und Services
  • Implementierung der Persistenzschicht
  • Implementierung eines Verschlüsselungsservices, um Datenbankspalten mit verschlüsselten Daten zu versorgen
  • Implementierung von Authenticators und Required Actions als SPI, um customized-Handhabung mit dem Keycloak zu erreichen
  • Implementierung von Required-Action-Frontends
  • Konfiguration von Keycloak Benutzern, Clients, Scopes und Roles in der Keycloak-AdminUI
  • Implementierung der Versendung von Daten an Kafka zur Versorgung der Umsysteme
  • Implementierung von Kafka-Listenern, um Daten von Umsystemen zu empfangen und zu verarbeiten
  • Einbau von Metriken
  • Implementierung von konfigurierbaren Hintergrundjobs durch Quarkus-Scheduler


Kenntnisse:

Intellij, Java 8 bis 21, Maven, Junit 5, Mockito, EasyMock, Hamcrest, Powermock, Selenium, Jakarta Persistence (JPA), Liquibase, SQL, MySQL, PostgreSQL, MariaDB, H2, Keycloak, REST, FreeMarker Templates (FTL), HTML, Javascript, CSS, Keycloak Admin UI, OAuth2, OpenID Connect, OpenAPI, Swagger, JSON Web Tokens (JWT), Nimbus Jose JWT, Quarkus, Kafka, Zookeeper, AKHQ, JSON, JSON-Path, Jackson, Camel, Quarkus-Scheduler, ShedLock, Postman, Insomnia, Docker, Kubernetes, Helm, AWS, Grafana, Metriken, Prometheus, Cloudwatch, TeamCity, Artifactory, GitLab


Implementierung von Kafka-Listenern, um Daten aus einem anderen System über Kafka zu importieren und in einer PostgrSQL Datenbank verschlüsselt zu speichern:

Folgende Funktionalitäten wurden umgesetzt:

  • Implementierung von Kafka-Listenern, Konvertierung der Daten in eine Datenbankstruktur
  • Speichern der Daten in der Datenbank. Dabei wurden sensible Daten verschlüsselt abgespeichert.
  • Implementierung eines Verschlüsselungsservices, um die Daten verschlüsselt zu speichern
  • Einbau von Metriken


Kenntnisse: 

Intellij, Java 8 bis 21, Maven, Spring Boot, Spring Security, Spring Kafka, Junit 5, Mockito, Jakarta Persistence (JPA), Liquibase, SQL, PostgreSQL, H2, OAuth2, OpenID Connect, OpenAPI, Kafka, AKHQ, JSON, JSON-Path, Jackson Databind, Docker, Kubernetes, Helm, AWS, Grafana, Metriken, Prometheus, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia

Vorgehensmodell: SCRUM


Implementierung von Kafka-Listenern, um Daten aus einem anderen System über Kafka zu importieren, Mapping vorzunehmen und die gemappten Daten an andere Kafka Topics zu schicken:

  • Es wurden Daten aus einem SAP-System über Kafka mittels über Kafka-Listener entgegengenommen. Anschließend wurden diese Daten in eine Struktur gebracht, die ein Zielsystem versteht und schließlich wurden diese über Kafka mittels KafkaTemplate ans Zielsystem verschickt.


Kenntnisse:

Intellij, Java 8 bis 21, Maven, Spring Boot, Spring Kafka, JUnit 5, PI-Tests, Mockito, Jakarta Persistence (JPA), Liquibase, SQL, PostgreSQL, H2, Keycloak, REST, OAuth2, OpenID Connect, OpenAPI, JSON Web Tokens (JWT), Kafka, Kafka Template, AKHQ, JSON, JSON-Path, Jackson Databind, Docker, Kubernetes, Helm, AWS, Grafana, Metriken, Prometheus, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia

Vorgehensmodell: SCRUM


Implementierung von REST-Schnittstellen über den openAPI Generator:

Folgende Implementierungen wurden vorgenommen:

  • Generierung der Schnittstellen nach außen über den OpenAPI Generator Maven Plugin
  • Umsetzung der REST-Controller und dazugehörigen Services
  • Vertestung aller Controller und Services
  • Einbau von Metriken


Kenntnisse:

Intellij, Java 8 bis 21, Maven, Spring Boot, Spring Security, Spring Kafka, Junit 5, PI-Tests, Mockito, Jakarta Persistence (JPA), Liquibase, SQL, PostgreSQL, H2, Keycloak, REST, OAuth2, OpenID Connect, OpenAPI, JSON Web Tokens (JWT), Logback, Kafka, AKHQ, JSON, JSON-Path, Jackson, Docker, Kubernetes, Helm, AWS, Grafana, Metriken, Prometheus, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia

Vorgehensmodell: SCRUM


Testsuite zur Automatisierung von Smoke-Tests:

Es wurde eine Testsuite implementiert, die dabei helfen sollte, die Smoketests nicht mehr manuell machen zu müssen.

Folgende Funktionalitäten wurden umgesetzt:

  • Erstellen von Cucumber Test Skripten (Feature-Dateien)
  • Verwendung von Gherkin-Keywords auf deutsch
  • Implementierung der Tests mittels WebDriver von Selenium
  • Verwendung des openAPI Generators, um REST-Schnittstellen in den Tests zu konsumieren


Kenntnisse:

Intellij, Java 21, Maven, Junit 5, Selenium, WebDriver, BDD, Cucumber, Gherkin, Jakarta Annotation API, Keycloak Admin Client, REST, JSON, Jackson, TeamCity, Artifactory, GitLab


Implementierung einer Applikation zur Verwendung von Support Mitarbeitern

Frontend:

  • Die Support-Mitarbeiter haben am Frontend Prozesse anstossen können, die Kunden helfen konnten, ihre Anfragen zu lösen. Das hat dazu geführt, dass viele Kundenanfragen sofort über den Support durchgeführt werden konnten, ohne stets mit dem 3rd Level Support in Kontakt zu treten. 
  • Das hatte eine schnellere Abarbeitung von Support-Tickets ermöglicht. Auch wurde im Frontend eine Möglichkeit geboten, Klärfälle bei Videoidentifikationsfehlern zu bearbeiten.


Backend:

Die Daten wurden aus der IDP-Software bezogen und im Frontend zur Anzeige gebracht. Dabei wurden Schnittstellen mittels openAPI generiert und zwar über den OpenAPI Generator Maven Plugin.

Folgende Funktionalitäten wurden im Backend umgesetzt:

  • Generierung der Schnittstellen nach außen über den OpenAPI Generator Maven Plugin
  • Umsetzung der REST-Controller und dazugehörigen Services
  • Vertestung aller Controller und Services
  • Einbau von Metriken


Kenntnisse:

React, ReactNative, Typescript, Javascript, JSEncrypt, Npm, Yarn, SwaggerClient, Nginx als Reverse-Proxy, Intellij, Java 21, Maven, Spring Boot Webflux, Reactor, Spring Security OAuth2, Junit 5, PI-Tests, Mockito, AssertJ, Keycloak, REST, OAuth2, OpenID Connect, OpenAPI, JSON Web Tokens (JWT), Kafka, AKHQ, JSON, JSON-Path, Jackson, Docker, Kubernetes, Helm, AWS, Sentry, Grafana, Metriken, Prometheus, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia


Applikation zum Exportieren von Prometheus-Metriken auf Basis von SQL-Abfragen zu konfigurierbaren Zeitintervallen:

Durch Abfrage der Datenbank und Exportieren der Ergebnisdaten in Prometheus, konnten zu statistischen Fragestellungen Metriken erstellt werden, die zu Monitoringzwecken dienten. Dazu wurde auf einer als Docker-Image vorliegende Lösung aufgesetzt, die in der eigenen Cloud verdrahtet wurde.

Folgende Funktionalitäten wurden umgesetzt:

  • Implementierung und Speicherung der SQL-Abfragen in einer Kubernetes ConfigMap


Kenntnisse:

Intellij, SQL, Docker, Kubernetes, Helm, AWS, Grafana, Metriken, Prometheus, TeamCity, Artifactory, GitLab

Vorgehensmodell: SCRUM


Applikation zur Identifizierung von Kundenidentitäten:

Neukunden, die sich registriert haben, mussten eine Videoidentifikation durchlaufen. Dabei mussten persönliche Daten geprüft werden, um ihre Identifikation zu verifizieren.

Folgende Funktionalitäten wurden umgesetzt:

  • Generierung der Schnittstellen nach außen über den OpenAPI Generator Maven Plugin
  • Umsetzung der REST-Controller und dazugehörigen Services
  • Vertestung aller Controller und Services
  • Verschlüsselung von Daten mittels Java-Kryptografie
  • Speicherung der verschlüsselten Daten in der Datenbank
  • Einbau von Metriken


Kenntnisse:

Intellij, Java 8 bis 21, Maven, Spring Boot, Spring Security, Spring Kafka, Junit 5, PI-Tests, Mockito, AssertJ, Jakarta Persistence (JPA), Liquibase, SQL, MySQL, H2, Keycloak, REST, OAuth2, OpenID Connect, OpenAPI, JSON Web Tokens (JWT), Logback, Kafka, AKHQ, JSON, JSON-Path, Jackson, Docker, Kubernetes, Helm, AWS, Grafana, Metriken, Prometheus, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia

Vorgehensmodell: SCRUM


Applikation zum Anlegen von Mock-Daten zur Identifizierung von Kundenidentitäten:

Zum einfacheren Testen der Applikation zur Identifizierung von Kundenidentitäten wurde ein Tool gebaut, das Mockdaten in das jeweilige Kafka-Topic gepumpt hat. Auf diese Weise konnte die Consumer-Appikation diese Mockdaten konsumieren und Test-Szenarien schneller durchgeführt werden.

Folgende Funktionalitäten wurden umgesetzt:

  • Umsetzung der REST-Controller und dazugehörigen Services
  • Verschlüsselung von Daten mittels Java-Kryptografie


Kenntnisse:

Intellij, Java 8 bis 21, Maven, Spring Boot Webflux, Spring Security, Spring Kafka, Logback, Kafka, AKHQ, JSON, JSON-Path, Jackson, Docker, Kubernetes, Helm, AWS, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia

Vorgehensmodell: SCRUM


Applikation zur Versendung von SMS und E-Mails aus Kafka Events:

Kunden wurden per Email/Sms benachrichtigt wenn bestimmte Ereignisse an ihren Konten passiert sind. Diese Ereignisse konnten die Kunden selbst über ihr App-Verhalten, aber auch das System selbst ausgelöst haben. Um gleiche Nachrichten nicht mehrfach zu verschicken, wurden Kafka-spezifische Informationen in einer Datenbank gespeichert.

Folgende Funktionalitäten wurden umgesetzt:

  • Kafka-Consumer inklusive Retry ?und Deadletter-Funktionalität zum Erhalt der Message
  • Speichern von Kafka-Topic Informationen in der Datenbank
  • Verschicken von SMS über einen externen Dienst
  • Verschicken der Emails durch AWS SES
  • Vertestung dieser Funktionalitäten


Kenntnisse:

Intellij, Java 8 bis 21, Maven, Spring Boot, Spring Security, Spring Kafka, Junit 5, PI-Tests, Mockito, Hamcrest, Jakarta Persistence (JPA), Liquibase, SQL, MySQL, H2, Wiremock, Kafka, AKHQ, JSON, JSON-Path, Jackson Core, Jackson Databind, Docker, Kubernetes, Helm, AWS SDK, AWS SES, AWS STS, Cloudwatch, TeamCity, Artifactory, GitLab

Vorgehensmodell: SCRUM


Weiterentwicklung einer Webapplikation zur Verwaltung von Kundenprofilen:

Frontend:

Kunden hatten die Möglichkeit in ihrem eigenen Profil Daten aktuell zu halten. Z.Bsp Änderung ihrer Telefonnumer etc. Dafür wurde in ReactJS ein Frontend implementiert, um dies zu bewerkstelligen.

Folgende Funktionalitäten wurden im Frontend umgesetzt:

  • Implementierung der Kommunikation zwischen Frontend und Backend
  • Implementierung der Anfrage an den IDP, um ein Access-Token zum Austausch mit dem IDP zur Abfrage von Benutzerkonten zu erhalten
  • Implementierung aller GU?s per ReactJS


Backend:

Die Daten wurden aus der IDP-Software bezogen und im Frontend zur Anzeige gebracht. Dabei wurden Schnittstellen mittels openAPI generiert und zwar über den OpenAPI Generator Maven Plugin.

Folgende Funktionalitäten wurden im Backend umgesetzt:

  • Generierung der Schnittstellen nach außen über den OpenAPI Generator Maven Plugin
  • Umsetzung der REST-Controller und dazugehörigen Services
  • Vertestung aller Controller und Services


Kenntnisse:

ReactJS, Javascript, HTML, CSS, NPM, Node, Axios, Intellij, Java 21, Maven, Spring Boot Webflux, Reactor, Spring Security OAuth2, Junit 5, PI-Tests, Mockito, Wiremock, Keycloak, Keycloak Admin Client, REST, OAuth2, OpenID Connect, OpenAPI, JSON Web Tokens (JWT), JSON, Jackson, Docker, Kubernetes, Helm, AWS, Sentry, Grafana, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia

Vorgehensmodell: SCRUM


Implementierung eines Import-Systems zur Versorgung von aktualisierten Benutzerkonten:

Da das führende System ein anderes System war, musste ein Import-Tool her, um Benutzerkonten in den IDP zu bekommen. Dabei ging es um Benutzerkonten, die aus verschiedenen Gründen aktualisiert wurden. Die Aktualisierung und Versorgung des IDP-Systems sollte durch dieses Tool umgesetzt werden.

Folgende Funktionalitäten wurden umgesetzt:

  • Importieren der Daten über einen Kafka-Consumer
  • Aggregation der Daten in konfigurierbaren Paketgrössen
  • Konvertierung der Daten in die Ziel-Struktur
  • Verschicken der Daten der neuen Struktur an den IDP
  • Vertestung dieser Funktionalitäten


Kenntnisse:

Intellij, Java 8 bis 17, Maven, Kafka, AKHQ, Apache Camel, Camel JSONPath, Spring Boot Webflux, Reactor, Spring Security, Junit 5, PI-Tests, Mockito, Logback, Keycloak, REST, OAuth2, OpenID Connect, OpenAPI, JSON Web Tokens (JWT), JSON, Jackson, Jackson Databind, Apache Avro, Docker, Kubernetes, Helm, AWS, Sentry, Grafana, Cloudwatch, TeamCity, Artifactory, GitLab, Postman, Insomnia

Vorgehensmodell: SCRUM


Entwicklung eines Standalone-Tools zum Erzeugen von einem Certificate Signing Request (CSR) für AWS KMS

Das Cloud-Team hat dieses Tool angefragt.

Folgende Funktionalitäten wurden umgesetzt:

  • Entwicklung des CSR?s


Kenntnisse:

Intellij, Java 8, Maven, Spring Boot, AWS Java SDK, KMS und STS

Vorgehensmodell: Ausnahmsweise auf Anfrage


Entwicklung eines Tools zur Umwandlung von Daten aus einem JSON-Format in ein Java-Format

Folgende Funktionalitäten wurden umgesetzt:

  • Konvertierung der Daten aus dem JSON-Format nach Java


Kenntnisse:

Intellij, Java 17, Maven, Jackson, Jackson Databind, Junit 5, Mockito


Einmaljobs zur Versorgung von Umsystemen:

Umsysteme mussten zum Hauptsystem synchron gehalten werden. Dabei wurden Einmaljobs in Java Spring Batch implementiert, um grössere Datenmengen abzusetzen.

Folgende Funktionalitäten wurden umgesetzt:

  • Einlesen der Daten
  • Konvertierung der Daten in eine andere Struktur
  • Verschicken der neuen Struktur an Kafka Topics


Kenntnisse:

Intellij, Java 8 bis 21, Maven, Spring Batch, Spring Kafka, Kafka, AKHQ, Apache Avro

Intellij Java 8 bis 21 Maven Junit 5 Mockito EasyMock Hamcrest Powermock Selenium Jakarta Persistence (JPA) Liquibase SQL MySQL PostgreSQL MariaDB H2 Keycloak REST FreeMarker Templates (FTL) HTML Javascript CSS Keycloak Admin UI OAuth2 OpenID Connect OpenAPI Swagger JSON Web Tokens (JWT) Nimbus Jose JWT Quarkus Kafka Zookeeper AKHQ JSON JSON-Path Jackson Camel QuarkusScheduler ShedLock Postman Insomnia Docker Kubernetes Helm AWS Grafana Metriken Prometheus Cloudwatch TeamCity Artifactory GitLab SCRUM Spring Boot Spring Security Spring Kafka Jackson Databind ntellij Spring Kafka PITests Kafka Template PI-Tests Logback Java 21 WebDriver BDD Cucumber Gherkin Jakarta Annotation API Keycloak Admin Client SapUi5 NPM SwaggerClient Nginx als Reverse-Proxy Spring Boot Webflux Reactor Spring Security OAuth2 AssertJ JSON Web Tokens (JWT) Sentry Wiremock Jackson Core AWS SDK AWS SES AWS STS ReactJS Node Axios JSON Web Tokens (JWT) Java 8 bis 17 Apache Camel Camel JSONPath Apache Avro Java 8 AWS Java SDK KMS und STS Java 17 Spring Batch
Barmer Krankenkasse
1 Jahr 1 Monat
2024-06 - 2025-06

Entwicklung und Wartung eines Microservices mittels des Sidecar Patterns zur Persistierung der Zustandsveränderung von Prozessen diverser Fachabteilungen

Domain Driven Design Intellij Java 21 ...

Folgende Funktionalitäten wurden umgesetzt:

 

  • Erstellung der Schnittstellen auf Basis von OpenAPI nach dem Contract First Ansatz
  • Generierung der REST-Schnittstellen nach außen über den OpenAPI Generator Maven Plugin
  • Implementierung dieser Schnittstellen
  • Umsetzung der REST-Controller und dazugehöriger Services
  • Implementierung einer Pagination
  • Einbindung einer vom Kunden selbstgeschriebenen Java-Library in die eigene Anwendung, um das DB-Secret zu verschleiern
  • Einrichten einer Oracle Datenbank Version 19c als Docker Container auf der eigenen Maschine zur lokalen Entwicklung
  • Einrichten von Kafka und Zookeeper als Docker Image auf der eigenen Maschine zur lokalen Entwicklung
  • Erstellung von Avro Schemas, um die Kafka Nachrichten zu modellieren
  • Vertestung aller Controller und Services
  • Implementierung von Flyway Skripten
  • Implementierung der Persistenzschicht mit Spring Data JPA und Criteria API
  • Implementierung der Versendung von Daten an Kafka zur Versorgung der Umsysteme
  • Implementierung von Kafka-Listenern, um Daten von Umsystemen zu empfangen und zu verarbeiten
  • Implementierung und Durchführung von Lasttests mittels K6
  • Einbau von Metriken
  • Einrichtung der Anzeige der Applikationslogs in ELK Stack Kibana
  • Implementierung von konfigurierbaren Hintergrundjobs durch Spring-Scheduler mit Cron Expressions
Domain Driven Design Intellij Java 21 Spring Boot 3.5.0 Camunda BPMN Maven Junit 5 Mockito Hamcrest Jakarta Persistence (JPA) HQL Criteria API Flyway Hibernate SQL ORACLE Datenbank 19c H2 REST HTML Javascript OpenAPI 3.0.3 Swagger JSON Web Tokens (JWT) Kafka Zookeeper Avro Schema JSON JSON-Path Jackson Shedlock Postman Docker Kubernetes Helm Microsoft Azure DevOps OpenShift Grafana Metriken Prometheus Artifactory Logback ELK Stack Elasticsearch Kibana Logstash K6
3 Jahre
2017-10 - 2020-09

Implementierung eines Web-Frontends mit Java JSF PrimeFaces

Java 8 JSF PrimeFaces ...

Implementierung eines Web-Frontends mit Java JSF PrimeFaces:

  • Der Benutzer erhielt die Möglichkeit über ein Web-Frontend Daten zu erfassen. Diese wurden per Klick ans Backend per JSON weitergeleitet. Dies wurde mit der Java-Library GSON und anschließendem Verschicken per HttpClient-Library von Apache mittels http-POST vollzogen. 
  • Es gab auch die Option, die Daten über eine CSV-Datei vom Client-Rechner als Upload-Formular ins Frontend zu laden, um sie dann per einem Klick gebündelt ans Backend zu schicken. Auf der Backend Seite wurden die ankommenden Daten per Apache NIFI entgegengenommen, in sogenannte Queues geschickt, um sie dann schließlich in Apache SolR als Dokumente abzuspeichern. 
  • Danach wurden sie dort indexiert, um sie per schnellem Zugriff dem Frontend wieder zur Anzeige zu bringen. Die Abfrage der Daten aus dem SolR-Index geschah über die Java-Library SolrJ. Die Entwicklung geschah unter Windows 7. Die Target-Maschinen waren alle Linux-Maschinen.


Kenntnisse:

Java 8, JSF, PrimeFaces, REST, JSON, Maven, Jenkins, TeamCity, Ansible, Apache http Client, Apache SolR, WebServices (SOAP), Apache NIFI, Apache Tomcat, Apache SolrJ, XML, Windows/Linux, Javascript, HTML, CSS, GIT/Bitbucket, JIRA, Artifactory, GitLab, JUnit

Vorgehensmodell: SCRUM


Weiterentwicklung eines Web-Frontends mit Java JSF PrimeFaces:

  • Es sollte eine komfortable Möglichkeit geschaffen werden, über ein Web-Frontend Backend-Jobs und devops-Tätigkeiten anzustoßen. 
  • Gleichzeitig sollten diese Jobs während ihrer Läufe monitored werden.
  • Die Backend-Jobs hatten zur Aufgabe, Daten in einen bestimmten Index aufzunehmen.


Kenntnisse:

Java 8, Java Persistence API (JPA), Hibernate, Spring, JSF, PrimeFaces, REST, JSON, Oracle SQL , Java Expression Language (EL), SQL, MariaDB, Maven, Jenkins http Client, Apache SolR, Apache Tomcat, WebServices (SOAP), Autonomy/Microfocus IDOL Search Engine, Javascript, HTML, CSS, XML, GIT/Bitbucket, JIRA, Artifactory, GitLab, JUnit, Azure

Vorgehensmodell: SCRUM


Weiterentwicklung und Wartung eines Web-Frontends und Backends:

  • Es sollten Daten in einem Web-Frontend zur Anzeige gebracht werden, die aus mehreren Datentöpfen (jeweils einem Index stammen). 
  • Die Daten wurden per Filter und Benutzerberechtigung ausgeblendet. 
  • Darüber hinaus Legacy VBA-Code, der aus einem komplexen Excel Dateien generiert hat, in Java Code umgeschrieben.


Kenntnisse:

Java 8, JSF, PrimeFaces, Oracle SQL, Maven, Jenkins, Continuous Integration/Continuous Delivery, UNIX/LINUX Scripting, Apache SolR, Apache Tomcat, WebServices (SOAP), Autonomy/Microfocus IDOL Search Engine, Javascript, HTML, CSS, VBA, Lua, XML, GIT/Bitbucket, JIRA, Artifactory, GitLab, JUnit, Azure, Veracode, FindBugs

Vorgehensmodell: SCRUM


Weiterentwicklung und Wartung eines Web-Frontends und Backends:

  • Es sollten Daten in einem Web-Frontend zur Anzeige gebracht werden. Dabei wurden Dokumente über ein Angular Frontend an ein Spring Boot Backend per REST geschickt. 
  • Diese wurden dann über Apache NIFI in Apache SolR als Dokumente gespeichert. Im Nachhinein konnte der User über das Frontend diese Dokumente suchen und angezeigt bekommen.
  • Die Authentifizierung der User fand über OAuth 2.0 / Open ID Connect (OIDC) statt, um sich an einem Keycloak Server anzumelden.


Kenntnisse:

Java 8, Spring Boot, REST, JSON, Angular 8+, Angular Material, Angular CLI, TypeScript/Javascript, SCSS, Bootstrap, RxJS, Node.js, Npm, OAuth 2.0, OpenID Connect, Apache NIFI, Apache SolR

Vorgehensmodell: SCRUM


Konfigurationsmanagement: Devops Tätigkeiten zum Warten von 25 Umgebungen, Frontend und Backend:

  • Das Tagesgeschäft umfasste das Warten von 25 Umgebungen mit unterschiedlichen Frontend und Backend-Versionen. 
  • Beim Einchecken des Java-Codes nach GIT (Bitbucket), wurden die Java-Artefakte über Jenkins gebaut und gemäss Continuous Integration/Continuous Delivery ins Artifactory (binäres Repository) automatisiert hochgeladen. Von da aus wurden sie per einer Frontend-Anwendung auf die einzelnen Server-Umgebungen verteilt. Dafür wurden über Pipeline Script mit Groovy in Jenkins die Logik hinterlegt. 
  • Das Web-Frontend wurde in Java PrimeFaces und JSF realisiert. Das Backend enthielt einen Index pro Umgebung, der auf Anfrage per Full-Indexing oder Delta-Indexing aktualisiert werden musste.


Kenntnisse:

Java 8, Spring, JSF, PrimeFaces, SQL, Maven, Jenkins, Continuous Integration/Continuous Delivery, Pipeline Script mit Groovy, Apache SolR, Apache Tomcat, WebServices (SOAP), Autonomy/Microfocus IDOL Search Engine, XML, GIT/Bitbucket, JIRA, Artifactory


Bearbeitung von INCIDENTS, Annahme der Kundenanfragen zur Bearbeitung von Bugs per JIRA:

  • Erstellung/Schreiben von UNIX Shell Skripten zur automatischen Verteilung von Zusatz-Software
  • Anstossen der Downloads der binären WAR-Dateien aus dem Artifactory und anschließende Verteilung per UNIX/Linux Scripts.
  • Erste praktische Erfahrungen mit Azure, Kubernetes, Docker und OpenShift

Java 8 JSF PrimeFaces REST JSON Maven Jenkins TeamCity Ansible Apache http Client Apache SolR WebServices (SOAP) Apache NIFI Apache Tomcat Apache SolrJ XML Windows/Linux Javascript HTML CSS GIT/Bitbucket JIRA Artifactory GitLab JUnit SCRUM Java Persistence API (JPA) Hibernate Spring Oracle SQL Java Expression Language (EL) SQL MariaDB Jenkins http Client Autonomy/Microfocus IDOL Search Engine Azure Continuous Integration/Continuous Delivery UNIX/LINUX Scripting VBA Lua Veracode FindBugs Spring Boot Angular 8+ Angular Material Angular CLI TypeScript/Javascript SCSS Bootstrap RxJS Node.js Npm OAuth 2.0 OpenID Connect Pipeline Script mit Groovy
Deutsche Bank
9 Monate
2017-01 - 2017-09

Implementierung und Wartung eines eventbasierten Messaging-Systems

Java 8 Groovy Vert.x Framework ...

Implementierung und Wartung eines eventbasierten Messaging-Systems in Java zur Verwendung für die Kommunikation zwischen Hardware-Gerät (Device für Airlines) und bestehender Software für den Einsatz von Checkin bzw. Boarding Zwecken von Passagieren

  • Der Checkin-Mitarbeiter am Schalter (auch Agent genannt) sollte die Möglichkeit geboten bekommen, die Kreditkarte/Miles and More - Karte des Kunden per Software bequem und schnell einzulesen.  Weiterhin sollte er per Software einen Aufkleber mittels eines Devices (Bag Tag Printer) per Knopfdruck für den Kunden ausdrucken. Zusätzlich kann man einen Boarding Pass für den Kunden ausdrucken, was wiederum über ein dediziertes Device namens Boarding Pass Printer bewerkstelligt wird. Es gibt auch noch weitere Devices (Reader Devices, Printer Devices, AEA Devices), die im Rahmen dieses Projekts behandelt wurden.
  • Technisch gesehen sollte das System mit dem Device über eine vom Hersteller zur Verfügung gestellte Java-API kommunizieren und gleichzeitig mit einer Desktop-Applikation, die als Frontend dient über einen Event-Bus Nachrichten austauschen, um die ev. per Scanner gelesenen Daten im Frontend anzuzeigen. Auch der umgekehrte Weg kommt in der Praxis vor, nämlich dass der Agent den Druck eines Kofferaufklebers triggert. Im Rahmen dessen, schickt das Frontend die durch diesen Prozess generierten Nachrichten an den Event-Bus, über den sich die Consumer bedienen. In diesem Fall sind die Consumer diejenigen Instanzen im System, die mit dem Device mittels der bereitgestellten Java-Library kommunizieren. 
  • Das System ist somit ein Event-Handler, der verschiedene Zustände der Device-Kommunikation abbilden muss. Dazu gehören open, read, write init, write, lock, unlock und getStatus Operationen. Je nach vorliegendem Zustand, muss dafür gesorgt werden, dass die richtigen Events entgegen -bzw. weitergereicht -oder gar erweitert werden. Diese Zustandsübergänge wurden mit einer eventbasierten Technik mit Hilfe der Java-Library Apache SCXML als Final State Machine realisiert. Es wurden stets bei der Verarbeitung von Events ein gewisses Stück Logik durchgeführt, die in sogenannten Custom Actions gekapselt wurden. Diese wurden in Java geschrieben.


Weitere Tätigkeiten, die im Rahmen dieses Projekts angefallen sind:

  • Implementierung eines gemeinsam genutzten Moduls zur Maskierung von sensiblen Kreditkartendaten in Logdateien
  • Implementierungs eines Reader-Device Interpreters zur Identifizierung von Barcode-Daten, Kreditkartendaten oder Personalausweisdaten
  • Implementierung von Standalone-Logik zur direkten Kommunikation mit den Devices mit Hilfe der vorliegenden Java-API
  • Erweiterung der Implementierung um spezifische Reader-Devices, die aufgrund ihrer speziellen Natur keine direkte Integration in die bestehende Architektur ermöglicht haben.
  • Implementierung eines Parsers, der Outputs eines bestimmten Tools interpretiert und die Daten weiterverarbeitet, um Device-Konfigurationen dem System mitzuteilen

Java 8 Groovy Vert.x Framework Spring Framework Apache Commons State Chart XML (SCXML) Apache Commons Java Expression Language (JEXL) GIT Maven Jenkins Tomcat SCRUM
Lufthansa Systems
7 Monate
2016-06 - 2016-12

Schnüren einer Java-Library zur einfacheren Handhabung

Java 8 Spring Framework 4.1.3 Thymeleaf Template Engine ...

Schnüren einer Java-Library zur einfacheren Handhabung der Versendung von Emails mit Java in Spring

Es wurde um die bestehende Email-Funktionalität von Spring eine Abstraktion implementiert und als Java-Bibliothek zur Verfügung gestellt. Diese sollte bestehenden Microservices ein schnelles und redundanzfreies Werkzeug bieten, Funktionalität zum Email Versenden leicht einzubinden. Dadurch mussten die einzelnen Microservices diese Funktionalität nicht mehr in ihrer eigenen Logik selbst implementieren. Die Bibliothek umfasste folgende Features, die der Entwickler nach Belieben entweder als Fluent-Interface-Style oder klassischen Java-Objektaufruf verwenden konnte:

  • Optionale Konfiguration eines SMTP-Servers
  • Optionalen Email-Anhang als binäre- oder Textdatei mit zusätzlicher Konfiguration, ob der Anhang als ZIP-Archiv komprimiert werden soll
  • Optionale Konfiguration eines HTML-Layouts oder einfach plain bezüglich der Formatierung des Email-Inhalts
  • Optionale Konfiguration eines zusätzlichen Logos an Stelle der Email-Signatur


Kenntnisse:

Java 8, Spring Framework 4.1.3, Thymeleaf Template Engine, JUnit, GIT

Vorgehensmodell: SCRUM


Implementierung eines asynchronen REST-Microservices zum Abfragen von Benutzerdaten:

  • Es sollte ein sogenannter User-Dump per Knopfdruck erstellt und per Email an den eingeloggten Benutzer versandt werden. Der REST-Microservice musste mit dem Spring-Framework implementiert werden. Dabei sollte ein eingeloggter Benutzer in einem bereits bestehenden Frontend per Knopfdruck einen Request anstoßen, der die Benutzer mit ihren sämtlichen Berechtigungen und Rollen aus einer MongoDB auslesen, in eine CSV-Datei schreiben und als gezippten Anhang per Email an den eingeloggten Benutzer senden sollte.
  • Dabei wurde in einem Microservice-Umfeld ein Microservice implementiert, der einen bestehenden Microservice nach den Daten abgefragt hat und diese in eine CSV-Datei geschrieben hat. Technisch wurde dieser Service asynchron implementiert, um dem Client weitere Arbeiten verrichten zu lassen, sprich nicht blockiert zu werden.


Kenntnisse:

Java 8, Spring Framework 4.1.3, JUnit, REST, JSON, GIT

Vorgehensmodell: SCRUM


Implementierung von Integrationstests mit Spring Boot:

  • Es sollte die Arbeitsweise eines bestehenden Ext-JS-Frontends so nachimplementiert werden, dass REST-Schnittstellen verschiedener Komponenten automatisiert aufgerufen werden.
  • Dabei ging es fachlich darum, eine Reisebuchung mit all ihren umfangreichen Details automatisiert vorzunehmen. Die Buchung sollte angelegt, aufgerufen und am Ende der Tests wieder gelöscht werden.


Kenntnisse:

Java 8, Spring Boot, REST, JSON, GIT

Vorgehensmodell: SCRUM


Implementierung eines REST-Microservices als Report zur Aufdeckung möglicher Fehlerquellen in den einzelnen Microservices:

  • Es sollte ein Microservice implementiert werden, der die etwaigen Fehler anderer Microservices aufspüren sollte und sowohl einen Report im Browser einsehbar, als auch im wichtigeren Fehlerfall eine Email versendet.


Kenntnisse:

Java 8, Spring Framework 4.1.3 JUnit, REST, JSON, JSP, JSTL, HTML, CSS

Vorgehensmodell: SCRUM

Java 8 Spring Framework 4.1.3 Thymeleaf Template Engine JUnit GIT SCRUM REST JSON Spring Boot Spring Framework 4.1.3 JUnit JSP JSTL HTML CSS
Condor Flugdienst GmbH
3 Jahre 1 Monat
2013-05 - 2016-05

Übernahme der technischen Verantwortlichkeit zum Thema Druck

Java 5 und 6 OSGI JAXB ...

Übernahme der technischen Verantwortlichkeit zum Thema Druck der über den Smart-Client erfassten Daten. 

  • Aufgrund der hohen Datenvielfältigkeit wurde später über die automatisierte Auswertung der Änderung der Druckdaten nachgedacht. Dies wird weiter unten beschrieben.
  • Refactoring eines ähnlich funktionierenden historisch gewachsenen Druck-Systems zur Wahrung der Codequalität und der Möglichkeit auf Änderungen schneller zu reagieren.


Entwicklung eines Integrationstest-Frameworks in Java zur Auswertung von versicherungsspezifischen Daten, die aus anderen Software-Komponenten stammten:

  • Die Daten wurden mittels RTF-Technologie als PDF mit Hilfe der kommerziellen Software von CIB zu einem PDF-Druck aufbereitet.
  • Aufgrund der ständigen Änderung der Daten, sollte der technische und fachliche Test dieser Informationen per automatisierten Integrationstests ablaufen. Dies wurde durch ein selbstgeschriebenes Test-Framework umgesetzt.
  • Nach Aufspüren der Änderungen der Daten wurde ein Excel zur strukturierten Anzeige generiert, welches dem Fachbereich vorgelegt wurde. Dieser hat die Daten soweit korrigiert, woraufhin die Werte den Tests als korrekte Ergebnisse bekanntgemacht werden mussten. Zum Anerkennen der Werte auf Korrektheit wurde mit einem weiteren Java-Tool realisiert, den Testbestand automatisiert auf die neuen  Werte per Knopfdruck zuaktualisieren.

Java 5 und 6 OSGI JAXB JUnit XML-Unit XStream RTF
R+V Versicherung
Wiesbaden
2 Monate
2013-04 - 2013-05

Implementierung eines komplexen Algorithmus

Java 5 und 6 OSGI Riena ...

Implementierung eines komplexen Algorithmus nach einer fachlichen Vorgabe zur Realisierung einer versicherungsspezifischen Logik auf dem Smart-Client.

  • Implementierung des Algorithmus auf Basis eines Fachkonzepts
  • Implementierung von JUnit-Tests und Testen des Algorithmus

Java 5 und 6 OSGI Riena Eclipse RCP
R+V Versicherung
Wiesbaden
4 Monate
2013-01 - 2013-04

Entwicklung von GUI-Masken auf der Grundlage eines Smart-Client-Ansatzes

Java 5 und 6 JAXB OSGI ...

Entwicklung von GUI-Masken auf der Grundlage eines Smart-Client-Ansatzes über die Eclipse Riena Platform, die eine kompatible Ergänzung der Eclipse RCP ist.

  • Implementierung von GUI-Masken auf Basis von fachlichen Vorgaben
  • Implementierung von JUnit-Tests
  • Bugfixing von Issues und Wartung der Software

Java 5 und 6 JAXB OSGI Riena Eclipse RCP
R+V Versicherung
Wiesbaden
1 Jahr 4 Monate
2011-09 - 2012-12

Entwicklung einer Software für den touristischen Bereich

Java 5 und 6 Eclipse RCP EJB3 ...

Entwicklung einer Software für den touristischen Bereich auf Basis von Eclipse RCP, EJB3 und Hibernate und Wartung einer älteren Version.

  • Konzeption und Design der Client-Komponenten
  • Implementierung von JUnit-Tests/SWTBot Tests für die Client-Komponenten
  • Realisierung von Frontend-Komponenten
  • Bugfixing und Wartung älterer Versionen der Software

Java 5 und 6 Eclipse RCP EJB3 Hibernate JBOSS MagicDraw zur Datenmodellierung
DER, Deutsches Reisebüro
Frankfurt
6 Monate
2011-03 - 2011-08

Weiterentwicklung einer bestehenden Software

Windows XP Java 5 XML ...

Weiterentwicklung einer bestehenden Software zur Verwaltung, Reporting und Durchführung von Online-Befragungen.

  • Konzeption und Design für die Backend-Komponenten
  • Implementierung von JUnit-Tests für die Backend-Komponenten
  • Realisierung von Frontend-Komponenten

Windows XP Java 5 XML SQL Eclipse3.x Spring Hibernate MS SQL Server 2005 Eclipse RCP Eclipse RAP (Rich Ajax Plattform)
TTR IT Solutions
Frankfurt
5 Monate
2010-11 - 2011-03

Implementieren einer Web-Anwendung

Windows 7 Java 5 XML ...

Implementieren einer Web-Anwendung zum Zwecke der Marktforschung für den Kunden VW. 

Zu Marktforschungszwecken benötigte der Kunde eine Web-Anwendung, die Reports, Kennzahlen-Erfassungen, Besuchsberichte etc. mit einem Benutzerberechtigungskonzept und Rollen innerhalb komplexer Organisationsstrukturen zugänglich macht. Dies wurde auf der Backend-Seite mit Spring und Hibernate als DAOs und Services zur Verfügung gestellt. Zu Testzwecken wurde HSQLDB als Datenbank für jeden einzelnen Entwickler eingerichtet.

  • Realisierung von Backend-Komponenten der Businesslogik
  • Realisierung von Backend-Komponenten der Integrationslogik
  • Realisierung der Junit-Tests für die Backend-Komponenten
  • Durchführen des Systemtest mit Fehleranalyse und Fehlerbehebung

Windows 7 Java 5 XML SQL Eclipse 3.x Spring 2.5.6 Hibernate 3.3.2 MS SQL Server 2005 Maven HSQLDB Hudson
VW
Frankfurt
2 Monate
2010-10 - 2010-11

Implementieren eines Web Services

Windows XP Java 5 XML ...

Implementieren eines Web Services mit Spring für den Kunden BMW

Der Kunde sollte einen Web Service Request stellen, der eine URL anfordert, mit deren Hilfe man sich an einem System anmelden kann. Das Ganze sollte automatisiert und in einem heterogenen Systemumfeld ablaufen. Der Web Service wurde auf der Serverseite mit der Spring-Technologie realisiert und mit dem Tool SOAP-UI getestet. Darüberhinaus wurden auch Test-Clients mittels Apache Axis 2 implementiert.

  • Analyse des bestehenden Datenmodells für die spätere Aufbereitung der Daten für den Web Service
  • Implemetierung des Web Services mit Spring Web Services
  • Implementierung der Test-Clients mit Apache Axis 2

Windows XP Java 5 XML Web Services SOAP Spring Web Services MS SQL Server 2005 Maven Eclipse 3.x
BMW
1 Jahr
2009-10 - 2010-09

Entwicklung eines webbasierten Softwareproduktes

Windows XP Linux Java 5 ...

Entwicklung eines webbasierten Softwareproduktes zur Verwaltung, Reporting und Durchführung von Online Befragungen (Online Surveys)

Die Verwaltung der Fragebögen erfolgte über einen Web Client auf Basis von Eclipse RAP. Die Durchführung der Online Befragungen erfolgte über einen Web Client auf Basis von JSP und Struts.

  • Erstellung des Fachmodells als UML2 Modell und Umsetzung in Java-Klassen & - Interfaces (ca. 140 Klassen)
  • Schwerpunkte des Fachmodells (Benutzerverwaltung, Fragebögen, Datawarehouse)
  • Mapping der Domainmodell Klassen mittels JPA als Annotations unter Verwendung von Hibernate
  • (Die Umsetzung nutzte alle existierenden O/R Mapping Strategien der JPA)
  • Aufbau und Pflege der kompletten JUnit Suite zum Test des Domainmodels
  • Umsetzung eines I18N Supports auf Ebene von Enumerations des Domainmodells (Fachkonstanten z.B. Geschlecht, Fragetypen, Antworttypen usw)
  • Konfiguration und Deployment des Spring Frameworks für alle Klassen der Backend Komponenten
  • Installation und Konfiguration von Hibernate und Integration in Spring
  • Installation und Konfiguration eines Java Messaging Servers (JMS) auf Basis von Spring / ActiveMQ
  • Umsetzung asynchroner Services zum Speichern der Online Survey Ergebnisse in einem Datawarehouse über ActiveMQ

Windows XP Linux Java 5 XML SQL Eclipse 3.x Tomcat ActiveMQ Spring 3.x Hibernate 3.x/JPA Agilian Visual Paradigm 2.2 MS SQL Server 2005 Eclipse RAP (RichAjaxPlattform) Java Server Pages Struts JQuery Subversion Maven Hudson MS Office 2003
Online Surveys
5 Monate
2009-05 - 2009-09

Entwicklung einer Web-Anwendung für den Backoffice Bereich

Windows XP Eclipse PDT PHP 5 ...
Entwicklung einer Web-Anwendung für den Backoffice Bereich eines Medienunternehmens.

Das Projekt ?Formel 1? dient der Konsolidierung mehrerer teils redundanter Datenbanken zu einem zentralen System. Das Projekt wurde unter Einsatz von Smarty als Referenzprojekt umgesetzt, mit dem Ziel die Entwicklungsdauer zu reduzieren.

  • Modellierung eines konsolidierten Datenbankdesigns der betroffenen Datenbanken
  • Erstellung der logischen Transformations-/Migrationsregeln und Umsetzung in Form von Import/Export-Routinen für MySQL
  • Entwicklung eines webbasierten Administrationswerkzeug für die Redakteure
  • Entwicklung einer http-basierten Schnittstelle für die Bereitstellung der Daten im Teletext von RTL

Windows XP Eclipse PDT PHP 5 Smarty 2.x AJAX JavaScript JQuery JQueryUI REST MySQL 5.x
RTL New Media
Köln
3 Monate
2009-02 - 2009-04

Entwicklung einer Web-Anwendung

Windows XP Eclipse PDT MySQL 5.x ...

Entwicklung einer Web-Anwendung für den Backoffice Bereich eines Medienunternehmens.

Das Projekt ?Programmdatenbank? dient der Bereitstellung von Programmdaten. Ziel des Projektes war die Bereitstellung der Programmdaten als unternehmensweite Services

  • Entwicklung von REST-Services auf Basis des Zend-Framework für die Änderung und Bereitstellung von Programmdaten
  • Entwurf und Entwicklung der REST-Services und der XML-basierten Nachrichten
  • Entwicklung browserunabhängiger DOM-Elemente und Widgets mit JQuery und
  • JQueryUI zur Erhöhung des Benutzerkomforts

Windows XP Eclipse PDT MySQL 5.x PHP5 AJAX JavaScript JQuery/JQueryUI Zend Framework 1.x Smarty 2.x REST JQuery JQueryUI
RTL New Media
Köln
4 Monate
2008-10 - 2009-01

Portierung einer Applikation zur risikoadäquaten Kreditbewertung

Windows XP Eclipse IDE MS Visual Studio 2005 (C++) ...

Portierung einer Applikation zur risikoadäquaten Kreditbewertung von MS Access auf eine Swing basierte Lösung auf Basis einer JEE Architektur

  • Die JEE Architektur basierte auf JBoss, Oracle im Backend und Rich Client auf Basis von Swing.
  • Kapselung und Anbindung des bestehenden (C++) Rechenkerns zur Risikobewertung in Java. Die Einbindung in den Application Server JBoss erfolgte mittels SWIG
  • Entwicklung von C++ Testprogrammen zur Validierung größer Datenmengen in MS Visual Studio 2005
  • Planung und Aufbau der JEE Umgebung auf Basis von JBoss
  • Technisches Design und Umsetzung mittels Enterprise Java Beans(Stateless, Stateful, Message Driven Beans)
  • O/R Mapping mit JPA Annotations
  • Deployment über ANT auf Linux
  • Test der Datenbestände mit SQL und JUnit

Windows XP Eclipse IDE MS Visual Studio 2005 (C++) Java 5 C++ JBoss 4.2 EJB3 RMI Swing SWIG Oracle 8.x SOAP Apache Axis2 ANT Linux
Sal. Oppenheim
Frankfurt

Aus- und Weiterbildung

Aus- und Weiterbildung

  • Realschule eine Ausbildung zum Bürokaufmann(IHK) abgeschlossen
  • Fachabitur (Form B) an der Konrad Adenauer Schule in Kriftel


1999

Studium der Informatik

FH Wiesbaden

Kompetenzen

Kompetenzen

Top-Skills

Java Java EE Spring Boot JUnit Behavior Driven Development Selenium Cucumber Gherkin REST JPA Hibernate Liquibase SQL MySQL PostgreSQL Kafka Keycloak Quarkus ReactJS TypeScript JavaScript Gitlab CI/CD

Produkte / Standards / Erfahrungen / Methoden

Profil:

  • Seit meinem Studium sammelte ich meine Erfahrung bezüglich Java-Technologien, insbesondere im Bereich Web. Nach mehreren Projekten innerhalb des Studiums hatte ich gelernt mit Frameworks der Programmiersprache Java umzugehen
  • Nach dem Abschluss meines Studiums als Diplom-Informatiker hatte ich meine Kenntnisse im Java/J(2)EE-Bereich bei mehreren Unternehmen vertiefen dürfen. Auch Schulungen durfte ich besuchen, um manche Frameworks besser kennenzulernen
  • Ich biete Ihnen kompetente Unterstützung in allen Stufen des Softwareentwicklungsprozesses. In enger Abstimmung mit dem Fachbereich erstelle ich Entwürfe und führe die Realisierung mit den entsprechenden Tests durch. Aufgrund meiner bisherigen Erfahrung verfüge ich über fundiertes Fachwissen und kann eine hohe Qualität der entwickelten Software sicherstellen und diese verantwortungsvoll zum Einsatz bringen
  • Mein Arbeitsstil ist agil und zielorientiert. Er ist geprägt durch Teamfähigkeit und Kommunikationsstärke. Dabei sind für mich Zuverlässigkeit und selbständiges Arbeiten ebenso selbstverständlich wie Flexibilität und eine hohe Belastbarkeit. Auch in schwierigen Situationen behalte ich einen kühlen Kopf. Ich bin jederzeit motiviert, mich in neue Aufgabenstellungen rasch und sicher einzuarbeiten und habe einen hohen Grad an Lernbereitschaft
  • Ich bin interessiert an allen neuen Entwicklungen in der IT-Branche. Durch kontinuierliche Weiterbildung und autodidaktische Lernfähigkeit bleibe ich auf der Höhe der Zeit


Noch ein paar Worte über mich

  • Ich habe nach der Realschule eine Ausbildung zum Bürokaufmann(IHK) abgeschlossen. Danach habe ich mein Fachabitur (Form B) an der Konrad Adenauer Schule in Kriftel gemacht und habe im Anschluss daran im Jahre 1999 das Studium der Informatik an der FH Wiesbaden angefangen
  • Dies schloss ich im Jahre 2005 mit der Gesamtnote 2,1 ab. Seit 09/2005 bin ich in der IT-Branche als Softwareentwickler tätig


Besondere Kenntnisse im Überblick

Test-Frameworks und Werkzeuge:

  • JUnit 5 Jupiter
  • Mockito
  • EasyMock
  • Hamcrest
  • Powermock
  • AssertJ


BDD:

  • Selenium
  • Cucumber
  • Gherkin


Identity Provider und Werkzeuge:

  • Keycloak
  • OAuth2
  • OpenID Connect
  • OpenAPI
  • Swagger
  • JSON Web Token (JWT)
  • Nimbus Jose JWT


Messaging und Werkzeuge:

  • Kafka
  • Zookeeper
  • Spring Kafka
  • AKHQ


Abfragesprache

  • SQL
  • PL-SQL


Dokumentbasierte Technologien

  • NoSQL
  • MongoDB
  • Apache SolR
  • Lucene
  • IDOL MicroFocus


Build Management:

  • Maven
  • Gradle
  • Continuous Integration (CI)
  • Continuous Delivery (CD)
  • Jenkins
  • TeamCity
  • Ansible


Cloud Computing

  • Grundkenntnisse in Amazon Web Services AWS EC2, AWS S3, AWS RDS, AWS STS, AWS SES, AWS Cloudwatch, AWS KMS, Microsoft Azure


Metriken

  • Grafana
  • Prometheus


Container Technologien

  • Docker
  • Kubernetes
  • Helm
  • Grundkenntnisse in Openshift


Modellierungssprache:

  • UML2
  • OOA und OOD


Frameworks

  • Quarkus
  • Quarkus-Scheduler
  • ShedLock, Spring Core
  • Spring Boot
  • Spring RESTful Web Services and SOAP
  • Spring Security
  • Spring Mvc
  • Spring Batch
  • Spring Messaging
  • Spring Data
  • Hibernate(HSql, Criteria API)
  • iBATIS
  • Struts
  • JSF
  • Prime Faces
  • Java EL
  • Apache Axis
  • Apache Camel
  • Apache SCXML
  • Vert.X
  • XStream
  • iTEXT
  • XML-Unit
  • Log4j
  • Logback
  • Apache Commons & Lang
  • OGNL
  • Apache Http Client
  • Gson
  • Jackson GSON
  • Quartz(Scheduler)
  • Apache SolR
  • SolRJ
  • Apache NIFI
  • Apache POI
  • ZEND
  • Smarty
  • JQuery
  • JQuery UI


Template engines:

  • JSTL
  • Thymeleaf
  • FreeMarker Template


Datenbank-Migration

  • Liquibase


Werkzeuge

  • IntelliJ
  • Eclipse
  • Apache Tomcat
  • Microsoft Visual Studio
  • IBM Websphere
  • Oracle WebLogic
  • JBoss
  • JBossWS
  • Apache HTTP Server
  • CVS/SVN/GIT/ClearCase
  • Ant
  • Maven
  • Gradle
  • SoapUI
  • TCPMon
  • Postman
  • Insomnia
  • WebMethods
  • Apache Active MQ
  • Cygwin
  • Linux Shell
  • MySQLWorkbench
  • SQLDeveloper
  • HeidiSQL
  • WinSCP
  • Putty
  • Atlassian Bitbucket (GIT)
  • JIRA
  • Confluence
  • JFrog Artifactory
  • GitLab
  • Nexus


Codeanalyse

  • FindBugs
  • Grundkenntnisse in Veracode und SonarQube

Vorgehensmodell:

  • SCRUM
  • Wasserfall


Anwendungssoftware

  • MS Office
  • Visio


Darin verwendete Technologien:

  • ReactJS
  • Typescript
  • Javascript
  • Nextjs
  • Node
  • NPM
  • React
  • Material UI
  • Axios
  • Formik
  • NextIntl
  • Yup
  • Spring Boot
  • Spring Boot Security
  • Spring Boot JPA
  • Thymeleaf
  • PostgreSQL
  • Liquibase
  • iText
  • PdfBox
  • AngusMail
  • Logback

Betriebssysteme

Windows (NT, 2000, XP, Vista, Windows 7/10/11)
LINUX/UNIX
macOS

Programmiersprachen

Java 8 bis 21
PHP
C/C++/C#
J(2)EE
EJB3
JDBC
JAXB
JAXWs
JSP
Servlets
RMI
JNI
JMS
JTA
Javamail
XML
SCXML
XMLUnit
REST Web Services
XMLSchema
XmlBeans
XSLFO
SVG
XPATH
XSLT
DOM
SAX
StAX
XMLRPC
Web Services/SOA
SOAP WS
WSDL
ReactJS
Javascript
AJAX
HTML/DHTML/CSS
Bootstrap
JSON
JSONPath
Jackson Databind
Jackson Annotation
OSGI
Eclipse Equinox
Eclipse RCP
Eclipse RAP Jakarta Persistence (JPA)
JDO
Angular 8+
Angular Material
Flex Layout
Highcharts
TypeScript
SCSS
RxJS
Node.js
HammerJS
Npm
Nextjs

Datenbanken

Oracle SQL
PostgreSQL
MSSQL
Sybase
MySql
MariaDB
MongoDB
H2

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.