erfahrung
Projekthistorie
Während meiner bisherigen Tätigkeit habe ich verschiedene Projekte kennengelernt. Selbständiges Arbeiten in wechselnden Teams und die Übernahme der Verantwortung für die Ergebnisse waren für mich immer selbstverständlich. Die Stationen im Einzelnen:
11/2021 – 04/2023
Senior Software Engineer (Java)
Weiterentwicklung eines Transportmanagementsystems für den kombinierten Güterverkehr. Dazu gehörten die Benutzerschnittstelle zur Erfassung und Bearbeitung von Aufträgen, die Business Logic für die Verarbeitung der Aufträge und Stammdaten, das Backend für ein Webportal, sowie zahlreiche Schnittstellen für den elektronischen Datenaustausch mit Geschäftspartnern.
Systemumgebung waren zwei Linux-Maschinen (CentOS) (Entwicklung mit Java, Spring, Spring Boot, Hibernate) und Java(RCP)-Clients unter Windows. Als Datenbank diente Informix.
Meine Aufgaben umfassten im Wesentlichen:
- Analyse und Verfeinerung der User Stories mit der Fachabteilung und im Scrum-Team
- Berücksichtigung einer guten Usability und nichtfunktionaler Anforderungen
- Datenmodellierung mit JPA, Hibernate, Informix
- Umsetzung der User Stories in Frontend und Backend
- Lösung von Performance-Problemen
- Erstellung der automatisierten Unit-, Integrations- und Oberflächentests
- Code Review und manuelles Testen der anderen im Scrum-Team entwickelten Features
Eingesetzte Technologien und Tools:
- Java, Spring, Spring Boot, JPA, Hibernate, SQL, XML, JSON, REST, SOA, Eclipse RCP, SWT, Camel, ActiveMQ, Maven, Git, GitLab, Jenkins, JUnit, Mockito, QF-Test, FitNesse, Informix Database, DB Visualizer, Jira, Confluence, MS Teams
12/2020 – 06/2021
Softwaredesigner, Systemanalytiker (Java + Web)
Migration der Benutzeroberfläche eines Transportmanagementsystems (s.u. Vorprojekt) von Java Swing auf einen Angular Web Client. Dabei wurde die Business Logic des Java-Backend weitgehend beibehalten und im Frontend gleichzeitig Verbesserungen der Usability / User Experience umgesetzt. Im Rahmen eines MVP (Minimum Viable Product) wurden die grundlegenden technischen Konzepte für diese Migration entwickelt und in einer ersten Implementation praktisch erprobt.
Meine Schwerpunkte waren:
- Analyse der bestehenden Funktionen und möglicher Verbesserungen
- Abstimmung mit den UI-/UX-Designern und Entwicklern hinsichtlich Umsetzbarkeit, Aufwand und Priorisierung
- Erstellung funktionaler Beschreibungen und technischer Konzepte bzw. Modelle
- Gliederung in User Stories für Frontend und Backend
- Strukturierung des Frontends und Identifikation von wiederverwendbaren Komponenten
- Design des neuen API im Java-Backend
- Dokumentation etablierter Vorgehensweisen
- Zusammenarbeit in einem länderübergreifenden Scrum-Team (Arbeitssprache Englisch)
Eingesetzte Technologien und Tools:
- Java, Angular, TypeScript, Enterprise Architect, Confluence, Jira, Frontify, UML, MS Word, SVN, Git, LemonTree, Zoom, Mattermost
06/2019 – 06/2021
Softwaredesigner, Systemanalytiker (Java)
Neu- und Weiterentwicklung eines weltweit eingesetzten Transportmanagementsystems. Als Softwaredesigner und Systemanalytiker war ich für die Analyse von Anforderungen, das funktionale sowie das technische Design verantwortlich. Schwerpunkt waren Features für die Abwicklung von Aufträgen der Seefracht und Luftfracht sowie im Bereich Dokumentenmanagement.
Systemumgebung war Java mit Spring und Hibernate serverseitig und ein Java(Swing)-Client. Als Datenbank diente Oracle.
Meine Aufgaben umfassten im Wesentlichen:
- Analyse der Anforderungen und Umsetzung in ein funktionales und technisches Softwaredesign
- Berücksichtigung einer guten Usability und nichtfunktionaler Anforderungen
- Datenmodellierung mit JPA, Hibernate, Oracle
- Entwicklung von Testfällen zur Verifizierung des Datenmodells
- Unterstützung der Java-Entwickler bei der Umsetzung der Entwürfe und bei der Analyse von Fehlern
- Codereviews hinsichtlich der Umsetzung des Softwaredesigns
- Durchführung von Integrationstests
- Bearbeitung von Fehlermeldungen
- Vorgehen nach V-Modell und den Designrichtlinien des Kunden in länderübergreifenden Teams (Arbeitssprache Englisch), teilweise auch agile Ansätze
Eingesetzte Technologien und Tools:
- Enterprise Architect, MS Word, GUI Design Studio, UML, Java, JEE, Hibernate, SQL, JPA, Spring, Swing, Maven, Eclipse, SVN, Git, JUnit, Mockito, Oracle Database, Oracle SQL Developer, SoapUI, Jira, Confluence, Quality Center, LemonTree, Zoom, Mattermost
07/2016 – 02/2019
Senior Entwickler, Teilprojektleiter und Teamleiter (C# + Web)
Im Rahmen der Neuentwicklung eines Prozessautomatisierungssystems war ich als Entwickler und Teilprojektleiter für die Erstellung von Softwarefunktionen verantwortlich, z.B. zum Datenaustausch mit anderen Systemen oder zur Migration zwischen verschiedenen Automatisierungssystemen. Dazu gehörte die Leitung eines Teams von 4 Personen sowie die Koordination externer Zulieferungen.
Systemumgebung war serverseitig ein Windows Server mit IIS (Entwicklung mit C#) und clientseitig ein Webbrowser (Entwicklung mit HTML, JavaScript, AngularJS).
Besondere Herausforderungen waren die schnelle Einarbeitung in das laufende Projekt sowie der erfolgreiche Aufbau eines Entwicklerteams an einem weiteren Standort und der dafür notwendige Wissenstransfer.
Meine Aufgaben umfassten im Wesentlichen:
- Analyse der Anforderungen und Umsetzung in User Stories sowie Software Design incl. Datenmodellierung
- Implementierung der Anwendungslogik und der grafischen Benutzeroberfläche (Web UI)
- Vorgehen nach agilen Methoden, enge Zusammenarbeit mit dem Produktmanagement
- Planung und Koordination der Entwicklungsaufgaben
- Sicherstellung der Code-Qualität und Testabdeckung
- Präsentation der Ergebnisse gegenüber den Projektleitern, Produktmanagern, Dokumentationsteam und Testteam
Eingesetzte Technologien und Tools:
- C#, JavaScript, AngularJS, HTML5, CSS, jQuery, Visual Studio mit TFS, Balsamiq Mockups, Enterprise Architect, Google Chrome, NUnit, Moq, SonarQube, UML, XML, JSON, LINQ
07/2008 – 06/2016
Senior Software Engineer (Java)
Das Projekt umfasste die laufende Weiterentwicklung, Wartung und Pflege eines
Kraftwerksleittechniksystems. Mein Schwerpunkt lag auf der Funktionsentwicklung für die nutzergerechte und effiziente grafische Benutzeroberfläche.
Systemumgebung war ein Java Client unter Windows, angebunden an mehrere ebenfalls mit Java realisierte Serverkomponenten.
Realisierte Features waren z.B. Verbesserungen des Engineering-Prozesses, Anbindung externer Systeme, ein Redesign der Benutzeroberfläche, oder die Integration von Web-Apps in das System.
Meine Aufgaben waren:
- Analyse der Anforderungen (Lastenhefte) und Umsetzung in Pflichtenhefte sowie Softwaredesign (nach V-Modell)
- Berücksichtigung einer guten Usability, Entwurf geeigneter Workflows, sowie Beachtung von nichtfunktionalen Anforderungen
- Implementierung der Benutzeroberfläche und der Anwendungslogik
- Sicherstellung der Code-Qualität und Testabdeckung
- Koordination von Entwicklungsaufgaben in internationalen, verteilten Teams (Deutschland, Osteuropa, Asien)
- Einführung von entwicklungsnahen, automatisierten UI-Tests und Vermittlung der gewonnenen Erfahrungen in die Systemtest-Abteilung
- Mitarbeit bei der Pilotierung von Scrum im Projekt
Eingesetzte Technologien und Tools:
- Java, Swing, Web Start, JxBrowser, JViews, JFreeChart, Apache log4j/POI/Ant, XML, HTML, Eclipse, ClearCase, JUnit, Mockito, EMMA, CheckStyle, DOORS, MS Visio, UML, QF-Test, Groovy, Equinox OSGi, TCP/IP
06/2000 - 06/2008
Software Engineer (C++, VB)
Entwicklung eines grafischen Engineeringsystems für die Projektierung von Industrieanlagen.
- Implementierung der Benutzeroberfläche (Windows Desktop UI), Anwendungslogik und Datenbankanbindung
- Ausarbeitung von Pflichtenheften und Designdokumenten
- Unterstützung der Hotline und des Testteams
- Problemlösung bei der Inbetriebsetzung auf Anlagen
Eingesetzte Technologien und Tools:
- C++, Visual Basic, Visual Studio, MS Visio, SQL Server, MS Access, ClearCase, DOORS, UML, XML, HTML