Greenfield-Projekt zur Entlastung der Kundenbetreuung. Digitalisierung und Automatisierung von manuellen Prozessen sowie Erstellung von Self-Services für B2C-Kunden.
Painpoint-Analyse der Prozesse Rückholung, Kaufpreisanfrage und Vertragsumstufung
Identifizierung der Bedarfsträger und Stakeholder im Umfeld der Kundenprozesse
Aktive Informationssammlung bei den Stakeholdern und Fachabteilungen
Aufbereitung und Vorstellung der Kundenprozesse nach Domain Story Telling
Entwicklung der REST-API für Customer-Services mit Spring Boot und Kotlin
Aufbau des öffentlichen Customer-Frontends mit React und Typescript
Entwicklung einer Client-Bibliothek für den Zugriff auf Inhouse- und Fremdsysteme auf Basis des reaktiven Spring WebClients (RestTemplate deprecated).
Adaption der Client-Bibliothek an den internen Authentifizierungs-Mechanismus (automatischer Token-Refresh bei HTTP 401 und Retry-Logik)
AWS Kubernetes Management via lokalem SSH-Tunneling (Linux-Bastion-Host)
Einrichtung der Azure Deployment Pipeline
Implementierung des Azure Security Konzepts (Subscription-Key)
Kafka-Anbindung mit Spring
Aktive Wissensvermittlung an interne und externe Kollegen im Rahmen eines Regeltermins
Durchführung eines Workshops zu NATS/JetStream (message-oriented middleware) als schlanke Alternative zu Kafka
Containerisierung mit Docker und Kubernetes (Kustomize)
Architekt, Entwickler, Analyst
Kotlin, Java, Groovy, Spring Boot, Spring WebFlux (Client), Spock Framework (BDD), Docker, Apache Kafka, NATS/JetStream, React, Typescript, git, AWS Cloud, IntelliJ IDEA, Gradle, REST (Level 3), OAuth, Event-driven Architecture, Domain-Driven-Design, Domain Story-Telling, Scrum
Agil, werthaltig und zukunftstfähig: Weiterentwicklung, Modularisierung und technische Modernisierung des persönlichen Kundenportals My AXA im agilen Vorgehensmodell nach Scrum.
Digitale Transformation: Anbindung neuer REST APIs zur Erweiterung der digitalen Produkt- und Service-Palette in Abstimmung mit internen und externen Partnern
Modularität eines Monolithen: Aufteilung einer komplexen, monolithischen Anwendung entlang klar abgegrenzter, fachlicher und technischer Verantwortlichkeiten
Clean Code: Kontinuierliche Überarbeitung komplexer Code-Bestandteile hinsichtlich Lesbar- und Wartbarkeit sowie Testabdeckung (Pfadfinderprinzip)
Agile Learning: Aktive und kontinuierliche Vorstellung neuester Entwicklungen und innovativer Technologien/Konzepte im wöchentlichen, team-übergreifenden "Know How Transfer"
Vortragskoordination: Empfehlung und Vorstellung eines externen Speakers für Domain Driven Design und Modularisierung
Consumer-driven: Beratung und Unterstützung anderer Teams beim Design von Schnittstellen zur Anbindung und Erweiterung der Funktionalität in My AXA
Integration Testing: Einführung von WireMock zur Simulation von Backend API Calls in automatisierten und manuellen Entwicklertests
Standardisierung: Ablösung von manuellen Lösungen im Bereich Caching und Resilienz durch Einführung von Industriestandards wie Spring Cache (@Cacheable) und Resilience4J (@CircuitBreaker, @Bulkhead, @TimeLimiter etc.)
Datenvalidierung: Aufspüren und Bereinigen von Fehlern in der bestehenden Request-Validierung nach JSR-170 Java Bean Validation in Abstimmung mit den angebundenen Clients und Entwicklung eines Simulationsverfahrens ("Silent Bean Validation")
Code-Generierung: Weiterentwicklung und Bereinigung des Code-Generators zur Transformation von OpenAPI-Contracs in Client-Bibliotheken
Deep Dive: Analyse des von Lombok generierten Outputs auf Bytecode-Ebene und Bereinigung von Fehlern
Observability: Entwicklung von Dashboards, Logfile-Analysen mittels Loki und Grafana Cloud
Operations: Tägliche Überwachung und Reporting der Produktions- und QA-Systeme
Backend Developer, DevOps Engineer
Java 21, Spring Boot 3, Spring Integration, Spring Cache, REST, Java Bean Validation, Resilience4J, Mustache, Freemarker, Lombok, JAX-WS, Mockito, Docker, OpenAPI, Swagger, WireMock, Loki, Grafana Cloud, Graylog, Jenkins, Tekton, Rundeck, Sonar Qube, Checkstyle, Spotbugs, Nexus, Red Hat OpenShift, GitLab, GitHub, IntelliJ IDEA 2025, Maven, Gradle, Jira, Confluence, Scrum
paydirekt – Anbindung Autorisierungszentrale (BVtoAZ)
Anbindung der zentralen eBanking-Geschäftskomponenten an einen externen Dienstleister zur Autorisierung von Kartenzahlungen. Die Hauptaufgabe besteht in der Neuauflage und Erweiterung einer bestehenden REST-Kommunikation. Hierbei handelt es sich um UTF-8-basierte Eingangsdaten, die zunächst in eine TLV-Struktur (Tag-Length-Value) mit einem EBCDIC-kodierten Value-Bereich aufbereitet werden, um sie anschließend in einer ISO8583-Nachrichtenstruktur (Standard for Financial Transaction Card Originated Messages) an den Autorisierungsdienstleister zu überstellen. Die Übertragung erfolgt via HTTP POST als signierte, Base64-URL-kodierte Nutzdaten in einer JSON-Struktur.
Bundesweite Kartenzahlungen
paydirekt – Enrollment during shopping
Entwicklung einer Web-Applikation (BFE) zur Ad-hoc-Teilnahme am paydirekt-Bezahlverfahren. Als Teil eines komplexen Workflows zwischen Banken, Bank-Verlag und Händlersystemen, übernimmt die Applikation abschnittsweise die Kontrolle über den erfordlichen Registrierungsprozess bei paydirekt und übergibt anschließend zurück an die Client-Applikation, um das dortige Banking- oder Shopping-Erlebnis des Kunden nicht zu beeinträchtigen. Durch einen initialen REST-Call wird von BFE eine Deeplink-URL zurückgegeben, mit der die Applikationen in einem vorinitialisierten Kundenkontext aufgerufen wird. Nach Validierung div. personenbezogener Eingaben und Absicherung durch 2-Faktor-Autorisierung, übergibt BFE die Kontrolle automatisch, per HTTP Redirect inkl. Status-Meldungen zum Ausgang der paydirekt-Registrierung, an den Aufrufer zurück. Als öffentliches User Interface ist BFE zeitgemäß und optisch hochwertig gestaltet, sowie auf verschiedenen mobilen Geräteklassen uneingeschränkt nutzbar.
Ebenfalls Schwerpunkt der Entwicklung ist die Look&Feel-Mandantenfähigkeit, durch die die zentrale Geschäftslogik im CI verschiedener Banken und Händler wiederverwendet sowie durch Feature-Flags (compile-statisch) individuell angepasst werden kann.
Der Aufbau einer Grid-Umgebung für automatisierte Browser-Tests im Rahmen des CI -Builds runden das Aufgabenfeld ab.
Wicket, Bootstrap, HTML5, CSS3, JQuery, RESTful HTTP, Spring Boot, Jersey, Hibernate, H2, DB2, Java 8, Maven, Intellij IDEA, Subversion, Selenium (-Grid), Cucumber, Jenkins
Software-Entwickler (Fullstack), technischer Koordinator
Pressezentrum
Content Information Service
Belieferung von Netzbetreibern mit Metainformationen zu linearen und non-linearen Programmen
Die Mediengruppe besitzt mehrere Anwendungen, über welche Metadaten zu linearen und non-linearen Programminhalten aller Sender gepflegt werden. Mit dem stetigen Ausbau des Video-on-Demand-Bereichs, sind die Anforderungen an interne Systeme, als auch die der externen Netzbetreiber deutlich komplexer und vielfältiger geworden. Der Content Information Service soll die vorhandenen Metadaten aus allen Einzelsystemen sammeln und verdichten, sodass eine Aufbereitung für externe Netzbetreiber einfach und individuell möglich ist. Hierzu ist ein verteiltes und skalierbares System aufzusetzen (green field), das über eine Messaging-Schnittstelle aus verschiedenen Quellen beliefert wird, die Daten normalisiert nach dem Entity-Attribute-Value-Pattern speichert und als REST-Ressourcen in verschiedenen Repräsentationsformen (Accept-Header) nach außen bereitstellt. Durch die domänen-getriebene (DDD) Zerlegung der fachlichen Architektur in verschiedene Bounded Contexts, entsteht eine hoch skalierbare und ausfallsichere Kommunikationslandschaft von mittels HATEOAS (REST) vernetzten Ressourcen in einem Docker-Stack.
Netzbetreiber, Programmanbieter sowie weitere externe Plattformpartner
Mitarbeiter von CBC und der RTL Mediengruppe
Software-Entwickler, Domain-Architekt, DevOps-Engineer
Förderer des agilen Prozesses durch aktives Coaching und QS
Microservices, Domain Driven Design (DDD), REST, HATEOAS, Spring Boot, Spring Data (JPA), Spring Security, Spring Test, Spring EL, Spring Cloud, Netflix OSS, Zuul, Eureka, Ribbon, Hystrix, Docker (Swarm Mode), Apache Kafka, RabbitMQ, Jenkins, Nexus, Microsoft SQLServer, Hibernate, MockMVC, Swing, JavaFX, JSON, JsonPath, XML, Jira, Confluence, Scrum, IntelliJ IDEA, „make .jar, not .war“
Unterstützung eines Querschnitts-Teams im Kontext einer großen Logistikplattform mit den Schwerpunkten:
Automatisierte Löschungen von personenbezogenen Daten nach DSGVO
Analyse und Rückbau von veralteten und störanfälligen Services
Überführung notwendiger Funktionalitäten von zurückgebauten in neu zu erstellende Backend-Services auf Basis von Kotlin und Spring Boot.
Unterstützung bei der Störungsanalyse und -behebung
Weiterentwicklung von Backend-Services im Fachkontext “alternative Namensschreibweisen” und “Digitale Kopie” inkl. technischer Modernisierung auf Basis von Java & Spring Boot.
Entwicklung einer Frontend-Komponente auf Basis von Vue.js.
Software-Entwickler (Fullstack)
Kotlin, Java, Groovy/Spock, Spring Boot, Maven, Vue.js, Gradle, Git (BitBucket), Team City (JetBrains CI-Server), RESTful HTTP, Oracle, IntelliJ IDEA, Scrum
Neukundenansprache via Infopost – Adressvermietung
Die Aufgabe besteht in der Neuauflage einer mehrschichtigen Java-Enterprise-Applikation zur Bereitstellung von Adressdaten für die Neukundengewinnung. Das System soll nicht nur die Bereitstellung von Adressen ermöglichen, sondern den gesamten Prozess von der Kundenselektion bis zur Einlieferung durch den Lettershop im Briefzentrum end-to-end abbilden. Um die Masse an Aufträgen wirtschaftlich abzuwickeln, ist es notwendig, die Bearbeitungszeit im Backoffice auf wenige Minuten zu reduzieren, welches hohe Ansprüche an ein performantes und möglichst beratungsfreies Frontend mit gleichzeitig hohem Bedienkomfort (interaktive Karte mit Gebiets- und radialer Umkreisselektion) stellt. Neben der Interaktion via HTML-Oberfläche bietet das System weitere Schnittstellen zum Down- und Upload von Dokumenten sowie den automatisierten Versand von generierten Word- und PDF-Dokumenten per EMail. Das Runtime-Szenario besteht aus mehreren Java-Prozessen (Tomcats, JBoss), die per JDBC in ein Oracle-RAC persistieren und per REST/JSON mit weiteren Umsystemen zur Erstellung von Karten-Visuals, Office-Dokumenten sowie Engines zur performanten (in-memory) Zählung von Adressdaten und zur Auto-Vervollständigung von Gebietseingaben kommunizieren.
Kunden der Deutschen Post Direkt GmbH
Mitarbeiter im Backoffice und im mobilen Vertrieb der Post Direkt
Partner-Lettershops der DPAG
Software-Entwickler, Domain-Architekt
VAADIN, Spring, REST (RESEasy, Jersey), JSON, XML, JEE, JBoss, JPA/Hibernate, Liquibase, Oracle & H2, Maven, Vagrant, Jenkins, IntelliJ IDEA, Subversion
Migration einer web-basierten Callcenter-Applikation von Bootstrap 2 auf 3 mit ca. 90% markup impact.
Beratung der Fachseite hinsichtlich Implementierung funktionaler Erweiterungen inkl. Kreation neuer Oberflächen sowie Einführung neuer Bedienkonzepte nach aktuellen Ergonomieprinzipien und technischen Standards, zB. In-place-editing, Function Merge, Progressive Disclosure mit anschließender Realisierung.
Umstellung von Page-Flow auf AJAX-Kommunikation sowie REST-konformen Resource-Mappings.
Anbindung von AJAX-basierter Kommunikation an server-seitige Validierung nach JSR-303 Bean Validation.
Steigerung der Performance und User Experience durch Ansätze aus der reaktiven Programmierung.
Einsatz neuer UI-Elemente auf JQuery-Basis sowie Programmierung von Custom Controls / Widgets.
Einführung von Frontend-Templating zur Reduzierung von server-generiertem Web-Content.
Implementierung von Collapsibles zur Minimierung von Kontextwechseln durch herkömmliche Page-Flows.
Einführung von Chart-Komponenten zur Datenvisualisierung.
Unterstützung bei der Implementierung der Service- und Integrations-Layer sowie Optimierung von Datenbank-Abfragen.
Beratung in weiteren Architekturthemen wie Kopplung von Suchmaschinen und Datenbanken, den Vorteilen schemaloser Persistenz insb. in frühen Entwicklungsphasen sowie dem REST-Paradigma.
Mitarbeit in einer 20-köpfigen, Scrum-orientieren Projektorganisation. Begleitung und Unterstützung während der Einführungsphase.
Callcenter
Software-Entwickler (Fullstack)
Twitter Bootstrap, HTML5, CSS3, JQuery, AJAX, JSP/JSTL, Spring Core, Spring Web/MVC, JEE, Hibernate, JPA, JDBC, SQL, Oracle Weblogic / RMI, Server (10.3 bzw. 11 & 12), IntelliJ IDEA, Subversion, Maven, HP Quality Center
ONEXSYS
NOX (Next ONEXSYS)
Neue ONEXSYS-Anwendungsgeneration. Neben einer vollständig modernisierten Entwicklungs- und Betriebsplattform erhält das NOX-System zahlreiche neue kaufmännische Funktionen des internen Legacy-Systems (ERS). Hierdurch werden sämtliche betriebliche Kernprozesse, sowie die Funktionalitäten der Webservices in ein bestandsführendes System konsolidiert. Der Einsatz modernster und flexibler Technologien ist hierbei ein Schlüsselfaktor für eine effiziente Wartbarkeit, Weiterentwicklung und User-Experience. So können beispielsweise neue Funktionen als Service-Bundles im laufenden Betrieb hinzugefügt werden und die neue Persistenz-Schicht mit integrierter Suchmaschine beantwortet Anfragen über mehrere zehntausend Datensätze im Bereich von Millisekunden auf einer Entry-Level Hardware.
Das Design der Anwendung sieht neben der stark schematischen Datenhaltung des betriebswirtschaftlichen Kerns in einer H2-Datenbank, ein weiteres, content-orientiertes Persistenzmodell vor, um dem wachsenden Aufkommen von Verkehrsdaten, Metainformationen und Assets wie Web-Content, Dokumenten und medialen Inhalten zeitgemäß zu begegnen.
Der Architekturstil des Internets (REST), das tief in der Entwicklung verankerte Open/Closed Principle sowie ein konsequent eingesetzter Eventbus, bilden die Basis für eine moderne und anpassungsfähige Applikationsplattform für die Anforderungen von morgen.
Abwicklungsplattform für Unternehmensprozesse und Content-System für die angebundene Website.
Initiator, verantwortlicher Entwickler, technischer Berater
ONEXSYS
Struts, Hibernate, JBoss AS, Tomcat, MySQL, Apache httpd, IntelliJ IDEA, ant
NOX
Vaadin, JQuery, Spring, Hibernate, JPA, Lucene, AspectJ, MS SQL Server, JSR-303 (Bean Validation), POI, Google Eventbus, Sling/Felix/Karaf (OSGi), Mongo (NoSQL), Jackrabbit/JCR (noSQL), H2, Tomcat, Jetty, Apache httpd, Enterprise Architect, IntelliJ IDEA, maven
Fachliche Weiterentwicklung und Modernisierung der führenden Hotel-Auktionsplattform „eRFP“. Erweiterung und Dynamisierung bestehender sowie Entwicklung neuer Views in verschiedenen VAADIN-basierten Frontends. Anbindung an neue, zentrale Service-Komponenten, Einführung eines Event-Bus zur Entkopplung des Unternehmens-Frameworks und Integration spezialisierter JavaScript-Komponenten sowie Durchführung von Refactorings zur Erhöhung der Code-Qualität und Wartbarkeit.
Migration der Frontend-Plattform von VAADIN 6 auf VAADIN 7.
Frontends für die Anwenderkreise „Hotel“ und „Hotelkette“ (Login als Hotel und -Kette) sowie „HRS Sourcing Agents“ (Callcenter/Backoffice)
Software-Entwickler (Fullstack)
VAADIN 6 & 7, GWT, JSF, MBassador, Spring, JPA, Hibernate, MySQL, MariaDB, Flyway, maven, IntelliJ IDEA, Subversion, Apache Tomcat 7, Scrum
Internes Trainingsprojekt “pathfinder”
Vermittlung von praxis- und marktrelevanten Skills für neue Mitarbeiter, rund um die objekt- und komponenten-orientierte Software-Entwicklung auf dem Java-Enterprise-Stack. Getreu dem Motto: “make .jar, not .war” wurde der Aufbau einer ausführbaren (self-contained) Spring-Boot-Datenapplikation inkl. JPA-Persistenz, REST-Schnittstelle und responsivem Frontend exerziert.
Nach Abschluss einer detaillierten, fachlichen Analyse, folgte in ersten Praxisschritten die Modellierung der Anwendungsdomäne als JPA-Entitäten zur späteren Persistierung in die populäre Entwickerdatenbank H2, auf die über die leistungsstarken Spring-Data-Repositories zugegriffen wurde. Darauf aufbauend erfolgte der Entwurf und die Implementierung der REST-Schnittstelle als Spring-Controller. Mit besonderem Augenmerk darauf, dass REST nicht nur als kohäsive Informationsstruktur mit Endpoints, die auf konkrete Entitäten abgebildet sind zu verstehen ist, sondern auch virtuelle bzw. Pseudo-Ressourcen ebenfalls als probates Mittel zum Ausdruck einer hohen Schnittstellensemantik dienen. Der richtige Einsatz von HTTP Status-Codes, Request- und Response-Parametrisierung, sowie des Zustandsparadigmas HATEOAS, welches REST neben einer Server- auch explizit zu einer Client-Angelegenheit macht, runden den Service-Part ab.
Modernste Frontend-Technolgien mit Apache Wicket, Bootstrap und HTML5 verleihen der soliden Basisapplikation eine hochwertige Präsentation, die mittels responsive design die gängigsten Endgeräteklassen aus einer einzigen Codebase anspricht.
Sämtliche Abschnitte des Projekts, von der Analyse über Entwurfsdiskussionen bis zum Issue-Tracking und der Codeverwaltung git wurden in der agilen Hosting-Plattform bitbucket festgehalten.
Es wurde in weniger als 30 Tagen eine lauffähige Applikation, ein agiles Configurationmanagement, sowie ein erfolgreiches Team gebildet!
Mitarbeiter der Haeger Consulting
Coach für Software-Entwicklung
Wicket, Bootstrap, HTML5, CSS3, JQuery, RESTful HTTP, Spring Boot, Spring Data, JPA/Hibernate, H2, IntelliJ IDEA, Maven, bitbucket (Wiki, Issue-Tracking, git)
Entwicklung einer Prototyp-Applikation zur Anzeige von Fahrzeugbeständen mit Optimierung für die Zielplattform iPad. Die Applikation zeigt eine Liste von Fahrzeugelementen, welche sich mittels Responsive Design an die Gegebenheiten der Anzeige anpasst. So werden auf mobilen Geräteklassen die Fahrzeugelemente stärker fokussiert, wogegen auf größeren Desktops automatisch zusätzliche Bedienelemente eingeblendet werden.
Der Aufbau der Seite erfolgt in verschiedenen Phasen, um Blockiereffekte zu vermeiden und eine gute User Experience zu gewährleisten. Hierzu werden die Fahrzeugdaten klassifiziert und in verschiedene Ebenen verlagert (Progressive Disclosure), die nach dem initialen Rendering per JQuery-AJAX-Calls im Hintergrund automatisch befüllt werden. Busy-Indikatoren symbolisieren hierbei die Hintergrundaktivität.
Die Appliaktion demonstriert verschiedene Szenarien, die die vielseitigen Einsatzmöglichkeiten von Wicket hervorheben. Das Deployment-Szenario der Applikation kennzeichnet sich dadurch aus, dass die Applikation zentral gehostet wird, die Nutzdaten aber aus lokalen Datenquellen (LAN) in Form von RESTful Webservices bezieht. In diesem Zusammenhang zeigte der Prototyp verschiedene Einsatzmöglichkeiten von Wicket als Render-Engine, Resource-Manager, zur Geneneriung und Ausführung von JavaScript-Code, bis hin zum Einsatz als statefull/stateless JSON- und Markup-Response-Provider.
Eine Lösung für die durch dieses Szenario bedingte CORS-Problematik (Cross-Origin Resource Sharing), die standardmäßig die Kommunikation eines Web-Clients mit einer anderen Web-Resource als seiner Quelle unterbindet, wurde durch den Einsatz von Preflight-Requests und den notwendigen HTTP-Response-Headern veranschaulicht.
Für den Aufbau eines Styleguides als Standard für weitere interne Entwicklungen erscheint der Prototyp in einer hochwertigen und zeitgemäßen Optik, die sich durch ausgewählte Bootstrap-Elemente, Chart-Komponenten, CSS-Transitionen, Auto-Paging (aka Infinite Scrolling), Slideshows, Type-Aheads, Slide-In-Menüs, Hover-Effekte etc. und allgemein hohen Bedienkomfort auszeichnet.
Die durch die Prototyp-Applikation demonstrierten, vielfältigen technischen und visuellen Möglichkeiten haben eine anstehende Entscheidung zugunsten Wicket gegenüber einer alternativen Lösung auf GWT-Basis maßgeblich beeinflusst.
Java Web-Entwicklung Mazda Europe
Software-Entwickler (Fullstack)
Wicket, JQuery, Bootstrap, HTML5, CSS3, Spring Boot, RESTful HTTP, Maven 3, Intellij IDEA, Subversion
Single Source Publishing
Design und Implementierung eines Content-Informationssystems zur Bereitstellung wiederverwendbarer und internationalisierter Inhaltselemente für die Output-Kanäle Broschüre, Web und WebSpecial. Realisierung nach konzern-strategischem Architekturstil mittels SOA und REST. Konzeption und Realisierung von Online-Schnittstellen zur Integration in die Konzerninfrastruktur. Entwurf des Content-Repositories zur Verwaltung der Elemente nach ISO 639 Internationalisierung und strukturtreues Mapping der REST-Schnittstelle.
Entwicklung eines Web 2.0 Administrations-Frontends.
Applikation im Konzern-Intranet mit Schnittstelle zu externen Dienstleister
Sling/Felix/Karaf (OSGi), Jackrabbit/JCR (NoSQL), Vaadin, JQuery, Google Eventbus, Jetty, SOA, REST, maven, Enterprise Architect, IntelliJ IDEA, Cent OS
TCO Calculator
Re-Engineering und Erweiterung einer bestehenden Web-Applikation zur Wirtschaftlichkeitsberechnung verschiedener Baufahrzeuge gegenüber dem Wettbewerb. Umstellung der textbasierten Input-Controls auf interaktive Slider sowie der Implementierung finanzmathematischer Algorithmen.
Internet-Applikation
Felix/Karaf (OSGi), Jetty, Vaadin, JQuery, Google Eventbus, maven, IntelliJ IDEA, Debian OS
Software-Entwickler (Fullstack), technischer Berater, Konzeptautor
Softwarelösung für die effiziente Dokumentation von Pflege- und Behandlungsleistungen und digitales Medikationsmanagement.
Optimierung der bestehenden Codebase hinsichtlich Wartbarkeit, Testabdeckung und Modularisierung
Aufbau eines Docker-Stacks zur Unterstützung der lokalen Entwicklung gegen die Datenbanken MS SQL Server, SAP MaxDB und MariaDB
Migration der monolithischen Codebase von Java 8 auf Java 17
Identifikation von Modulgrenzen im Bereich Katalog-Import/-Export und Überführung in ein Modellprojekt (Prototyp) auf Basis von Spring Boot, REST (Level 3), Hibernate, Liquibase und Java 17
Entwicklung und testgetriebene Dokumentation der REST API für für den Katalog-Import/-Export mit Spring REST Docs
Tiefgreifendes Customizing der Exporter-Serialisierung nach JSON und XML
Bereitstellung von HTTP-Anwendungsbeispielen mittels .http files sowie umfassenden Groovy-Scripts
Coaching des Entwicklungsteams hinsichtlich Spring, REST, Docker und Teststrategien
Durchführung von Tech-Talks zu den Themen REST sowie dem Test- und Spezifikations-Framework Spock inkl. Einführung in die JVM-Sprache Groovy
Begleitung der Einführung von Spock, der Umsetzung des BDD-Ansatzes und der Verbesserung von Testpraktiken
Einrichtung der Azure Deployment Pipeline
Implementierung des Azure Security Konzepts (Subscription-Key)
Ansprechpartner für weiterführende Implementierungs-, Design- und Architekturfragen
Aufbau von Docker-Stacks in der bestehenden Landschaft der Linux-Systeme
Analyse und Optimierung von nativen Linux-Skripten mit gleichzeitiger Überführung in einen Docker-Stack zur Steigerung der Portabilität und Nutzungseffizienz (zB. durch Nutzung von remote Container-Funktionalität via Docker-in-Docker) sowie der Möglichkeit zur Anbindung an die CI-Pipeline
Teilnahme am Scrum-Training
Software Developer, Coach
Java 17, Groovy, Spring 5, Spring Boot 3, REST, Spring WebFlux (Client), Spring Data, Spock Framework (BDD), Hibernate 5, Liquibase, MS SQL, SAP MaxDB, MySQL, Lombok, Docker, Azure Cloud, git, IntelliJ IDEA, Maven, REST (Level 3), Scrum
Verantwortlich für die Abstimmung, Entwicklung und das Deployment des Product Information Services (Microservice).
Prototyping des internen Deployment-Stacks auf Basis von Docker (Swarm Mode) inkl. HTTPS Reverse-Proxy (nginx), Frontend (React) und Datenbank (Postgres).
Aufbau der automatisierten CI-Chain via Jenkins (Declarative Pipeline).
Weiterentwicklung und Migration des Deployment-Stacks in Richtung Google Cloud Platform / GKE (Kubernetes).
Permanentes Tracking des Laufzeitverhaltens (Spring Boot Admin).
Etablierung von Domain Driven Design und PACT (Testing).
Abstimmung mit verschiedenen Stakeholdern aus den Fachbereichen und den angrenzenden Entwicklungen.
Aktive Förderung der Feedback-Kultur.
Agiler Prozess nach Scrum.
Internet-Endkunden
Software-Entwickler, technischer Koordinator
Spring Boot, RESTful HTTP, Docker, Jenkins, Git (BitBucket), Gradle, Java, Groovy, Spock Framework, Letsencrypt, React
PIN/TAN Verwaltung
Migration einer komplexen Struts-Anwendung in das Webframework Wicket mit temporären Hybrid-Betrieb unter Verwendung des Integrations-Frameworks Zoning. Erweiterung der fachlichen Funktionalität anhand Designspezifikation.
Backoffice, Intranet
Core-Entwickler
Struts, Wicket, maven, Tomcat, Oracle Weblogic / RMI, Server, Oracle RAC, SAP, IntelliJ IDEA, Solaris
Uniform Client Platform
Aufbau und Weiterentwicklung eines fachlichen Web-Frameworks und Komponentenbaukastens als strategische Plattform für die Entwicklung neuer Web-Applikationen im Konzern. Klassifizierung und Kreation von generischen und wiederverwendbaren Web-Komponenten. Angefangen von elementaren, richful UI-Controls bis hin zu komplexen und mehrschrittigen Fachdialogen.
alle web-basierten Frontends (z. B.: Online Banking, Callcenter Client, Direktvertrieb Client)
Core-Entwickler
Wicket, JQuery, maven, Tomcat, IntelliJ IDEA, Solaris
3D Secure MTan
Internationales Security-Projekt mit RSA zur Entwicklung eines Webservice-Gateways für den sicheren Zugriff auf Authentifizierungs- und Legitimations-Services in der Postbank Multikanal Architektur. Im Rahmen des internationalen Online-Zahlungsverkehrs können Transaktionen als High-Risk-Level indiziert werden. Diese Transaktionen müssen gegenüber der Host-Bank zusätzlich per MTan legitimiert werden.
Online-Zahlungsverkehrsplattformen (Amazon, Ebay etc.)
Core-Entwickler, Konzeptautor
JAX-WS, SOAP/WSDL, Tomcat, Oracle Weblogic / RMI, Server, SAP, IntelliJ IDEA, Solaris
Internet Client Back Office
Entwicklung einer Web-Application zur Recherche von Ablehnungsgründen bei Kreditvergabe sowie Verwaltung von Mobilfunknummern. Besondere Rahmenbedingungen durch die strikte Terminvorgabe aufgrund gesetzlicher Bestimmungen sowie der hohen Look & Feel-Konvergenz zur meist parallel verwendeten SAP GUI.
Backoffice, Intranet
verantwortlicher Entwickler
Wicket, maven, Tomcat, Oracle Weblogic / RMI, Server, SAP, IntelliJ IDEA, Solaris
Multikanal Vertriebsplattform
Entwicklung von Enterprise-Applikationen und Business-Komponenten im Umfeld der Multikanal-Architektur der Postbank-Vertriebsplattform. Vorgehensweise nach Product-Line-Engineering. Komponenten werden kohäsiv und losgelöst von der Zielapplikation entwickelt und qualitätsgesichert. In einem nachfolgenden, deklarativen Prozess erfolgt die Assemblierung der Fachkomponenten zu einer kanalspezifischen Applikation. Entwicklung von kanalspezifischen Frontend-Adaptoren.
bundesweite Multikanal-Vertriebsplattform
Core-Entwickler, Komponentenverantwortlicher
Java EE, maven, Oracle Weblogic / RMI, Server, IntelliJ IDEA, Solaris
TMKP Platform Relaunch
Modernisierung und Neuaufbau der Multikanal-Transaktionsplattform TMKP über den gesamten Stack. Refactoring und Rebuild der Enterprise-Applikation (ca. 4000 Klassen) und Migration auf neue Infrastruktur-Komponenten JDK, Applikations-Server und Betriebssystem.
bundesweit: Callcenter, Kontoauszugsschreibung, Brokerage, Sprach-Computer, Schufa-Client
lokal: Competence Center Compliance, Output Management
verantwortlicher Entwickler, Planung und Durchführung der Regressions- und Lasttests
J2EE, Swing, Oracle Weblogic / RMI, Server, Oracle RAC, ant, JMeter, SAP, IntelliJ IDEA, Sun Fire, Solaris
J2EE z/OS Integration
Java calls CICS. Entkopplung der Enterprise-Plattform TMKP von einer BS2000 - Hostanwendung und transparente Anbindung an ein z/OS - Backend unter Verwendung des J2EE Architekturstandards JCA. Transaktionskontrolle von UTM nach CICS/CTG. Transparente und strukturtreue Re-Implementierung. Keine Aufwände bei den Clients.
bundesweit: Callcenter, Kontoauszugsschreibung, Brokerage, Sprach-Computer, Schufa-Client
lokal: Competence Center Compliance, Output Management
verantwortlicher Entwickler, Planung und Durchführung der Regressions- und Lasttests
J2EE, Oracle Weblogic / RMI, Server, JCA, CICS, ant, JMeter, SAP, IntelliJ IDEA, Sun Fire, Solaris
Data Driven Testing
Entwicklung einer web-basierten Fachtestapplikation auf Basis des Data Driven Testings. Testdaten werden als Excel-Dateien in die Applikation hochgeladen, in-memory analysiert und synchron auf einer Remote-J2EE-Plattform ausgeführt. Die Testergebnisse werden in die hochgeladene Excel-Datei zurückgeschrieben und innerhalb desselben Request/Response-Cycles per HTTP-Download und den Client zurückgesendet. User-Feedback während der Dauer der Testausführung durch einen Progress-Indicator.
Testbetrieb
verantwortlicher Entwickler
J2EE, Struts, POI, DDT, Oracle Weblogic / RMI, Server, maven, IntelliJ IDEA, Solaris
IVTA
Initiativ-Entwicklung einer Web-Applikation zur Unterstützung des Abnahmeprozesses von Software vor der Betriebseinführung. Erfassung von Clients, Software-Komponenten und des Einsatzauftrages. Steuerung des Bearbeitungs-Workflows und Generierung von Abnahmeprotokollen als PDF- o. Word-Dokumente.
Testbetrieb, Change Advisory Board
verantwortlicher Entwickler
J2EE, Struts, POI, iText, JBoss AS, IntelliJ IDEA, Solaris
Technische Multikanal Plattform (TMKP)
IT-Großprojekt zur Entwicklung einer zentralen J2EE Multikanal Banking-Plattform.
Transparente Überführung von Finanz- und Geschäftspartner-Transaktionen des Legacy-Bankkernsystems KORDOBA in die neue SAP-Plattform. Projektmission ist die Minimierung der Client-Aufwände während der sukzessiven Einführung neuer SAP-Module bis hin zum Decomissioning der KORDOBA-Plattform. Konzeption und Realisierung verschiedener Umsysteme zur Adaption der Kanalspezifika an die TMKP. Offenes Schnittstellendesign zur Förderung der schnellen Anbindung neuer Frontends. Entwurf und Realisierung von Umsystem- und Backend-Integrationskomponenten für SAP, BS2000/KORDOBA, UTM, LDAP und Oracle RAC. Entwicklung von Frontend-Adaptoren auf Basis von CORBA und HTTP. Realisierung von Protokoll-Umsetzern und BEI-Gateways zur Vermittlung von J2EE-Services bis in hardware-nahe Client-Systeme und Terminals. Permanente Anpassung an das hochdynamische technische Umfeld durch Code-Generatoren und Continous Integration. Konzeption und Implementierung von Hochverfügbarkeitsmechanismen (SLA Gold).
Umfangreiche und interdisziplinäre Team-Koordination und -Kollaboration. Identifizierung und Steuerung von team-übergreifenden Fachkompetenzen.
Qualitätssicherung, Testautomatisierung der hochspeziellen Systeme durch selbstgeschriebene Tools.
Langfristige konzernstrategische Entwicklung und Folgeprojekte zur Realisierung der SAP-Ausbaustufen:
Financial Services Business Partners
Account Management
Deposit Management
Customer Mortgage Loan
Transaction Banking
Entwicklung „on the spot“ mit Top-Management-Attention.
bundesweit: Geldautomaten, Kontoauszugsschreibung, Online Banking, Online Brokerage, Direkt-Portal, Vertriebs-Services, Callcenter Services, Sprach-Computer, EPOS-Terminals, Schufa-Client, HBCI
Technical Lead J2EE, Platform Owner bis Zielarchitektur „Banking Services 8.0“ in 2012
J2EE, Oracle Weblogic / RMI, Server, ant, CCM, Subversion (SVN), IntelliJ IDEA, UTM, LDAP, SAP, Oracle RAC, Solaris
Technische Multikanal Plattform (TMKP)
Entwicklung von Service-Komponenten und langjähriger Ausbau der fachlichen Funktionalität der zentralen J2EE Multikanal Banking-Plattform TMKP. Kurzfristige Anpassung an hochfrequente SAP-Rollouts, bestehend aus Customizings, Schnittstellenänderungen sowie vollumfänglichen Plattform-Releases. Langjährige Applikationsbetreuung sowie Planung und Rollout der Major-Releases.
bundesweit: Geldautomaten, Kontoauszugsschreibung, Online Banking, Online Brokerage, Direkt-Portal, Vertriebs-Services, Callcenter Services, Sprach-Computer, EPOS-Terminals, Schufa-Client, HBCI
Verantwortlicher Entwickler für die Implementierung von Core Banking-Services und -Komponenten mit technischer und fachlicher Ausrichtung in den Bereichen:
Umsatzauskunft / Finanzstatus
Geschäftspartnerverwaltung
Zahlungsauftrag / Terminauftrag
Pfändung / Kontosperren
Verfahrensauskunft
ANIS (Account Number Information Service)
Account- / Deposit-Management
Compliance
Kartensperren
Entgelterstattung
Freistellungsauftrag
Obligo / Gesamtengagement
Kontoinhaberwechsel
Online-Kontoauszugsschreibung
Legitimation
Mandantenfähigkeit
Synchronisation KOR → SAP
Failover Telserve
3rd Level Support und Incident-Management. Mitarbeiter in Taksforces und im Problem Management Process nach ITIL. Erster Ansprechpartner im Change Management Process.
J2EE, Oracle Weblogic / RMI, Server, ant, CCM, Subversion SVN, IntelliJ IDEA, UTM, LDAP, SAP, Oracle RAC, Solaris
TXReloader
Entwicklung und Implementierung einer K-Backup Strategie zur Absicherung gegen den Ausfall des Bankkernsystems. Identifizierung aller bestandsverändernden Transaktionen und Aufbau eines Zwischenspeichers für das Aufsetzen des Recovery-Verfahrens auf Basis eines Oracle-RDBMS. Erarbeitung eines Reload-Algorithmus zur Synchronisation der eingehenden Transaktionen. Differenzierung nach Art der Transaktion, Ausführungs- und Wertstellungszeitpunkt. Bereitstellung eines Java-Programms zur Durchführung der Recovery inkl. Benutzerdokumentation und Abnahme durch die interne Revision.
bundesweit: Geldautomaten, Kontoauszugsschreibung, Online Banking, Online Brokerage, Direkt-Portal, Vertriebs-Services, Callcenter Services, Sprach-Computer, EPOS-Terminals, Schufa-Client, HBCI
Verantwortlicher Entwickler, Konzeptautor
J2EE, Oracle Weblogic / RMI, Server, ant, CCM, Subversion SVN, IntelliJ IDEA, SAP, JCO, Oracle RAC, Solaris
PBInsight
Entwicklung eines Content-Systems und Vorläufer des späteren Konzern-Wikis zur Konsolidierung von bereichsübergreifenden Informationsbeständen und Förderung des Knowhow-Transfers und Team-Kollaboration. Volltextindizierung der textuellen Benutzereingaben sowie der anhängten Dokumente in div. Formaten (z. B. HTML, Word, Excel, PDF). Verschlagwortung und Organisation der Daten in Artikel und themenbezogenen, hierarchischen Containern.
Betriebsorganisation zentrales Rechenzentrum
Initiator, verantwortlicher Entwickler
J2EE, JBoss AS, Hibernate, Apache Lucene, IntelliJ IDEA, Linux
Location Management
Entwicklung eines Location Management Systems zur Verwaltung von Gebäuderessourcen. Das System erfasst neben Hallen und Gebäudestrukturen auch detaillierte Rauminformationen und angehängte Plandokumente die automatisch in einer Volltextsuchmaschine indiziert werden. Über einen zusätzlichen, systematischen Abfragemechanismus können Locations anhand vielzähliger Event-Parameter wie z. B. Raumkapazität, Bestuhlungsart, elektr. Versorgung, Beamer etc. sowie nach manueller Verschlagwortung gefunden werden.
Event-Organisation und Marketing des Congress Center Düsseldorf
verantwortlicher Entwickler
Apache Tomcat, Hibernate, Apache Lucene, JDOM, IntelliJ IDEA, Solaris
Talent- & Digital Asset Management
Entwicklung eines Content-Storage- und Organisation-Systems für Model-Agenturen. Das System verwaltet die Talents mit ihren Attributen sowie zugehörigen Assets (Bilder, Setcards, Promotion-Media) und bietet die Möglichkeit, ausgewählte Talents in sog. Castings themen- oder kunden-bezogen zu gruppieren und das Casting-Set als auf der öffentlichen Homepage aufrufbaren Hyperlink zu versenden.
Model-Marketing / Booking, Agentur-Homepage
verantwortlicher Entwickler, technischer Berater
Apache Tomcat, Hibernate, Apache Lucene, JDOM, IntelliJ IDEA, Linux
Subsystem zur synchronen Ermittlung von Ersatzartikel
Zur Kommissionierung von Online-Bestellungen in einem für stationäre Kunden zugänglichen REWE Markt, soll eine Software-Plattform geschaffen werden, die den Kommissionierer bestmöglich durch den Markt navigiert und eine Hilfe bietet, die gewünschten Artikel der Bestellung in kürzester Zeit zusammenzutragen. Dabei kann es im Verlauf der Kommissionierung vorkommen, dass bestimmte Artikel nicht verfügbar sind und die Bereitstellung von Ersatzartikel erforderlich ist. Die Anfrage von Ersatzartikel erfolgt synchron via HTTP an den Substitute service, welcher wiederum eine Reihe weiterer Anfragen kapselt, orchestriert und zu einem verwertbaren Gesamtergebnis kumuliert.
Die Kernkomponente zur Ermittlung von Ersatzartikel basiert auf einem dedizierten Elasticsearch-Cluster, der via HTTP More-Like-This-Suchen für einen übergebenen Artikel ausführt. Für jeden übereinstimmenden Ersatzartikel werden weitere Informationen zur aktuellen Verfügbarkeit hinzugefügt und eine quantifizierte Sortierung durchgeführt. Der Bounded context “Substitute service” besteht aus einer eigenen Datenhaltung zur Ermittlung von adäquaten Ersatzartikel (Elasticsearch index) sowie den Stock-Informationen als relationales Modell (JPA & CloudSQL). Die Befüllung der lokalen Datenhaltung mit Ersatzartikel sowie Stock-Informationen erfolgt durch Konsumierung von externen Daten, die durch Kafka-Messages bereitgestellt werden. Dies beinhaltet sowohl die fortlaufende Aktualisierung bestehender Daten sowie eine Vollversorgung from scratch durch Zurücksetzen des Topic-offsets. Die Re-Indizierung der Artikeldaten sowie der Neuaufbau der Stock-Datenbank ist jeweils als dedizierter Jenkins-Job realisiert.
Weiterhin wird die Aussagekraft von Verfügbarkeitsdaten durch einen synchronen REST-Call unterstützt, der zusätzlich zu den aktuellen Bestandsdaten, die Verfügbarkeit zu einem zukünftigen Zeitpunkt sowie die von einer anderen Bestellung potenziell bereits kommissionierte Menge berücksichtigt.
Durch den synchronen Charakter der End-To-End-Verarbeitung und eines vorgegebenen Antwortzeitverhaltens, gehören Verfügbarkeit und Fehlertoleranz zu den primären Qualitätszielen des Substitute services. Diese werden maßgeblich durch den Einsatz der Container-Management-Plattform “Kubernetes” sowie der Implementierung des Circuit-breaker-patterns mittels der Resilienz-Bibliothek “Hystrix” erzielt.
Der Einsatz aussagekräftiger HTTP Status codes, Hypermedia & selbstbeschreibende Ressourcen (HATEOAS) sowie intuitiver Resource identifier bilden die Grundlage für höchste REST-Konformität (Maturity Level 3). Die lückenlose Dokumentation der gesamten Web-API nach OpenAPI 3.0 mittels Swagger runden die Erfüllung der hohen Qualitätsansprüche des Kunden sowie die Constraints der Gesamtarchitektur ab.
Kommissionierer des REWE Fulfilment Centers
Software-Entwickler, Architekt
Microservices, Domain Driven Design (DDD), RESTful HTTP, HATEOAS, Spring Boot, Spring Data (JPA), Spring JDBC, Hibernate, Resilience, Circuit-breaker, Hystrix, Apache Kafka, Jenkins, Spock Framework, MockMVC, Groovy, WireMock, Swagger, Jackson, Gradle, git, Docker, Kubernetes, Jira, Confluence, BitBucket, Scrum, IntelliJ IDEA
KOS-Web
Entwicklung eines Frameworks zur Unterstützung der Migration und Neuentwicklung von Microservices auf Basis von Spring Boot. Kapselung der Aspekte Logging, E2E-Monitoring, Resilience, Security und Test. Modularisierte Bereitstellung als Spring Boot Starter Artefakte. Erstellung einer Show-Case Applikation sowie testgetriebener REST API Dokumentationen auf Basis von Spring REST Docs. Automatische Verwaltung von Versionen und Abhängigkeiten via Maven. Bereitstellung des Show-Cases als Docker Compose Stack.
Verantwortlicher Entwickler
Kartenwelt
Konzeption und Entwicklung einer Plattform für den Kauf von digitalen Gutscheinen mit Anbindung der Transaktions-Provider epay und PAYBACK bestehend aus 3 zentralen, REST-basierten Microservices (Transactor, Purchaser und Exporter) auf Basis von Spring Boot. Hauptmerkmal der Plattform ist die schnelle Abwicklung von eingehenden Kassen-Transaktionen. Diese werden zunächst vom Transactor angenommen und zur späteren, asynchronen Verarbeitung in einer zentralen DB2-Instanz (Vorgabe) gespeichert. Die Weiterverarbeitung erfolgt über einen Spring-Scheduler (Reloader) als losgelöste REST-Aufrufe an den Purchaser, welcher wiederum die Ergebnisse an den Exporter versorgt. Dieser stellt die gesammelten Daten über verschiedene kanalspezifische Schnittstellen nachgelagerten Systemen wie Datawarehouse, SAP und einer Metrikplattform bereit.
Architekt, Lead Entwickler
Coupon-World
Die Coupon-World ist eine Neuentwicklung zur Bereitstellung von vorgenerierten, digitalen Coupons. Entworfen nach den Prinzipien des Domain-Driven-Designs bilden die Kontexte Generierung, Einlösung, Validierung und Support die Hauptbestandteile der Plattform. Trigger für die Generierung von bis zu 10 Millionen Coupons in einem Vorgang, ist die Übergabe einer Kampagne aus einem internen Planungstool (KMT) als REST-Aufruf. Gemäß dem bewährten Reloader-Ansatz der Kartenwelt, werden die Kampagnen-Requests zunächst als Auftragsobjekt gespeichert und schnellstmöglich dem Aufrufer quittiert. Die in near realtime erfolgende, nachgelagerte Generierung von eindeutigen Coupon-Codes erfolgt performant in-memory in der Coupon-Keeper Komponente und wird dort in einer zentralen DB2-Instanz persistiert (dynamische Tabellenallokation anhand Coupon-Prefix) und mit der Bereitstellung eines Download-Links als CSV-Datei an den Aufrufer beendet. Bis zu einer max. Anzahl von 10 Mio Coupons, kann für eine bestimmte Kampagne beliebig oft nachgeneriert werden. Weitere Prozesse, wie die Validierung und Einösung eines Coupons durch das Kassensystem, finden in dedizierten Komponenten der jeweiligen Kontexte statt. Hierbei wird durch die Parallelisierung von Anfragen an beteiligte Services eine möglichst hohe Performance gegenüber den Dialogsystemem sichergestellt. Detaillierte Informationen zu den Vorgängen in der Coupon-World werden durch den Support-Kontext bereitgestellt, welcher in verschiedene, interne Analyse-Systeme eingebunden ist. Die Bereitstellung von REST API- und Architektur-Dokumentationen (DDD-KontextMap, Domain-Story-Telling und Call-Flow etc.) runden das Projekt ab.
Architekt, Lead Entwickler
Relaunch KOS-Payback (Alpha-Phase)
Das Vorhaben umfasst die Neustrukturierung der gesamten KOS-Payback-Plattform nach 10 jährigem Betrieb und Weiterentwicklung durch verschiedene Teams. Sämtliche Aspekte der Plattform sollen nach zeitgemäßen Kriterien analysiert, restrukturiert und ggf. abgelöst werden. Zielbild ist eine schlankere, konsolidierte und zeitgemäße Architektur, die auf einer modernen Container-Plattform wie Kubernetes in der Google Cloud realisiert werden soll. Weiteres Merkmal ist die Entkopplung der REST-basierten Service-Kommunikation durch den Einsatz einer ereignisorientierten Streaming-Plattform wie Apache Kafka oder Google Pub/Sub. Ergebnis der Mitarbeit ist die detailierte Analyse und Risikobewertung der bestehenden Plattform sowie der Entwurf einer maßgeschneiderten Lösung mit Blick auf das Zielbild Containerisierung, Betrieb in der Cloud, event-getriebenes Design, Einsatz von Monorepos (GitLab) sowie automatisierten Deployment (GitLab CI) und Dokumentation nach Domain-Driven-Design und Domain-Story-Telling. Durch die ANÜ-bedingte Befristung der Mitarbeit, konnten lediglich die Konzeption der Service-Kommunikation, Ansätze einer ausbalancierten Domain-Bildung sowie die protoypische Realisierung von Monorepos und der GitLab-CI an das Team übergeben werden.
Einführung von Kotlin, Groovy und Spock (BDD) im Entwicklungs-Team
Einführung von Docker/Docker Compose zur Qualitätssteigerung der lokalen Entwicklung
Einführung von Domain-Driven-Design und Domain Story-Telling
Eigeninitiatives und kontinuierliches Coaching der Teammitglieder im Rahmen eines wöchentlichen Entwickler-Meetings
Vermittlung von Detailkenntnissen und permanenter Ansprechpartner in Entwicklungsfragen (Kotlin, Spock, Groovy, Spring Boot, Docker, git, IntelliJ IDEA, RESTful HTTP, CI/CD, Kafka, NoSQL etc.)
Förderer und Reviewer von Clean-Code Prinzipien wie Lesbarkeit, Kohäsion, Entkopplung, Single Responsibility, Testabdeckung etc.
Architekt, Lead Entwickler
Kotlin, Java, Groovy, Spring Boot, Spock Framework (BDD), Docker, Docker Compose, Apache Kafka, git, GitLab CI, Maven, Gradle, RESTful HTTP, HATEOAS, Testcontainers, Liquibase, DB2, Event-driven Architecture, Domain-Driven-Design, Domain Story-Telling, Scrum
Big Data Dashboard
Design und Implementierung einer Web-Oberfläche zur Visualisierung von statistischen Daten aus einer Big-Data-Plattform. Hierbei stand ein optisch ansprechendes und zeitgemäßes Erscheinungsbild mit hohem Bedienkomfort im Vordergrund, welches durch den Einsatz von Bootstrap, Chart-Komponenten und ausgewählten JQuery-Plugins sowie modernen UI-Konzepten wie Progressive Disclosure realisiert wurde.
Anwenderkreis: Management REWE Group
Marktdatenbank
Entwicklung eines web-basierten Informationssystems, zur Verwaltung von Platzierungselementen in den Märkten, bestehend aus einem JPA-Daten-Layer, einer REST-Schnittstelle zur Anbindung weiterer Systeme, einer Batch-Verarbeitung, einer Mock-Clientlib mit In-Memory-Datenbank sowie einer Web-Oberfläche. Für die Applikation bestanden zusätzliche Sicherheitsanforderungen in Form von SSL-Verschlüsselung sowie einem Berechtigungskonzept. Zudem sollten bestimmte Features per Build-Prozess für verschiedene Umgebungen aktiviert oder deaktiviert werden können. Die Applikation setzt teilweise auf bestehenden Tabellen einer DB2-Datebank auf. Für den Anteil des applikations-spezifischen Modells wurden SQL-Scripts zur Erstellung und initialen Befüllung der Tabellen bereitgestellt.
Anwenderkreis: Marktleiter
Software-Entwickler (Fullstack)
Apache Wicket, Twitter Bootstrap, HTML5, CSS3, JQuery, AJAX, Spring, Hibernate, JPA, SQL, Apache Tomcat, JBoss, CDI, DB2, IntelliJ IDEA, Eclipse, DBVisualizer, Subversion, Maven, Quickbuild (CI), JIRA, Confluence
Business Portal KAM/GFL
Fachliche Erweiterung eines web-basierten Informationssystems. Über das Refactoring des Persistenzlayers basierend auf Hibernate/JPA, Generierung von Schema-Diffs mittels Hibernate-Maven-Plugin, manuelle DB Schema-Patches und SQL-Migrations-Scripts, Implementierung von in Spring-Beans gekapselter Fachlogik bis hin zur Anpassung der Ajax-getriebenen Web-Oberfläche mit Apache Wicket.
Anwenderkreise Facheinkäufer, Handelspartner, Abrechner, insg. ca. 100 Nutzer
Web-Components Showcase / Prototype Application
Aufbau einer Komponentenbibliothek als strategische Plattform für die Entwicklung neuer Web-Applikationen im REWE-Konzern. Die entwickelten Komponenten auf Basis von Wicket, JQuery UI & Twitter Bootstrap bieten ein Höchstmaß an User-Experience, Flexibilität sowie Wiederverwendbarkeit in verschiedenen Anwendungsprojekten durch eine klare, interne Struktur, gängige Architekturmuster und ausführlich dokumentierter Komponenten API.
Die Unterstützung modernster Web-Standards, wie Responsive Design durch die Komponenten, ermöglicht die Entwicklung von Desktop-, Tablet- und Smartphone-Applikationen in einer einheitlichen Codebase.
High-Level-Komponenten wie z.B. Google Maps, Geo-Completion, Tag Clouds, High Charts, Collapsibles, Tag Fields, Smart Tables (Paging, Sorting, Dissolvable Columns), Content Slider, Animated Fullscreen Background Images, Type Aheads, Masked Input uvm. gehören seitdem zum Repertoire der REWE Group Web-Entwicklung.
Zuzüglich der eher technischen Showcase-Application, wurden viele Komponenten auf der Basis eines Applikations-Prototypen mit fachlicher Ausrichtung (Kunden-Dashboard, Online-Einkäufe, Payback-Daten etc.) erfolgreich angewendet und vom Fachgremium mit großer Zustimmung angenommen.
Anwendungsentwicklung der REWE-Informationssysteme-GmbH
Software-Entwickler (Fullstack)
Apache Wicket, Twitter Bootstrap, HTML5, CSS3, JQuery/UI, AJAX, Spring, Hibernate, JPA, SQL, Apache Tomcat, Jetty, Solr, IntelliJ IDEA, Eclipse, DBVisualizer, Subversion, JIRA, Confluence
Unterstützung im kontinuierlichen Team-Workflow nach Kanban mit den Themenschwerpunkten:
Ablösung des REWE-Onlineshop-Monolithen
Kundenregistrierung und -Login
Kunden-Selfservices (Stammdatenänderung, token-geschützter Passwort-Reset, E-Mail-Change etc.)
Datensynchronisation (Application Layer)
Session-Management, Authorization
Datenschutz nach DSGVO
Fraud-Protection, Geo-Blocking
Consent-Management
technische Migrationen
Analyse und Neufokussierung der bestehenden fachlichen Struktur und Förderung der Domänenbildung nach DDD.
Überführung bestehender Applikationslogik aus einem Tomcat-basierten Shop-Monolithen in Microservices auf Basis von Spring-Boot und Kotlin mit Anbindung an Apache Kafka.
Neuimplementierung der Kundenregistrierung als Microservice auf Basis von Kotlin und Spring Boot sowie als Microfrontend auf Basis von Next.js und React.
Implementierung eines Authorization-Services auf Basis von Spring Security OAuth mit Anbindung an den zentralen Redis-Cluster.
Neukonzeption eines skalierbaren Datenreplikations-Services, zur nachrichtenbasierten Synchronisation von Kundendaten in weiterverarbeitende Systeme (REWE Commerce-System, SAP, Salesforce, Kunden-Service Backoffice).
Ständige Anpassung und Weiterentwicklung der Monitoring- und Alerting-Plattform auf Basis von Kibana, Prometheus und Grafana.
Etablierung und Dokumentation sauberer REST-APIs.
Realisierung einer Kotlin DSL zur fließenden Formulierung von HTTP-Requests auf Basis des Spring RestTemplates.
Einführung von Kotlintest/MockK (now Kotest) als alternativen Testing-Stack zu Spock/Groovy.
Einführung von Aspektorientierung zur Kapselung und Verlagerung von technischen Zusatzaufgaben in Code-Artefakte außerhalb des Business-Codes.
Entwicklung von Migrationsstrategien zur verlustfreien Überführung von Postgres-Daten und Kafka-Topics.
Implementierung eines Stacks zur HTTP-basierten Publizierung von Kafka-Nachrichten für die lokale Entwicklung.
Entwicklung von Frontend-Services (BFF) und -Komponenten auf Basis von Node.js/Next.js und React.
Anpassung von self-contained Systems zur Integration in ein unternehmensweites Dynamic UI Composition (aka Transklusion) Framework.
Weiterentwicklung der CI-Chain von nativen zu Agent-basierten builds (Jenkins).
Implementierung von Google reCAPTCHA (Enterprise) zur Absicherung des Registrierungs- und Login-Frontends.
Anbindung der Backend- und Frontend-Services an den Machine- bzw. User-Token-Workflow (OAuth2).
Impact:
Endkunden des REWE-Onlineshops (shop.rewe.de)
Kunden des Lieferservices für Kaufleute
ca. 170 interne Services der ECom-Plattform darunter Gateways für Endgeräte wie Voice & Mobile
Kundenservice- & Backoffice-Applikationen
Software-Entwickler (Fullstack), Domain-Architekt
Kotlin, Java, Groovy/Spock, Spring Boot, AspectJ, Kotlintest (now Kotest), PACT, Maven, Gradle, Git (BitBucket), Jenkins, RESTful HTTP, Apache Kafka, OAuth2, PostgreSQL, Docker, Nomad, Slash, Consul, Kibana, Grafana, Prometheus, ChatOps, IntelliJ IDEA, Kanban
Mitarbeit im Retail-Großprojekt "REWE Bonus" zur Ablösung von Payback und der Gestaltung einer Inhouse-Lösung im Rahmen des zukünftigen, bundesweiten Kundenbindungsprogramms für REWE- und Penny-Kunden. Ansprechpartner für Anwendungsmodernisierung hinsichtlich Cloud-Native-, Microservice- und Data-Mesh-Architekturen sowie Unterstützung bei dessen Realisierung.
Analyse des seit 2003 historisch gewachsenen Datenmodells und der Legacy-Backends im Bereich der zentralen Aktionsplanung und Rabattpflege
Identifikation und Bereinigung von produktfremden Verantwortlichkeiten (Context-Cleanup)
Identifikation von Fehlverortungen und Erarbeitung von produktbereinigten Datenstrukturen
Analyse einer COBOL-getriebenen Satzartenschnittstelle (SEDAS) und Transformation in ein hierarchisches Domänenmodell mit Blick auf Ausdrucksfähigkeit und Ressourcen-Optimierung
Gestaltung, Implementierung und Qualitätssicherung des Nachrichtenmodells zur Versorgung von werbewirksamen Aktionsartikeln auf Basis von Java und Spock
Definition von fachlich getriebenen Domain-Events (gegenüber CRUD-Events)
Erarbeitung eines effizientes Topic-Designs für die Kafka-basierte Nachrichtenarchitektur
Implementierung von Kafka-Producern/Consumern auf Basis von Kotlin, Quarkus und Spring Boot
Identifikation weiterer Optimierungspotenziale hinsichtlich Domänenbildung, Entkopplung und Modularisierung
Beratung der Kommunikationspartner hinsichtlich der Anwendung des produktbereinigten Modells
Beratung der Kommunikationspartner hinsichtlich neuer Bezugswege zu den Owner-Produkten für nicht mehr versorgte Datenstrukturen
Regelmäßiger Austausch mit der Architekturleitung und Technologie-Teams bzgl. Architekturziele, Plattformstrategie, technischer Innovationen und Risikobewertung
Erarbeitung und Abstimmung von Transitionslösungen zur Einhaltung strikter Deadlines
Dokumentation von Architekturentscheidungen gemäß der Konzernrichtlinien
Förderung eines einheitlichen Sprachgebrauchs in der Aktions-Domäne (Ubiquitous Language)
Übersetzungstätigkeiten zur Transformation der Schnittstellenmodelle in die englische Sprache
Solution Architekt, Developer
Java, Kotlin, Spring Boot, Quarkus, Apache Kafka, Docker, REST, GitLab, Spock Framework (BDD), Groovy, IBM DB2 z/OS, IntelliJ IDEA, Maven, Jira, Confluence, Scrum, SEDAS, Data-Mesh, Domain-driven Design, Event-driven Architecture
CMS-basierte eCommerce-Plattform für die Brandshops und Fachhändler der ZEG
Die ZEG ist eine Einkaufsgemeinschaft von 960 Fahrradgeschäften in Europa und entwickelt in Kooperation mit führenden Herstellern Sonder- und Exklusivmodelle, zum Vertrieb über die eigene Online-Plattform.
Im Zuge neuer Payment-Provider, Liefer- und Sortieroptionen, verbesserter Verfügbarkeitsermittlung, Anbindung weiterer Fachhändler-Shops (von 5 auf >200), Anpassung an neueste Datenschutzrichtlinien und zahlreicher Detailverbesserungen, soll die ZEG-Plattform großflächig ausgebaut werden.
Die ZEG-Plattform ist als ein monolithisches System einzustufen. Entgegen aller Trends zu Microservices und modularer Architektur, ist es durchaus möglich ist, gut strukturierte und wartbare Monolithen zu bauen. Jedoch wurde schnell deutlich, dass das System unter wenig agilen Prozessen und jahrelang im pragmatischen Stil vorangetrieben wurde. Stabilität, Flexibilität, Performance und Wartbarkeit waren weit ab existierender Standards, sodass sich die Weiterentwicklung als äußerst zäh und ineffizient ergab.
Nach selbstmotivierten Vorschlägen, die Abläufe durch den Einsatz agiler Methoden zu unterstützen, den Bedarf an guter Dokumentation zu erkennen sowie den Aufbau dringend benötigter QS- und CI-Infrastruktur in Gang zu setzen, erhielt ich nach kurzer Zeit die Chance, dies als Doppelspitze (Co-Lead) zu realisieren.
Nach den spürbar positiven Auswirkungen der neuen QS-Möglichkeiten auf die Qualitätskrise und die verbesserte Feedback-Kultur im Team, war die Akzeptanz für eine neue Denkweise bzgl. moderner Software-Entwicklung ausreichend aufgebaut. Daraufhin erhielt ich als neuer Technical Lead die Chance, das System mit folgenden Kernzielen architektonisch und technologisch auf eine neue Basis zu stellen:
fachliche Problembereiche klar abstecken und Schlüsselabstraktionen bilden (Domain-Entities)
Domänenbildung forcieren, Beziehungen und saubere Schnittstellen entwerfen (RESTful HTTP)
unabhängige Microservices mit Blick auf moderne Orchestrierungs runtimes implementieren
gezielter Paradigmenwechsel zu reaktiver Programmierung und nicht-blockierender Kommunikation
neues, cross-funktionales Produktdesign (Frontend auf performanterer React-Basis externalisieren)
Resilienz durch extern. Circuit-Breaker (sidecar pattern) und Failover-Strategien erhöhen
Konzepte für Monitoring, Alerting, Metriken und Self-Healing aufsetzen
Rückbau von redundantem Code und obsoleter Funktionalität
Automatisierungsgrad erhöhen, Jobs schreiben für alles was Zeit vernichtet (Jenkins Job-DSL)
Migration von starren zentralisierten Bamboo-Agents hin zu agilen Builds & Infrastructure as Code
Wertesystem für Clean Code, Software-Qualität & 12-Factor-Konformität im Team vermitteln
Internet-Endkunden, Online-Redakteure und angeschlossene Fachhändler der ZEG Online-Plattform
Technical Lead, Software-Entwickler, DevOps-Engineer
Java 8/10, Magnolia CMS, JCR (jackrabbit), Microservices, Domain Driven Design, RESTful HTTP, HATEOAS, Spring Boot 2, Guice, Groovy, Spock Framework, Handlebars/Freemarker, Maven, Gradle, Git (BitBucket), Docker (Swarm Mode), Docker-Machine, Kubernetes (K8s), Google Cloud Platform, Bamboo, Jenkins, nginx, Letsencrypt (via certbot), Stackdriver, Loadimpact, Commercetools (SDK, IMPEX, GraphQL)
Onkologisches Informationssystem in einer Microservice-Landschaft
Die Aufgabe besteht in der Entwicklung eines medizinischen Informationssystems in der streng regulatorischen Fachdomäne der Onkologie sowie dem agilen Vorgehensmodell nach Scrum. Einzelne fachliche Module repräsentieren die Säulen (Bounded Contexts) einer skalierbaren Microservice-Architektur auf passender Granularität von Workflow- und Eco-System-Services wie Patients, Accounts, Analyses, Cases, Diagnoses, Medical History, Documents, Lab, Identity, Discovery, Gateway und User-Management. Ein konsequentes Id-Management durch das dedizierte Identity-Modul dient der Vergabe und Verwaltung von service-übergreifenden, technischen und fachlichen Schlüsseln. Basierend auf einem Database-per-Service-Ansatz, erlaubt die transparente Umsetzung von Fremdschlüsseln auf dem REST-Layer (Filter-Resolution-Framework), das Filtern und Sortieren nach gleichzeitig moduleigenen sowie modulfremden Informationen. Optimierte Read/Write-Modelle mittels @JsonView sorgen für die gezielte Reduzierung des IO-footprints bei Operationen wie beispielsweise Get/List/Create/Update. Weiterhin stellen die Services per Definition selbstbeschreibende Ressourcen auf Basis von REST-Prinzipien wie HATEOAS bereit, die zur transparenten Steuerung von Oberflächenelementen und Folgeoptionen an das UI propagiert werden. Komplexe Sequenzerdaten, die durch die zyklische Überwachung von Import-Locations in das System eingespielt werden, werden durch Coloring und Highlighting in der UI augenfreundlich präsentiert. Die hierfür erforderlichen Regeln für Schwellwerte und Datentypen, werden mittels SpEL-basierter Regeln (Spring Expression Language) konfigurierbar abgelegt. Ein token-basierte Single-Sign-On, mit und ohne Benutzerkontext, wird vom Identitäts- und Authorisationsmangegment-System KeyCloak abgedeckt. Ein dynamisches Routing sowie ein zentraler Einstiegs-Endpoint in die modularisierte Anwendungslandschaft wird durch ein angepasstes API-Gateway auf Basis von Zuul (Netflix OSS) bereitgestellt. Das Spektrum der Entwicklungsarbeiten erstreckt sich über den gesamten Stack. Von proprietärer Datenbankprogrammierung mit PL/pgSQL (Postgres) über JPA-Persistenz, Scheduling, Service- und Endpoint-Implementierung bis zur Konzeption und Realisierung von automatisierten Integrations- und UI-Tests. Die Aggregation der Module zu einer Docker-Runtime für die Adhoc-Bereitstellung des gesamten Applikations-Stacks für lokale Entwicklungs- und Testszenarien, wurde hierbei ständigen Anpassungen und einem planvollen Wachstum unterzogen. Die Einhaltung hoher Quality-Gates hinsichtlich Code-Qualität und Test-Coverage der gesamten Codebase, von einfachen Bean-Tests über Branching-, Cross-Module-Integration bis hin zu automatisierten UI-Tests, wird im Rahmen der agilen Team-Prozesse routinemäßig validiert. Eine hohe Sensibilität im Umgang mit medizinischen und system-relevanten Informationen (Festplattenverschlüsselung, sichere Kommunikationskanäle) sowie der Einhaltung von regulatorischen Richtlinien wie GAMP (21 CFR Part 11, CSV) runden den Entwicklungsprozess ab.
Mitarbeiter der New Oncology
Partnerlabore, Fachärzte und -Kliniken
Software-Entwickler, Test-Engineer
Microservices, Domain Driven Design (DDD), REST, HATEOAS, JSON, Spring, Spring Boot, Spring Data (JPA), Spring Security, Spring Test, Spring EL, Spring Cloud, Netflix OSS, Zuul, Eureka, Ribbon, Hystrix, Gradle, git, Docker, Lombok, JsonPath, Jenkins, Sonar Cube, CodeBeamer, Postgres, PL/pgSQL, JPA, Hibernate, KeyCloak, Cucumber, Selenium, Mockito, MockMVC, Confluence, IntelliJ IDEA, arc42
Mit mehr als 20 Jahren Berufserfahrung als Software-Entwickler und -Architekt sowie nach verschiedenen renommierten Stationen der Zusammenarbeit mit Agenturen, Konzernen und externen Partnern, kümmert sich Herr Jarnot um die vielfältigen Herausforderungen zwischen Analyse, Design und Implementierung von modernen Informationssystemen. Eine ganzheitliche Konzeption mit Blick auf höchste Qualität und Zuverlässigkeit sowie die Optimierung für die betriebliche Zielplattform, steht hierbei im Mittelpunkt seiner Arbeit.
Herr Jarnot setzt dabei auf die kreative Verbindung etablierter Technologien wie Java, Kotlin, Spring Boot, Docker, Spock Framework (BDD), Apache Kafka mit langjährig bewährten Konzepten und Architekturstilen wie REST/HATEOAS, Domain-Driven-Design, Event-driven Architecture, CI/CD, 12-Factor-Apps, sowie den Schwerpunkten Security, Monitoring und Skalierbarkeit.
Als Senior-Fullstack-Entwickler und Technical Lead konnte er diese Kenntnisse bei dem Design von Schnittstellen, der Integration von Legacy-Backends, der Konzeption und Implementierung von Hochverfügbarkeitssystemen, dem Refactoring von Monolithen und zahlreichen Einführungsprojekten in einem dynamischen und heterogenen Anwendungsumfeld viele Jahre gewinnbringend einsetzen.
Langjährige Erfahrung in der agilen Software-Entwicklung nach Scrum und Kanban für die REWE Group, OBI digital, Postbank, HRS, DHL IT Services, Mercedes-Benz, RTL, Bank-Verlag, den AXA-Konzern u. a., als Initiator einer Kongress- und Messe-Plattform, als Coach für Software-Entwicklung mit Java, Kotlin und Spring Boot, sowie als Ansprechpartner für moderne Architektur- und Design-Themen, runden sein Kompetenzspektrum ab.
Discover other experts with similar qualifications and experience