Schlagwörter
Skills
- JEE
- JSP
- Expression Language (EL)
- Frameworks
- Spring MVC
- Hibernate
- HQL
- SQL
- Apache FOP
- JIRA
- Versionsverwaltung
- GIT (u.a. Bitbucket)
- SVN
- CVS
- Continuous Integration
- Bamboo
- Jenkins
- Entwicklungsumgebung
- Eclipse
- Netbeans
- Datenbanken
- Postgres
- MySQL
- Oracle
- Docker
- Ansible
Projekthistorie
In diesem Projekt sollte die Anwendung und aktuellen Gesichtspunkten der Software-Entwicklung erweitert werden. Dafür wurde die Anwendung so erweitert, das die Frameworks Struts 1 und Spring Boot zusammen arbeiten.
Strategisch wird mit diesem Projekt eine Langzeit-Migration angestrebt, die alte Funktionalitäten stückweise nach Spring-Boot migriert, um Struts 1 am Ende entfernen zu können.
• Integration von Spring-Boot in das bestehende System
• Umsetzung neuer Features inkl. Unit- und Integrationstests
• Migration alter Anwendungsteile unter Beibehaltung der bestehenden DB
• Erneuerung der Oberfläche unter Einsatz von Bootstrap
Die Planung und Koordinaten der Aufgaben erfolgt mit Kanban als Entwicklungsprozess.
handelt es sich um ein verteiltes System. Einzelne Microservices übernehmen dabei verschiedene
Aufgaben. Die Kommunikation der Services erfolgt über einen Message-Broker; das Frontend wird
mittels REST versorgt.
Ziel dieses Projektes war es, das System um fachliche Anforderungen zu erweitern, technisch zu
normalisieren und in Teilen die Architektur zu optimieren.
Die Anwendung wurde bereits 4 Jahre entwickelt, als ich dem Team beitrat. Zu meinen Aufgaben
gehörten:
- Umsetzung einzelner Features inkl. Unit- und Integrationstests
- Planung und Konzeptionen von technischen Aufgaben
- Prüfung und Optimierung der Code-Qualität
Zeitplans zum Einsatz.
Ziel des Projektes war die Ablösung des alten Customer Self-Service auf der Basis von Angular 2+ (aktuell Angular 8). Dabei wurden diverse Anwendungsfälle aus dem bestehenden Customer Self-Service herausgelöst und auf die neue Platform migriert. Neben dem Wechsel auf die Angular-Platform wurde auch diverse andere „neue“ Wege beschritten, wie die Anwendung reaktiver Programmierung (NgRx), die Einführung von OpenID Connect und die Bündelung der Rest-Schnittstellen via GraphQL.
Meine primäre Aufgabe war die Umsetzung von Anwendungsfällen. Jedoch kamen auch hinzu:- Coaching des Teams / Wissenstransfer
- Konzeption / fachliche Unterstützung der Product-Owner
- Organisation teamübergreifender Aufgaben/Zusammenarbeit
Grundlagen des Entwicklungsprozesses waren BDD (Behavior Driven Development) und Scrum.
Technologien: Angular8, NgRx, Typescript, REST, GraphQL, OpenID Connect, NX, BDD, Karma, node.js, npm, Git, Jira, Bitbucket, Bamboo, IntelliJ, Scrum
Teamgröße: 10
Tätigkeiten: Umsetzung, Test, Coaching, Fachkonzeption
Bei dem entwickelten System handelt es sich um eine Plattform für Unternehmenskommunikation, Kollaboration und Wissensmanagement. Die Anwendung ähnelt Facebook, wird jedoch sowohl als SAAS-Lösung als auch als On-Premise-Lösung angeboten. Durch die Verwendung eines Javascript-basierten User-Interfaces (Angular) und eine Kommunikation mit dem Backend mittels Rest, existiert eine starke Schichtentrennung. Um eine hohe Skalierbarkeit zu gewährleisten und den Betrieb beim Kunden zu verbessern, wurden die einzelnen Komponenten der Anwendung auf verschiedene Docker-Container aufgeteilt.
Ich trat in der Endphase dem Projekt bei, um eine termingerechten Fertigstellung sicherzustellen. Zu meinen Aufgaben gehörten neben dem Bugfixing und Umsetzung neuer Funktionen unter anderem auch:
-
die Normalisierung der gewachsenen Rest-API
-
Stabilisierung komplexer Integrationstest
-
Verbesserung der Release-Automation des CI-Servers
In der Software-Entwicklung war SCRUM als Entwicklungsprozess fest etabliert und wurde konsequent umgesetzt. Die Projektsprache war englisch.
Technologien: Java (J2SE, J2EE), Postgres, Spring, Spring Boot, AngularJS, JPA, node.js, Gulp, Bower, REST, Git, SCRUM, Jira, Bitbucket, Bamboo, Docker, Eclipse
Teamgröße: 12
Tätigkeiten: Umsetzung, Test, DevOps
Das Produkt „askDANTE“ ist eine webbasierte Zeiterfassung für Arbeits- und Projektzeiten mit einer angeschlossenen Personal-Einsatzplanung. Daten können über den Browser oder angeschlossene Hardware-Terminals erfasst werden. Da das System sowohl als SaaS-Lösung als auch als On‑Premise-Lösung angeboten wird, wurde besonderer Wert auf die Modularität gelegt. So sind die eigentliche Anwendung und das Backend auf verschiedene Systeme verteilt, die über REST-Schnittstellen miteinander kommunizieren.
Zu meinen Aufgaben gehörten die Umsetzung der Anforderungen des Fachbereichs über alle Schichten. Hierzu zählten sowohl die Erstellung von Frontend-Komponenten, der Entwurf von Komponenten in der Service-Schicht wie auch Anpassungen im Persistenz-Layer und performante Datenbankabfragen. Darüber hinaus entwarf ich die architektonische Grundlagen der Anwendung ebenso wie das Datenbankdesign. Die Entwicklung erfolgte testgetrieben unter Verwendung von CleanCode-Prinzipien und unter Kontrolle eines CI‑Servers. Der Entwicklungsprozess war SCRUM basiert.
Technologien: Java (J2SE, J2EE), Tomcat, Postgres / SQL, Spring, Spring MVC, AngularJS, Hibernate, REST, FOP, Git, Eclipse, SCRUM, Jira, Bitbucket, Bamboo
Teamgröße: 6
Tätigkeiten: Umsetzung, Test, Architektur, Coaching
Das Produkt „paginium“ ist ein Enterprise Document Server, über den Dokumentenvorlagen zentral und unabhängig vom Ausgabekanal gepflegt, Dokumente prozessoptimiert beauftragt und Dokumente dem Endkunden auf dem optimalen Weg (Mail, Fax, Brief) zugestellt werden können. Dadurch können die Prozess- und Produktionskosten reduziert und die Wartbarkeit und Qualität der Kundenkommunikation erhöht werden.
Zu meinen Aufgaben gehörten das Refactoring der Komponenten im Backend und der Entwurf einer modularen Architektur. Die Entwicklung erfolgte nach CleanCode-Prinzipien; ein Großteil der Funktionalität wurde durch Unit- und Integrationstests abgesichert.
Technologien: Java (J2SE, J2EE), Ruby On Rails, SQL, Tomcat, Postgres, Spring, Hibernate, SOAP, FOP, Eclipse, SCRUM, Jira, Jenkins, SVN
Teamgröße: 3
Tätigkeiten: Umsetzung, Test, Architektur, Coaching
Zur Ablösung einer existierenden Lösung sollte das neue System neben einer Optimierung der Software-Ergonomie und Benutzerfreundlichkeit die folgenden Eigenschaften unterstützen: webgestützt, mandantenfähig, revisionssicher, individuell anpassbar.
Zu den Aufgaben gehörte das Erstellen des Architekturkonzepts und der ersten Implementierung der Grundanforderungen. Neben der Umsetzung der Anforderungen des Fachbereichs unterstützte ich die Fachabteilung bei der Definition der Anforderungen und die Entwicklung bei der Einführung eines agilen Entwicklungsprozesses nach SCRUM in der Position als SCRUM-Master.
Technologien: Java (J2SE, J2EE), SQL, Tomcat, Postgres, Spring, Hibernate, Eclipse, JasperReports, SCRUM, Jira, Jenkins, SVN
Teamgröße: 8
Tätigkeiten: Umsetzung, Test, Coaching, Architektur, Fachkonzeption
Ein auf STRUTS basiertes System zur Incentivierung von Kundentransaktionen musste um diverse Funktionen erweitert werden. Hierzu gehörten mannigfaltige Änderungen im Kundenfrontend, die Erweiterung eines Berechtigungskonzeptes für administrative Benutzer sowie die Erstellung diverser Reports mit POI für Excel. Hier kam in einem großen Maße SQL bei der Abfrage und PL/SQL bei der Vorbereitung der Daten zum Tragen. Darüber hinaus wurden von mir Aufgaben im Bereich der Planung neuer Module, der Qualitätssicherung und der Einarbeitung neuer Mitarbeiter übernommen.
Technologien: Java (J2SE, J2EE), SQL, PL/SQL, Resin, Oracle, STRUTS, Eclipse, POI
Teamgröße: 5
Tätigkeiten: Umsetzung
Ein webgestütztes System zur Historisierung und Nachverfolgung für Pläne von Architekten und Bauträgern musste im Funktionsumfang bedarfsgerecht erweitert werden.
Zentrale Aufgabe war, die Benutzerführung an diversen Stellen zu optimieren. Jedoch gehörten auch viele kleinere Tätigkeiten dazu, wie das Herunterladen von Dateien gemäß des Rechtesystems und die Erstellung von PDF-Dokumenten mittels FOP.
Technologien: Java (J2SE, J2EE), Resin, Sybase, STRUTS, Eclipse, FOP
Teamgröße: 2
Tätigkeiten: Umsetzung, Architektur
Bei dem bearbeiteten System handelte es sich um ein webbasiertes System zur Verwaltung von Vertragsdaten von Kunden. Mit dem neu entwickelten Modul sollten dynamisch generierte Verträge automatisch dem Kunden per E-Mail zugeschickt werden können. Die Verträge wurden auf Basis von OpenOffice Dokumenten personalisiert und gemäß der Vertragsbestandteile des Kunden zusammengestellt. Für die Erstellung der Dokumente als PDF wurde direkt eine OpenOffice-Instanz angesprochen. In einem weiteren Modul konnten die Vertragspakete verwaltet und Testverträge zur Qualitätssicherung erstellt werden.
Aufgabenschwerpunkte waren die Planung der neuen Module und der Dokumentenerstellung sowie die Umsetzung des Moduls für den Vertragsversand und die Kapselung der Funktionen in einer Bibliothek.
Technologien: Java (J2SE, J2EE), JBoss, Tomcat, Oracle, STRUTS, Eclipse, OpenOffice
Teamgröße: 4
Tätigkeiten: Umsetzung, Architektur
Bei der erstellten Anwendung handelte es sich um ein System zum Verwalten und Archivieren von Bildern und Bildinformationen. Für die Inbetriebnahme des neuen Systems mussten zuerst die Altdaten migriert werden. Die Migration wurde über eine komplexe Logik in Java implementiert. Darüber hinaus gehörte die Implementierung von serverseitiger Logik und des Swing-Frontends zu den Aufgaben. Diese beinhaltete neben den Standardanwendungen von Swing die Bereiche Event-Steuerung und Drag&Drop. Die Erstellung von Reports mittels Oracle-XML und XSLT-Transformationen rundeten die Aufgabenbereiche ab.
Technologien: Java (J2SE, J2EE), JBoss, Hibernate, Oracle, Swing, Netbeans, XSLT
Teamgröße: 3
Tätigkeiten: Umsetzung
Aufgabenschwerpunkt dieses Projektes war die Überarbeitung und Erweiterung des Berechtigungskonzeptes. Weitere Aufgaben waren in der Planung und Umsetzung einer Lösung zur Erstellung von lokalisierten Reports unter Verwendung der landestypischen Sprachen und Schriftsätze zu sehen. Dabei wurde STRUTS in das bestehende Framework eingebunden. Als begleitende Aufgabe galt es, die internen Mitarbeiter weiterzubilden sowie neue Ideen, Ansätze und Technologien aufzuzeigen.
Technologien: Java (J2SE, J2EE), STRUTS, Resin, Oracle, Jasper, Ireports, Eclipse
Teamgröße: 5
Tätigkeiten: Umsetzung, Coaching
Ein bestehendes System zur Konfiguration und Kontrolle von Bestellungen im PowerSeller Bereich eines großen Telekommunikationsunternehmens wurde vom BEA WebLogic Portal-Server auf JSP/STRUTS migriert. Es wurde dabei ein CMS System von CoreMedia integriert.
Technologien: Java (J2SE, J2EE) mit JSP/Servlet, BEA WebLogic, STRUTS, Oracle, Eclipse, WebServices, HTML
Teamgröße: 7
Tätigkeiten: Umsetzung
Für einen Kunden sollte ein System entwickelt werden, mit dem bei weltweiten Segelveranstaltungen die Positionen von Schiffen sowie Informationen zu den Schiffen angezeigt werden können. Hierfür wurden Grafiken mit den Routen der Teilnehmer erzeugt, die mit weiteren Informationen, wie dem Wetter, angereichert werden.
Die Aufgaben umfassten neben der Erstellung eines performanten Designs und der Implementierung auch die Bedarfsanalyse in Zusammenarbeit mit dem Kunden.
Technologien: Java (J2SE, J2EE) mit JSP/Servlet, HTML/CSS, XML, Tomcat, MySQL, Eclipse
Teamgröße: 2
Tätigkeiten: Umsetzung, Architektur, Fachkonzeption
Anpassung des bestehenden Systems an neue Anforderungen.
Technologien: Java (J2SE) mit Swing, WebStart, Oracle, Eclipse
Teamgröße: 2
Tätigkeiten: Umsetzung
Innerhalb des Projektes ging es um verschiedene Teilaufgaben mit verschieden Zielrichtungen und Aufgabenfeldern: Umsetzung und Design eines Webfrontends zum Druck von Kundenschreiben über einen externen Dienstleister/Lettershop sowie Mitarbeit an einem Abrechnungssystem für Kunden-/Transaktionsdaten.
Technologien: Java (J2SE, J2EE) mit JSP/STRUTS, HTML/CSS, XML, WebServices, Oracle, MySQL, Eclipse
Teamgröße: 4
Tätigkeiten: Umsetzung
Zur Anzeige von Wetterdaten wurde eine Anwendung entworfen und umgesetzt, mit der verschiedene Informationen zum Wetter (Wind, Strömung, Isobaren, ...) in verschiedenen geografischen Gebieten angezeigt werden können. Als Grundlage für diese Daten dienten spezielle Dateien, die per Handy/E-Mail empfangen, zur Anzeige gebracht und ausgedruckt werden können.
Technologien: Java (J2SE) mit Swing, XML, Eclipse
Teamgröße: 2
Tätigkeiten: Umsetzung, Architektur
Mitarbeit bei der Neuentwicklung eines Portals zur Vermittlung von Arbeitsstellen. Der Schwerpunkt der Aufgaben lag bei der Umsetzung von Modulen (Frontend und Backend) des Systems.
In diesem Rahmen wurden leitende Aufgaben für einen Teil des Teams ebenso übernommen wie koordinative Aufgaben zwischen den Teams, wie z.B. die Schnittstellen-Spezifikation und Verantwortlichkeit für Definition und Kontrolle von automatisierten Tests innerhalb des Teams.
Technologien: Java (J2EE) mit JSP/Servlets, HTML/CSS, JUnit, Oracle, Bea Weblogic, JBuilder
Teamgröße: 8 / gesamt 150
Tätigkeiten: Umsetzung, Test, Coaching