Die Basis.
Während meiner langjährigen, seit 2004 überwiegend freiberuflichen Arbeit als Software-Entwickler konnte ich in vielen Projekten und sehr unterschiedlich aufgestellten Teams zum erfolgreichen Abschluss beitragen und bin es gewohnt, Aufgaben eigenverantwortlich im Team umzusetzen, kreative Lösungen zu finden und neue Herausforderungen anzunehmen.

Unabhängig von eingesetzten Technologien und Strategien bilden die Erfahrungen aus über 20 Jahren Projektarbeit eine solide Grundlage dafür, die richtigen Entscheidungen zu treffen und auf dem bestmöglichen Weg ans Ziel zu kommen.
 
Auswahl einiger interessanter Projekte und von mir verantwortete Aufgabenbereiche
2023
Java Backend-Entwicklung

Vergleichsportal für Kaufentscheidungen

Unabhängiges Vergleichsportal für 500.000 Produkte. Die Webanwendung bietet detailierte und aufbereitete Informationen aus Testberichten, Meinungen und technischen Daten sowie 1,5 Millionen tagesaktuelle Angebote von Online Shops.

Aufgaben und Setup

Pflege und Weiterentwicklung Geschäftslogik
Unit-Test Integration, Wartung
Aufbereitung von Daten zur Übergabe ans Frontend
Konzepte zur Optimierung und Modularisierung der Java Architektur
Entwicklung von Prototypen und PoCs
Dokumentation in Text und UML
Java 11 / Spring
Tomcat
Linux
MySQL
Eclipse
Maven, Ant/Ivy, Jenkins
Git, Github
JIRA, Trello, Slack

2020 - 2022
Server Administration

Wissens-Plattform Wald

Das Online Angebot bietet Möglichkeiten zum Wissens- und Erfahrungsaustausch rund um den Privatwald. Die Plattform bietet Unterstützung beim Schutz und dem Erhalt der Leistungsfähigkeit von Wäldern für Waldbesitzer und Forstwirtschaftliche Zusammenschlüsse.

Aufgaben und Setup

Planung, Realisierung und Betreuung der benötigten Linux-Infrastruktur (Http-Server, Docker, node)
Auswahl und Aufsetzen STUN/TURN Server Implementierung (WebRTC)
Konfiguration, Deployment, Inbetriebnahme der Webanwendung
Bereitsstellung jeweils einer Test- und Schulungsumgebung
Netzwerk Sicherheit
Dokumentation
Apache HTTP, Node, Coturn
Linux
MySQL, SQLServer
Eclipse
Docker

2016 - 2019, 31 Monate
Backend-Entwicklung, Server- und Software-Architektur

Digitales Branchenbuch für die Wald- und Forstwirtschaft

Das Branchenbuch ermöglicht es forstlichen Dienstleistern, sich professionell zu präsentieren. Waldeigentümer hingegen finden hier mit wenigen Klicks den regional anbietenden und passenden Ansprechpartner für ihre Waldfragen.

Aufgaben und Setup

Beratung der fachlichen Konzeption
Technische Konzeption
Modellierung / Implementierung Persistenzschicht
Geo-Daten Verarbeitung, WMS, WFS
Geschäftslogik
Rest-Services
ReST-Clients, Präsentationslogik
CI / CD Prozesse, Server Administration
QS, Test, Dokumentation
Java 8 / Java EE 7
TomEE, Tomcat, Geoserver
Linux
Postgres, PostGIS
Eclipse
Gradle, Jenkins
Git, Bitbucket
JIRA

Ausführliche Beschreibung

Die Applikation bietet eine Plattform für Dienstleister der Wald- und Forstwirtschaft, sich zu präsentieren und detailierte Angaben zu den angebotenen Dienstleistungen sowie des Wirkungskreises zu machen. Waldbesitzer können im Gegenzug gezielt für ihr Flurstück und ihr aktuelles Anliegen, etwa Beratungsleistungen oder Durchforstung, einen regional und fachlich passenden Ansprechpartner finden.

Wirkungsbereiche der Dienstleister können entweder nach kommunaler Gliederung (Gemeinden, Landkreise, Bundesländer) über eine Kartenansicht visuell, oder, im Falle nicht kommunaler Gliederung, über einen WKT- Upload direkt definiert werden. Mehrschichtige Kartenansichten werden über einen GeoServer ausgeliefert und mithilfe OpenLayers angezeigt.

Die Suchtreffer werden anhand geografischer Flächenüberschneidungen aus fachlich passenden Dienstleistern ermittelt. Die entsprechenden DB-Queries wurden nativ über die PostGIS-Erweiterung implementiert. Persistenz und Geschäftslogik des gesamten Systems sind innerhalb eines TomEE Applikation-Servers vollständig gekapselt und ausschließlich per ReST-Schnittstelle für die Web-Applikation erreichbar. Für den Zugriff auf den GeoServer wurden entsprechende Wrapper entwickelt, so dass die Geo-Dienste von außen nicht erreichbar sind.

Insgesamt wurde großen Wert auf eine klare, schlanke Architektur und die vollständige Java EE Konformität gelegt, und somit bewusst auf komplexere Frameworks wie Spring verzichtet. Die Web-Applikation wurde nach MVC entwickelt, die Controller-Schicht enthält hierbei ausschließlich Darstellungslogik.

Die Übergabe an die Frontend-Entwicklung erfolgte in Form funktionaler JSF-Templates ohne Layout. Im Projekt wurde weitgehend nach Kanban entwickelt.

Technologien

Java 8 JPA / JTA JAX-RS OpenJPA Geronimo Transaction OpenWebBeans PostgreSQL TomEE Tomcat JSF MyFaces PrimeFaces JSTL Servlet API JSP EL PostGIS Geoserver GIS OpenLayers Apache Http Server AJP13 mod_jk mod_proxy Git Bitbucket Gradle Jenkins JIRA Apache Shiro Apache Velocity Apache POI Apache PDFBox

2016 - 2019, 31 Monate
Backend-Entwicklung, Server- und Software-Architektur

Service Portal für Forstbetriebsgemeinschaften

Web-Applikation mit Funktionen aus dem Bereich der Verwaltungsaufgaben von Forstbetriebsgemeinschaften, wie Mitglieder-, Flurstücks-, Dokumenten- und Dienstleisteradministration, Buchhaltung, forstliche Maßnahmen.

Aufgaben und Setup

Beratung der fachlichen Konzeption
Technische Konzeption
Modellierung / Implementierung Persistenzschicht
Implementierung Geschäftslogik
Implementierung ReST-Services
Implementierung ReST-Clients und Darstellungslogik
CI / CD Prozesse, Server Administration
QS, Test, Dokumentation
Java 8 / Java EE 7
TomEE, Tomcat, Geoserver
Linux
Postgres, PostGIS
Eclipse
Gradle, Jenkins
Git, Bitbucket
JIRA

Ausführliche Beschreibung

Das Portal bietet Verwaltungsmitgliedern forstwirtschaftlicher Zusammenschlüsse umfangreiche Unterstützung bei der Organisation ihres Tagesgeschäfts. Funktionen sind beispielsweise eine vollständige Mitglieder- und Waldflächen-Verwaltung inklusive Erbengemeinschaften und anteiligem Flächenbesitz, Polterverortung mittels Karten, Buchhaltung und Maßnahmen-Verwaltung, Serienbrieferstellung, vielfältige Export- und Import- Funktionen u.v.m.

Konzeptionelle Herausforderung war es, einheitliche Lösungen trotz bundesweit sehr vielfältiger und unterschiedlicher Anforderungen der Forstbetriebsgemeinschaften zu finden.

Persistenz und Geschäftslogik des gesamten Systems sind innerhalb eines TomEE Applikation-Servers vollständig gekapselt und ausschließlich per ReST-Schnittstelle für die Web-Applikation erreichbar. Insgesamt wurde großen Wert auf eine klare, schlanke Architektur und die vollständige Java EE Konformität gelegt, und somit bewusst auf komplexere Frameworks wie Spring verzichtet.

Datensicherheit spielte bei Entwicklung eine große Rolle, so wurden etwa Verlinkungen zu privaten Dokumenten oder Aktivierungs-Links mit zusätzlichen SHA-256 Token kombiniert, um unberechtigte Zugriffe weitestgehend zu verhindern.

Die Web-Applikation wurde nach MVC entwickelt, die Controller-Schicht enthält hierbei ausschließlich Darstellungslogik. Die Übergabe an die Frontend-Entwicklung erfolgte in Form funktionaler JSF-Templates ohne Layout.
Im Projekt wurde weitgehend nach Kanban entwickelt.

Technologien

Java 8 JPA / JTA JAX-RS OpenJPA Geronimo Transaction OpenWebBeans PostgreSQL TomEE Tomcat JSF MyFaces PrimeFaces JSTL Servlet API JSP EL PostGIS Geoserver GIS OpenLayers Apache Http Server AJP13 mod_jk mod_proxy Git Bitbucket Gradle Jenkins JIRA Apache Shiro Apache Velocity Apache POI Apache PDFBox

2016
Software-Architektur und Prototyping

B2B/B2C-Service-Platform Veranstaltungen

Webbasierte Kooperations-Plattform für Eventveranstalter und Tourismus-Unternehmen sowie Ticketbuchung für Endkunden

Aufgaben und Setup

Technische Grobkonzeption
Entwicklung eines generischen Socket-Request-Systems
SocketResponse-Interpretation mittels JAXB
XML-Schema Erstellung (XSD)
xjc-Generierung von Domainklassen mittels Ant
Automatische, context-abhängige App-Initialisierung
Thread-basierte WatchServices
I18n
Prototyp-Erstellung und Dokumentation
Java
Tomcat
Linux
Eclipse, UML Designer
Ant
Git

Ausführliche Beschreibung

Das Portal ermöglicht es kulturellen Einrichtungen und Event-Veranstaltern direkt mit Tourismus-Unternehmen zu kooperieren. Endkunden können sich so beispielsweise an der Hotel-Rezeption über aktuelle Veranstaltungen informieren und diese einfach reservieren, buchen und bezahlen.

Die Applikation war über viele Jahre gewachsen und sollte dahingehend optimiert werden, dass Erweiterung, Pflege und Fehlerbeseitigung künftig leichter und vorallem sicherer, d.h. ohne unerwartete Seiteneffekte, möglich sind. Redundante Code-Fragmente sollten zentralisiert und Funktionalitäten generalisiert werden. Hierfür wurde bespielsweise die Socket-Kommunikation mit einem externen System zentralisiert und auf eine einheitliche JAXB-Verwendung festgelegt, wodurch Geschäftslogik aus Domain-Klassen entfernt und die Klassen selbst über xjc generiert werden können. Viele hundert Zeilen syntaktisch identischen und mühsam händisch gepflegten Codes entfallen.

Die Performanz konnte durch den Verzicht auf faktisch unbenötigte Aktionen verbessert werden, etwa durch Verwendung von Singleton-Instanzen für Veranstaltungsdaten, die sich nur dann selbst automatisch aktualisieren, wenn tatsächlich neue Daten vorliegen.

Schließlich kann durch die Verwendung eines auf die Anforderungen speziell zugeschnittenen Mini-MVC- Systems Geschäftslogik aus den JSPs entfernt und durch zentrale, generische Funktionalität in den entsprechenden Controller-Klassen ersetzt werden.

Technologien

Java 7 Servlet API Sockets JSTL EL Tomcat XML XSD DTD JAXB JKD xjc Ant Git UML Designer

2015
Java Entwickler

Liferay Medienshop für Bibliotheken

Medienshop für Bibliotheken mit über 160.000 Artikeln von über 2.300 Verlagen in verschiedenen Formaten, basierend auf Liferay.

Aufgaben und Setup

Implementierung von ReST-Services (Checkout, Bestandsprüfung, Stornierung..)
DB-Tabellenstrukturen und Entity-Beans
DAO-Implementierungen
Performance-Optimierung, SQL, JPQL
Dynamisierung von Freemarker- und Velocity-Templates
Erstellung Unit-Tests
QS und Dokumentation
Java EE, Java
Tomcat
Linux
Postgres
Eclipse, Liferay SDK
Maven, Jenkins
Git, Bitbucket
JIRA

Ausführliche Beschreibung

Medienshop für Bibliotheken mit über 160.000 Artikeln von über 2.300 Verlagen in verschiedenen Formaten. Kunden des Shops sind Bibliotheken und Bibliothekenverbände, die sich im System anmelden, und neben den angebotenen Artikeln auch Informationen zu ihrem aktuellen Bestand sowie früheren Bestellungen und deren Bestellstatus erhalten.

Der Shop basiert auf einem Liferay-System, die einzelnen Komponenten wie Warenkorb, Bestellungsverwaltung, Suchfunktion etc. wurden jeweils als eigenständige Portlets integriert, deren interne und externe (Artikeldaten- Import, Bestellung/Auslieferung...) Kommunikation über JMS und ReST-Services (Spring, Spring Boot) erfolgt.

Im Projekt wurde agil und weitgehend scrum-konform entwickelt, Task-Management mittels JIRA mit GIT- Unterstützung, CI/CD über Jenkins-gesteuerte Maven-Builds.

Technologien

Java 7 JPA / JTA JAX-RS CDI Liferay 6 Spring Framework Spring Boot Postgres SQL JPQL Tomcat Maven Git Jenkins JIRA Apache Freemarker Apache Velocity

2014
Java Entwickler

OpenCms-Cmis-Plugin für Eclipse

Das Plugin wurde für die Verwendung mit der OpenCms-Cmis-Schnittstelle erstellt und bietet unter anderem R-/W-Zugriffe auf ein oder mehrere OpenCms-VFS, Synchronisations- und Konfliktbearbeitungsfunktionen, einen OpenCms-Modul-Projekttyp und eine Deploy-on-Save- Funktion.

Aufgaben und Setup

Konzeption/Machbarkeitsstudien
Implementierung Core Plugin: Eclipse Workspace Access, Synchronisation Local- Remote, Deploy, Fetch, Konfliktbehandlung, Autodeploy on Save, Endpoint- Verwaltung.
Core Services für den Zugriff auf das VFS und den lokalen Workspace
Konzeption GUI, Usability
Implementierung GUI Plugin: Views, Wizards, Dialoge, Menus, Preferences, Fehlerbehandlung, Long-Running-Progress
Implementierung Help-Plugin, Context-Hilfe
Tomcat Classloader Konfiguration über Eclipse
Feature/Update Prozess
QS, Dokumentation, Manual
Java, OSGi
Tomcat
Linux
MySQL
Eclipse
Ant
Git
Mantis

Ausführliche Beschreibung

Um ein schnelleres und einfacheres Entwickeln von OpenCms-Modulen zu ermöglichen, wurde ein Eclipse- Plugin entwickelt, mit dessen Hilfe die Modul-Komponenten wie Template-JSPs, Formatter-JSPs, Content- Definitionsdateien, Resource-Bundles und auch Java-Klassen ohne gesondertes Deployment direkt in ein OpenCms publiziert werden können, so dass Änderungen mit dem Speichern in der IDE sofort auf dem (entfernten) System sichtbar sind.

Die Realisierung eines JIT-ClassLoaders für Tomcat wurde in ein separates Projekt ausgelagert (s. "Thread- basierter JIT-ClassLoader für Tomcat Server").

Das Plugin stellt keine speziellen Anforderungen an den lokalen Arbeitsbereich, alle Inhalte eines VFS können dadurch leicht in eine Versionsverwaltung integriert werden. Außerdem besteht die Möglichkeit, den lokalen Entwicklungsstand mit unterschiedlichen OpenCms-Instanzen, die in den Preferences verwaltet werden können, zu synchronisieren.

Weitere Features:

  • Web-Projekt-Initialisierung als OpenCms-Modul-Projekt
  • Konfliktbearbeitung / Compare Local - Remote
  • Synchronisation zwischen verschiedenen OpenCms-VFS
  • Auto-Deploy beim Speichern
  • Bearbeiten der VFS-Resource-Properties in Eclipse
  • Rekursive Touch-Funktion

Technologien

Java 7 OSGi Apache Chemistry CMIS Eclipse Plugins Eclipse SWT / JFace OpenCms Git

2010 - 2014
Java Entwickler

Shop / Kundenservice-Bereich eines Internet- und Mobilfunkproviders

Customer-Selfcare-Bereich mit zahlreichen Formularen zur Kunden-Stammdatenverwaltung und Produktkonfiguration, integriert als OpenCms-Modul in den Internetauftritt des Anbieters.

Aufgaben und Setup

Machbarkeitsstudien und Aufwandsschätzungen
MVC-Anbindung an Daten-Schnittstelle, Implementierung der Model-Schicht und funktionale Erstellung von JSPs
Definition von Anforderungen an die Schnittstelle und enge Kommunikation mit deren Entwicklern
Konzeption und Entwicklung eines dynamischen Mock-Daten-Providers mit Administrationsoberfläche für Entwicklungs- und Testsysteme
Konzeption und Entwicklung eines Administrationstools für FAQ (Import/Export, Kategorisierung, Rating, Filterung, Sortierung..)
Konzeption und Entwicklung eines generischen Formular-Frameworks
Entwicklung eines Frameworks zur Auswertung und zum Test von über die Backend- Schnittstelle gelieferten Ergebnissen
Generische Fehlerbehandlung / Eingabedaten-Validierung
QS, Dokumentation
Java, Java EE
JBoss 5, Tomcat 6
Linux
Postgres
Eclipse
Maven, Ant
Git, Subversion
JIRA

Ausführliche Beschreibung

Der Internetauftritt des Kunden unterteilt sich grob in einen allgemeinen Bereich, einen Shop (Internet-, Telefonanschluss-, DigitalTV-, Mobilfunkprodukte) und einen Kundencenter-Bereich. Letzterer bietet über den Rechnungsdownload und die Stammdatenverwaltung hinaus zahlreiche weitere Optionen, wie zum Beispiel Produktkonfiguration, Telefonbucheintrag, SIM-Karten-Aktivierung, Anschlussverfügbarkeit oder DSL- Anbieterwechsel.

Kern des Projekts war die Anbindung des Kundenservice-Bereichs an die Java-Schnittstelle eines Drittanbieters, die Aufbereitung der gelieferten Rohdaten zur Anzeige, sowie die Übergabe der Daten aus den zahreichen Benutzerformularen an die Schnittstelle und die Interpretation und Behandlung der jeweiligen Antwort. Der Kundenservice-Bereich wurde als Modul in OpenCms integriert.

Für den Betrieb von Entwicklungs- und Testumgebungen wurde ein Mock-System entwickelt, das alle möglichen Antworten der Schnittstelle per Admin-Oberfläche simulieren und potentielle Fehler provozieren kann. Es wurde ein einfaches Framework implementiert, das es erlaubt, Schnittstellen-Funktionen unkompliziert und schnell zu testen.

Technologien

Java 6 OpenCms Servlet API JSTL EL Tomcat JBoss JQuery Maven Ant Git Subversion

2012 - 2013
Java Entwickler

Liferay-Medienshop

Medien-Portal mit einer großen Auswahl an eHörbüchern, eBooks, Games, Software und Videos sowie Bücher, DVDs, Blu-Rays und Audio-CDs.

Aufgaben

Entwurf und Entwicklung eines Portlets zum Kaufen und Einlösen von Gutscheinen im Shop
Anbindung an Warenkorb und Finanzmodul-Schnittstelle
Erweiterung Administrationshook

2013 - 2014
Java Entwickler

Flexibles Baukastensystem für Ärzte-Webanwendungen

Sammlung von OpenCms-Modulen, die ein äußerst schnelles Erstellen einer einfachen branchenspezifischen Website mit individuellem Layout erlauben.

2013
Java Entwickler

Abo-Shop-System "Geschenkartikel für Hunde"

Unterstützung bei der Finalisierung des Projekts, Abarbeitung noch offener Tickets im Admin- und Shopbereich, Integration DHL- und Paypal-Anbindung.

2009
Java Entwickler

Web-Portal eines Telekommunikationsunternehmens

CoreMedia-Portal mit Shop für DSL-, Festnetz- und Mobilfunk-Produkte

2008
Java Entwickler

Internetpräsenz eines Automobilkonzerns

Erweiterungen in den Bereichen CRM, Car-Configurator, Gebrauchtwagensuche und Händlerverzeichnis

2008
Java Entwickler

Service-Portal für Tarif-Vergleiche

Vergleich der Tarife von Strom-, Gas, Kfz-Versicherungs- und DSL-Anbietern auf Grundlage individueller Nutzer-Angaben.

2005 - 2010
Java Entwickler

Konfigurations- und Übersetzungs-Tool

Tool zur marktspezifischen Konfiguration und Übersetzung von Online-Diensten eines Automobil- Konzerns.

© 2025 Jörg Baumann. Icons: Icons8. Photogr.: Unsplash