Architektur/Entwicklung, Cloud, Java, Spring Boot
Aktualisiert am 07.04.2023
Profil
Referenzen (2)
Freiberufler / Selbstständiger
Remote-Arbeit
Verfügbar ab: 01.05.2023
Verfügbar zu: 100%
davon vor Ort: 100%
Java
Spring-Boot
Cloud
AMQP
JPA
hexagonale Service Architektur
event driven
micro service
Deutsch
Englisch

Einsatzorte

Einsatzorte

Berlin (+10km)
Deutschland

Derzeit bevorzuge ich Projekte im Raum Berlin oder full remote.

möglich

Projekte

Projekte

9 Monate
2021-05 - 2022-01

Vorgangsbearbeitung

Architektur/Implementierung Linux Java 17 Spring Boot ...
Architektur/Implementierung

BeschreibungDas Verwaltungsportal des Bundes soll für Bürgerinnen und Bürger sowie Unternehmen einen zentralen und komfortablen Zugang zu allen Verwaltungsleistungen des Bundes ermöglichen. Über die Anbindung an den Portalverbund werden ebenfalls die Leistungen der Länder und Kommunen zugänglich sein. Dabei verfolgt das Projekt eine ganzheitliche Lösung für Bürger/innen, Unternehmen und für Behörden. Die Umsetzung der einzelnen Applikationen erfolgte in einer hexagonalen Service-Architektur. Die Vorgangsbearbeitung dient der Verwaltung und Bearbeitung von durch den Bürger übermittelter Anträge innerhalb der Behörden.

AusführungLinux (Ubuntu) Java 17, Spring, Spring Boot Kubernetes, Docker REST, Jackson Hibernate 5, Oracle DB, H2, domain-driven design, hexagonal architecture Cloud MinIO, MapStruct, Micrometer, Lombok, Feign, Resilience4J, Testcontainers, OpenTracing, AOP, Mockito Junit 5, AssertJ, JSONAssert IDE: IntelliJ 2021 Vorgehensmodell: Scrum Tools: Maven, GitLab VCS: git

IntelliJ Ubuntu
Linux Java 17 Spring Boot Docker Kubernetes REST Hibernate Oracle DBA hexagonal architecture Juni 5 Lombok Feign MapStruct Resilience4J JPA
Bundesdruckerei
Berlin
3 Jahre 5 Monate
2018-02 - 2021-06

Rewrite einer Web-Applikation zum Versand von Einwegnachrichten

Idee, Design, Implementierung PC / Windows Ubuntu Linux Spring Boot 2 ...
Idee, Design, Implementierung

Einfache Möglichkeit zum Versand von Einwegnachrichten, die beim Lesen automatisch gelöscht werden. Möglichkeit für Attachment als Bild. Bei Erstellung der Nachricht wird ein Link generiert, der dem Empfänger mitzuteilen ist. Ruft der Empfänger den Link auf, so wird die Nachricht auf dem Server gelöscht, wodurch sie nur einmalig gelesen werden kann Microservice Architektur: message store, authorization/ authentication, frontend

Features

  • Versand von Tect und Bildern. Benachrichtigung des Versenders beim Lesen der Nachricht.
  • Unterstützung mehrerer Sprachen.
  • Unterstützung von X-Forwarded-* headern zum Betrieb hinter einem reverse proxy zur SSL-Temrinierung.
  • Blockieren der Anzeige beim Versand des Links mittels Facebook Messenger, damit hiermit die Nachricht nicht zerstört wird.
  • Benutzerverwaltung; registrierte Benutzer können zusätzliche Features nutzen.
  • Benutzerregistrierung, recaptcha Integration.
  • Versand von multipart MimeMessage (plain text, html) eMails zur Aktivierung des Accounts nach Aktivierung und Lesebestätigungen.
  • Hierzu wird der bereits vorhandene eMail Server als relay benutzt. Feature switches mit unterschiedlichen Aktivierungsstrategien (Benutzergruppe, Spring-Boot Profil, Administratorfunktion).
  • Integration in Thymeleaf durch custom dialect. Serverseitige Integration durch Annotation mittels AspectJ.
  • Administratorfunktionen: Übersicht der Nachrichten, aktuelle User sessions
  • Verwaltung von Registrierungen, Verwaltung von Feature switches für aktuelle User sessions (auch anonyme).
  • Connection pooling für message store und auth-service.
  • Distributed tracing.

Betrieb

  • Metriken mittels Prometheus, Grafana
  • Logging mittels Filebeat, Elastic Search, Kibana
  • Docker compose zur Orchestrierung aller Container (PostgreSQL, message-store, auth-service, frontend, Filebeat, Elastic Search, Grafana, Kibana, Prometheus).
PC / Windows Ubuntu Linux Spring Boot 2 Spring Security Spring JPA Spring Cloud Sleuth Spring Actuator JPA2 Hibernate 5 HikariCP Flyway 5 PostgreSQL 10 Jackson MapStruct 2 Logback Micrometer AssertJ Mockito Thymeleaf 2 custom dialect Bootstrap jQuery DevOp: GitLab; GitLab CI/CD Java 11 IntelliJ
Social Web
8 Monate
2020-10 - 2021-05

Dokumentenservice

Architektur/Implementierung Linux Java 14 Spring Boot ...
Architektur/Implementierung

Beschreibung

Das Verwaltungsportal des Bundes soll für Bürgerinnen und Bürger sowie Unternehmen einen zentralen und komfortablen Zugang zu allen Verwaltungsleistungen des Bundes ermöglichen. Über die Anbindung an den Portalverbund werden ebenfalls die Leistungen der Länder und Kommunen zugänglich sein. Dabei verfolgt das Projekt eine ganzheitliche Lösung für Bürger/innen, Unternehmen und für Behörden.
Die Umsetzung der einzelnen Applikationen erfolgte in einer hexagonalen Service-Architektur.
In diesem Umfeld ist es notwendig hochgeladene und generierte Dokumente sicher zu verwalten. Für diesen Zweck wurde ein Dokumentenservice entwickelt. Dieser nimmt Dokumente entgegen, ohne diese unmittelbar zum Download anzubieten. Erst wenn diese durch die Verwaltungssoftware als final markiert werden, können Sie mit einem Zugriffsschlüssel für eine begrenzte Zeit vom Nutzer heruntergeladen werden. Temporär hochgeladene Dokumente werden zyklisch aus dem System gelöscht.

Ausführung

Linux (Ubuntu)
Java 14, Spring, Spring Boot
Kubernetes, Docker
REST, Jackson
Hibernate 5, Oracle DB, H2, domain-driven design, hexagonal architecture
Cloud
MinIO, MapStruct, Micrometer, Lombok, Feign, Resilience4J, Testcontainers, OpenTracing, AOP, Mockito
Junit 5, AssertJ, JSONAssert
IDE: IntelliJ 2020
Vorgehensmodell: Scrum
Tools: Maven, GitLab
VCS: git

IntelliJ Ubuntu
Linux Java 14 Spring Boot Docker Kubernetes REST Hibernate Oracle DB H2 domain-driven design hexagonal architecture MinIO MapStruct Micrometer Lombok Feign Resilience4J Testcontainers OpenTracing AOP Junit 5 JSONAssert Git Scrum
Bundesdruckerei
Berlin
9 Monate
2020-02 - 2020-10

Leistungsbeantragung

Architektur/Implementierung Linux Java 14 Spring Boot ...
Architektur/Implementierung

Beschreibung

Das Verwaltungsportal des Bundes soll für Bürgerinnen und Bürger sowie Unternehmen einen zentralen und komfortablen Zugang zu allen Verwaltungsleistungen des Bundes ermöglichen. Über die Anbindung an den Portalverbund werden ebenfalls die Leistungen der Länder und Kommunen zugänglich sein. Dabei verfolgt das Projekt eine ganzheitliche Lösung für Bürger/innen, Unternehmen und für Behörden.
Die Umsetzung der einzelnen Applikationen erfolgte in einer hexagonalen Service-Architektur.
Die Leistungsbeantragung dient der Bereitstellung von Formularen für den Bürger, um eine Leistung zu beantragen. Für die Behörde wird eine Verwaltung dieser Anträge bereitgestellt, um die Vorgänge zu bearbeiten.

Ausführung

Linux (Ubuntu)
Java 14, Spring, Spring Boot
Kubernetes, Docker
REST, Jackson
Hibernate 5, Oracle DB, H2, domain-driven design, hexagonal architecture
Cloud
MinIO, MapStruct, Micrometer, Lombok, Feign, Resilience4J, Testcontainers, OpenTracing, AOP, Mockito
Junit 5, AssertJ, JSONAssert
IDE: IntelliJ 2020
Vorgehensmodell: Scrum
Tools: Maven, GitLab
VCS: git

IntelliJ Ubuntu
Linux Java 14 Spring Boot Docker Kubernetes REST Hibernate Oracle DB H2 domain-driven design hexagonal architecture MinIO MapStruct Micrometer Lombok Feign Resilience4J Testcontainers OpenTracing AOP AOP Junit 5 Junit JSONAssert Scrum
Bundesdruckerei
Berlin
7 Monate
2019-06 - 2019-12

Optimierung des Persistenzlayers durch multi-tenancy

Architektur/Implementierung Java 11 Spring Boot AWS ...
Architektur/Implementierung

Beschreibung

Eine existierende Plattform zum Versand von Nachrichten wird durch eine Nachrichtenagnostische Komponente aus einigen Microservices (Abonnement Dienste) mit Anwendungsfall spezifischen Ereignissen zur Generierung von Nachrichten versorgt.
Der Abonnementspeicherdienst ist für die Persistenz von unbekannten Events (im Json-Format) zuständig. Die Events werden durch die Definition eines Anwendungsfalls (Thema) im Themenverwaltungsdienst definiert und von Kafka gelesen und samt ihrer eindeutigen Themenkennung in einer PostgreSQL gespeichert. Der Abonnementverarbeitungsdienst verarbeitet zeitgesteuert die verschiedenen Themen durch Anfragen an den Abonnementspeicherdienst. Dabei reichert er die Daten mittels Anfragen an weitere Dienste an und leitet sie an die zentrale Nachrichtenplattform zum Versand weiter.
Durch die Zunahme der Anwendungsfälle ist ein erheblicher Zuwachs des Datenvolumens (etwa 250 Mio. Zeilen) zu verzeichnen wodurch die Ausführung der DB-Abfragen zunehmend langsamer wird. Nachdem alle Zugriffsoptimierungen ausgeschöpft waren, entschlossen wir uns die Daten aufzuteilen und eine multi tenancy Architektur in der Persistenzschicht einzuführen. Als tenant dient hierbei ein Thema. Da die Anzahl der Themen zunehmend wächst ist die dedizierte Zuordnung einer DB-Instanz je Thema nicht möglich. Daher wird je Thema ein eigenes DB-Schema benutzt um die Indizes für die Abfragen klein zu halten.
Die Hauptanforderung an die multi tenancy Komponente ist eine möglichst einfache Integration in den bestehenden Abonnementspeicherdienst. Dabei griff ich auf die Unterstützung von Hibernate zurück die mittels AspectJ an Annotations zur Selektion des Tenants gebunden habe. Dabei integriert sich alles weitgehend automatisch in Spring Boot.
Nach der Datenmigration zeigten erste Vergleiche der Ausführungsgeschwindigkeiten der Abfragen hierbei eine Steigerung von mindestens Faktor 10.

Ausführung

Linux (Ubuntu)
Java 8/11, Spring, Spring Boot
Amazon AWS, EC2
Docker
REST, Jackson
Hibernate 5, PostgreSQL, H2, redis, RabbitMQ (AMQP), Kafka (Nakadi)
event driven architecture, domain-driven design, hexagonal architecture
Cloud
Mockito
Junit 4/5, Hamcrest, AssertJ
IDE: IntelliJ 2018
Vorgehensmodell: Scrum
Tools: Maven, GitHub Enterprise
VCS: git

IntelliJ Ubuntu Git
Java 11 Spring Boot AWS Docker REST Hibernate PostgreSQL H2 Redis RabbitMQ AMQP Kafka JUnit Hamcrast AssertJ Scrum event driven architecture domain-driven design hexagonal architecture
Zalando
Berlingen, Eifel
3 Monate
2019-03 - 2019-05

Werbekampagnen Verwaltung

Architektur/Implementierung Java 11 Spring Boot AWS ...
Architektur/Implementierung

Beschreibung

Architektur und Implementierung eines Microservices zur Verwaltung von Werbekampagnen. Der Microservice ist für die Stammdaten der Kampagnen zuständig und steuert die Generierung des relevanten Kundensegments durch einen weitere Microservice. Dabei verfügt er über eine Zustandsmaschine, die die Status der einzelnen Kampagnen steuert. Die Status werden auch vom Segmentierungsservice mittels Nachrichten aktualisiert. Der Segmentierungsservice sendet hierzu bei Beginn der Aussendung der Messages relevanter Kunden an die verarbeitende Plattform und bei Beendigung der Aussendung jeweils einen Statusupdate an die Kampagnenverwaltung zur Aktualisierung des Status.
Die Microservices basieren auf Spring Boot. Die Kommunikation erfolgt über REST, AMQP sowie Kafka (gekapselt durch Nakadi).

Ausführung

Linux (Ubuntu)
Java 8/11, Spring, Spring Boot
Amazon AWS, EC2
Docker
REST, Jackson
Hibernate 5, PostgreSQL, H2, redis, RabbitMQ (AMQP), Kafka (Nakadi)
event driven architecture, domain-driven design, hexagonal architecture
Cloud
Mockito
Junit, Hamcrest, AssertJ
IDE: IntelliJ 2019
Vorgehensmodell: Scrum
Tools: Maven, GitHub Enterprise
VCS: git

IntelliJ Ubuntu
Java 11 Spring Boot AWS Docker REST Hibernate PostgreSQL H2 Redis AMQP Kafka Mockito JUnit AssertJ Hamcrast Maven Git Scrum Linux event driven architecture domain-driven design hexagonal architecture
Zalando
Berlin
2 Monate
2019-01 - 2019-02

Backendservice zur Ermittlung verschiedener Mitarbeiter bezogener Daten

Architektur, Implementierung Linux Java 11 Spring ...
Architektur, Implementierung

Neuentwicklung eines Spring Boot basierenden Microservices zur Ermittlung Mitarbeiter bezogener Daten aus verschiedenen Backendsystemen. Die Daten werden an verschiedenen REST Endpunkten bereitgestellt. Da die Backend-systeme einen zu den REST Endpunkten abweichenden Business-Key benutzen, wird ein CSV-Dump aus einem Legacy-System bereitgestellt. Dieser wird zyklisch mittels Quartz eingelesen und als Mapping in einer PostgreSQL bereitgehalten. Die Mitarbeiterinformationen werden dann aus einer Oracle DB oder per SOAP/REST von anderen Backendsystemen ermittelt.

Linux Java 11 Spring Spring Boot Kubernetes Docker Docker compose Quartz REST Jackson Hibernate 5 PostgreSQL Oracle DB H2 Cloud Mockito Junit AssertJ IDE: IntelliJ 2018 Vorgehensmodell: Kanban Tools: Maven Jira Bitbucket VCS: git
Autowerkstatt
2 Monate
2018-12 - 2019-01

Backendservice zum Versand von Formulardaten per eMail

Architektur, Implementierung Linux Java 11 Spring ...
Architektur, Implementierung

Neuentwicklung eines Spring Boot basierenden Microservices zum Versand von Formulardaten per eMail. Die Daten werden an einen REST Endpunkt angenommen und basierend auf diversen Regeln in unterschiedlichen Formaten an diverse Empfänger versendet. Als Template Engine wurde thymeleaf benutzt.

Linux Java 11 Spring Spring Boot Kubernetes Docker Docker compose REST Jackson Cloud Mockito Junit AssertJ IDE: IntelliJ 2018 Vorgehensmodell: Kanban Tools: Maven Jira Bitbucket VCS: git
Autowerkstatt
3 Monate
2018-10 - 2018-12

Online Terminvereinbarung

Architektur, Implementierung Linux Java 11 Spring ...
Architektur, Implementierung

Architektur und Implementierung neuer Funktionen eines Online Terminvereinbarungsservice durch Spring Boot basierende Microservices. Die Kommunikation der Microservices basiert auf REST und Kafka. Daten werden in PostgreSQL gespeichert.

Linux Java 11 Spring Spring Boot Kubernetes Docker Docker compose REST Jackson Hibernate 5 PostgreSQL H2 Kafka Cloud Mockito Junit AssertJ IDE: IntelliJ 2018 Vorgehensmodell: Kanban Tools: Maven Jira Bitbucket VCS: git
Autowerkstatt
1 Jahr 6 Monate
2017-04 - 2018-09

Plattform zum Versand von Nachrichten

Architektur, Implementierung Apple / macOS / Linux Java 8 Spring ...
Architektur, Implementierung

Architektur und Implementierung neuer Funktionen einer auf Nachrichten basierenden Kommunikationsplattform auf Basis Spring Boot. Die gesamte Plattform ist auf diverse Microservices verteilt, die mittels REST und AMQP untereinander kommunizieren. Dabei kommt ein Templatesystem zum Einsatz, das den Klienten den Versand der Nachrichten vereinfacht, da nur ein Minimum an Payload benötigt wird. Das Rendering der Nachricht geschieht innerhalb der Plattform für den jeweils relevanten Kommunikationskanal. Hier wird derzeit SMS, Push (iOS und Android), eMail, Facebook Messenger und Brief unterstützt. Alle Nachrichtenkanäle verfügen über eine Vielzahl an Kennzahlen zum Tracken der einzelnen Nachrichten.

Apple / macOS / Linux Java 8 Spring Spring Boot Amazon AWS EC2 Docker REST Jackson Hibernate 5 PostgreSQL H2 redis RabbitMQ (AMQP) Cloud Mockito Junit Hamcrest AssertJ IDE: IntelliJ 2018 Vorgehensmodell: Scrum Tools: Maven GitHub Enterprise VCS: git
Handel
7 Monate
2016-09 - 2017-03

Europas größte Auto- und Motor-Community

Architektur, Implementierung Apple / macOS / Linux Java 8 Spring ...
Architektur, Implementierung

Architektur und Implementierung neuer Funktionen sowie Bugfixing einer Spring basierenden Community Plattform. Architektur und Implementierung einer Sitelist zur Anbindung von Suchmaschinen wie Google auf Basis Spring Boot, welche in der hauseigenen Cloud läuft. Die hier benötigten Scheduling-Aufgaben wurden mit Spring implementiert. Zur Synchronisation der Instanzen wurde redis gewählt. Als client seitiger Loadbalancer diente ribbon. Servicediscovery wurde mittels consul realisiert. Logging erfolgte mittels ELK (Elasticsearch, Logstash, Kibana)

Apple / macOS / Linux Java 8 Spring Spring Boot Stripes JSP JSTL REST Jackson mySQL MyBatis redis Elasticsearch Logstash Kibana ribbon consul Cloud Mockito REST-Assured JUnit Hamcrest IDE: IntelliJ 2017 Vorgehensmodell: Scrum Tools: JIRA; Team City; Confluence; Maven VCS: git
Community
1 Jahr 2 Monate
2015-08 - 2016-09

Internetanwendung zur Verwaltung für Marketingkampagnen

Architektur, Implementierung Spring Boot Java 8 REST ...
Architektur, Implementierung

Architektur und Implementierung einer neuen Anwendung von Grund auf. Umsetzung als Microservice-Architektur auf Basis Spring Boot in einem Docker Container im AWS-Umfeld. Anbindung von Google Double Click und Metrigo für „onsite“ Werbung und „sponsored products“. Scheduling-Aufgaben wurden mittels Quartz gesteuert. Für die Übermittlung von Nachrichten wurde Amazons SQS benutzt.

IntelliJ Trello Atlassian Confluence Jackson REST-Assured JUnit Hamcrest Swagger git Hibernate PostgreSQL H2 Database Engine Mockito Google Double Click Metrigo Atlassian JIRA SQS Amazon EC2 AWS Cloud Computing JPA
Spring Boot Java 8 REST Kanban JPA
Werbung
4 Monate
2015-05 - 2015-08

Stammdatenverwaltung für Abrechnungssystem

Analyse, Design, Implementierung JEE 6 Java 7 REST ...
Analyse, Design, Implementierung

Implementierung zentraler Dienste der Stammdatenverwaltung. Hierzu gehören Liegenschaften, Gebäude, Messstellen, Messinstrumente usw.

Wildfly Scrum Atlassian JIRA Atlassian Confluence IntelliJ
JEE 6 Java 7 REST Soap JMS Hibernate MySQL Orika AngularJS jQuery Grunt Bower
Energiedienstleistung
6 Jahre 8 Monate
2008-08 - 2015-03

Interne Applikation zur Vertragsverwaltung und Kundenbetreuung

Analyse, Design, Implementierung Scrum JavaScript HTML ...
Analyse, Design, Implementierung

Implementierung administrativer Funktionen in ein bestehendes webbasierendes Vertragsverwaltungssystem

Modul Migration
Zur Übernahme von Vertragsbeständen aus einer fremden Bestandsverwaltung musste ein Konzept zur Migration dieser Datenstrukturen in das bestehende Bestandsverwaltungssystem erstellt werden. Dabei soll eine BPM-Engine als Rahmen dienen. Bei der Erstellung der Infrastruktur wurde hier auf RESTful Services mittels RESTEasy gesetzt. Das Modul gliedert sich in zwei Teile, wobei eines für die Transformation der Datenstrukturen in die Zielstrukturen zuständig ist und das andere die Zusteuerung ins bestehende System übernimmt.

Modul Angebotserstellung
Ziel war eine möglichst eigenständige Komponente zur Erstellung von Änderungsangeboten an bestehenden Verträgen zu realisieren. Auch sollte die Option einer neuen GUI-Technologie nicht verschlossen werden. Hierfür wurde die Geschäftslogik mittels EJB 3 umgesetzt. Für die Verbindung der Vertragskomponente (EJB 2) zur Angebotskomponente (EJB 3) wurde eine Prozessschicht in EJB 3 gewählt. Diese sorgt transaktionsgesteuert für Konsistenz in beiden Komponenten.

Modul JSF-Prototyp
Zur Abschätzung des Migratiosnaufwandes von Struts zu JSF musste ein Prototyp gebaut werden. Dieser benutzte weitestgehend die vorhandenen Beans.

Modul C/S-Trennung
Die ursprüngliche Anwendung hatte keine Client/Server-Trennung, wodurch eine gute Transaktionsbehandlung kaum möglich war. Da die GUI-Komponente jedoch direkt auf die Entitäten der Persistenzschicht aufbaute, wurde eine Transformation in ein DTO-Objekt zur Übergabe an die Beans gewählt. Serverseitig wurden diese wieder zurück in die Entitäten transformiert, womit die C/S-Trennung für eine sinnvolle Transaktionsbehandlung ermöglicht wurde.

Modul Verbesserungen beim Exception-Handling
Die Umstellung auf EJB3 eröffnete neue Möglichkeiten beim Exception-Handling. Zentrale Beans werfen nun mittels @ApplicationException annotierte Exceptions, die auch eine Wurzel-Klasse mit dem Attribut rollback=true haben. Somit ist die Transaktionsbehandlung besser möglich.

Modul Verbesserungen an der Persistenzschicht
Einheiten behafteter Größen - Geldbeträge sind in der Persistenzschicht einheitlich in Euro zu speichern, wenngleich der Zugriff auf die Klassen auch Centbeträge erlauben muss. Hierfür galt es einen flexiblen embeddable type für Hibernate umzusetzen.


Modul Komponente zur fachlichen Prüfung von Daten
Contextsensitive Daten sind sowohl am Frontend, als auch am Backend auf dieselbe Weise zu prüfen. Hierfür wurde eine Komponente geschaffen, die sich einfach sowohl als JSTL als auch in der zentralen Validierung des Systems benutzen lässt.

Eclipse 4.4 JIRA JBoss 6 Wildfly 8
Scrum JavaScript HTML Java 8 JEE 6 EJB 2 Struts JSF RESTeasy Hibernate 4 MQ DB2 AIX UNIX
Versicherung
3 Monate
2014-10 - 2014-12

Web-Applikation zum Versand von Einwegnachrichten

Idee, Design, Implementierung Java 7 JEE 6 JSF 2.2 ...
Idee, Design, Implementierung

Einfache Möglichkeit zum Versand von Einwegnachrichten, die beim Lesen automatisch gelöscht werden. Möglichkeit für Attachment als Bild.

Eclipse 4.3 Wildfly 8
Java 7 JEE 6 JSF 2.2 Hibernate 4 MySQL JavaScript HTML CSS Scrum
Social Web
3 Monate
2008-08 - 2008-10

Machbarkeitsstudie - Community/ Marketplace

Projektleitung, Architektur, Implementierung PC / Windows Linux JavaScript ...
Projektleitung, Architektur, Implementierung

Machbarkeitsstudie für Social Community/Marketplace Plattform auf Basis von JBoss Seam.

PC / Windows Linux JavaScript HTML Eclipse 3.4 JBoss Seam 2.1.1 JBoss 5.0.1 Java 6 JEE 5 Servlet JSF EJB 3 MySQL 5.1 Hibernate 3.3 Richfaces 3.3 Ant 1.7 extreme Programming
Social Community/Marketplace
7 Monate
2008-01 - 2008-07

Belegwesen

Analyse, Design, Implementierung PC / Windows UNIX / Sun Solaris JavaScript ...
Analyse, Design, Implementierung

Implementierung administrativer Funktionen in ein bestehendes webbasierendes Belegverwaltungssystem

PC / Windows UNIX / Sun Solaris JavaScript HTML IBM WAS 5 IBM RAD 6 Java 1.4 J2EE 1.3 Servlet JSP Taglib MQ IBM DB2
Steuern
6 Monate
2007-07 - 2007-12

Bestell- und Informationssystem

Analyse, Implementierung PC / Windows JavaScript HTML ...
Analyse, Implementierung

Implementierung der Funktion Bankeinzug in ein bestehendes webbasierendes Bestell- und Informationssystem, welches in den Warenhäusern eingesetzt wird. Anbindung diverser Backendsysteme zur Speicherung der Bank- und Personendaten.

PC / Windows JavaScript HTML IBM WAS 5 IBM RAD 6 MQ Webservices Servlet JSP Taglib Struts Java 1.4 J2EE 1.3 Oracle RDBMS
Handel
3 Monate
2007-04 - 2007-06

Auswertungen für Mandanten

Analyse, Design, Refactoring, Implementierung PC / Windows UNIX / Sun Solaris JavaScript ...
Analyse, Design, Refactoring, Implementierung

Komplettes Refactoring einer Legacy-Applikation. Das Projekt ist über Jahre hinweg gewachsen. Es wurde auch einem unsanften Wechsel der Programmiersprache unterzogen und von der Architektur mehrfach umgestellt. Die Spuren dieser Umstellungen und daraus resultierende Architekturvielfalt wurde bereinigt und auf eine komplett neue, verschlankte, leistungsfähige Architektur gestellt.

PC / Windows UNIX / Sun Solaris JavaScript HTML IBM WAS 5 IBM RAD 6 Java 1.4 J2EE 1.3 Servlet JSP Taglib Struts
Steuerberatung
1 Jahr 3 Monate
2006-01 - 2007-03

Web-Portal

Architektur, Analyse, Design, Implementierung PC / Windows UNIX / Sun Solaris Oracle RDBMS 9i ...
Architektur, Analyse, Design, Implementierung

Erweiterungen am Formularhandling, der Suche und des Mitglieder-Suchservices.

PC / Windows UNIX / Sun Solaris Oracle RDBMS 9i PL/SQL JavaScript HTML CSS Access Word (VBA) IBM WAS 5 IBM WSAD 5.1 RAD 6 Java 2 J2EE 1.3 Servlet JSP Taglib XML XSLT Struts
Steuerberatung

Aus- und Weiterbildung

Aus- und Weiterbildung

1 Monat
2004-05 - 2004-05

Sun Certified Programmer for the Java 2 Platform 1.4

Sun Certified Programmer for the Java 2 Platform 1.4, Nürnberg
Sun Certified Programmer for the Java 2 Platform 1.4
Nürnberg

Kompetenzen

Kompetenzen

Top-Skills

Java Spring-Boot Cloud AMQP JPA hexagonale Service Architektur event driven micro service

Produkte / Standards / Erfahrungen / Methoden

AMQP
AOP
AWS
Cloud
Docker
Docker compose
domain-driven design
event driven architecture
Feign
Git
hexagonal architecture
Hibernate
IntelliJ
Jira
Kafka
Kubernetes
MapStruct
Maven
Micrometer
MinIO
Mockito
OpenTracing
Quartz
RabbitMQ
Redis
Resilience4J
REST
Scrum
Spring
Spring Boot
Testcontainers

Sonstige Entwicklungswerkzeuge

  • Eclipse
  • TOAD
  • Rational Rose

Projektverwaltung/Tools

  • JIRA
  • Confluence
  • Trello

Versionskontrollsysteme

  • CVS
  • SVN
  • git

Build tools

  • Ant
  • Maven

Cloud

  • Amazon AWS (SQS, EC2)

Komponenten/ Frameworks

  • Log4J, SLF4J, Logstash
  • Struts
  • Thymeleaf
  • Stripes
  • Tiles
  • JUnit, AssertJ, Hamcrest
  • RabbitMQ
  • Kafka
  • Quartz
  • Redis
  • Elasticsearch
  • Netflix ribbon
  • HashiCorp consul
  • EasyMock, Mockito
  • Jenkins
  • RESTEasy, Jackson, REST-Assured, Swagger
  • MapStruct, Orika

CI/CD

  • GitLab CI/CD
  • Jenkins

Techniken/ Verfahren

  • MVC
  • XML
  • JDBC
  • JSS (Servlet API), JSP, JSTL (Taglib)
  • CDI, EJB 3, JNDI, JMS, JTA, JAAS, JAXB. MDB, JPA, JSF, REST, AMQP
  • Test driven development (TDD), Refactoring, Story-Cards, Scrum, Kanban, extreme programming

Web-Container, EE-Server

  • JBoss 6/7
  • Wildfly 8
  • Apache Tomcat
  • Jetty
  • IBM WAS 5

Web Server

  • Apache


Technologien

  • Unix-, Linux-, Windows-Netzwerke
  • Firewall (ipchains, Port-Forwarder)
  • Container (Docker, Docker Compose)
  • Kubernetes
  • Virtualisierung (VMware, XEN, kvm)

Standard-Software

  • MS-Office
  • OpenOffice

Betriebssysteme

Unix, Linux
Debiam Ubuntu
  • Sun Solaris, AIX
  • Windows
  • macOS

Programmiersprachen

Java 15

und Frameworks

  • Spring, Spring Boot
  • Sun Certified Programmer for the Java 2 Platform 1.4

Datenbanken

H2
Hibernate 5
Oracle DB
PostgreSQL
  • Oracle 9, 10, 12, 18
  • IBM DB2 9
  • PostgreSQL 11
  • H2
  • Hibernate 5, JPA 2
  • JPA 2 Criteria API. Querydsl
  • mySQL
  • MyBatis (Grundkenntnisse)
  • HQL, JPQL, SQL

Datenkommunikation

Message Queuing
JMS, IBM MQ, SQS, AMQP, Kafka
Router
SW-Router/Gateway/Firewall unter Linux (RedHat 6.2, SuSE 7.3, Ubuntu 10.04)

Hardware

Hardware entwickelt
Transputer-Karte für PC (Inmos T4xx, T8xx) mit 256kB DRAM, 8031 basierende Steuerung für LCD
Messgeräte
Mikrocontroller
PC
Sensoren

Branchen

Branchen

Werbung

Telekommunikation

Marktforschung

Steuern

Handel
Versicherung

Energiedienstleistung

Einsatzorte

Einsatzorte

Berlin (+10km)
Deutschland

Derzeit bevorzuge ich Projekte im Raum Berlin oder full remote.

möglich

Projekte

Projekte

9 Monate
2021-05 - 2022-01

Vorgangsbearbeitung

Architektur/Implementierung Linux Java 17 Spring Boot ...
Architektur/Implementierung

BeschreibungDas Verwaltungsportal des Bundes soll für Bürgerinnen und Bürger sowie Unternehmen einen zentralen und komfortablen Zugang zu allen Verwaltungsleistungen des Bundes ermöglichen. Über die Anbindung an den Portalverbund werden ebenfalls die Leistungen der Länder und Kommunen zugänglich sein. Dabei verfolgt das Projekt eine ganzheitliche Lösung für Bürger/innen, Unternehmen und für Behörden. Die Umsetzung der einzelnen Applikationen erfolgte in einer hexagonalen Service-Architektur. Die Vorgangsbearbeitung dient der Verwaltung und Bearbeitung von durch den Bürger übermittelter Anträge innerhalb der Behörden.

AusführungLinux (Ubuntu) Java 17, Spring, Spring Boot Kubernetes, Docker REST, Jackson Hibernate 5, Oracle DB, H2, domain-driven design, hexagonal architecture Cloud MinIO, MapStruct, Micrometer, Lombok, Feign, Resilience4J, Testcontainers, OpenTracing, AOP, Mockito Junit 5, AssertJ, JSONAssert IDE: IntelliJ 2021 Vorgehensmodell: Scrum Tools: Maven, GitLab VCS: git

IntelliJ Ubuntu
Linux Java 17 Spring Boot Docker Kubernetes REST Hibernate Oracle DBA hexagonal architecture Juni 5 Lombok Feign MapStruct Resilience4J JPA
Bundesdruckerei
Berlin
3 Jahre 5 Monate
2018-02 - 2021-06

Rewrite einer Web-Applikation zum Versand von Einwegnachrichten

Idee, Design, Implementierung PC / Windows Ubuntu Linux Spring Boot 2 ...
Idee, Design, Implementierung

Einfache Möglichkeit zum Versand von Einwegnachrichten, die beim Lesen automatisch gelöscht werden. Möglichkeit für Attachment als Bild. Bei Erstellung der Nachricht wird ein Link generiert, der dem Empfänger mitzuteilen ist. Ruft der Empfänger den Link auf, so wird die Nachricht auf dem Server gelöscht, wodurch sie nur einmalig gelesen werden kann Microservice Architektur: message store, authorization/ authentication, frontend

Features

  • Versand von Tect und Bildern. Benachrichtigung des Versenders beim Lesen der Nachricht.
  • Unterstützung mehrerer Sprachen.
  • Unterstützung von X-Forwarded-* headern zum Betrieb hinter einem reverse proxy zur SSL-Temrinierung.
  • Blockieren der Anzeige beim Versand des Links mittels Facebook Messenger, damit hiermit die Nachricht nicht zerstört wird.
  • Benutzerverwaltung; registrierte Benutzer können zusätzliche Features nutzen.
  • Benutzerregistrierung, recaptcha Integration.
  • Versand von multipart MimeMessage (plain text, html) eMails zur Aktivierung des Accounts nach Aktivierung und Lesebestätigungen.
  • Hierzu wird der bereits vorhandene eMail Server als relay benutzt. Feature switches mit unterschiedlichen Aktivierungsstrategien (Benutzergruppe, Spring-Boot Profil, Administratorfunktion).
  • Integration in Thymeleaf durch custom dialect. Serverseitige Integration durch Annotation mittels AspectJ.
  • Administratorfunktionen: Übersicht der Nachrichten, aktuelle User sessions
  • Verwaltung von Registrierungen, Verwaltung von Feature switches für aktuelle User sessions (auch anonyme).
  • Connection pooling für message store und auth-service.
  • Distributed tracing.

Betrieb

  • Metriken mittels Prometheus, Grafana
  • Logging mittels Filebeat, Elastic Search, Kibana
  • Docker compose zur Orchestrierung aller Container (PostgreSQL, message-store, auth-service, frontend, Filebeat, Elastic Search, Grafana, Kibana, Prometheus).
PC / Windows Ubuntu Linux Spring Boot 2 Spring Security Spring JPA Spring Cloud Sleuth Spring Actuator JPA2 Hibernate 5 HikariCP Flyway 5 PostgreSQL 10 Jackson MapStruct 2 Logback Micrometer AssertJ Mockito Thymeleaf 2 custom dialect Bootstrap jQuery DevOp: GitLab; GitLab CI/CD Java 11 IntelliJ
Social Web
8 Monate
2020-10 - 2021-05

Dokumentenservice

Architektur/Implementierung Linux Java 14 Spring Boot ...
Architektur/Implementierung

Beschreibung

Das Verwaltungsportal des Bundes soll für Bürgerinnen und Bürger sowie Unternehmen einen zentralen und komfortablen Zugang zu allen Verwaltungsleistungen des Bundes ermöglichen. Über die Anbindung an den Portalverbund werden ebenfalls die Leistungen der Länder und Kommunen zugänglich sein. Dabei verfolgt das Projekt eine ganzheitliche Lösung für Bürger/innen, Unternehmen und für Behörden.
Die Umsetzung der einzelnen Applikationen erfolgte in einer hexagonalen Service-Architektur.
In diesem Umfeld ist es notwendig hochgeladene und generierte Dokumente sicher zu verwalten. Für diesen Zweck wurde ein Dokumentenservice entwickelt. Dieser nimmt Dokumente entgegen, ohne diese unmittelbar zum Download anzubieten. Erst wenn diese durch die Verwaltungssoftware als final markiert werden, können Sie mit einem Zugriffsschlüssel für eine begrenzte Zeit vom Nutzer heruntergeladen werden. Temporär hochgeladene Dokumente werden zyklisch aus dem System gelöscht.

Ausführung

Linux (Ubuntu)
Java 14, Spring, Spring Boot
Kubernetes, Docker
REST, Jackson
Hibernate 5, Oracle DB, H2, domain-driven design, hexagonal architecture
Cloud
MinIO, MapStruct, Micrometer, Lombok, Feign, Resilience4J, Testcontainers, OpenTracing, AOP, Mockito
Junit 5, AssertJ, JSONAssert
IDE: IntelliJ 2020
Vorgehensmodell: Scrum
Tools: Maven, GitLab
VCS: git

IntelliJ Ubuntu
Linux Java 14 Spring Boot Docker Kubernetes REST Hibernate Oracle DB H2 domain-driven design hexagonal architecture MinIO MapStruct Micrometer Lombok Feign Resilience4J Testcontainers OpenTracing AOP Junit 5 JSONAssert Git Scrum
Bundesdruckerei
Berlin
9 Monate
2020-02 - 2020-10

Leistungsbeantragung

Architektur/Implementierung Linux Java 14 Spring Boot ...
Architektur/Implementierung

Beschreibung

Das Verwaltungsportal des Bundes soll für Bürgerinnen und Bürger sowie Unternehmen einen zentralen und komfortablen Zugang zu allen Verwaltungsleistungen des Bundes ermöglichen. Über die Anbindung an den Portalverbund werden ebenfalls die Leistungen der Länder und Kommunen zugänglich sein. Dabei verfolgt das Projekt eine ganzheitliche Lösung für Bürger/innen, Unternehmen und für Behörden.
Die Umsetzung der einzelnen Applikationen erfolgte in einer hexagonalen Service-Architektur.
Die Leistungsbeantragung dient der Bereitstellung von Formularen für den Bürger, um eine Leistung zu beantragen. Für die Behörde wird eine Verwaltung dieser Anträge bereitgestellt, um die Vorgänge zu bearbeiten.

Ausführung

Linux (Ubuntu)
Java 14, Spring, Spring Boot
Kubernetes, Docker
REST, Jackson
Hibernate 5, Oracle DB, H2, domain-driven design, hexagonal architecture
Cloud
MinIO, MapStruct, Micrometer, Lombok, Feign, Resilience4J, Testcontainers, OpenTracing, AOP, Mockito
Junit 5, AssertJ, JSONAssert
IDE: IntelliJ 2020
Vorgehensmodell: Scrum
Tools: Maven, GitLab
VCS: git

IntelliJ Ubuntu
Linux Java 14 Spring Boot Docker Kubernetes REST Hibernate Oracle DB H2 domain-driven design hexagonal architecture MinIO MapStruct Micrometer Lombok Feign Resilience4J Testcontainers OpenTracing AOP AOP Junit 5 Junit JSONAssert Scrum
Bundesdruckerei
Berlin
7 Monate
2019-06 - 2019-12

Optimierung des Persistenzlayers durch multi-tenancy

Architektur/Implementierung Java 11 Spring Boot AWS ...
Architektur/Implementierung

Beschreibung

Eine existierende Plattform zum Versand von Nachrichten wird durch eine Nachrichtenagnostische Komponente aus einigen Microservices (Abonnement Dienste) mit Anwendungsfall spezifischen Ereignissen zur Generierung von Nachrichten versorgt.
Der Abonnementspeicherdienst ist für die Persistenz von unbekannten Events (im Json-Format) zuständig. Die Events werden durch die Definition eines Anwendungsfalls (Thema) im Themenverwaltungsdienst definiert und von Kafka gelesen und samt ihrer eindeutigen Themenkennung in einer PostgreSQL gespeichert. Der Abonnementverarbeitungsdienst verarbeitet zeitgesteuert die verschiedenen Themen durch Anfragen an den Abonnementspeicherdienst. Dabei reichert er die Daten mittels Anfragen an weitere Dienste an und leitet sie an die zentrale Nachrichtenplattform zum Versand weiter.
Durch die Zunahme der Anwendungsfälle ist ein erheblicher Zuwachs des Datenvolumens (etwa 250 Mio. Zeilen) zu verzeichnen wodurch die Ausführung der DB-Abfragen zunehmend langsamer wird. Nachdem alle Zugriffsoptimierungen ausgeschöpft waren, entschlossen wir uns die Daten aufzuteilen und eine multi tenancy Architektur in der Persistenzschicht einzuführen. Als tenant dient hierbei ein Thema. Da die Anzahl der Themen zunehmend wächst ist die dedizierte Zuordnung einer DB-Instanz je Thema nicht möglich. Daher wird je Thema ein eigenes DB-Schema benutzt um die Indizes für die Abfragen klein zu halten.
Die Hauptanforderung an die multi tenancy Komponente ist eine möglichst einfache Integration in den bestehenden Abonnementspeicherdienst. Dabei griff ich auf die Unterstützung von Hibernate zurück die mittels AspectJ an Annotations zur Selektion des Tenants gebunden habe. Dabei integriert sich alles weitgehend automatisch in Spring Boot.
Nach der Datenmigration zeigten erste Vergleiche der Ausführungsgeschwindigkeiten der Abfragen hierbei eine Steigerung von mindestens Faktor 10.

Ausführung

Linux (Ubuntu)
Java 8/11, Spring, Spring Boot
Amazon AWS, EC2
Docker
REST, Jackson
Hibernate 5, PostgreSQL, H2, redis, RabbitMQ (AMQP), Kafka (Nakadi)
event driven architecture, domain-driven design, hexagonal architecture
Cloud
Mockito
Junit 4/5, Hamcrest, AssertJ
IDE: IntelliJ 2018
Vorgehensmodell: Scrum
Tools: Maven, GitHub Enterprise
VCS: git

IntelliJ Ubuntu Git
Java 11 Spring Boot AWS Docker REST Hibernate PostgreSQL H2 Redis RabbitMQ AMQP Kafka JUnit Hamcrast AssertJ Scrum event driven architecture domain-driven design hexagonal architecture
Zalando
Berlingen, Eifel
3 Monate
2019-03 - 2019-05

Werbekampagnen Verwaltung

Architektur/Implementierung Java 11 Spring Boot AWS ...
Architektur/Implementierung

Beschreibung

Architektur und Implementierung eines Microservices zur Verwaltung von Werbekampagnen. Der Microservice ist für die Stammdaten der Kampagnen zuständig und steuert die Generierung des relevanten Kundensegments durch einen weitere Microservice. Dabei verfügt er über eine Zustandsmaschine, die die Status der einzelnen Kampagnen steuert. Die Status werden auch vom Segmentierungsservice mittels Nachrichten aktualisiert. Der Segmentierungsservice sendet hierzu bei Beginn der Aussendung der Messages relevanter Kunden an die verarbeitende Plattform und bei Beendigung der Aussendung jeweils einen Statusupdate an die Kampagnenverwaltung zur Aktualisierung des Status.
Die Microservices basieren auf Spring Boot. Die Kommunikation erfolgt über REST, AMQP sowie Kafka (gekapselt durch Nakadi).

Ausführung

Linux (Ubuntu)
Java 8/11, Spring, Spring Boot
Amazon AWS, EC2
Docker
REST, Jackson
Hibernate 5, PostgreSQL, H2, redis, RabbitMQ (AMQP), Kafka (Nakadi)
event driven architecture, domain-driven design, hexagonal architecture
Cloud
Mockito
Junit, Hamcrest, AssertJ
IDE: IntelliJ 2019
Vorgehensmodell: Scrum
Tools: Maven, GitHub Enterprise
VCS: git

IntelliJ Ubuntu
Java 11 Spring Boot AWS Docker REST Hibernate PostgreSQL H2 Redis AMQP Kafka Mockito JUnit AssertJ Hamcrast Maven Git Scrum Linux event driven architecture domain-driven design hexagonal architecture
Zalando
Berlin
2 Monate
2019-01 - 2019-02

Backendservice zur Ermittlung verschiedener Mitarbeiter bezogener Daten

Architektur, Implementierung Linux Java 11 Spring ...
Architektur, Implementierung

Neuentwicklung eines Spring Boot basierenden Microservices zur Ermittlung Mitarbeiter bezogener Daten aus verschiedenen Backendsystemen. Die Daten werden an verschiedenen REST Endpunkten bereitgestellt. Da die Backend-systeme einen zu den REST Endpunkten abweichenden Business-Key benutzen, wird ein CSV-Dump aus einem Legacy-System bereitgestellt. Dieser wird zyklisch mittels Quartz eingelesen und als Mapping in einer PostgreSQL bereitgehalten. Die Mitarbeiterinformationen werden dann aus einer Oracle DB oder per SOAP/REST von anderen Backendsystemen ermittelt.

Linux Java 11 Spring Spring Boot Kubernetes Docker Docker compose Quartz REST Jackson Hibernate 5 PostgreSQL Oracle DB H2 Cloud Mockito Junit AssertJ IDE: IntelliJ 2018 Vorgehensmodell: Kanban Tools: Maven Jira Bitbucket VCS: git
Autowerkstatt
2 Monate
2018-12 - 2019-01

Backendservice zum Versand von Formulardaten per eMail

Architektur, Implementierung Linux Java 11 Spring ...
Architektur, Implementierung

Neuentwicklung eines Spring Boot basierenden Microservices zum Versand von Formulardaten per eMail. Die Daten werden an einen REST Endpunkt angenommen und basierend auf diversen Regeln in unterschiedlichen Formaten an diverse Empfänger versendet. Als Template Engine wurde thymeleaf benutzt.

Linux Java 11 Spring Spring Boot Kubernetes Docker Docker compose REST Jackson Cloud Mockito Junit AssertJ IDE: IntelliJ 2018 Vorgehensmodell: Kanban Tools: Maven Jira Bitbucket VCS: git
Autowerkstatt
3 Monate
2018-10 - 2018-12

Online Terminvereinbarung

Architektur, Implementierung Linux Java 11 Spring ...
Architektur, Implementierung

Architektur und Implementierung neuer Funktionen eines Online Terminvereinbarungsservice durch Spring Boot basierende Microservices. Die Kommunikation der Microservices basiert auf REST und Kafka. Daten werden in PostgreSQL gespeichert.

Linux Java 11 Spring Spring Boot Kubernetes Docker Docker compose REST Jackson Hibernate 5 PostgreSQL H2 Kafka Cloud Mockito Junit AssertJ IDE: IntelliJ 2018 Vorgehensmodell: Kanban Tools: Maven Jira Bitbucket VCS: git
Autowerkstatt
1 Jahr 6 Monate
2017-04 - 2018-09

Plattform zum Versand von Nachrichten

Architektur, Implementierung Apple / macOS / Linux Java 8 Spring ...
Architektur, Implementierung

Architektur und Implementierung neuer Funktionen einer auf Nachrichten basierenden Kommunikationsplattform auf Basis Spring Boot. Die gesamte Plattform ist auf diverse Microservices verteilt, die mittels REST und AMQP untereinander kommunizieren. Dabei kommt ein Templatesystem zum Einsatz, das den Klienten den Versand der Nachrichten vereinfacht, da nur ein Minimum an Payload benötigt wird. Das Rendering der Nachricht geschieht innerhalb der Plattform für den jeweils relevanten Kommunikationskanal. Hier wird derzeit SMS, Push (iOS und Android), eMail, Facebook Messenger und Brief unterstützt. Alle Nachrichtenkanäle verfügen über eine Vielzahl an Kennzahlen zum Tracken der einzelnen Nachrichten.

Apple / macOS / Linux Java 8 Spring Spring Boot Amazon AWS EC2 Docker REST Jackson Hibernate 5 PostgreSQL H2 redis RabbitMQ (AMQP) Cloud Mockito Junit Hamcrest AssertJ IDE: IntelliJ 2018 Vorgehensmodell: Scrum Tools: Maven GitHub Enterprise VCS: git
Handel
7 Monate
2016-09 - 2017-03

Europas größte Auto- und Motor-Community

Architektur, Implementierung Apple / macOS / Linux Java 8 Spring ...
Architektur, Implementierung

Architektur und Implementierung neuer Funktionen sowie Bugfixing einer Spring basierenden Community Plattform. Architektur und Implementierung einer Sitelist zur Anbindung von Suchmaschinen wie Google auf Basis Spring Boot, welche in der hauseigenen Cloud läuft. Die hier benötigten Scheduling-Aufgaben wurden mit Spring implementiert. Zur Synchronisation der Instanzen wurde redis gewählt. Als client seitiger Loadbalancer diente ribbon. Servicediscovery wurde mittels consul realisiert. Logging erfolgte mittels ELK (Elasticsearch, Logstash, Kibana)

Apple / macOS / Linux Java 8 Spring Spring Boot Stripes JSP JSTL REST Jackson mySQL MyBatis redis Elasticsearch Logstash Kibana ribbon consul Cloud Mockito REST-Assured JUnit Hamcrest IDE: IntelliJ 2017 Vorgehensmodell: Scrum Tools: JIRA; Team City; Confluence; Maven VCS: git
Community
1 Jahr 2 Monate
2015-08 - 2016-09

Internetanwendung zur Verwaltung für Marketingkampagnen

Architektur, Implementierung Spring Boot Java 8 REST ...
Architektur, Implementierung

Architektur und Implementierung einer neuen Anwendung von Grund auf. Umsetzung als Microservice-Architektur auf Basis Spring Boot in einem Docker Container im AWS-Umfeld. Anbindung von Google Double Click und Metrigo für „onsite“ Werbung und „sponsored products“. Scheduling-Aufgaben wurden mittels Quartz gesteuert. Für die Übermittlung von Nachrichten wurde Amazons SQS benutzt.

IntelliJ Trello Atlassian Confluence Jackson REST-Assured JUnit Hamcrest Swagger git Hibernate PostgreSQL H2 Database Engine Mockito Google Double Click Metrigo Atlassian JIRA SQS Amazon EC2 AWS Cloud Computing JPA
Spring Boot Java 8 REST Kanban JPA
Werbung
4 Monate
2015-05 - 2015-08

Stammdatenverwaltung für Abrechnungssystem

Analyse, Design, Implementierung JEE 6 Java 7 REST ...
Analyse, Design, Implementierung

Implementierung zentraler Dienste der Stammdatenverwaltung. Hierzu gehören Liegenschaften, Gebäude, Messstellen, Messinstrumente usw.

Wildfly Scrum Atlassian JIRA Atlassian Confluence IntelliJ
JEE 6 Java 7 REST Soap JMS Hibernate MySQL Orika AngularJS jQuery Grunt Bower
Energiedienstleistung
6 Jahre 8 Monate
2008-08 - 2015-03

Interne Applikation zur Vertragsverwaltung und Kundenbetreuung

Analyse, Design, Implementierung Scrum JavaScript HTML ...
Analyse, Design, Implementierung

Implementierung administrativer Funktionen in ein bestehendes webbasierendes Vertragsverwaltungssystem

Modul Migration
Zur Übernahme von Vertragsbeständen aus einer fremden Bestandsverwaltung musste ein Konzept zur Migration dieser Datenstrukturen in das bestehende Bestandsverwaltungssystem erstellt werden. Dabei soll eine BPM-Engine als Rahmen dienen. Bei der Erstellung der Infrastruktur wurde hier auf RESTful Services mittels RESTEasy gesetzt. Das Modul gliedert sich in zwei Teile, wobei eines für die Transformation der Datenstrukturen in die Zielstrukturen zuständig ist und das andere die Zusteuerung ins bestehende System übernimmt.

Modul Angebotserstellung
Ziel war eine möglichst eigenständige Komponente zur Erstellung von Änderungsangeboten an bestehenden Verträgen zu realisieren. Auch sollte die Option einer neuen GUI-Technologie nicht verschlossen werden. Hierfür wurde die Geschäftslogik mittels EJB 3 umgesetzt. Für die Verbindung der Vertragskomponente (EJB 2) zur Angebotskomponente (EJB 3) wurde eine Prozessschicht in EJB 3 gewählt. Diese sorgt transaktionsgesteuert für Konsistenz in beiden Komponenten.

Modul JSF-Prototyp
Zur Abschätzung des Migratiosnaufwandes von Struts zu JSF musste ein Prototyp gebaut werden. Dieser benutzte weitestgehend die vorhandenen Beans.

Modul C/S-Trennung
Die ursprüngliche Anwendung hatte keine Client/Server-Trennung, wodurch eine gute Transaktionsbehandlung kaum möglich war. Da die GUI-Komponente jedoch direkt auf die Entitäten der Persistenzschicht aufbaute, wurde eine Transformation in ein DTO-Objekt zur Übergabe an die Beans gewählt. Serverseitig wurden diese wieder zurück in die Entitäten transformiert, womit die C/S-Trennung für eine sinnvolle Transaktionsbehandlung ermöglicht wurde.

Modul Verbesserungen beim Exception-Handling
Die Umstellung auf EJB3 eröffnete neue Möglichkeiten beim Exception-Handling. Zentrale Beans werfen nun mittels @ApplicationException annotierte Exceptions, die auch eine Wurzel-Klasse mit dem Attribut rollback=true haben. Somit ist die Transaktionsbehandlung besser möglich.

Modul Verbesserungen an der Persistenzschicht
Einheiten behafteter Größen - Geldbeträge sind in der Persistenzschicht einheitlich in Euro zu speichern, wenngleich der Zugriff auf die Klassen auch Centbeträge erlauben muss. Hierfür galt es einen flexiblen embeddable type für Hibernate umzusetzen.


Modul Komponente zur fachlichen Prüfung von Daten
Contextsensitive Daten sind sowohl am Frontend, als auch am Backend auf dieselbe Weise zu prüfen. Hierfür wurde eine Komponente geschaffen, die sich einfach sowohl als JSTL als auch in der zentralen Validierung des Systems benutzen lässt.

Eclipse 4.4 JIRA JBoss 6 Wildfly 8
Scrum JavaScript HTML Java 8 JEE 6 EJB 2 Struts JSF RESTeasy Hibernate 4 MQ DB2 AIX UNIX
Versicherung
3 Monate
2014-10 - 2014-12

Web-Applikation zum Versand von Einwegnachrichten

Idee, Design, Implementierung Java 7 JEE 6 JSF 2.2 ...
Idee, Design, Implementierung

Einfache Möglichkeit zum Versand von Einwegnachrichten, die beim Lesen automatisch gelöscht werden. Möglichkeit für Attachment als Bild.

Eclipse 4.3 Wildfly 8
Java 7 JEE 6 JSF 2.2 Hibernate 4 MySQL JavaScript HTML CSS Scrum
Social Web
3 Monate
2008-08 - 2008-10

Machbarkeitsstudie - Community/ Marketplace

Projektleitung, Architektur, Implementierung PC / Windows Linux JavaScript ...
Projektleitung, Architektur, Implementierung

Machbarkeitsstudie für Social Community/Marketplace Plattform auf Basis von JBoss Seam.

PC / Windows Linux JavaScript HTML Eclipse 3.4 JBoss Seam 2.1.1 JBoss 5.0.1 Java 6 JEE 5 Servlet JSF EJB 3 MySQL 5.1 Hibernate 3.3 Richfaces 3.3 Ant 1.7 extreme Programming
Social Community/Marketplace
7 Monate
2008-01 - 2008-07

Belegwesen

Analyse, Design, Implementierung PC / Windows UNIX / Sun Solaris JavaScript ...
Analyse, Design, Implementierung

Implementierung administrativer Funktionen in ein bestehendes webbasierendes Belegverwaltungssystem

PC / Windows UNIX / Sun Solaris JavaScript HTML IBM WAS 5 IBM RAD 6 Java 1.4 J2EE 1.3 Servlet JSP Taglib MQ IBM DB2
Steuern
6 Monate
2007-07 - 2007-12

Bestell- und Informationssystem

Analyse, Implementierung PC / Windows JavaScript HTML ...
Analyse, Implementierung

Implementierung der Funktion Bankeinzug in ein bestehendes webbasierendes Bestell- und Informationssystem, welches in den Warenhäusern eingesetzt wird. Anbindung diverser Backendsysteme zur Speicherung der Bank- und Personendaten.

PC / Windows JavaScript HTML IBM WAS 5 IBM RAD 6 MQ Webservices Servlet JSP Taglib Struts Java 1.4 J2EE 1.3 Oracle RDBMS
Handel
3 Monate
2007-04 - 2007-06

Auswertungen für Mandanten

Analyse, Design, Refactoring, Implementierung PC / Windows UNIX / Sun Solaris JavaScript ...
Analyse, Design, Refactoring, Implementierung

Komplettes Refactoring einer Legacy-Applikation. Das Projekt ist über Jahre hinweg gewachsen. Es wurde auch einem unsanften Wechsel der Programmiersprache unterzogen und von der Architektur mehrfach umgestellt. Die Spuren dieser Umstellungen und daraus resultierende Architekturvielfalt wurde bereinigt und auf eine komplett neue, verschlankte, leistungsfähige Architektur gestellt.

PC / Windows UNIX / Sun Solaris JavaScript HTML IBM WAS 5 IBM RAD 6 Java 1.4 J2EE 1.3 Servlet JSP Taglib Struts
Steuerberatung
1 Jahr 3 Monate
2006-01 - 2007-03

Web-Portal

Architektur, Analyse, Design, Implementierung PC / Windows UNIX / Sun Solaris Oracle RDBMS 9i ...
Architektur, Analyse, Design, Implementierung

Erweiterungen am Formularhandling, der Suche und des Mitglieder-Suchservices.

PC / Windows UNIX / Sun Solaris Oracle RDBMS 9i PL/SQL JavaScript HTML CSS Access Word (VBA) IBM WAS 5 IBM WSAD 5.1 RAD 6 Java 2 J2EE 1.3 Servlet JSP Taglib XML XSLT Struts
Steuerberatung

Aus- und Weiterbildung

Aus- und Weiterbildung

1 Monat
2004-05 - 2004-05

Sun Certified Programmer for the Java 2 Platform 1.4

Sun Certified Programmer for the Java 2 Platform 1.4, Nürnberg
Sun Certified Programmer for the Java 2 Platform 1.4
Nürnberg

Kompetenzen

Kompetenzen

Top-Skills

Java Spring-Boot Cloud AMQP JPA hexagonale Service Architektur event driven micro service

Produkte / Standards / Erfahrungen / Methoden

AMQP
AOP
AWS
Cloud
Docker
Docker compose
domain-driven design
event driven architecture
Feign
Git
hexagonal architecture
Hibernate
IntelliJ
Jira
Kafka
Kubernetes
MapStruct
Maven
Micrometer
MinIO
Mockito
OpenTracing
Quartz
RabbitMQ
Redis
Resilience4J
REST
Scrum
Spring
Spring Boot
Testcontainers

Sonstige Entwicklungswerkzeuge

  • Eclipse
  • TOAD
  • Rational Rose

Projektverwaltung/Tools

  • JIRA
  • Confluence
  • Trello

Versionskontrollsysteme

  • CVS
  • SVN
  • git

Build tools

  • Ant
  • Maven

Cloud

  • Amazon AWS (SQS, EC2)

Komponenten/ Frameworks

  • Log4J, SLF4J, Logstash
  • Struts
  • Thymeleaf
  • Stripes
  • Tiles
  • JUnit, AssertJ, Hamcrest
  • RabbitMQ
  • Kafka
  • Quartz
  • Redis
  • Elasticsearch
  • Netflix ribbon
  • HashiCorp consul
  • EasyMock, Mockito
  • Jenkins
  • RESTEasy, Jackson, REST-Assured, Swagger
  • MapStruct, Orika

CI/CD

  • GitLab CI/CD
  • Jenkins

Techniken/ Verfahren

  • MVC
  • XML
  • JDBC
  • JSS (Servlet API), JSP, JSTL (Taglib)
  • CDI, EJB 3, JNDI, JMS, JTA, JAAS, JAXB. MDB, JPA, JSF, REST, AMQP
  • Test driven development (TDD), Refactoring, Story-Cards, Scrum, Kanban, extreme programming

Web-Container, EE-Server

  • JBoss 6/7
  • Wildfly 8
  • Apache Tomcat
  • Jetty
  • IBM WAS 5

Web Server

  • Apache


Technologien

  • Unix-, Linux-, Windows-Netzwerke
  • Firewall (ipchains, Port-Forwarder)
  • Container (Docker, Docker Compose)
  • Kubernetes
  • Virtualisierung (VMware, XEN, kvm)

Standard-Software

  • MS-Office
  • OpenOffice

Betriebssysteme

Unix, Linux
Debiam Ubuntu
  • Sun Solaris, AIX
  • Windows
  • macOS

Programmiersprachen

Java 15

und Frameworks

  • Spring, Spring Boot
  • Sun Certified Programmer for the Java 2 Platform 1.4

Datenbanken

H2
Hibernate 5
Oracle DB
PostgreSQL
  • Oracle 9, 10, 12, 18
  • IBM DB2 9
  • PostgreSQL 11
  • H2
  • Hibernate 5, JPA 2
  • JPA 2 Criteria API. Querydsl
  • mySQL
  • MyBatis (Grundkenntnisse)
  • HQL, JPQL, SQL

Datenkommunikation

Message Queuing
JMS, IBM MQ, SQS, AMQP, Kafka
Router
SW-Router/Gateway/Firewall unter Linux (RedHat 6.2, SuSE 7.3, Ubuntu 10.04)

Hardware

Hardware entwickelt
Transputer-Karte für PC (Inmos T4xx, T8xx) mit 256kB DRAM, 8031 basierende Steuerung für LCD
Messgeräte
Mikrocontroller
PC
Sensoren

Branchen

Branchen

Werbung

Telekommunikation

Marktforschung

Steuern

Handel
Versicherung

Energiedienstleistung

Vertrauen Sie auf GULP

Im Bereich Freelancing
Im Bereich Arbeitnehmerüberlassung / Personalvermittlung

Fragen?

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

Das GULP Freelancer-Portal

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