Projekte

Im Folgenden finden Sie eine chronologische Übersicht meiner Projekte.

Jan. 22 - heute

Vitus, Verkauf von Privatkrediten (IKS GmbH)

Ein Kreditinstitut, das sich auf die Absatz- und Einkaufsfinanzierung für den Kfz-Handel spezialisiert hat, betreibt mehrere Anwendungen, die sukzessive um Features erweitert werden. Eine dieser Anwendungen ist Vitus, für die ich in erster Linie tätig bin.

Vitus besteht aus einer Vertriebsplattform für Kredite und einem Backoffice zur Verwaltung der Anträge und Verträge. Angebunden sind verschiedene Systeme wie ein Kernbanksystem, ein Rechenkern, KontoCheck sowie Dienste zur Identitäts- und Bonitätsprüfung.

Der Entwicklungsprozess arbeitet mit Feature-Branches, Merge-Requests (GitLab) und ausführlichen Reviews. Zudem wird durch Sonar eine Testabdeckung von 80 % verlangt. Es wird mit automatisierten Unit-, Integrations- und End-to-End-Tests gearbeitet, sodass sich Vitus durch eine geringe Fehlerzahl auszeichnet.

 

Position Entwicklung
Sprachen Java, TypeScript, SQL, HTML, CSS
Datenbanken MongoDB, PostgreSQL
Backend SpringBoot, Kafka, Docker, Kubernetes, Keycloak, Solr
Frontend Angular
Tools GitLab (CI/CD), Nexus, Rancher, JIRA, Confluence

Sept. 21 - Dez. 21

Projekt BaLSAM (Schmidt & Partner-GmbH)

In Rahmen des Projekts BaLSAM werden Technologien erprobt, die in der Architekturausrichtung für neue Projekte empfohlen werden. Dazu gehört z.B. das Tool Camunda als Basis für die Prozess-Automatisierung. Für die Historisierung von Daten werden temporale Tabellen und Event-Sourcing als Persistenz-Techniken getestet; für das Event-Sourcing wiederum werden die Tools bzw. Frameworks Axon, Akka, Kafka und Event-Store miteinander verglichen. Die im DDD-Umfeld gern eingesetzte Methode Event-Storming wurde als ein Verfahren für die Anforderungsermittlung der Geschäftsprozesse erfolgreich angewendet.

 

Position Architektur
Sprachen BPMN, DMN, Java, Kotlin
Techniken Event Sourcing
Tools Camunda, Kafka, Akka, Axon, Event-Store, SpringBoot
Doku Arc42 (AsciiDoc, PlantUML)

Apr. 21 - Dez. 21

Konsens-Projekt der Finanzämter (Schmidt & Partner-GmbH)

Im Rahmen des Konsens-Projektes (steuer-it-konsens.de) ist bis 2025 geplant, die Software der Finanzämter „Container-basiert“ zu entwickeln und zu betreiben. Als Container-Plattform wurde u.a. OpenShift (das Kubernetes von Red Hat) ausgewählt. Zurzeit werden die Cluster (fast) vollautomatisiert (Infrastructure as Code) mit den Tools Ansible (Day1) und ArgoCD (Day2) installiert und konfiguriert, einschließlich der Provisionierung der Cluster-Nodes, einer Benutzer- und Rechteverwaltung (IDM), der CI/CD-Pipelines (Tekton, Argo-Workflow und -Rollouts) und automatisierter Backups. Im letzten Schritt wird die Anwendungs-Software, die bislang auf mehreren JBoss läuft, auf die neue Plattform migriert.

 

Position DevOps-Entwicklung
Sprachen Yaml, ShellScript, Java
Infrastruktur Red-Hat-Stack: OpenShift (OCP/OKD), Cockpit, IDM, Satellite, Quay, GitLab
Techniken REST, Domain Driven Design, GitOps
Tools Ansible, Podman, Kubernetes, Helm, Kustomize, Argo-Tools, Tekton, Keycloak, LDAP, Maven

Aug. 20 – März 21

Meine Bonität (IKS GmbH)

Mit der Anwendung Meine Bonität wird den Kunden eines bekannten Finanzdienstleisters die Möglichkeit gegeben, die eigene Unternehmens-Bonität abzurufen. Weiter kann der Kunde einen Service abonnieren, der ihn über Änderungen seiner Unternehmensbewertung (per E-Mail) unmittelbar informiert. Die Anwendung wurde als sog. SCS (Self-contained System) konzipiert und kann in Form von drei Docker-Containern via Test-Stages „direkt“ in die Produktion ausgeliefert werden. In diesem Projekt wurde der Fokus gezielt auf den DevOps-Ansatz gelegt. So sind die betrieblichen Aspekte (z.B. die Konfiguration in Form von Kubernetes-Helm-Charts) auch mit im SCS enthalten. Die Anwendung selbst verwendet Vue.js als Frontend-Technik und SpringBoot im Backend, das (z.T. asynchron entkoppelt) mit zahlreichen Microservices der Unternehmenslandschaft kommuniziert.

 

Position Entwicklung, Architektur, automatisiertes Testen, Koordination
Sprachen Kotlin, Java, JavaScript, SQL, HTML/CSS
Datenbanken MariaDB
Techniken Spring Boot, Vue.js, REST, JPA, Domain Driven Design
Tools Docker, Kubernetes, Helm, Tomcat, Jetty, Maven, Jenkins, JIRA, Git, Insomnia, Keycloak, OpenAPI, Testcontainers

März 20 - Aug. 20

KfW (IKS GmbH)

Im Rahmen der Corona-Krise soll es allen deutschen Unternehmen ermöglicht werden, eine Bonitätsauskunft aus der Zeit vor Corona abzurufen, um damit bessere Konditionen für die Beantragung eines KfW-Kredits zu erhalten. Durch die Corona-Krise werden beispielsweise einige Branchen sehr schlecht bewertet, was einen Einfluss auf die Bonität dieser Unternehmen hat, ohne dass dies mit dem wirklichen „Gesundheitszustand“ des Unternehmens etwas zu tun haben muss. Da diese Möglichkeit für alle Unternehmen, und nicht nur für Kunden des Finanzdienstleisters möglich sein soll, wurde eine Identitätsprüfung integriert, die die Vertretungsberechtigung des Anfragenden überprüft.

 

Position Entwicklung, Architektur, automatisiertes Testen, Koordination
Sprachen Java, Kotlin, JavaScript, SQL, HTML/CSS
Datenbanken MariaDB
Techniken JEE, Vue.js, REST, JPA
Tools Docker, Kubernetes, Tomcat, Jetty, Maven, Jenkins, JIRA, Confluence, Git, Insomnia, Keycloak

Mai 19 – Okt. 19

Cobago GmbH (Website)

Die Firma Cobago hat sich zum Ziel gesetzt, sämtliche Arten von Prüfbögen auf Geräten, vorzugsweise Tablets, zu digitalisieren. So ist es nicht verwunderlich, dass z.B. der TÜV-Rheinland Kunde bei Cobago ist. Mit Hilfe des Easy-Designers lassen sich diese Checklisten einfach „zusammenklicken“. Ein weiteres Software-Modul kann anschließend vollautomatisch Apps für Android, iOS und ein Web-Frontend daraus generieren.

 

Position Entwicklung
Sprachen Kotlin, JavaScript, HTML/CSS
Techniken SpringBoot, Vaadin
Tools Docker, Tomcat, Gradle, Jenkins, JIRA, Git, Insomnia

Jan. 16 - Jan. 20

Portal eines Finanzdienstleister (IKS GmbH)

Ein bekannter Finanzdienstleister möchte seine Dienste zentral als Portal-Anwendung im Internet anbieten. Bislang existierten diese als separate Dienste zum Teil als Web-Applikation, zum Teil als installierte Software beim Kunden. Eine Teilaufgabe bestand in der Einführung eines Single-Sign-Ons (SSO) für alle Dienste, was mit OpenID und dem Tool Keycloak realisiert wurde.

Die weitaus größere Aufgabe besteht aber darin, den neuen Web-Teil und die Anbindung an die bisherigen Backend-Systeme fachlich zu erarbeiten und als Microservice-Lösung (unter Zuhilfenahme von Domain-Driven-Design) zu implementieren. Für diesen Kunden erstmalig werden für die Entwicklung und den späteren Betrieb Docker und Kubernetes verwendet. Der Portal-Teil wird aufgrund der größeren Kompetenz beim Web-Design von einer externen Internet-Agentur aus Berlin entwickelt und von uns reviewt, getestet und integriert.

Für das gesamte Projekt müssen vier weitere Teams gesteuert werden, sodass die Koordination im Sinne von „Scrum of Scrums“ eine Hauptaufgabe für unser „Kernteam“ darstellt.
Unterstützt werden wir durch die unternehmensweite Einführung der agilen Kollaborations-Werkzeuge JIRA und Confluence.

 

Position Architektur, Entwicklung, Anforderungsmanagement, Koordination
Sprachen Java, JavaScript, SQL, HTML, CSS
Datenbanken Oracle, MariaDB
Techniken Domain Driven Design, REST
Tools Docker, Typo3, Tomcat, Jetty, Puppet, Maven, Enunciate, Jenkins, JIRA, Confluence, Git, Mercurial

Sept. 15 - Jan. 16

Faktura (IKS GmbH)

An das vorherige Projekt schloss sich unmittelbar ein Projekt beim gleichen Kunden an, das bereits einige Monate zuvor startete. Thematisch handelte es sich dabei um die Faktura des Kunden, die komplett neu entwickelt wurde. Die besondere Herausforderung war der sehr eng gesteckte Zeitplan. Ein gutes Anforderungsmanagement und der Einsatz von Scrum in einem optimal kooperierenden Team machte das Unmögliche möglich. Meine Aufgabe bestand zum einen in der Erstellung von noch fehlenden Funktionalitäten (z.B. Preis-Modelle & Konfiguration) angefangen vom JEE-Backend bis hin zur Spring-GUI, zum anderen in der Implementierung eines (Massen-)Exports zur Anbindung von verschiedenen externen FiBu-Systemen.

 

Position Architektur, Entwicklung
Sprachen Java, JavaScript, SQL
Datenbanken Oracle
Techniken JEE, Swing, Web, REST, XSLT
Tools WebLogic, IDEA, Maven, Jenkins

Sept. 13 - Sept. 15

Auskunftei für Firmenauskünfte (IKS GmbH)

Für diesen bekannten Finanzdienstleister sind in ganz Deutschland Sachbearbeiter(innen) beschäftigt, die Firmeninformationen recherchieren. Dazu werden Mitteilungen von unterschiedlichsten Quellen zusammengetragen: Zeitungen, Internet, Telefoninterviews, etc. Die dabei anfallenden Routine-Tätigkeiten sollen nun optimiert werden, z.B. durch automatisierte Voranalysen von Internet-Quellen oder durch eine zeitgemäße effiziente Client-Technologie. Speziell die syntaktische und semantische Analyse von Internetseiten entpuppt sich als knifflige Aufgabe und machte dementsprechend Spaß. Für eine Verbesserung der Geschäftsprozesse und wurden Teile des bisherigen Swing-Clients erweitert bzw. durch eine Web-Anwendung ersetzt. Verschiedene Architekturen (JSF, Single-Page, ROCA) sind untersucht und bewertet worden – die Entscheidung fiel auf das Google-Framework angularJS. Weiter realisiert wurden eine Anbindung an beliebige Telefonanlagen und eine Software, die ein Telefoninterview maßgeblich unterstützen soll, wobei dort die Bedienbarkeit an oberster Stelle steht.

 

Position Anforderungsanalyse, Architektur, Entwicklung
Sprachen Java, JavaScript, SQL
Datenbanken Oracle
Frameworks angularJS, d3.js, Bootstrap
Techniken JEE, REST, Swing, node.js
Tools WebLogic, Jetty, Flux, Eclipse, Maven, Jenkins

Mai. 13 - Aug. 13

Inkasso-Unternehmen (IKS GmbH)

Das Projektziel bestand primär darin, eine bereits bestehende Client-Server-Applikation im Bereich Inkasso von einer JBoss-Plattform auf den TomEE (einem um JEE-Komponenten erweiterter Tomcat) zu portieren und sie in diesem Zuge auf einen zeitgemäßen Stand (Java 1.7, JEE 3.1, Maven, CI) zu bringen. Das Backend wurde einst mit J2EE-Mitteln und XDoclet erstellt, welches um ein aus Web-Services bestehendes Remoting ergänzt wurde. Das Frontend wurde mit Swing realisiert. Für die Migration wurde zunächst ein kleines Regressionstest-Tool geschrieben, das in der Lage ist, Testergebnisse des Ist-Systems aufzuzeichnen und gegen das Neu-System laufen zu lassen, um eine Äquivalenz von Alt und Neu sicherzustellen. Anschließend wurde das Remoting ersetzt durch J3EE-Sessions-Beans, die automatisch Web-Services unterstützen. Eine weitere Aufgabe war die Ablösung eines Authentifizierungssystems durch das übergreifend im Betrieb eingesetzte LDAP. In der verbleibenden Zeit wünschte sich der Kunde einige (fachliche) Änderungen im Front- und Backend.

 

Position Architektur, Entwicklung, Dokumentation
Sprachen Java, SQL
Datenbanken MS-SQL
Techniken JEE, Web-Services, ADS, LDAP, Swing
Tools JBoss, TomEE, Eclipse, Ant, Maven, Jenkins

Apr. 12 - Apr. 13

Portigon, ehemals WestLB (mt ag)

Zwei zentrale Java-Applikationen mussten aufgrund der Dreiteilung der (ehemaligen) WestLB in wesentlichen Punkten angepasst und erweitert werden. Eine Anwendung stammt aus dem Bereich Risk-Management, die zweite dient in erster Linie der Benutzerverwaltung und als Drehscheibe für Im- und Exporte von externen Daten-Quellen. Wegen der langen Lebensdauer sind die Anwendungen stark angewachsen und beinhalten eine bunte Vielfalt von Techniken und Frameworks (z.T. auch Eigenentwicklungen). Mit anderen Worten: Es handelt sich um ein typisches Wartungsprojekt mit all seinen Herausforderungen. Diese bestehen vor allem darin, sich schnell in fremden Code einzuarbeiten, zu erweitern, qualitätszusichern (Tests) und vor allem: auf lange Sicht verständlich, d.h. wartbar zu halten. Zu diesem Thema finden Sie auch weitere Informationen auf der Seite Clean-Code.

 

Position Entwicklung, Wartung
Sprachen Java, Javascript, Groovy, SQL
Datenbanken MS-SQL
Techniken Servlets, JSP, Ajax, ZK, jQuery, Toplink, Quartz
Tools IBM-Websphere, Tomcat, JBoss, FireBug, Eclipse, Toad, BIRT, CVS

Sept. 11 - März 12

Masterkonsole (IKS GmbH)

Für einen Finanzdienstleister entwickelte ich eine Web-Applikation zur Überwachung von Software in Produktion. Die Software verfügt über Ansichten der Prozesse, Job-Überwachung und der Verfolgung von Datenströmen an externe Systeme. Die Anwendung besteht aus einem Web-Frontend, welches massiv von der Ajax-Technik Gebrauch macht. Sekündliche Aktualisierungen der Zustände werden ruckelfrei im Browser angezeigt, während zugleich zwischen Kompakt- und Detailansichten gewechselt werden kann. Das Backend, welches auf einem Weblogic-Server betrieben wird, stellt sowohl eine Java- als auch eine REST-Schnittstelle für die Kommunikation zur Verfügung.

 

Position Entwicklung
Sprachen Java, Javascript
Datenbanken Oracle, HSQLDB
Techniken JSF, JEE, PrimeFaces, Ajax
Tools Oracle-Weblogic, Tomcat, Jetty, FireBug, Eclipse, Mercurial, Maven, Jenkins, Artifactory

Jun. 11 - Sept. 11

CEG (heute Boniversum) (IKS GmbH)

Für einen Finanzdienstleister, der Bonitätsauskünfte über Privatpersonen erteilt, wurde eine Erweiterung der bestehenden Software in Form einer Anbindung an einen externen Service-Anbieter realisiert. Die (externe) Schnittstelle besteht aus eine Menge von RESTful-Web-Services und einer Datei-Austausch-Schnittstelle für Bulk-Anfragen.

 

Position Entwicklung
Sprachen Java, Javascript
Datenbanken Oracle, HSQLDB
Techniken JSF, JEE, PrimeFaces, Ajax
Tools Oracle-Weblogic, Tomcat, Jetty, FireBug, Eclipse, Mercurial, Maven, Jenkins, Artifactory

Apr. 09 - Jun. 11

Finanzdienstleister (IKS GmbH)

Für ein namhaftes Unternehmen, das Wirtschaftsauskünfte über ausländische Firmen erteilt, wurde ein JEE-basierendes System zur Verwaltung von Auskünften, Aufträgen, Kunden, etc. komplett neu erstellt. Es löst eine Altanwendung bestehend aus unterschiedlichsten Arten von Teilkomponenten (AS400 und periphere Komponenten) ab, um eine einheitliche zukunftsorientierte Plattform zu erschaffen. Das Backend wird auf einer Oracle-WebLogic-Plattform betrieben. Für die Client-Seite fiel die Entscheidung auf Eclipse-RCP. Zu Beginn wurde die komplette Infrastruktur (s.u. „Tools“) für die Entwicklung von mir installiert. Dazu zählen: Versionsverwaltung, Build- System, das Dokumentations-, Anforderungs- und Fehler-Management. Im Laufe der Entwicklung der Software stellte sich heraus, dass sich viele Teilkomponenten sehr ähneln, sodass in der zweiten Projekthälfte beschlossen wurde, einen generativen Ansatz (MDSD) zu versuchen, was zu erheblichen Einsparungen und zu einer höheren Qualität führte. Im letzten Projektdrittel bestand einer der Aufgaben in der Anbindung der peripheren Systeme. Dazu wurde eine eigene Komponente, das sog. OMS (Output-Management-System) entwickelt, das mittels Messaging die Anbindung der externen Systeme (Topcall, IBM-WebSphere-Message- Broker, SAP-System, Topcall) realisiert.

 

Position Software-Architektur und -Design, Testplanung, Qualitätssicherung, Entwicklung des Generators, Implementierung von Front- und Backend im Team
Sprachen Java, XML, SQL
Datenbanken Oracle
Techniken MDSD (Model-Driven-Software-Development), TDD (Test-Driven-Design), JEE, Eclipse-RCP
Testing JUnit (Backend), SWTBot (Frontend), Integrationstests
Tools Eclipse, Oracle-WebLogic, Oracle-SQL-Developer, Subversion, Maven, TeamCity, Artifactory, Confluence, Jira