Java Enterprise Backend Entwicklung

Senior IT Consultant - Software Engineering

freiwillig sozialversichert und von der DRV anerkannt als nicht versicherungspflichtig.

Ausgeführte Projekte chronologisch geordnet

  • Analysieren, Architekten, Designen, Modellieren, Implementieren von Backendsystemen basierend auf Java Enterprise, Spring Framework bis Spring Cloud, relationalen - und NoSQL-Datenbanken.
  • Bewertung von Architekturen, Designs und Implementierungen.
  • Vermittlung agiler Teamarbeit, Continuous Delivery, DDD, Clean Architecture.
  • Modernisierung von SW Systemen, Transformation nach Cloud Native.
Skills: Java J2EE Spring-Framework Microservices Spring-Integration DevOps Cloud MySql CI/CD Agile SVN Git Web MongoDB Docker

11/22- -  Entwicklung der Software EMBE Online im Rahmen des Onlinezugangsgesetzes und der EfA Allianz - OZG - OOA/OOD/OOP, Java, Agile, DevOps Prinzipien für HR-Solutions GmbH

Created with Sketch.

(Dezember 2023 gestoppt)

EMBE-Online ist ein Online-Portal, das ab 2023 zur Vorlage von Messberichten verwendet werden soll. Nach dem EfA-Prinzip entwickelt ein Land oder eine Allianz aus mehreren Ländern eine Leistung zentral und stellt diese anschließend anderen Ländern und Kommunen zur Verfügung, die den Dienst dann mitnutzen können.

Bei EMBE-Online bin ich in einem kleinen Entwicklungsteam verantwortlich für das Backend. Das Backend basiert auf einer Microservice Architektur, containerisiert, deployt mit Helm aus Gitlab-Pipelines heraus auf die Kurbernetes Plattform Rancher.

Bei diesem Projekt kommt wiederholt der Technologiestack zum Einsatz, den ich nunmehr seit über 15 Jahren intensiv einsetze, und die Aufgaben mit meiner Expertise in den Tools und Frameworks von Spring IO – Spring Boot, Spring Security, Spring Data– effektiv löse.
Als Identity Provider wird Keycloak 20.x eingesetzt.

Die Arbeiten finden unter Beachtung der Scrum Methoden statt, mit einem 14 tätigen Sprintwechsel und den Tools Jira und Confluence von Atlassian.

Teamgröße: 20

Skills: Java 17, spring/boot/security/data, PostgreSQL, Keycloak, maven, git, Gitlab, IDEA, JUnit, Docker, Helm, Kubernetes, Rancher, Tomcat, Liquibase, u.v.m.
 

01/20-12/22 - Architektur und Entwicklung Software im Rahmen des Onlinezugangsgesetzes - OZG, Agile, DevOps Prinzipien für Anstalt für Kommunale Datenverarbeitung

Created with Sketch.

 Erstellung von Architekur-, Umsetzungs- und Auslieferungskonzepten für Softwaresysteme im Bereich Onlinezugangsgesetzes wie Bürgerservice Portal, Servicekonto und Bayern ID.  Die zum Einsatz kommenden Technologien und Produkte bestehen aus der Betriebsplattform Kubernetes, basierend auf SuSE-Enterprise, den Tools Helm und Ansible für Bereitstellung der Anwendungen, gesteuert über Deploymentpipelines aus Gitlab. Die containerisierten Anwendungen sind implementiert in Java 11 und 17, unter Verwendung der Spring IO Produktlandschaft wie Spring Frame, Spring Boot, Spring Cloud nutzen als Backend die Datenbank Produkte MariaDB und MongoDB, RabbitMQ als Messagebroker und Schibboleth als Identitätsmanagementsystem.  Die Produktentwicklung findet in mehreren Gruppen unter Anwendung der Methoden von Scrum und den unterstützenden Tools von Atlassian Jira und Confluence statt. Insgesamt sind etwa 50 Mitarbeiter beteiligt.  Neben diesen Arbeiten wirkte ich führend, mit einem kleinen Entwicklerteam, bei Aktualisierung des legacy Bürgerservice Portales mit, bishin zur Implementierung einer vollständig automatischen Deployment Pipeline. Technologien wie Java 8, Redhat EAP 6.x, Rehat Enterprise Linux, Gitlab, Ansible, Maven, MariaDB, Elastic Search kamen dabei zum Einsatz.  

Teamgröße: 20

Skills: Java 8, 11, 17, spring/boot/security/integration, Mysql / MariaDB, SQL, maven, git, gitlab, IDEA, junit, Nexus, Docker, Kubernetes, Rancher,Tomcat, RabbitMQ, JBoss Redhat EAP, ansible, u.v.m.

09/18-10/19 -  Beratung Modernisierung Individualsoftware - OOA/OOD/OOP, Java, Agile, DevOps Prinzipien für Carl Zeiss Meditec AG

Created with Sketch.

(Projekt separiert, weil inhaltlich anders gegenüber der Aufgabe davor)

Das unten im Profil genannte, über 10 Jahre alte Produkt, technologisch und fachlich modernisieren. Es wird hier als eignes Projekt im CV beschrieben, weil ein umfangreicher Technologiewechsel stattfand.

Abkehr von einer Java Enterprise Container basierenden, EJB zentrierten Implementierung, monolithisch laufenden Anwendung hin zu leichtgewichtigen, fachlich separierten Komponenten, lauffähig als dockerisierte Microservices auf on-premise, AWS- und Azure Plattform. 

Der Großteil der Arbeiten bestand in der Transformation zahlreicher Enterprise Java Beans in fachlich separierte, technologiefreien (nach den Prinzipien von SOLID und Clean Architecture) Klassen. Als Frameworks wird konsequent Spring Framework/ - Boot / - Integration / - Data / - Security verwendet.
Für den Transport der Application Events kommt als Message Broker Active MQ zum Einsatz, weil der Betrieb als embedded Variante, für kleine on-premise einfach, möglich (ebenfalls Basis des Azure Messaging Service) - Apache Kafka erwies sich für den on-premise Einsatz als zu komplex.

Die darüber entstanden Komponenten sind so designt, dass diese als stand alone Services als auch in eine monolithische Struktur zusammengefasst lauffähig sind. 

Die deploybaren Einheiten sind Docker Images. 

Durch Anwendung der Cloud Native Idee, Configuration Pattern u.v.m.  sind die Services ohne Codeänderung auf den verschiedensten Cloud Plattformen und on-premise lauffähig.

Teamgröße: 20

Skills: j2ee (JPA, EJB,  JMS, CDI, JDBC, JSF, JAX-RS), Java 11, spring-framework/ -boot/ -security/ -integration, Mysql 5.x, SQL, Jersey, maven, subversion, IDEA, Teamcity, maven, ant, junit, Artifactory, MongoDB 3.x, Docker, Glassfish 3.x, JClouds,  Active MQ, Thymeleaf und mehr.
 

12/10-09/18 - Beratung Weierentwicklung Individualsoftware OOA/OOD/OOP,  j2ee, Agile, DevOps Prinzipien  für Carl Zeiss Meditec AG

Created with Sketch.

Weiterentwicklung einer Archiv-Lösung (PACS) für den medizinischen Einsatzbereich. Backend wird entwickelt auf Basis von Java Enterprise 6/ Java 8 in einer klassischen Client-/Server-Architektur seit 2008. Interprozess-Kommunikation anfängliche über CORBA IIOP und JMS, später Ablösung CORBA durch REST-angelehnte Schnittstellen.  

Eigenverantwortliche Implementierung eines Continuous Integration Prozesses nach den Ideen von Jez Humble (ThoughtWorks) auf der Basis von Jetbrain’s Teamcity Server als CI Server Produkt und JFrog’s Artifactory als Repository Produkt für sämtliche Build Ergebnisse. Zentrales Tool für Bau der Java Artefakte und Ausführung der automatisierten Tests ist maven 3.x. Deployment Einheiten als Ergebnis einer build pipeline sind Docker Images und System Installer. 

Hauptarbeiten: 

  • Modularisierung des Backend Monolithen nach Domain Driven Design, integrierbar in das Gesamtsystem via JNDI und als eigenständig lauffähiger Service (Microservice). Implementierung auf Basis java 8 und spring framework/spring boot.
  • Implementierung der Integration der Backend Komponenten in Security Systeme wie Microsoft Kerberos/Active Directory und OAuth2 unter Anwendung  verschiedener Spring Projekte z.B. Spring Security 4.x/5.x
  • Entwickler für DevOps Ideen, Themen wie Clean Code, Clean Architecture, Domain Driven Design, SOLID begeistern. 


Weitere Arbeiten: 

  • Umstellung CORBA IIOP basierende Interprozess Kommunikation auf rein HTTP. 
  • Automatisierte Daten-Migration auf Basis des Tools flyway.
  • Entwicklung AWS Cloudvariante des Backends im Lift&Shift Ansatz unter Anwendung der AWS Produkte S3, Cloud Watch, EC2.
  • Entwicklung einer Analyse Engine auf Basis von Elastic Search, AWS Serverless Functions, S3, Kibana.  
  • Implementierung eines dokumentenorientierten Indexes für strukturierte Suche über Metadaten auf Basis von MongoDB 3.x, spring boot, RestHEART.
  • Entwicklung von Plugins für Maven3, Teamcity, Artifactory für Verbesserung der CI Prozesse.
  • Pflege des Application Servers Glassfish mit Bugfixing und Aktualisierung der Komponenten.


Teamgröße: 20

Skills: j2ee (JPA, EJB,  JMS, CDI, JDBC, JSF, JAX-RS), spring-framework/ -boot/ -security/ -integration, Mysql 5.x, SQL, Jersey, maven, subversion, IDEA, Teamcity, maven, ant, junit, Artifactory, MongoDB 3.x, Docker, Glassfish 3.x, JClouds, Thymeleaf, Serverless, AWS, Elastic Search, ELK  und mehr.

11/06-12/10 - Beratung Entwicklung Individualsoftware, OOA/OOD/OOP, j2ee für Hypovereinsbank IS/ UniCredit Bank AG

Created with Sketch.

Entwicklung eines Tools für die Beurteilung von Spezialfinanzierungen. Geratet werden Objekte wie Schiffe/Schiffsflotten, Immobilien, Windkraftanlagen und Flugzeuge.   Das Berechnungsmodell wurde vom Fachbereich vorgegeben und mit Unterstützung durch die IT verfeinert und weiterentwickelt.  Die SW-Architektur folgt dem klassischen Webanwendungsdesign in drei Schichten. Das Benutzerinterface ist mit JSF 1.2/Facelets realisiert. Der Rechenkern läuft als eigenständige Anwendung und kommuniziert über JMS mit dem UI und Batch-Prozessen. Die objektbeschreibenden  Daten und die Ratingergebnisse werden in einer Oracle Datenbank über JPA/Hibernate persistiert. Meine Hauptaufgaben: Design der Architektur, Kommunikation mit dem Fachbereich, Entwicklung aller Teile von UI bis Persistenz außer Rechenkern.

Teamgröße: 8

Skills: j2ee, AOP, aspectJ, spring, Oracle 9i, Xdoclet, SQL, jdbc, JSF, Acegi, Windows NT, eClipse, maven, ant, junit, cvs, visual source safe, UML, oracle jvm.

05/06-09/06 - Entwicklung Individualsoftware - OOD/OOP, j2se/j2me für Siemens AG/ SBS

Created with Sketch.

Selbstständige Entwicklung  einer Komponente im Projekt HiPath SIcurity Konnektor der Siemens AG im Kontext der elektronischen Gesundheitskarte.  Vorgabe für die Entwicklung eines Trusted Viewers  als Bestandteil des Signierungsprozesses war die Spezifikation durch die gematik GmbH.  Dieser Trusted Viewer  stellt sich über ein grafisches Benutzerinterface auf dem Primärsystem dar und wird von Konnektor angesteuert.  Das Benutzerinterface des Trusted  Viewers wurde mittels Swing und der Open Source Komponente flying saucer entwickelt. Die Ansteuerung des Trusted Viewers wird als OSGi-Bundle den Applikationen auf Konnektorseite bereitgestellt. 

Teamgröße: 10

Skills: j2me, j2se, Swing, OSGi, XML, XSLT, XHTML, eClipse, netbeans, ant, junit, cvs, subversion, Linux, Window

10/05-04/06 - Entwicklung und Migration Individualsoftware OOD/OOP, j2ee für die Deutsche Börse AG

Created with Sketch.

Migration einer Windows-Fat-Client-Server CRM-Anwendung, implementiert in Visual C++ und pl/sql, nach j2ee als Webanwendung. 

Das Zielsystem ist AIX mit Oracle 9i und Tomcat 5.5 unter j2sdk 1.4. Die Entwicklungsplattform bestand aus Windows 2000, Eclipse 3.x, Oracle 9i, Tomcat 5.5, j2sdk 1.4.

Die MFC-Controls wurden durch die Common-Controls der Firma SCC Informationssysteme GmbH ersetzt und durch diese Firma selbst hinsichtlich neuer Anforderungen (weitere Controls, mehr Steuerung des GUI durch Java-Script)  erweitert. Der Großteil der Logik unterhalb der GUI-Controls in Richtung Server wurde als Serverlogik betrachtet und serviceorientiert designed und unter Anwendung des springframeworks implementiert.

Ich war für das Aufsetzen des Build-Prozessen und der Einführung von maven und des springframeworks zuständig. Für das Design und die Implementierung der Serverlogik war ich hauptverantwortlich. 

Auf zahlreiche Erfahrungen aus dem u.s. Leasing-Projekt konnte in diesem Projekt zurückgegriffen werden.  Weiter interessant in diesem Projekt war die Wiederverwendung von Teilen der Serverimplementierung in der OracleJVM als Ersatz für Implementierung der Businesslogik in pl/sql.

Teamgröße: 6

Skills: j2ee, AOP, aspectJ, spring, Oracle 9i, Xdoclet, SQL, jdbc, struts, Acegi, Windows NT, eClipse, maven, ant, junit, cvs, visual source safe, UML, oraclejvm.

02/05-09/05 - Entwicklung Individualsoftware OOA/OOD/OOP, j2ee - für die KGAL

Created with Sketch.

Anforderungsanalyse, Konzeption und Entwicklung von prozess-unterstützenden Softwaremodulen für das Managen von großen Leasinggeschäften. Ablösung bzw. technisch technologische Vereinheitlichung und Erweiterung einer heterogenen Softwarelandschaft  

Dokumentierung der Anforderungen über UseCases in Diagramm- und Tabellenform. Beschreibung der Schnittstellen zu externen Systemen.

Kapselung der j2ee-Schnittstellen mit spring für eine einfache und technologieunabhängige Einbindung in ein serviceorientiertes Design. Durch die Containerunabhängigkeit Vereinfachung der Unit-Tests. Objektorientierter Zugriff auf die Persistenz-Schicht durch OR-Mapping in Form von OJB. Kapselung von OJB und JDBC über DAO-Templates. Konsequenter Einsatz von POJOs als Datenobjekte von Persistenz bis Client. Umsetzung der Entwurfsmuster Visitor, Versionierung und Änderungshistorie als Aspekte mit AspectJ. Realisierung der Authentifizierung- und Autorisierung-Funktionen mit Acegi. Generierung diverser XML-Descriptoren mit Xdoclet. Entwicklung des Web-Clients mit struts, formdef, sitemesh, common-validation und JSTL. Build- und Deploy-Umgebung mittels maven.  

Teamgröße: 8

 

Skills: j2ee, AOP, aspectJ, spring, Oracle 9i/10g, OR-Mapping, OJB, Xdoclet, SQL, jdbc, struts, sitemesh, JSTL, Acegi, Windows NT, RedHat Linux, eClipse, maven, ant, junit, cvs, UML

11/03-12/04 - Entwicklung Individualsoftware -  OOD/OOP, j2ee - für Berufsgenossenschaft/ Phoenics

Created with Sketch.

Entwicklung eines einheitlichen IT-Systems für die Geschäftsvorfälle

von Berufsgenossenschaften.

Abstimmung der durch Fachprojekt erstellten Spezifikation und deren

technische Analyse

Umsetzung von Geschäftsprozessen auf Basis erstellter Fachspezifikationen

client- und serverseitige Entwicklung:

  • Modellierung der Geschäftsprozesse, Anwendungsfälle und Vorgänge.
  • Modellierung der Agenten (Client/Server-Kommunikationsstruktur).
  • Umsetzung der Geschäftslogik in den jeweiligen Vorgängen/Anwendungsfällen/Geschäftsprozessen.
  • Erstellung des Objekt-Modells und Modellierung der Persistenz.
  • Erstellung der GUI-Komponenten und deren innere Logik Erstellung von Testdaten/fällen.


Feinabstimmung mit Fachprojekt zur Übernahme der jeweiligen

Geschäftsprozesse in die verschiedenen Teststufen

Entwicklungstechnische Betreuung des Testteams bei jeweiligen Bugfix-

Zyklen.

Teamgröße: 30 

Skills: j2ee, swing, IBM DB2, Innovator, SQL, OR-Mapping,, avantis, jdbc, Windows NT, AIX, IDEA, jbuilder, eClipse, websphere, ant, junit, CM Synergy

05/02-10/03 - Entwicklung Portal/ Intranet - PM, OOA/OOD/OOP, j2ee - für Siemens HQ/ Elan IT

Created with Sketch.

Entwicklung typischer Portalauftritte für Siemens HQ auf Basis von j2ee mit IBM Websphere AS und Oracle 8i/9i.

Entwicklung und Integration von middle tier Komponenten nach j2ee wie Voting-Tool, shop-Lösung, CRM, web analyzing, Anbindung von Inhalten aus CMS Teamsite Interwoven.

Migration von Anwendungen von tomcat, BEA Weblogic auf IBM Websphere AS 4.x.

Design und Entwicklung interaktiver Webanwendungen nach j2ee für Websphere AS.

Websphere AS Administration unter Linux und Windows 2000 Server.      

Coaching von Siemensmitarbeitern auf dem Gebiet der Entwicklung von Webanwendung auf Basis von J2EE: Applikationsserver, IDEs, Versionsverwaltung/Konfigurationsmanagement, Buildprozeß, Web tier-Frameworks, Persistence-Frameworks, Unit-, Integrations- und Lasttests.
 
Teamgröße: 10

Skills: j2ee, Interwoven TeamSite V5, Oracle 8i/9i, MM Dreamweaver, SQL, OR-Mapping, jdbc, Windows NT, Solaris, netbeans, IDEA, jbuilder, eClipse,  WSAD, XDE, Poseidon, tomcat, websphere, ant, struts, junit, sql-navigator, cvs, teamsite, JSTL, struts, OR-Mapping, OJB, Kana 7.5. OpenSTA.