Java Anwendungsentwicklung, Backend Entwicklung, Systemprogrammierung
Aktualisiert am 29.07.2019
Profil
Freiberufler / Selbstständiger
Verfügbar ab: 02.09.2019
Verfügbar zu: 100%
davon vor Ort: 95%
Deutsch
Muttersprache
Englisch
fliessend
Französisch
Grundkenntnisse

Einsatzorte

Einsatzorte

Bonn (+150km)
nicht möglich

Projekte

Projekte

2018, 2 Monate
Branche: Handel, Einzelhandel

Rolle: Softwareentwickler, Qualitätssicherung

Projekt
NEWPOSS

  • Durch einen sich u. a. auf den Handel spezialisierten IT ? Dienstleister wurde ich beauftragt, für einen seiner Kunden, einem deutschen, mittlerweile international operierenden Einzelhändler, im Rahmen des Projektes NEWPOSS tätig zu werden.
  • Dies betraf vor allem die Wartung und Weiterentwicklung des vom Einzelhändler eingesetzten Kassensystems (POS), das unter der Programmiersprache Java entwickelt wurde. Weiterhin gehörten zu den Aufgaben das zugehörige Fehler- und Anforderungsmanagement, Business Analyse, Testen und Dokumentation.

Eingesetzte Techniken
Windows 10 Pro, Java SE/EE, TREND (proprietäres Modellierungstool), UML 2, Eclipse IDE + Oomph, Maven, Git, XML, Bndtools (OSGi), H2, PostgreSQL, Jira, Jenkins; Model Driven Requirements Engineering: TREND/Analyst (internes Tool); Agile Software-Entwicklung / Stand-Up Meetings;

Testing: Integrity (proprietäres Framework), JUnit

Aktivitäten

  • Einarbeitung (Onboarding) in das Projekt NEWPOSS und dessen projektspezifischer Arbeitsweisen und Workflows (z. B. intern definierte Git-Flows, Sourcecodeverwaltung - Branching Schemata oder der Aufbau eines lauffähigen Projekts) bzw. der genutzten Tools, wie z. B. Maven-Builds, Jira und Jenkins.
  • Einrichtung der auf einer Eclipse IDE und Oomph basierten Entwicklungsumgebung, die durch die firmeneigenen Frameworks (s. o.) ergänzt wurden.
  • Umfangreiche Schulungen der proprietären, jedoch komplexen im Projekt eingesetzten Frameworks und Tools TREND, POS-Core, Integrity und TREND/Analyst.
  • Parallel zu den noch laufenden Schulungen und vor allem danach erfolgte bereits eine Bearbeitung erster, kleinerer Issues, um sich mit dem Projekt und dessen Abläufen in der Praxis vertraut zu machen. Zur Erhöhung der Testbarkeit der Software sollte, wenn möglich, für jeden Issue mindestens ein zugehöriger Testcase in Form eines Komponententests (JUnit oder Integrity) erstellt werden. Dabei kamen auch die oben erwähnten Konzepte der modellgetriebenen Softwareentwicklung und die des Model Driven Requirements Engineerings zum Einsatz.
  • Eine Dokumentation der behobenen Issues erfolgte gemäß der beim IT-Dienstleister zugrunde gelegten Workflows.

Erfolg

Alle von mir bearbeiteten Issues sind auch erfolgreich abgeschlossen worden. Dank dieses Projektes konnte ich mir einen schnellen und guten Überblick über die modellgetriebene Software-Entwicklung und die beim IT ? Dienstleister genutzten Abläufe und Werkzeuge verschaffen.


2018, 3 Monate
Branche: Eigene Produktentwicklung, Social Media u.a.

Rolle: SW-Architekt, Designer, Softwareentwickler

Produktentwicklung General- Parser

  • Weiterentwicklung des seit 2015 ruhenden eigenen Softwareproduktes AddressEventRecognizer, jetzt mit neuem Namen GeneralParser.
  • Textanalyse in möglichst beliebigem Kontext bzw. Domäne mittels natürlich sprachlicher Texterkennung und semantischer Zuordnung oder bei statischen Texten über Templates.
  • Das Produkt befindet sich derzeit noch in der Entwicklung. Eine erste Version wird eine Erkennung von Terminen und Kontakten enthalten.


Eingesetzte Techniken
macOS / Windows, Visual Studio Code, Java SE/EE, Datenmodellierung, Design Patterns, OOA/OOD, Expertensysteme (KI), UML, XML, Maven, Git, Commons ? MultiMaps, JDOM, JAXP, JPA Testing, statische Analyse: JUnit, SonarQube

Aktivitäten

  • Wechsel der bisher für dieses und aller anderen eigenen Projekte eingesetzten Sourcecodeverwaltung SVN nach Git; Git wird sehr gut von VS Code unterstützt.
  • Umstellung dieses und aller anderen eigenen bisher noch nicht umgestellten Projekte auf Java 8.
  • Festlegung der neuen Architektur und der Datenmodelle unter der Berücksichtigung, möglichst beliebige Domänen hiermit beschreiben und dann auch erkennen zu können.
  • Exemplarisch werden in der XML - Konfigurationsdatei, die in strukturierter Form die verwendbaren Domänen beschreibt, die beiden Domänen Event/Termin und Adresse den Vorgaben entsprechend angepasst. Auslagerung der bisher im Code hinterlegten Artefakte wie z. B. verwendete Artikel und Präpositionen.
  • Abgleich des JAXP Parsers, um obige XML ? Konfigurationsdatei zu erkennen und die entsprechenden Regeln daraus abzuleiten.
  • Verbannung aller domänenspezifischen Klassen wie z. B. DateTime oder Location. Stattdessen müssen alle nach dem Parsen gefundenen und erzeugten Artefakte über ein ?Mapping? in eine domänenspezifische Java API abgebildet werden.
  • Implementierung der domänenspezifischen Klassen für die Domänen Event/Termin und Adresse.
  • Für die Domäne Event/Termin wird die freie Java ? API iCal4j verwendet, die aus den erzeugten Objekten einen nach RFC 5545 konformen Kalendereintrag in dem Format iCALENDAR erzeugt.

Erfolg

Modellierung in XML, Verwendung verschiedener Parser, Know How Aufbau im Umgang mit Git und Visual Studio Code


2018, 3 Monate
Branche: Handel

Rolle: Architekt, Designer, Softwareentwickler, Qualitätssicherung

Projekt
(Produktent wicklung), Directory-Watcher
Refactoring und Weiterentwicklung des universellen Batchverarbeitungsund Queueing Programmes Directory-Watcher (siehe die erste Version in 2010 / 2011 inklusive Beschreibung, sowie die zweite Version in 2013). Hauptaugenmerk lag auf der Migration von Java 1.6 auf 1.8, womit auch einige unter Java 1.6 verwendete Frameworks ausgetauscht werden mussten. Weiterhin erfolgte eine Umstellung der Sourcecodeverwaltung von SVN auf Git. Zudem erfolgte eine Evaluierung von Visual Studio Code von Microsoft und ein Vergleich mit Eclipse

Eingesetzte Techniken
macOS / Windows, Java SE, Batchprogrammierung, Parallele Programmierung / Multi-Threading, Systemprogrammierung, Proactor Pattern, Visual Studio Code, Maven, Git, Java Swing; Testing: JUnit, SonarQube

Aktivitäten

  • Evaluierung der neuen und schnellen IDE Visual Studio Code (VS Code) von Microsoft mit dem Java Extension Pack; hierbei wurden mir wichtige Aspekte, wie Übernahmemöglichkeit von Eclipse Projekten, Sourcecodeverwaltung, Code Completion, Refactoring, Einbindung von Build Werkzeugen, u. a., für das alltägliche Arbeiten als Entwickler im Vergleich zu Eclipse berücksichtigt, die bis auf wenige Punkte auch erfüllt werden konnten.
  • Wechsel der bisher eingesetzten Sourcecodeverwaltung SVN nach Git; Git wird sehr gut von VS Code unterstützt.
  • Umstellung des build Prozesses von Ant auf Maven; Einbau des appbundle-maven-plugin?s, um das unter macOS erzeugte Java Programm in eine Apple konforme Application (.app) zu überführen.
  • Migration auf Java 1.8, diese Version verlangt auch VS Code.
  • Weglassung der bisher extern verwendeten jpathwatch Biblliothek, da sie ab Java 1.7 ins JDK integriert wurde; Umstellung von OSXAdapter auf das Apple Events Package, um von Java Swing heraus Apple spezifische Menuleisten aufbauen zu können und auf Standard- Events (z. B. Preferences-, Quithandler) reagieren zu können.
  • Verbesserte Synchronisierung der automatisierten Tests unter JUnit mit dem parallel laufenden EDT (AWT Event Dispatching Thread), der vom Hauptprogramm (main) heraus gestartet wird.

Erfolg

Das Programm wird wegen seiner großen Flexibilität weiterhin mit Erfolg beim Kunden und auch intern bei mir eingesetzt.


2017, 5 Monate: Krankheit

Beschreibung

  • Krankheitsbedingt musste ich mir leider eine Auszeit nehmen. In dieser Zeit konnte ich mich jedoch zu 100% regenerieren und durch eine Ernährungsumstellung sogar noch eine bessere Vitalität erreichen, wie ich sie lange Zeit vorher noch nicht gehabt hatte.
  • In dieser Zeit hatte ich jedoch auch öfters die Gelegenheit gehabt, bei einem ortsansässigen Software Unternehmen an Workshops bzgl. Microservices und deren verwandten Technologien, wie Docker, Apache Cassandra, Spring Boot Admin oder GraphQL, teilzunehmen.

2017, 5 Monate

Branche: Versicherungen

Rolle: Berater, Softwareentwickler, QS, Operating

Projekt:

Migration- KVK

  • Für den In- und Exkassobereich eines Versicherungskonzernes sollten im Rahmen eines konzernweiten Wechsels der IT-Systemlandschaften von BS2000 hin zu SAP bereits vorhandene Daten von den Altsystemen in das Neusystem migriert werden. An dieser Migration war je betroffener Versicherungstochter ein spezifisches Java Framework maßgeblich beteiligt, das als Software-Gateway, firmenintern Proxy genannt, zwischen dem Altsystem und dem SAP System fungierte.
  • In diesem Kontext sollte ich einen dieser Java - Proxies, zuständig für den BS2000 basierten In- und Exkassobereich KVK, weiterentwickeln und parallel für das bereits produktive Proxy Release die Administration und das alltägliche Monitoring übernehmen.Zudem sollte ich einen neuen internen Mitarbeiter in die Migrationsthematik der insgesamt vier sich im Einsatz befindenden Proxies einarbeiten.
  • Die Projektbeauftragung für dieses Projekt erfolgte durch ein u. a. auf Versicherungen speziali­siertes Beratungsunternehmen.

Eingesetzte Techniken:

Windows 7 Enterprise unter Citrix XenDesktop / Red Had Linux, Java SE/EE, Eclipse,OOA/OOD, UML 2, Maven, SVN, SQL, Oracle 11g,  XML, UC4 / Atomic, TSMP / ServiceNow, Harpoon 4.0 (firmeneigenes Java-Framework), Testing: JUnit 4.5, Mockito, HP Quality Center, Jenkins

Aktivitäten:

  • Softwaretechnische Einarbeitung in die bestehende Migrationsthematik, insbesondere den weiter zu entwickelnden Java - Proxy. Architektonisch gesehen waren dabei zwei Java Frameworks von größerer Bedeutung:
    • da die Proxies im Kontext einer systemweiten Jobsteuerung via UC4 agierten, diente Spring Batch als Bindeglied zur Außenwelt
    • das firmeneigene Harpoon Java-Framework, das u. a. Lese- und Schreibroutinen für EBCDIC Dateien zur Verfügung stellt
  • Operating: Einarbeitung in das Monitoring mit Atomic (Nachfolger von UC4) und das IT Servicemanagement mit ServiceNow, zuvor TSMP
  • Durchführung und Erweiterung umfangreicher manueller und automatisierter Tests auf unterschiedlichen Umgebungen zur Vorbereitung eines bevorstehenden größeren Releasewechsels in der Produktion. Manuelle Tests wurden meistens mit dem Fachbereich abgestimmt
  • ?Wissenstransfer? dieses gesamten Themenkomplexes an einen von mir einzuarbeitenden neuen, internen Mitarbeiter am Standort Köln
  • Implementierung neuer Release - Anforderungen in dem Proxy, so das verglichen mit dem Vorgängerrelease mehr Geschäftsfallarten in das neue SAP System transferiert werden konnten
  • Darauf aufbauend mussten auch die bestehenden Prüfsummenberechnungen jeweils für Eingangs- und Ausgangsseite erweitert und korrigiert werden

Erfolg:

Alle durchgeführte Tests für die Proxies nach erfolgreich verlaufendem Releasewechselwurden durch die IT-Abnahme verifiziert; auch die Migration insgesamt war erfolgreich verlaufen.


2015 - 2016, 12 Monate

Branche: ITK (IT + TK)

Rolle: Softwareentwickler, Qualitätssicherung

Projekt:

(((eTicket

  • Als führender Hersteller von (((eTicket Deutschland hat die DB Systel im Rahmen dieses Projekts für ca. 20 der über 100 deutschlandweit bestehenden Verkehrsverbünde das Verfahren eTicket1 Datendrehscheibe (DDS) entwickelt. Die eTicket-Funktionalität kommt in Form des Java- Moduls eTicket-Handler in den zu integrierenden Funktionseinheiten Ticketautomat, dem Kontrollgerät MTx und der DDS zur Anwendung.
  • Die Aufgabe bestand sowohl in der Wartung und der Weiterentwicklung des eTicket-Handlers als auch in der Implementierung von Anforderungen seitens bereits beteiligter oder neu hinzugekommener Verkehrsverbünde. Alle neuen oder geänderten Funktionalitäten sollten durch entsprechende JUnit-Tests abgedeckt werden.

Eingesetzte Techniken:

Windows 7 Enterprise, Android 4.2.2 Java SE/EE, Eclipse, Design-Patterns (insb. Visitor Pattern), OOA/OOD, UML 2, Maven, SVN, SQL, Oracle 11g, PKI, XML, HTML, VDV-KA Spezifikation Version 1.1.09; Testing: JUnit 4.5, Mockito, HP Quality Center, Jenkins

Aktivitäten:

  • Einarbeitung in die Thematik, VDV-KA Spezifikation und Architektur bzw. Funktionsweise des eTicket-Handlers und dessen Integration in die Funktionseinheiten Ticketautomat, MTx und DDS
  • Aufbau einer im Projekt eingesetzten Java-Entwicklungsumgebung, basierend auf der Eclipse IDE, einer Simulation für Ticketautomaten und einer speziellen Android Umgebung, die in dem Kontrollgerät MTx zum Einsatz kommt
  • Umfangreichere Fehlerbehebungen, meist verbunden mit lokalem Refactoring und verbesserten Log-Ausgaben des eTicket-Handlers. Für das Fehlertracking wurde HP Quality Center verwendet
  • Implementierung einer Anforderung für einen bestimmten Verkehrs­verbund, der eine flexible Strategie zum Löschen von Berechti­gungen auf der Karte benötigte
  • Anpassung der ?räumlichen Prüfung? im eTicket-Handler anhand neuerer Anforde­rungsbeschreibungen für zwei Verkehrsverbünde
  • Durchführung von Codereviews bei umfangreicheren Arbeiten
  • Integration des eTicket-Handlers in die Funktionseinheiten MTx und Ticketautomat. Das Verhalten des Ticketautomaten selbst konnte mit einer Softwaresimulation nachgestellt werden
  • Erstellung oder Vervollständigung von JUnit-Tests für wichtige bestehende bzw. korrigierte Funktionalitäten im eTicket-Handler. Das Verhalten der Datenbank oder der Kartenleser wurden ggfs. durch Mockito-Konstrukte überbrückt. Automatische Builds und ein Monitoring erfolgte über Jenkins
  • Erstellung von Systemdokumentationen
  • Erstellung neuer bzw. Erweiterung bereits existierender Tools im Kontext des eTicket-Handlers

Erfolg

Alle Aktivitäten wurden erfolgreich abgeschlossen; Testabdeckung erhöht.


2014, 5 Monate

Branche: Banken

Rolle: Berater, Designer, Softwareentwickler, Qualitätssicherung

Projekt
Trier

  • Als Teil des Deutsche Bank IT-Projektes Magellan wurden in einer akqui­rierten, Deutschland weit führenden Privatkundenbank unter dem Projekt Trier verschiedene Ratingsysteme in eine unternehmensweite Lösung integriert. Die Projektbeauftragung erfolgte durch ein u. a. auf Banken speziali­siertes Beratungsunternehmen bei erwähnter Privatkundenbank.
  • In diesem Kontext sollte eine bereits bestehende Three - Tier Rating-Anwendung in einem neuen Release um die vollständige Erfassung und die zugehörige Backend-Verarbeitung von Kundendaten erweitert werden, um eine Ratingberechnung durchführen zu können. Zusätzlich sollten zur Vermeidung von Redundanzen bereits existierende Daten aus anderen Systemen (z. B. aus externen Datenbanktabellen oder über ein Inhouse SAP System) in die Business Logik mit eingebunden werden. Ebenso sollte für die Berechnung auf schon existierende Modelle und Regel­mechanismen zurückgegriffen werden.

Eingesetzte Techniken

Windows XP Professional / Solaris, Eclipse IDE/RCP (Rich Client Platform), Oracle SQL Developer, Java SE/EE, EJB 3.0, MVC ? Pattern, Java Swing / JGoodies, JPA, JDOM, Ant, CVS, XML, Oracle DB, Oracle Weblogic Server 10.3 (AS), CRS - API (WebService zur DB) Testing: JUnit, Vorlagen des Fachfeinkonzepts (manuell, Dummy Client)

Aktivitäten:

  • Einarbeitung in die bestehende Rating-Anwendung (fachlich und software-technisch); der Java Swing Client (eine unter Eclipse RCP entwickelte RCP Anwendung) und die Businesslogik (EJB Module)

  • Erstellung der notwendigen Eingabemasken mit Hilfe von Java Swing und JGoodies, einer Java Swing Erweiterung; das Layout war größtenteils sehr komplex und umfangreich; Ausgangsbasis war das vom Fachbereich der Privatkundenbank vorliegende Fachfeinkonzept

  • Für das Layout bzw. nachträgliche Änderungen am Fachfeinkonzept erfolgte eine enge Abstimmung mit dem Fachbereich des Kunden und den Business Analysten im Projektteam

  • Abgekoppelt von Datenbank und Oracle AS erfolgte eine Bereitstel­lung von Testdaten je Eingabemaske in einem Dummy Client

  • Strikte Einhaltung des MVC ? Design Patterns; Persistierung der Daten via JPA in einer Oracle Datenbank; Implementierung der zugehörigen Business Logik in Session Beans (serverseitige EJB Module); für die Implementierung konnte teilweise auf Templates aus anderen Bereichen der Anwendung zurückgegriffen werden

  • Hauptansprechpartner für das QS-Team und die Business Analysten im Projekt während einer länger andauernden Urlaubsvertretung für den hauptverantwortlichen Softwareentwickler im Entwicklerteam. So sollte ein Vorgängerrelease der Anwendung getestet bzw. doku­mentiert werden. Insbesondere war ich für Fragen, entstandene Fehlersituationen im Datenfluss über die neu entwickelte CRS-Schnittstelle zur Deutschen Bank und ihrer Behebung verantwortlich

  • Review entwickelter Programmteile im neuen Release, die ebenso die CRS - API thematisch behandelten, z. B. Aufbau eines JDOM- Baumes, der später via XML in den WebService überführt wird

Erfolg:

Rechtzeitig vor Start des Kunden internen Releasetests konnten alle Meilensteine der Beauftragung zu voller Zufriedenheit erfüllt werden 


2013 - 2015, mit Unterbrechnungen, bisher 11 Monate

Branche: Eigene Produktentwicklung, Social Media u.a.

Rolle: SW-Architekt, Designer, Softwareentwickler

Produktentwicklung Address- Event- Recognizer

  • Textanalyse durch teilweise natürlich sprachliche Texterkennung und semantische Zuordnung oder bei statischen Texten über Templates.
  • Ein in einer beliebigen Anwendung (Textverarbeitung, Internetbrowser, Mailprogramm, ...) markierter oder importierter Text soll bzgl. seines logisch zusammenhängenden Kontextes wie z. B. Kontakt, Termin bzw. Event oder auch einem komplexeren Kontext wie eine Rechnung erkannt werden. Die so ermittelten Objekte werden in einem zweiten Schritt über ein Mapping als kontextbezogene strukturierte Daten für weiterverarbeitende Programme (wie Adressbuch, Terminkalender oder Buchhaltung) zur Verfügung gestellt.
  • Das Produkt befindet sich noch in der Entwicklung. Eine erste Version wird eine Erkennung von Terminen und Kontakten enthalten.

Eingesetzte Techniken

Mac OS X/Windows, Java SE/EE, Datenmodellierung, Design Patterns, Expertensysteme (Künstliche Intelligenz), Eclipse, Maven, SVN, Apache Commons ? MultiMaps, JDOM, JPA, WebServices, JUnit, SonarQube

Aktivitäten:

  • Festlegung der Architektur und der Datenmodelle unter Berücksichtigung einer leichten Wartbarkeit und späteren Erweiterbarkeit auf andere Kontexte; möglichst Verwendung etablierter Standards
  • Definition einer XML basierten Konfigurationsdatei zur Spezifikation der später zu erkennenden Artefakte und Kontexte
  • Aufbau eines dynamischen Regelbaumes und mehrerer Schlüsselwortbäume, die als zentrale Elemente zur Textanalyse hinzugezogen werden (Verw. von Apache Commons ? MultiMaps)
  • Mehrsprachlichkeit (Sprachen nach ISO8859-1, zuerst ?de?, ?en?)
  • Ermittlung länderspezifischer und anderer sprachlich relevanter Parameter wie z. B. Zeitzone oder Datums- und Uhrzeitformat
  • Interpretation des Textes je nach Modus mit unterschiedlichen Parsern: natürlich sprachliche Texterkennung bei fortlaufendem Text oder Verwendung von Templates bei Textblöcken
  • Erzeugung der daraus abgeleiteten und vollständigen Objekte
  • TODO: Zugriff auf externe Datenquellen über z. B. Webservices, um bestimmte Felder wie z. B. Ortsangaben oder ein bestimmtes Format einer Rechnungsnummer zu verifizieren
  • Persistente Speicherung der Suchbäume (s.o.) und anderer häufig benutzter Daten mittels JPA in einer Datenbank
  • TODO: Dateiexport von Kontakt / Adresse, Termin oder Rechnung in ein abhängiges Standardformat (zuerst nur Adresse und Termin)
  • Erstellung von JUnit Tests
  • TODO: Auswahl einer geeigneten Client-Server Architektur, clientseitig verwendbar auf Desktops, Smartphones oder Tablets:
    • clientseitiger Ansatz: JavaFX - RoboVM (iOS) / Dalvik (Android)
    • serverseitiger Ansatz: JSF 2.2, PrimeFaces oder ZK (Zkoss)

Erfolg:

Verwendung verschiedener Parser Frameworks oder den Commons ? MultiMaps, Anwendung natürlich sprachlicher Texterkennung (KI)


2013, 2,5 Monate

Branche: Handel

Rolle: Architekt, Designer, Softwareentwickler, Qualitätssicherung

Projekt

(Produktent wicklung) Directory- Watcher

  • Refactoring und Weiterentwicklung des universellen Batchverarbeitungsund Queueing Programmes Directory-Watcher (siehe die erste Version in 2010 / 2011 und auch eine genauere Beschreibung).
  • Intensive Tests der parallel laufenden ?Arbeits-Threads? und Sicherstellung, das auch im Fehlerfalle jeder dieser Threads sich selbst beendet bzw. wohl definiert beendet wird.

Eingesetzte Techniken

Mac OS X/Windows, Parallele Programmierung (Multi­threading), Design Patterns, Eclipse, Xcode, Ant, SVN, Java SE, Java Swing, jpathwatch; Testing: JUnit, SonarQube

Aktivitäten:

  • Kompletter build Prozess jetzt auch unter Windows möglich, unter OS X wird eine Application (.app) erzeugt (enthält .jar Dateien)
  • Stabilisierung des parallel laufenden Prozessgerüsts; Vermeidung nicht terminierter Threads, die z. B. durch einen Fehlerfall einer Operation nicht ordnungsgemäß beendet werden konnten
  • Einbindung eines SonarQube Ant PlugIns zur automatisierten Erstellung einer Sonar-Analyse
  • Fehlerbehebung und Refactoring (auch laut Sonar-Analyse):
    • Verfeinerung der Bestimmungsalgorithmen von UTF-8 Dateien
    • Zulassung eines flexibleren Parsen der Dateilisten
  • Testen unter Mac OS X und Windows, manuell und mit JUnit

Erfolg:   

Das Programm wird wegen seiner großen Flexibilität weiterhin mit Erfolg beim Kunden und auch intern bei mir eingesetzt. 


2012, 7 Monate

Branche: ITK (IT + TK)

Rolle: Softwareentwickler, Qualitätssicherung

Projekt
ISTP

  • Scheduling- und Dispositionssystems ISTP (Informationssystem Transportleitung Personenverkehr), welches der Überwachung des Soll- Fahrplans im gesamtdeutschen Schienennetz für die Transport- und Verkehrsleitungen der Deutschen Bahn AG dient. Das aus mehreren Fat Clients bestehende System wird mit seinen über 20 Schnittstellen u. a. auch vorrangig als Datenquelle für andere Systeme (wie z. B. RIS) der Deutschen Bahn AG herangezogen.
  • Das neue Release bestand im wesentlichen in der Umsetzung folgender neuer Anforderungen der Konzernmutter Deutsche Bahn AG: neben der bisherigen Disposition von Zügen sollte nun auch die Disposition der eingesetzten Fahrzeuge und des Zugpersonals realisiert werden. Weiterhin sollten die Anschlüsse von Zügen aus Sicht der Abbringerzüge besser disponierbar und kommunizierbar sein.

Eingesetzte Techniken

Windows Vista Enterprise, Java SE/EE,Fat Client Entwicklung, Eclipse, Oracle SQL Developer, Java Swing, Design-Patterns, Ant, SVN, SQL, PL/SQL, Oracle 11g, Enterprise Architect 7.x, XML, Tomcat 6.0, Entronal und andere eigene Werkzeuge der DB Systel; Testing: JUnit 4.5, Fixtures, HP Quality Center, Jenkins

Aktivitäten:

  • Einarbeitung in die Thematik (Konzeption und Architektur) von ISTP, insbesondere mit Fokus auf die neuen Anforderungen (s. o.)

  • Aufbau einer im ISTP Kontext eingesetzten Java-Entwicklungsumge­bung, basierend auf der Eclipse IDE und dem Apache Tomcat Server

  • Bugfixing ?leichterer? Fehler zwecks erstem Kennenlernens des Javacodes und der etablierten Vorgehensweisen im ISTP Projekt. Exemplarisch wurden Fehler in dem ISTP- Administrationstool behoben. Für das Fehlertracking wurde das Softwarewerkzeug HP Quality Center verwendet

  • Neu-Architektur und Re-Implementierung einer DAO Schicht, um u.a. drei wesentliche Entitäten nach etwa gleichem Schema in der verwendeten Oracle Datenbank persistent abzubilden. Historisch bedingt wird in ISTP eine eigene proprietäre Persitenz-API verwendet und darüberhinaus werden alle Datenbankzugriffe über PL/SQL Prozeduren gekapselt. Für die in der DAO Schicht verwendeten Objekte mussten ebenfalls entsprechende PL/SQL Prozeduren geschrieben werden

  • Implementierung weiterer Objekte, wie z. B. Fahrzeug- oder Personalübergänge, die auf obigen DAO Objekten aufsetzten

  • Erstellung umfangreicher und vollständiger JUnit-Tests für alle wichtigen Zugriffsmethoden der neuen DAO Objekte. Verwendung von Fixtures zum Bereitstellen von Testdaten

  • Refactoring des ISTP-Administrationstools hinsichtlich seiner Daten­bankzugriffe

Erfolg:

Die neuen DAO's bildeten u. a. den Kern des neuen Releases, das auch später erfolgreich intern beim Kunden abgenommen wurde. 


2012, 3 Monate

Branche: Open Source Projekt

Rolle: Softwareentwickler, Qualitätssicherung

Projekt
AirReceiver
Weiterentwicklung und Stabilisierung des Open Source Projektes AirReceiver, mit dessen Hilfe Audiodaten von Apple iOS Geräten oder vom Programm iTunes via Apple's eigenem AirPlay Protokoll an einen Desktop PC versendet werden können. Neben dem Kennenlernen der verwendeten Middleware Netty, einem Application Framework zum Aufbau eines asynchronen Event getriebenen Netzwerks, und des AirPlay Protokollstacks inklusive der ausserdem verwendeten Protokolle standen auch Maven und insbesondere die Einbindung des SonarQube Maven PlugIns im Mittelpunkt des Interesses.

Eingesetzte Techniken

Mac OS X/Windows, Eclipse, Java SE, Fat Client Entwicklung, Maven, SVN, Parallele Program­mierung (Multi­threading), JCA/JCE, Netty, SonarQube; AirPlay: RAOP, RTSP/RTP, NTP, Multicast DNS (jmDNS), SDP, Testing: JUnit

 
Aktivitäten:
  • Einarbeitung in die bestehende Software und den dabei verwendeten Protokollstack (RAOP, RTSP/RTP, SDP) und Libraries wie jmDNS (Multicast DNS) oder Netty (ein Java NIO basiertes client server framework)

  • Stabilisierung und Optimierung des RTP- Retransmit Mechanismus bei nicht oder fehlerhaft übertragenen RTP Paketen

  • Einbindung eines SonarQube Maven PlugIns zur automatisierten Erstellung einer Sonar-Analyse

  • Refactoring an diversen Stellen (inkl. Fehler laut Sonar-Analyse)

  • Umbau des Maven build Prozesses durch Verwendung von Profilen, um plattformabhängig unterschiedliche Endprodukte zu erlangen (unter OS X: .app, unter Windows ein einziges ausführbares .jar)

Erfolg:

Open Source Entwicklung, Apple's AirPlay, Maven Profile, SonarQube 


2011, 5 Monate

Branche: ITK (IT + TK)

Rolle: Softwareentwickler, Qualitätssicherung, Operating, Administration

Projekt
Mobiserv

  • Für eine beim Kunden sich schon im Einsatz befindliche Java basierte Client / Server Anwendung (Thin Client auf Clientseite) zur Disposition von Bahnmitarbeitern bei Ihrer Ausübung von Hilfeleistungen für Fahrgäste mit eingeschränkter Mobilität stand eine neue Programmversion mit erweiterter Funktionalität für die Abnahme bereit.
  • Aufgabe war, für diese neue Version einerseits die neue Funktionalität und andererseits auch die bisherige Funktionalität an entscheidenden und kritischen Stellen im Programmcode per JUnit Tests zu verifizieren und gegebenenfalls Korrekturen gefundener Fehler vorzunehmen.


Eingesetzte Techniken
Windows Vista Enterprise / RedHat Linux, Java SE/EE, OOA/OOD, Eclipse, JPA, Ant, SVN, Thin Client, Parallele Programmierung (Multi- Threading), XML, JSF 1.2, Tomcat 6.0; Agile Software-Entwicklung / Pair Programming, Codereviews Testing: JUnit 4.5, HP Quality Center, Jenkins / Hudson

Aktivitäten

  • Einarbeitung und Aufbau einer üblicherweise beim Kunden angepassten Java-Entwicklungsumgebung (SEU), basierend auf der Eclipse IDE
  • Erstellung von JUnit Tests für verschiedene Module, aber besonders für die Dispositionsmodule, um eine der neuen Funktionalitäten, die parallele Disposition von mehreren Clients ausgehend zu überprüfen
  • verstärktes Bugfixing und lokal eingesetztes Refactoring im Gesamtcode: diese Notwendigkeit ergab sich durch einige negative Ergebnisse der JUnit Tests und durch die Aktivitäten eines parallel arbeitenden Testteams, das vermehrt Fehler in der Altanwendung festgestellt hatte
  • Reviews und ?Pair - Programming? ausgesuchter Programmteile
  • Continuous Integration: regelmäßige Erstellung einer neuen Version der Anwendung; später konnte für Teilaufgaben auch Jenkins (unter Windows) bzw. Hudson (unter Linux) verwendet werden
  • Monitoring und Fehleranalyse am Gesamtsystem (Linux, Tomcat)
  • Durchführung systemadministrativer Tätigkeiten

Erfolg

Mittels Bugfixing und lokalem Refactoring konnte die anfangs stark ansteigende Fehlerrate wieder gesenkt werden. Durch den Einsatz eines Continuous Integration Werkzeugs wie Jenkins und Hudson waren auch schnelle Reaktionen auf veränderte Versionsstände ermöglicht worden


2010 / 2011, 5 Monate
Branche: Handel

Rolle: Architekt, Designer, Softwareentwickler, Qualitätssicherung

Projekt
(Produktentwicklung) Directory- Watcher

  • Universeller, Ereignis gesteuerter Batchverarbeitungs- und Queueing Mechanismus zur Verarbeitung beliebig vieler konfigurierbarer Batchjobs, die bis zu einem gewissen Grad nebenläufig ausgeführt werden.
  • Das System wird in Form eines allgemein benutzbaren Verzeichnisüberwachungsdienstes für Dateilisten realisiert: für beliebig aufgebaute Dateilisten2, die von einer beliebigen Anwendung als Batchjobs in einem dediziertem Verzeichnis abgelegt werden, wird für jede Dateireferenz aus einer derartigen Dateiliste eine vom Benutzer frei konfigurierbare Operation (Step) ausgeführt.
  • Dieses Projekt ist gleichzeitig auch eine eigene Produktentwicklung.

Eingesetzte Techniken

Mac OS X / Windows, Java SE, Batchprogrammierung, Parallele Programmierung / Multi-Threading, Systemprogrammierung, Proactor Pattern, Eclipse, Xcode, OOA/OOD, Ant, SVN, Java Swing, jpathwatch; Testing: JUnit

Aktivitäten

  • Konzeption eines Ereignis gesteuerten Verzeichnisüberwachungsdienstes, der aus einem GUI und einem im Hintergrund passiv agierenden Polling-Thread besteht. Letzterer erzeugt für jede eintreffende Dateiliste (Ereignis) den entsprechenden Batchjob und fügt ihn in eine Warteschlange (Queue) ein. Das passive Polling selbst wird mit Hilfe der Java-Bibliothek jpathwatch realisiert.
  • Die Spezifikation der verschiedenen zu erwartenden Arten von Dateilisten erfolgt über Property-Dateien (pro Art eine Property); Implementierung zum Lesen und Schreiben dieser Properties.
  • Implementierung der benötigten Multi-Threading Architektur zum Befüllen und dem asynchronen Abarbeiten der Queue (vgl. Proactor Pattern). Je Property wird einmalig ein neuer parallel ablaufender ?Arbeits-Thread? gestartet, Jobs der gleichen Property werden daher von genau einem Arbeits-Thread sequentiell ausgeführt.
  • (Java - Thread-) Synchronisation und Eingrenzung maximal parallel laufender Arbeits-Threads erfolgt durch einen Semaphor
  • Implementierung der möglichen Operationen (Steps) je Property: dies sind dateibasierte Operationen, wie Copy, Move und Delete oder ein beliebig konfigurierbarer externer Programmaufruf.
  • Graphische Fortschrittsanzeige aller gleichzeitig aktiven Arbeits- Threads in separaten Java Swing Fenstern.
  • Separate Logausgabe des Hauptprozesses und der gerade aktiven Arbeits-Threads, dabei sind jeweils vierstufige Loglevel konfigurierbar
  • Implementierung des GUI mit Java Swing:
    • Start / Stop der Überwachung (drei verschiedene Stop - Modi)
    • Konfiguration: Hinzufügen, Editieren und Löschen der zu verwendenden Operationen pro Dateilisten Spezifikation; Konfiguration des Hauptprozesses und des Semaphors
    • unter Mac OS X: Verwendung OS X - spezifischer Menüs
  • Testen unter Mac OS X, Windows und Linux, manuell und mit JUnit

Erfolg

Das Programm wird wegen seiner großen Flexibilität und Schnelligkeit mit Erfolg beim Kunden und auch intern bei mir eingesetzt.


2006 - 2009, 3 Jahre
Branchen: europäische Automobilindustrie, Transportwesen, Finanzwesen, Chemie

Rolle: Architekt, Softwareentwickler, Qualitätssicherung

Projekt
(Produktentwicklung) OFTP
Planung, Architektur, Entwicklung und Implementierung eines in den oben genannten Branchen verwendeten Datenübertragungsprotokolls OdetteFTP (bzw. OFTP) zur direkten Übertragung von Dateien (Punktzu- Punkt Kommunikation) in Form eines Adapters für das Integrationswerkzeug Sterling Integrator

Eingesetzte Techniken
Unix / Windows, Eclipse IDE, Oracle SQL Developer, Java SE, J2EE, Java Script, JSP, OOA/OOD, Design Patterns, CVS, Ant, JCA, PKI, XML, JDBC, SQL, JDOM, SAX; Protokolle: OdetteFTP (Version 1.1 ? 2.0), IPv4, IPv6; eingesetzte AS: JBoss, Weblogic, Websphere, Noapp (Eigenentwicklung) Feature-Driven und testgetriebene Software-Entwicklung Testing: JUnit, Regressiontests, Integrationstests, CruiseControl, HP Quality Center

Aktivitäten

  • Architektonische Gesamtkonzeption (OOA/OOD) anhand der OFTP Spezifikationen (RFCs 2204 und 5024); Herausarbeitung dererforderlichen Teilkomponenten
  • Konzeption und Implementierung einer Partnerprofilverwaltung für OdetteFTP-Partner; die Datenhaltung wurde zunächst in XML mittels SAX-API realisiert, in einer nachfolgenden Version datenbankgestützt via JDBC und SQL
  • Entwicklung eines synchronisierenden Import- und Exporttools, um die XML- basierten und die in der Datenbank gehaltenen Partnerdaten abgleichen und bearbeiten zu können (z. B. Einzel- oder Massenimport bzw. Datenbankexport)
  • Implementierung eines Schedulers, der basierend auf einmaligen oder mehrfach periodisch auftretenden Kalendereinträgen spezifische OFTP Operationen oder andere systemweite Services ausführt
  • Verschiedene Teilimplementierungen, wie OdetteFTP Zustandstransformationen oder eine auf PKI (Public-Key-Infrastruktur) basierte Zertifikateverwaltung
  • IPv4- und IPv6 Fähigkeit bei TCP/IP Kommunikation: besonderes Augenmerk galt hier der syntaktischen Analyse von IPv4- und IPv6- Adressen
  • Qualitätssicherung: Testfallerstellung, JUnit Testerstellung
  • Dokumentation für das Benutzerhandbuch (in Englisch)

Erfolg

Sterling Commerce hat ca. 50 Sterling Integrator Installationen mit diesem Adapter an Neukunden verkauft (Stand 09/2009)


2005 / 2006, 12 Monate
Branchen: Alle Branchen

Rolle: Softwareentwickler in nationalem und internationalem Team

Projekt
(Produktentwicklung) MESA
Entwicklung eines neuen Produktes ?MESA Developer Studio? für Sterling Integrator, architektonisch konzipiert als eine Eclipse Rich Client Platform, die u. a. den Kunden eine eigene Modulentwicklung, Monitoring und ein individuell anpassbares Web Design für Sterling Integrator ermöglichen soll.

Eingesetzte Techniken
Unix / Windows, Java SE, J2EE, OOA/OOD, Eclipse, Eclipse RCP, Plugin Entwicklung, CVS, Ant, WebDAV, Java RMI (Middleware), SQL, XML; Testing: JUnit, Regressiontests, Integrationstests, CruiseControl, Mercury TestDirector

Aktivitäten

  • Erstellung eines Export Wizards als Eclipse Plug-in, der alle oder selektierte benutzerdefinierten Objekte innerhalb des MESA Developer Studios als .war ? Datei exportiert
  • Ermöglichung eines vereinfachten Deployments in Sterling Integrator und dem verwendeten Appl.Servers, um mit MESA Developer Studio erstellte Module in Sterling Integrator leichter verfügbar zu machen
  • Erstellung und Durchführung von Tests
  • Dokumentation für Benutzerhandbuch (in Englisch)

Erfolg

Neues Produkt ?MESA Developer Studio?. Es ist mir aber nicht bekannt, wieviele Lizenzen Sterling Commerce hiervon verkauft hat.


2004 / 2005, 6 Monate

Projekt:

Transformation von Unix Shell Script basierten Tests nach JUnit

Branche:  

alle

Rolle:    

Softwareentwickler, Qualitätssicherung

Beschreibung:

Im Rahmen einer Anbindung von Sterling Integrator an ERP System SAP R/3 sollten bereits auf der Basis von Unix Shell Script existierende Tests (Batch Testing, Smoke Tests) in ein Java-basiertes und Betriebs­system unabhängiges Regres­sionstestsystem (unter JUnit) transformiert werden.

Technisches Umfeld:

Unix/Windows, bash, ksh, Java, J2EE, Eclipse, cvs, Ant, XML; 

Testing:

Batch Testing, JUnit, Regressiontests, Smoke Testing, Integrati­onstests, Cruise­Control, Mercury TestDirector

Aktivitäten:

  • Schrittweise Umstellung dreier verschiedenen Testtypen (Integra­tions-, Komponenten- und ?stand-alone? Tests) in Regres­sion­tests unter Verwendung von JUnit

  • Erstellung zusätzlicher Komponententests um eine größere Abdeckung der zu testenden Funktionalität zu erreichen

  • Aufstockung aller Tests um Soll-Ist-Vergleichs Methoden

  • Durchführung umfangreicher Tests in der neuen Umgebung

Erfolg:

Schaffung einer plattformunabhängigen Testumgebung, insbesondere die Windows Umgebung wurde damit neu einbezogen

=> Senkung der Fehlerrate, Vereinfachung des Hinzufügens neuer Tests

 


2002 + 2004, 21 Monate

Projekt:

SAP Adapter

Branche:

alle Branchen, die SAP einsetzen

Rolle:    

Softwareentwickler, Qualitätssicherung

Beschreibung:

Entwicklung einer Java Programmierschnittstelle (API) zur Weiterverarbeitung von Metadaten (SAP IDOC), welche in einem SAP R/3-System hinterlegt sind. Dies erfolgte im Rahmen einer Anbindung von Sterling Integrator an ein SAP R/3-System (SAP Adapter), zunächst in Form eines Kommandozeilentools, in zweiter Projektphase als GUI

Technisches Umfeld:

Unix / Windows, Java SE, Java Script, JSP, OOA/OOD, JDBC, SQL, Eclipse, CVS, Ant, SAPJco, SAP RFC, SAP GUI, RMI, XML;

Testing:

Regressiontests, Integrationstests, Smoke Testing, Mercury TestDirector

Aktivitäten:

  • Erster Teil des Projekts: Recherche und Evaluierung, wie mit der zu benutzenden Middleware (SAPJco) Strukturen aus einem SAP System im gewünschten Maß gelesen werden können

  • Erstellung der API unter Verwendung der gefundenen RFC Aufrufe, die die Weiterverarbeitung der Metadaten ermöglicht

  • Implementierung eines Kommandozeilentools unter Verwendung der erstellten API

  • Erstellung und Durchführung von umfangreichen Tests

  • Dokumentation des Kommandozeilentools im Benutzer­handbuch (in Englisch)

  • Zweiter Teil des Projekts: Integration der API in die graphische Benutzeroberfläche von Sterling Integrator; Entwurf und Realisierung entsprechender Masken unter Verwendung von JSP und Java Script

  • Erstellung und Durchführung von umfangreichen Tests

  • Dokumentation des GUI für das Benutzerhandbuch (in Englisch)

Erfolg:

Sterling Commerce hat über 250 Sterling Integrator Installationen mit diesem Adapter an Alt- und Neukunden verkauft (Stand 09/2009) 


 2003, 9 Monate 

Projekt:

RosettaNet

Branche:

alle

Rolle:    

Softwareentwickler, Qualitätssicherung in nationalen und internationalen Teams

Beschreibung:

Entwicklung einer B2B-Lösung für das EAI- und B2B-Integrationswerk­zeug Sterling Integrator im Bereich Supply Chain Management gemäß normierter Standards (RosettaNet) für Kommunikations- und Geschäfts­prozessabläufe

Technisches Umfeld:

Unix/Windows, Java SE, J2EE, OOA/OOD, RosettaNet Spezifikationen (RNIF, PIP), BPML, HTTP, Eclipse, CVS, Ant, XML;

Testing:

Integrati­onstests, Smoke Testing, Cruise­Control, Mercury TestDirector

Aktivitäten:

  • Architektonische Konzeption der RosettaNet Spezifikati­onen (RNIF, PIP), insbesondere Modellierung und Design ihrer technischen Umsetzung im Kontext von Sterling Integrator

  • Umsetzung der wichtigsten RosettaNet-PIP Geschäftsprozess­abläufe für Supply Chain Management in Sterling Integrator spezifische Business Prozesse (BPML)

  • Erstellung und Durchführung ausführlicher Tests

  • Dokumentation für das Benutzerhandbuch (in Englisch)

Erfolg:

  • Vorbereitung für eine in einem nachfolgenden Projekt durchgeführte Zertifizierung und erfolgreiche Erlangung des ?RosettaNet Ready? Status (Supply Chain Integration Capability)

  • erfolgreiche Positionierung im Markt als Anbieter von RosettaNet Lösungen

 


 

Projekte und Tätigkeiten in der Qualitätssicherung

Die nachfolgenden Projekte beziehen sich auf Tätigkeiten in der Qualitätssicherung bei der Firma Sterling Commerce und davor bei o.tel.o communications GmbH & Co:



1998 - 2003 Senior Quality Assurance Analyst (Sterling Commerce GmbH)

für den Bereich Qualitätssicherung und Software-Entwicklung Regional Lab

  • Testfallerstellung und Automatisierung manueller Testabläufe bzgl. der SAP R/3-Kopplung zwischen einem SAP R/3 System und dem EAI-/B2B Integrationswerkzeug Sterling Integrator. Aufsetzend auf einer bereits existierenden Shell Script-basierten Testumgebung (batch testing) wurde diese Umgebung für die o.g. SAP R/3 Kopplung erweitert; inkl. anschlie­ßendem Monitoring

  • Eigenverantwortliche Durchführung von Qualitätsmanagement- und War­tungsaufgaben sowie Realisierung kundenspezifischer Anpassungen (z. B. Jahr 2000-Umstellung) eines von o.tel.o communications GmbH & Co. übernommenen EDI-Systems

 

1994 - 1998 Qualitätssicherungsbeauftragter (o.tel.o communications GmbH & Co)

Qualitätsmanagement und Durchführung von Qualitätssicherungsabnahmen für ein EDI-System in selbstständiger Arbeit und eigener Verantwortung:

  • Definition von Testfällen, Erstellung von Testdaten sowie manuelle Durch­führung und Dokumentation der Tests
  • Entwurf und schrittweise Implementierung automatisierter Testprozeduren
  • Aufbau, Administration und Dokumentation einer Testumgebung
  • Aufbau und Etablierung eines Fehlermanagement- und Anforderungssystems

  • Kontinuierliches Fehlermanagement und -tracking

  • Schnittstellenfunktion im Qualitätssicherungsprozess zwischen Software-Entwicklung, Support und Consulting

 

Aus- und Weiterbildung

Aus- und Weiterbildung

  • Weiterbildung in den Bereichen IT und Management wie z.B. ?Mastering J2EE and EJB?, ?Software-Qualitätssicherung?, ?Middleware im Vergleich? oder ?Project Management Essentials?
  • Selbststudium von u. a. Java 8, Java EE 6, SOA und Microservices

1980

Vinzenz Palotti Kolleg, Rheinbach

Abschluss: Abitur

1980 - 1990

Rheinische Friedrich-Wilhelms-Universität, Bonn

Studium der Informatik

Schwerpunkt: Künstliche Intelligenz, Nebenfach Betriebswirtschaftslehre

Abschluss: Diplom-Informatiker mit der Gesamtnote "gut"

Kompetenzen

Kompetenzen

Schwerpunkte

Anwendungs-, Kommunikationsund Backend- Entwicklung
Softwareentwicklung in Java
Systemintegration
Systemprogrammierung

Produkte / Standards / Erfahrungen / Methoden

Das Besondere an mir...

  • ist ein hohes Maß an Zielstrebigkeit, Kreativität und methodischem Vorgehen
  • verkörpert eine sehr gewissenhafte und gründliche Arbeitsweise
  • ist ein hohes Maß an Verlässlichkeit und Loyalität

Auf einen Blick

über 25 Jahre Berufserfahrung in unterschiedlichen IT-Rollen:

  • Acht Jahre als freiberuflicher Java-Softwareentwickler, besonders im ITK - Umfeld
  • Sechs Jahre als Java- Softwareingenieur (EDI, EAI, ERP) und fünf Jahre im Qualitätsmanagement, in Festanstellung, bei Sterling Commerce GmbH, Düsseldorf (seit 2010 gehört Sterling Commerce zu IBM)
  • Acht Jahre in der Qualitätssicherung, Softwareentwicklung (EDI- Entwicklung in C) und Consulting, bei o.tel.o communications GmbH & Co., Köln, vorher bei LION Gesellschaft für Systementwicklung mbH, Köln
  • Während des Studiums: Vier Jahre Pascal Programmierer und Anwendungsberater am Hochschulrechenzentrum der Universität Bonn; ein Jahr TeX / LaTeX Buchlayouter bei der Fraunhofer Gesellschaft (ehemals GMD), Sankt Augustin

Software Design:

OOP, OOA/OOD, Design Patterns, Modellierung, UML, Domain-Driven Design, Parallelprogrammierung

Vorgehensmodelle:

Wasserfall-Modell, Rapid Application Development, Agile Software-Entwicklung (XP, Feature-Driven Development, Scrum)

Java - Technologien:

Java SE, J2EE / JEE, EJB, Java Swing / JGoodies, JSP, Spring Batch, JPA, DOM, JDOM, JDBC, OSGi, SAX / JAXP, JAXB, JMS, JCA / JCE

Middleware:

EAI, Netty, RMI, REST WebServices, SAP Jco (Java Connector), RFC (SAP)

Protokolle & Standards:

XML, HTML, DTD, XML Schema, SAP-IDOC, BPML, PKI, X.509, AirPlay (RAOP, RTSP/RTP, SDP), VDV-KA

Kommunikation, EDI:

UN/EDIFACT, OdetteFTP, IPv4 / IPv6, X.400, X.25

Produkte:

Eclipse, Visual Studio Code, Xcode, SonarQube, Tomcat, Oracle Weblogic Server, Jboss / Wildfly, CruiseControl, Jenkins, HP Quality Center, Jira, UC4 / Atomic, ServiceNow, MS-/ Open Office, Sterling Integrator

allgemeine Werkzeuge:

CVS, SVN, Git, Ant, Maven, Unix Shells (sh, bash, csh, ksh, sh), Unix Tools (awk, sed, u. a.), TeX / LaTeX

Testtools / -methoden:

JUnit, Mockito, Komponententests, Integrationstests, Regressiontests, Lasttests (Smoke Testing)

Soziale und persönliche Kompetenz

  • Zielorientierte, systematische und kundenorientierte Arbeitsweise
  • Konzeptionelle Fähigkeiten, selbstständige Arbeitsweise
  • Analytisches und strukturiertes Denken
  • Sorgfalt, Genauigkeit, Selbstdisziplin
  • Teamfähigkeit, hohe kommunikative Kompetenz, Empathie

Betriebssysteme

CMS
am Hochschulrechenzentrum der Uni Bonn
CP/M
vor 25 Jahren
HP-UX
ca. 18 Jahre
IBM AIX
ca. 18 Jahre
iOS
4 Jahre
Linux
2 Jahre
Mac OS X / Darwin
7 Jahre - Fraunhofer Gesellschaft und jetzt privat (iMac)
MS-DOS
21 Jahre
MVS, OS/390
am Hochschulrechenzentrum der Uni Bonn
Sun/Oracle Solaris
ca. 18 Jahre
TOS
TSO: am Hochschulrechenzentrum der Uni Bonn
Unix
ca. 18 Jahre
VMS
ca. 4 Jahre
Windows
21 Jahre

Programmiersprachen

Ada
Grundkenntnisse
Basic
gute Kenntnisse (Anfang der 80-iger Jahre)
C
gute Kenntnisse, 90-iger Jahre
C++
gute Kenntnisse, 1998-2001
Java
Spezialist (ab 2001 bis heute)
JavaScript
Grundkenntnisse
Lisp
Spezialist (Studium, Diplomarbeit, Mitte der 80-iger Jahre)
Pascal
Spezialist (Studium, 80-iger Jahre)
PL/1
Grundkenntnisse (Anfang der 80-iger Jahre)
Prolog
gute Kenntnisse (Studium, Diplomarbeit, Mitte der 80-iger Jahre)
Python
Grundkenntnisse
TeX, LaTeX
Spezialist (Diplomarbeit, Ende der 80-iger Jahre)
Unix Scripting
Spezialist (ab Mitte der 80-iger Jahre bis heute)
Unix-Shells (bash, csh, ksh)
Spezialist (ab Mitte der 80-iger Jahre bis heute)

Datenbanken

JDBC
Spezialist
MS SQL Server
Grundkenntnisse
MySQL
Spezialist
Oracle
Spezialist
Oracle SQL Developer
gute Kenntnisse
PL/SQL
Grundkenntnisse
Proprietäre DB (Apache Derby, neo4j)
Grundkenntnisse
SQL
Spezialist

Datenkommunikation

AppleTalk
genauer AirTunes, AirPlay: gute Kenntnisse
FTAM
Spezialist, insbesondere in OdetteFTP
Internet, Intranet
gute Kenntnisse
ISDN
Grundkenntnisse, im Zusammenhang mit RFC 2204 (OdetteFTP)
ISO/OSI
gute Kenntnisse
Message Queuing
Spezialist (programmatisch)
OdetteFTP
Spezialist
RFC
RFC 2204 & 5024 (ODETTE FTP), 5280 (X.509): Spezialist
RPC
Spezialist im Zusammenhang mit Java RMI, SAPJco
TCP/IP
gute Kenntnisse: IPv4, IPv6
UN/EDIFACT
Spezialist
Voice
RAOP, RTSP/RTP, SDP: Grundkenntnisse - gute Kenntnisse
X.400 X.25 X.225 X.75...
gute Kenntnisse

Hardware

Atari
5 Jahre, privat
HP
HP-UX, ca. 18 Jahre
IBM Großrechner
4 Jahre
IBM RS6000
AIX, ca. 18 Jahre
Macintosh
7 Jahre - Fraunhofer Gesellschaft und jetzt privat (iMac)
PC
21 Jahre
Streamer
Tape Archivierung von einem EDI-System, ca. 1 Jahr
SUN
Sun-OS, ca. 18 Jahre

Branchen

Branchen

  • Systemhaus
  • Telekommunikation (EDI), ITK (IT + TK)
  • Logistik
  • Industrie
  • Handel
  • Banken
  • Versicherungen

Einsatzorte

Einsatzorte

Bonn (+150km)
nicht möglich

Projekte

Projekte

2018, 2 Monate
Branche: Handel, Einzelhandel

Rolle: Softwareentwickler, Qualitätssicherung

Projekt
NEWPOSS

  • Durch einen sich u. a. auf den Handel spezialisierten IT ? Dienstleister wurde ich beauftragt, für einen seiner Kunden, einem deutschen, mittlerweile international operierenden Einzelhändler, im Rahmen des Projektes NEWPOSS tätig zu werden.
  • Dies betraf vor allem die Wartung und Weiterentwicklung des vom Einzelhändler eingesetzten Kassensystems (POS), das unter der Programmiersprache Java entwickelt wurde. Weiterhin gehörten zu den Aufgaben das zugehörige Fehler- und Anforderungsmanagement, Business Analyse, Testen und Dokumentation.

Eingesetzte Techniken
Windows 10 Pro, Java SE/EE, TREND (proprietäres Modellierungstool), UML 2, Eclipse IDE + Oomph, Maven, Git, XML, Bndtools (OSGi), H2, PostgreSQL, Jira, Jenkins; Model Driven Requirements Engineering: TREND/Analyst (internes Tool); Agile Software-Entwicklung / Stand-Up Meetings;

Testing: Integrity (proprietäres Framework), JUnit

Aktivitäten

  • Einarbeitung (Onboarding) in das Projekt NEWPOSS und dessen projektspezifischer Arbeitsweisen und Workflows (z. B. intern definierte Git-Flows, Sourcecodeverwaltung - Branching Schemata oder der Aufbau eines lauffähigen Projekts) bzw. der genutzten Tools, wie z. B. Maven-Builds, Jira und Jenkins.
  • Einrichtung der auf einer Eclipse IDE und Oomph basierten Entwicklungsumgebung, die durch die firmeneigenen Frameworks (s. o.) ergänzt wurden.
  • Umfangreiche Schulungen der proprietären, jedoch komplexen im Projekt eingesetzten Frameworks und Tools TREND, POS-Core, Integrity und TREND/Analyst.
  • Parallel zu den noch laufenden Schulungen und vor allem danach erfolgte bereits eine Bearbeitung erster, kleinerer Issues, um sich mit dem Projekt und dessen Abläufen in der Praxis vertraut zu machen. Zur Erhöhung der Testbarkeit der Software sollte, wenn möglich, für jeden Issue mindestens ein zugehöriger Testcase in Form eines Komponententests (JUnit oder Integrity) erstellt werden. Dabei kamen auch die oben erwähnten Konzepte der modellgetriebenen Softwareentwicklung und die des Model Driven Requirements Engineerings zum Einsatz.
  • Eine Dokumentation der behobenen Issues erfolgte gemäß der beim IT-Dienstleister zugrunde gelegten Workflows.

Erfolg

Alle von mir bearbeiteten Issues sind auch erfolgreich abgeschlossen worden. Dank dieses Projektes konnte ich mir einen schnellen und guten Überblick über die modellgetriebene Software-Entwicklung und die beim IT ? Dienstleister genutzten Abläufe und Werkzeuge verschaffen.


2018, 3 Monate
Branche: Eigene Produktentwicklung, Social Media u.a.

Rolle: SW-Architekt, Designer, Softwareentwickler

Produktentwicklung General- Parser

  • Weiterentwicklung des seit 2015 ruhenden eigenen Softwareproduktes AddressEventRecognizer, jetzt mit neuem Namen GeneralParser.
  • Textanalyse in möglichst beliebigem Kontext bzw. Domäne mittels natürlich sprachlicher Texterkennung und semantischer Zuordnung oder bei statischen Texten über Templates.
  • Das Produkt befindet sich derzeit noch in der Entwicklung. Eine erste Version wird eine Erkennung von Terminen und Kontakten enthalten.


Eingesetzte Techniken
macOS / Windows, Visual Studio Code, Java SE/EE, Datenmodellierung, Design Patterns, OOA/OOD, Expertensysteme (KI), UML, XML, Maven, Git, Commons ? MultiMaps, JDOM, JAXP, JPA Testing, statische Analyse: JUnit, SonarQube

Aktivitäten

  • Wechsel der bisher für dieses und aller anderen eigenen Projekte eingesetzten Sourcecodeverwaltung SVN nach Git; Git wird sehr gut von VS Code unterstützt.
  • Umstellung dieses und aller anderen eigenen bisher noch nicht umgestellten Projekte auf Java 8.
  • Festlegung der neuen Architektur und der Datenmodelle unter der Berücksichtigung, möglichst beliebige Domänen hiermit beschreiben und dann auch erkennen zu können.
  • Exemplarisch werden in der XML - Konfigurationsdatei, die in strukturierter Form die verwendbaren Domänen beschreibt, die beiden Domänen Event/Termin und Adresse den Vorgaben entsprechend angepasst. Auslagerung der bisher im Code hinterlegten Artefakte wie z. B. verwendete Artikel und Präpositionen.
  • Abgleich des JAXP Parsers, um obige XML ? Konfigurationsdatei zu erkennen und die entsprechenden Regeln daraus abzuleiten.
  • Verbannung aller domänenspezifischen Klassen wie z. B. DateTime oder Location. Stattdessen müssen alle nach dem Parsen gefundenen und erzeugten Artefakte über ein ?Mapping? in eine domänenspezifische Java API abgebildet werden.
  • Implementierung der domänenspezifischen Klassen für die Domänen Event/Termin und Adresse.
  • Für die Domäne Event/Termin wird die freie Java ? API iCal4j verwendet, die aus den erzeugten Objekten einen nach RFC 5545 konformen Kalendereintrag in dem Format iCALENDAR erzeugt.

Erfolg

Modellierung in XML, Verwendung verschiedener Parser, Know How Aufbau im Umgang mit Git und Visual Studio Code


2018, 3 Monate
Branche: Handel

Rolle: Architekt, Designer, Softwareentwickler, Qualitätssicherung

Projekt
(Produktent wicklung), Directory-Watcher
Refactoring und Weiterentwicklung des universellen Batchverarbeitungsund Queueing Programmes Directory-Watcher (siehe die erste Version in 2010 / 2011 inklusive Beschreibung, sowie die zweite Version in 2013). Hauptaugenmerk lag auf der Migration von Java 1.6 auf 1.8, womit auch einige unter Java 1.6 verwendete Frameworks ausgetauscht werden mussten. Weiterhin erfolgte eine Umstellung der Sourcecodeverwaltung von SVN auf Git. Zudem erfolgte eine Evaluierung von Visual Studio Code von Microsoft und ein Vergleich mit Eclipse

Eingesetzte Techniken
macOS / Windows, Java SE, Batchprogrammierung, Parallele Programmierung / Multi-Threading, Systemprogrammierung, Proactor Pattern, Visual Studio Code, Maven, Git, Java Swing; Testing: JUnit, SonarQube

Aktivitäten

  • Evaluierung der neuen und schnellen IDE Visual Studio Code (VS Code) von Microsoft mit dem Java Extension Pack; hierbei wurden mir wichtige Aspekte, wie Übernahmemöglichkeit von Eclipse Projekten, Sourcecodeverwaltung, Code Completion, Refactoring, Einbindung von Build Werkzeugen, u. a., für das alltägliche Arbeiten als Entwickler im Vergleich zu Eclipse berücksichtigt, die bis auf wenige Punkte auch erfüllt werden konnten.
  • Wechsel der bisher eingesetzten Sourcecodeverwaltung SVN nach Git; Git wird sehr gut von VS Code unterstützt.
  • Umstellung des build Prozesses von Ant auf Maven; Einbau des appbundle-maven-plugin?s, um das unter macOS erzeugte Java Programm in eine Apple konforme Application (.app) zu überführen.
  • Migration auf Java 1.8, diese Version verlangt auch VS Code.
  • Weglassung der bisher extern verwendeten jpathwatch Biblliothek, da sie ab Java 1.7 ins JDK integriert wurde; Umstellung von OSXAdapter auf das Apple Events Package, um von Java Swing heraus Apple spezifische Menuleisten aufbauen zu können und auf Standard- Events (z. B. Preferences-, Quithandler) reagieren zu können.
  • Verbesserte Synchronisierung der automatisierten Tests unter JUnit mit dem parallel laufenden EDT (AWT Event Dispatching Thread), der vom Hauptprogramm (main) heraus gestartet wird.

Erfolg

Das Programm wird wegen seiner großen Flexibilität weiterhin mit Erfolg beim Kunden und auch intern bei mir eingesetzt.


2017, 5 Monate: Krankheit

Beschreibung

  • Krankheitsbedingt musste ich mir leider eine Auszeit nehmen. In dieser Zeit konnte ich mich jedoch zu 100% regenerieren und durch eine Ernährungsumstellung sogar noch eine bessere Vitalität erreichen, wie ich sie lange Zeit vorher noch nicht gehabt hatte.
  • In dieser Zeit hatte ich jedoch auch öfters die Gelegenheit gehabt, bei einem ortsansässigen Software Unternehmen an Workshops bzgl. Microservices und deren verwandten Technologien, wie Docker, Apache Cassandra, Spring Boot Admin oder GraphQL, teilzunehmen.

2017, 5 Monate

Branche: Versicherungen

Rolle: Berater, Softwareentwickler, QS, Operating

Projekt:

Migration- KVK

  • Für den In- und Exkassobereich eines Versicherungskonzernes sollten im Rahmen eines konzernweiten Wechsels der IT-Systemlandschaften von BS2000 hin zu SAP bereits vorhandene Daten von den Altsystemen in das Neusystem migriert werden. An dieser Migration war je betroffener Versicherungstochter ein spezifisches Java Framework maßgeblich beteiligt, das als Software-Gateway, firmenintern Proxy genannt, zwischen dem Altsystem und dem SAP System fungierte.
  • In diesem Kontext sollte ich einen dieser Java - Proxies, zuständig für den BS2000 basierten In- und Exkassobereich KVK, weiterentwickeln und parallel für das bereits produktive Proxy Release die Administration und das alltägliche Monitoring übernehmen.Zudem sollte ich einen neuen internen Mitarbeiter in die Migrationsthematik der insgesamt vier sich im Einsatz befindenden Proxies einarbeiten.
  • Die Projektbeauftragung für dieses Projekt erfolgte durch ein u. a. auf Versicherungen speziali­siertes Beratungsunternehmen.

Eingesetzte Techniken:

Windows 7 Enterprise unter Citrix XenDesktop / Red Had Linux, Java SE/EE, Eclipse,OOA/OOD, UML 2, Maven, SVN, SQL, Oracle 11g,  XML, UC4 / Atomic, TSMP / ServiceNow, Harpoon 4.0 (firmeneigenes Java-Framework), Testing: JUnit 4.5, Mockito, HP Quality Center, Jenkins

Aktivitäten:

  • Softwaretechnische Einarbeitung in die bestehende Migrationsthematik, insbesondere den weiter zu entwickelnden Java - Proxy. Architektonisch gesehen waren dabei zwei Java Frameworks von größerer Bedeutung:
    • da die Proxies im Kontext einer systemweiten Jobsteuerung via UC4 agierten, diente Spring Batch als Bindeglied zur Außenwelt
    • das firmeneigene Harpoon Java-Framework, das u. a. Lese- und Schreibroutinen für EBCDIC Dateien zur Verfügung stellt
  • Operating: Einarbeitung in das Monitoring mit Atomic (Nachfolger von UC4) und das IT Servicemanagement mit ServiceNow, zuvor TSMP
  • Durchführung und Erweiterung umfangreicher manueller und automatisierter Tests auf unterschiedlichen Umgebungen zur Vorbereitung eines bevorstehenden größeren Releasewechsels in der Produktion. Manuelle Tests wurden meistens mit dem Fachbereich abgestimmt
  • ?Wissenstransfer? dieses gesamten Themenkomplexes an einen von mir einzuarbeitenden neuen, internen Mitarbeiter am Standort Köln
  • Implementierung neuer Release - Anforderungen in dem Proxy, so das verglichen mit dem Vorgängerrelease mehr Geschäftsfallarten in das neue SAP System transferiert werden konnten
  • Darauf aufbauend mussten auch die bestehenden Prüfsummenberechnungen jeweils für Eingangs- und Ausgangsseite erweitert und korrigiert werden

Erfolg:

Alle durchgeführte Tests für die Proxies nach erfolgreich verlaufendem Releasewechselwurden durch die IT-Abnahme verifiziert; auch die Migration insgesamt war erfolgreich verlaufen.


2015 - 2016, 12 Monate

Branche: ITK (IT + TK)

Rolle: Softwareentwickler, Qualitätssicherung

Projekt:

(((eTicket

  • Als führender Hersteller von (((eTicket Deutschland hat die DB Systel im Rahmen dieses Projekts für ca. 20 der über 100 deutschlandweit bestehenden Verkehrsverbünde das Verfahren eTicket1 Datendrehscheibe (DDS) entwickelt. Die eTicket-Funktionalität kommt in Form des Java- Moduls eTicket-Handler in den zu integrierenden Funktionseinheiten Ticketautomat, dem Kontrollgerät MTx und der DDS zur Anwendung.
  • Die Aufgabe bestand sowohl in der Wartung und der Weiterentwicklung des eTicket-Handlers als auch in der Implementierung von Anforderungen seitens bereits beteiligter oder neu hinzugekommener Verkehrsverbünde. Alle neuen oder geänderten Funktionalitäten sollten durch entsprechende JUnit-Tests abgedeckt werden.

Eingesetzte Techniken:

Windows 7 Enterprise, Android 4.2.2 Java SE/EE, Eclipse, Design-Patterns (insb. Visitor Pattern), OOA/OOD, UML 2, Maven, SVN, SQL, Oracle 11g, PKI, XML, HTML, VDV-KA Spezifikation Version 1.1.09; Testing: JUnit 4.5, Mockito, HP Quality Center, Jenkins

Aktivitäten:

  • Einarbeitung in die Thematik, VDV-KA Spezifikation und Architektur bzw. Funktionsweise des eTicket-Handlers und dessen Integration in die Funktionseinheiten Ticketautomat, MTx und DDS
  • Aufbau einer im Projekt eingesetzten Java-Entwicklungsumgebung, basierend auf der Eclipse IDE, einer Simulation für Ticketautomaten und einer speziellen Android Umgebung, die in dem Kontrollgerät MTx zum Einsatz kommt
  • Umfangreichere Fehlerbehebungen, meist verbunden mit lokalem Refactoring und verbesserten Log-Ausgaben des eTicket-Handlers. Für das Fehlertracking wurde HP Quality Center verwendet
  • Implementierung einer Anforderung für einen bestimmten Verkehrs­verbund, der eine flexible Strategie zum Löschen von Berechti­gungen auf der Karte benötigte
  • Anpassung der ?räumlichen Prüfung? im eTicket-Handler anhand neuerer Anforde­rungsbeschreibungen für zwei Verkehrsverbünde
  • Durchführung von Codereviews bei umfangreicheren Arbeiten
  • Integration des eTicket-Handlers in die Funktionseinheiten MTx und Ticketautomat. Das Verhalten des Ticketautomaten selbst konnte mit einer Softwaresimulation nachgestellt werden
  • Erstellung oder Vervollständigung von JUnit-Tests für wichtige bestehende bzw. korrigierte Funktionalitäten im eTicket-Handler. Das Verhalten der Datenbank oder der Kartenleser wurden ggfs. durch Mockito-Konstrukte überbrückt. Automatische Builds und ein Monitoring erfolgte über Jenkins
  • Erstellung von Systemdokumentationen
  • Erstellung neuer bzw. Erweiterung bereits existierender Tools im Kontext des eTicket-Handlers

Erfolg

Alle Aktivitäten wurden erfolgreich abgeschlossen; Testabdeckung erhöht.


2014, 5 Monate

Branche: Banken

Rolle: Berater, Designer, Softwareentwickler, Qualitätssicherung

Projekt
Trier

  • Als Teil des Deutsche Bank IT-Projektes Magellan wurden in einer akqui­rierten, Deutschland weit führenden Privatkundenbank unter dem Projekt Trier verschiedene Ratingsysteme in eine unternehmensweite Lösung integriert. Die Projektbeauftragung erfolgte durch ein u. a. auf Banken speziali­siertes Beratungsunternehmen bei erwähnter Privatkundenbank.
  • In diesem Kontext sollte eine bereits bestehende Three - Tier Rating-Anwendung in einem neuen Release um die vollständige Erfassung und die zugehörige Backend-Verarbeitung von Kundendaten erweitert werden, um eine Ratingberechnung durchführen zu können. Zusätzlich sollten zur Vermeidung von Redundanzen bereits existierende Daten aus anderen Systemen (z. B. aus externen Datenbanktabellen oder über ein Inhouse SAP System) in die Business Logik mit eingebunden werden. Ebenso sollte für die Berechnung auf schon existierende Modelle und Regel­mechanismen zurückgegriffen werden.

Eingesetzte Techniken

Windows XP Professional / Solaris, Eclipse IDE/RCP (Rich Client Platform), Oracle SQL Developer, Java SE/EE, EJB 3.0, MVC ? Pattern, Java Swing / JGoodies, JPA, JDOM, Ant, CVS, XML, Oracle DB, Oracle Weblogic Server 10.3 (AS), CRS - API (WebService zur DB) Testing: JUnit, Vorlagen des Fachfeinkonzepts (manuell, Dummy Client)

Aktivitäten:

  • Einarbeitung in die bestehende Rating-Anwendung (fachlich und software-technisch); der Java Swing Client (eine unter Eclipse RCP entwickelte RCP Anwendung) und die Businesslogik (EJB Module)

  • Erstellung der notwendigen Eingabemasken mit Hilfe von Java Swing und JGoodies, einer Java Swing Erweiterung; das Layout war größtenteils sehr komplex und umfangreich; Ausgangsbasis war das vom Fachbereich der Privatkundenbank vorliegende Fachfeinkonzept

  • Für das Layout bzw. nachträgliche Änderungen am Fachfeinkonzept erfolgte eine enge Abstimmung mit dem Fachbereich des Kunden und den Business Analysten im Projektteam

  • Abgekoppelt von Datenbank und Oracle AS erfolgte eine Bereitstel­lung von Testdaten je Eingabemaske in einem Dummy Client

  • Strikte Einhaltung des MVC ? Design Patterns; Persistierung der Daten via JPA in einer Oracle Datenbank; Implementierung der zugehörigen Business Logik in Session Beans (serverseitige EJB Module); für die Implementierung konnte teilweise auf Templates aus anderen Bereichen der Anwendung zurückgegriffen werden

  • Hauptansprechpartner für das QS-Team und die Business Analysten im Projekt während einer länger andauernden Urlaubsvertretung für den hauptverantwortlichen Softwareentwickler im Entwicklerteam. So sollte ein Vorgängerrelease der Anwendung getestet bzw. doku­mentiert werden. Insbesondere war ich für Fragen, entstandene Fehlersituationen im Datenfluss über die neu entwickelte CRS-Schnittstelle zur Deutschen Bank und ihrer Behebung verantwortlich

  • Review entwickelter Programmteile im neuen Release, die ebenso die CRS - API thematisch behandelten, z. B. Aufbau eines JDOM- Baumes, der später via XML in den WebService überführt wird

Erfolg:

Rechtzeitig vor Start des Kunden internen Releasetests konnten alle Meilensteine der Beauftragung zu voller Zufriedenheit erfüllt werden 


2013 - 2015, mit Unterbrechnungen, bisher 11 Monate

Branche: Eigene Produktentwicklung, Social Media u.a.

Rolle: SW-Architekt, Designer, Softwareentwickler

Produktentwicklung Address- Event- Recognizer

  • Textanalyse durch teilweise natürlich sprachliche Texterkennung und semantische Zuordnung oder bei statischen Texten über Templates.
  • Ein in einer beliebigen Anwendung (Textverarbeitung, Internetbrowser, Mailprogramm, ...) markierter oder importierter Text soll bzgl. seines logisch zusammenhängenden Kontextes wie z. B. Kontakt, Termin bzw. Event oder auch einem komplexeren Kontext wie eine Rechnung erkannt werden. Die so ermittelten Objekte werden in einem zweiten Schritt über ein Mapping als kontextbezogene strukturierte Daten für weiterverarbeitende Programme (wie Adressbuch, Terminkalender oder Buchhaltung) zur Verfügung gestellt.
  • Das Produkt befindet sich noch in der Entwicklung. Eine erste Version wird eine Erkennung von Terminen und Kontakten enthalten.

Eingesetzte Techniken

Mac OS X/Windows, Java SE/EE, Datenmodellierung, Design Patterns, Expertensysteme (Künstliche Intelligenz), Eclipse, Maven, SVN, Apache Commons ? MultiMaps, JDOM, JPA, WebServices, JUnit, SonarQube

Aktivitäten:

  • Festlegung der Architektur und der Datenmodelle unter Berücksichtigung einer leichten Wartbarkeit und späteren Erweiterbarkeit auf andere Kontexte; möglichst Verwendung etablierter Standards
  • Definition einer XML basierten Konfigurationsdatei zur Spezifikation der später zu erkennenden Artefakte und Kontexte
  • Aufbau eines dynamischen Regelbaumes und mehrerer Schlüsselwortbäume, die als zentrale Elemente zur Textanalyse hinzugezogen werden (Verw. von Apache Commons ? MultiMaps)
  • Mehrsprachlichkeit (Sprachen nach ISO8859-1, zuerst ?de?, ?en?)
  • Ermittlung länderspezifischer und anderer sprachlich relevanter Parameter wie z. B. Zeitzone oder Datums- und Uhrzeitformat
  • Interpretation des Textes je nach Modus mit unterschiedlichen Parsern: natürlich sprachliche Texterkennung bei fortlaufendem Text oder Verwendung von Templates bei Textblöcken
  • Erzeugung der daraus abgeleiteten und vollständigen Objekte
  • TODO: Zugriff auf externe Datenquellen über z. B. Webservices, um bestimmte Felder wie z. B. Ortsangaben oder ein bestimmtes Format einer Rechnungsnummer zu verifizieren
  • Persistente Speicherung der Suchbäume (s.o.) und anderer häufig benutzter Daten mittels JPA in einer Datenbank
  • TODO: Dateiexport von Kontakt / Adresse, Termin oder Rechnung in ein abhängiges Standardformat (zuerst nur Adresse und Termin)
  • Erstellung von JUnit Tests
  • TODO: Auswahl einer geeigneten Client-Server Architektur, clientseitig verwendbar auf Desktops, Smartphones oder Tablets:
    • clientseitiger Ansatz: JavaFX - RoboVM (iOS) / Dalvik (Android)
    • serverseitiger Ansatz: JSF 2.2, PrimeFaces oder ZK (Zkoss)

Erfolg:

Verwendung verschiedener Parser Frameworks oder den Commons ? MultiMaps, Anwendung natürlich sprachlicher Texterkennung (KI)


2013, 2,5 Monate

Branche: Handel

Rolle: Architekt, Designer, Softwareentwickler, Qualitätssicherung

Projekt

(Produktent wicklung) Directory- Watcher

  • Refactoring und Weiterentwicklung des universellen Batchverarbeitungsund Queueing Programmes Directory-Watcher (siehe die erste Version in 2010 / 2011 und auch eine genauere Beschreibung).
  • Intensive Tests der parallel laufenden ?Arbeits-Threads? und Sicherstellung, das auch im Fehlerfalle jeder dieser Threads sich selbst beendet bzw. wohl definiert beendet wird.

Eingesetzte Techniken

Mac OS X/Windows, Parallele Programmierung (Multi­threading), Design Patterns, Eclipse, Xcode, Ant, SVN, Java SE, Java Swing, jpathwatch; Testing: JUnit, SonarQube

Aktivitäten:

  • Kompletter build Prozess jetzt auch unter Windows möglich, unter OS X wird eine Application (.app) erzeugt (enthält .jar Dateien)
  • Stabilisierung des parallel laufenden Prozessgerüsts; Vermeidung nicht terminierter Threads, die z. B. durch einen Fehlerfall einer Operation nicht ordnungsgemäß beendet werden konnten
  • Einbindung eines SonarQube Ant PlugIns zur automatisierten Erstellung einer Sonar-Analyse
  • Fehlerbehebung und Refactoring (auch laut Sonar-Analyse):
    • Verfeinerung der Bestimmungsalgorithmen von UTF-8 Dateien
    • Zulassung eines flexibleren Parsen der Dateilisten
  • Testen unter Mac OS X und Windows, manuell und mit JUnit

Erfolg:   

Das Programm wird wegen seiner großen Flexibilität weiterhin mit Erfolg beim Kunden und auch intern bei mir eingesetzt. 


2012, 7 Monate

Branche: ITK (IT + TK)

Rolle: Softwareentwickler, Qualitätssicherung

Projekt
ISTP

  • Scheduling- und Dispositionssystems ISTP (Informationssystem Transportleitung Personenverkehr), welches der Überwachung des Soll- Fahrplans im gesamtdeutschen Schienennetz für die Transport- und Verkehrsleitungen der Deutschen Bahn AG dient. Das aus mehreren Fat Clients bestehende System wird mit seinen über 20 Schnittstellen u. a. auch vorrangig als Datenquelle für andere Systeme (wie z. B. RIS) der Deutschen Bahn AG herangezogen.
  • Das neue Release bestand im wesentlichen in der Umsetzung folgender neuer Anforderungen der Konzernmutter Deutsche Bahn AG: neben der bisherigen Disposition von Zügen sollte nun auch die Disposition der eingesetzten Fahrzeuge und des Zugpersonals realisiert werden. Weiterhin sollten die Anschlüsse von Zügen aus Sicht der Abbringerzüge besser disponierbar und kommunizierbar sein.

Eingesetzte Techniken

Windows Vista Enterprise, Java SE/EE,Fat Client Entwicklung, Eclipse, Oracle SQL Developer, Java Swing, Design-Patterns, Ant, SVN, SQL, PL/SQL, Oracle 11g, Enterprise Architect 7.x, XML, Tomcat 6.0, Entronal und andere eigene Werkzeuge der DB Systel; Testing: JUnit 4.5, Fixtures, HP Quality Center, Jenkins

Aktivitäten:

  • Einarbeitung in die Thematik (Konzeption und Architektur) von ISTP, insbesondere mit Fokus auf die neuen Anforderungen (s. o.)

  • Aufbau einer im ISTP Kontext eingesetzten Java-Entwicklungsumge­bung, basierend auf der Eclipse IDE und dem Apache Tomcat Server

  • Bugfixing ?leichterer? Fehler zwecks erstem Kennenlernens des Javacodes und der etablierten Vorgehensweisen im ISTP Projekt. Exemplarisch wurden Fehler in dem ISTP- Administrationstool behoben. Für das Fehlertracking wurde das Softwarewerkzeug HP Quality Center verwendet

  • Neu-Architektur und Re-Implementierung einer DAO Schicht, um u.a. drei wesentliche Entitäten nach etwa gleichem Schema in der verwendeten Oracle Datenbank persistent abzubilden. Historisch bedingt wird in ISTP eine eigene proprietäre Persitenz-API verwendet und darüberhinaus werden alle Datenbankzugriffe über PL/SQL Prozeduren gekapselt. Für die in der DAO Schicht verwendeten Objekte mussten ebenfalls entsprechende PL/SQL Prozeduren geschrieben werden

  • Implementierung weiterer Objekte, wie z. B. Fahrzeug- oder Personalübergänge, die auf obigen DAO Objekten aufsetzten

  • Erstellung umfangreicher und vollständiger JUnit-Tests für alle wichtigen Zugriffsmethoden der neuen DAO Objekte. Verwendung von Fixtures zum Bereitstellen von Testdaten

  • Refactoring des ISTP-Administrationstools hinsichtlich seiner Daten­bankzugriffe

Erfolg:

Die neuen DAO's bildeten u. a. den Kern des neuen Releases, das auch später erfolgreich intern beim Kunden abgenommen wurde. 


2012, 3 Monate

Branche: Open Source Projekt

Rolle: Softwareentwickler, Qualitätssicherung

Projekt
AirReceiver
Weiterentwicklung und Stabilisierung des Open Source Projektes AirReceiver, mit dessen Hilfe Audiodaten von Apple iOS Geräten oder vom Programm iTunes via Apple's eigenem AirPlay Protokoll an einen Desktop PC versendet werden können. Neben dem Kennenlernen der verwendeten Middleware Netty, einem Application Framework zum Aufbau eines asynchronen Event getriebenen Netzwerks, und des AirPlay Protokollstacks inklusive der ausserdem verwendeten Protokolle standen auch Maven und insbesondere die Einbindung des SonarQube Maven PlugIns im Mittelpunkt des Interesses.

Eingesetzte Techniken

Mac OS X/Windows, Eclipse, Java SE, Fat Client Entwicklung, Maven, SVN, Parallele Program­mierung (Multi­threading), JCA/JCE, Netty, SonarQube; AirPlay: RAOP, RTSP/RTP, NTP, Multicast DNS (jmDNS), SDP, Testing: JUnit

 
Aktivitäten:
  • Einarbeitung in die bestehende Software und den dabei verwendeten Protokollstack (RAOP, RTSP/RTP, SDP) und Libraries wie jmDNS (Multicast DNS) oder Netty (ein Java NIO basiertes client server framework)

  • Stabilisierung und Optimierung des RTP- Retransmit Mechanismus bei nicht oder fehlerhaft übertragenen RTP Paketen

  • Einbindung eines SonarQube Maven PlugIns zur automatisierten Erstellung einer Sonar-Analyse

  • Refactoring an diversen Stellen (inkl. Fehler laut Sonar-Analyse)

  • Umbau des Maven build Prozesses durch Verwendung von Profilen, um plattformabhängig unterschiedliche Endprodukte zu erlangen (unter OS X: .app, unter Windows ein einziges ausführbares .jar)

Erfolg:

Open Source Entwicklung, Apple's AirPlay, Maven Profile, SonarQube 


2011, 5 Monate

Branche: ITK (IT + TK)

Rolle: Softwareentwickler, Qualitätssicherung, Operating, Administration

Projekt
Mobiserv

  • Für eine beim Kunden sich schon im Einsatz befindliche Java basierte Client / Server Anwendung (Thin Client auf Clientseite) zur Disposition von Bahnmitarbeitern bei Ihrer Ausübung von Hilfeleistungen für Fahrgäste mit eingeschränkter Mobilität stand eine neue Programmversion mit erweiterter Funktionalität für die Abnahme bereit.
  • Aufgabe war, für diese neue Version einerseits die neue Funktionalität und andererseits auch die bisherige Funktionalität an entscheidenden und kritischen Stellen im Programmcode per JUnit Tests zu verifizieren und gegebenenfalls Korrekturen gefundener Fehler vorzunehmen.


Eingesetzte Techniken
Windows Vista Enterprise / RedHat Linux, Java SE/EE, OOA/OOD, Eclipse, JPA, Ant, SVN, Thin Client, Parallele Programmierung (Multi- Threading), XML, JSF 1.2, Tomcat 6.0; Agile Software-Entwicklung / Pair Programming, Codereviews Testing: JUnit 4.5, HP Quality Center, Jenkins / Hudson

Aktivitäten

  • Einarbeitung und Aufbau einer üblicherweise beim Kunden angepassten Java-Entwicklungsumgebung (SEU), basierend auf der Eclipse IDE
  • Erstellung von JUnit Tests für verschiedene Module, aber besonders für die Dispositionsmodule, um eine der neuen Funktionalitäten, die parallele Disposition von mehreren Clients ausgehend zu überprüfen
  • verstärktes Bugfixing und lokal eingesetztes Refactoring im Gesamtcode: diese Notwendigkeit ergab sich durch einige negative Ergebnisse der JUnit Tests und durch die Aktivitäten eines parallel arbeitenden Testteams, das vermehrt Fehler in der Altanwendung festgestellt hatte
  • Reviews und ?Pair - Programming? ausgesuchter Programmteile
  • Continuous Integration: regelmäßige Erstellung einer neuen Version der Anwendung; später konnte für Teilaufgaben auch Jenkins (unter Windows) bzw. Hudson (unter Linux) verwendet werden
  • Monitoring und Fehleranalyse am Gesamtsystem (Linux, Tomcat)
  • Durchführung systemadministrativer Tätigkeiten

Erfolg

Mittels Bugfixing und lokalem Refactoring konnte die anfangs stark ansteigende Fehlerrate wieder gesenkt werden. Durch den Einsatz eines Continuous Integration Werkzeugs wie Jenkins und Hudson waren auch schnelle Reaktionen auf veränderte Versionsstände ermöglicht worden


2010 / 2011, 5 Monate
Branche: Handel

Rolle: Architekt, Designer, Softwareentwickler, Qualitätssicherung

Projekt
(Produktentwicklung) Directory- Watcher

  • Universeller, Ereignis gesteuerter Batchverarbeitungs- und Queueing Mechanismus zur Verarbeitung beliebig vieler konfigurierbarer Batchjobs, die bis zu einem gewissen Grad nebenläufig ausgeführt werden.
  • Das System wird in Form eines allgemein benutzbaren Verzeichnisüberwachungsdienstes für Dateilisten realisiert: für beliebig aufgebaute Dateilisten2, die von einer beliebigen Anwendung als Batchjobs in einem dediziertem Verzeichnis abgelegt werden, wird für jede Dateireferenz aus einer derartigen Dateiliste eine vom Benutzer frei konfigurierbare Operation (Step) ausgeführt.
  • Dieses Projekt ist gleichzeitig auch eine eigene Produktentwicklung.

Eingesetzte Techniken

Mac OS X / Windows, Java SE, Batchprogrammierung, Parallele Programmierung / Multi-Threading, Systemprogrammierung, Proactor Pattern, Eclipse, Xcode, OOA/OOD, Ant, SVN, Java Swing, jpathwatch; Testing: JUnit

Aktivitäten

  • Konzeption eines Ereignis gesteuerten Verzeichnisüberwachungsdienstes, der aus einem GUI und einem im Hintergrund passiv agierenden Polling-Thread besteht. Letzterer erzeugt für jede eintreffende Dateiliste (Ereignis) den entsprechenden Batchjob und fügt ihn in eine Warteschlange (Queue) ein. Das passive Polling selbst wird mit Hilfe der Java-Bibliothek jpathwatch realisiert.
  • Die Spezifikation der verschiedenen zu erwartenden Arten von Dateilisten erfolgt über Property-Dateien (pro Art eine Property); Implementierung zum Lesen und Schreiben dieser Properties.
  • Implementierung der benötigten Multi-Threading Architektur zum Befüllen und dem asynchronen Abarbeiten der Queue (vgl. Proactor Pattern). Je Property wird einmalig ein neuer parallel ablaufender ?Arbeits-Thread? gestartet, Jobs der gleichen Property werden daher von genau einem Arbeits-Thread sequentiell ausgeführt.
  • (Java - Thread-) Synchronisation und Eingrenzung maximal parallel laufender Arbeits-Threads erfolgt durch einen Semaphor
  • Implementierung der möglichen Operationen (Steps) je Property: dies sind dateibasierte Operationen, wie Copy, Move und Delete oder ein beliebig konfigurierbarer externer Programmaufruf.
  • Graphische Fortschrittsanzeige aller gleichzeitig aktiven Arbeits- Threads in separaten Java Swing Fenstern.
  • Separate Logausgabe des Hauptprozesses und der gerade aktiven Arbeits-Threads, dabei sind jeweils vierstufige Loglevel konfigurierbar
  • Implementierung des GUI mit Java Swing:
    • Start / Stop der Überwachung (drei verschiedene Stop - Modi)
    • Konfiguration: Hinzufügen, Editieren und Löschen der zu verwendenden Operationen pro Dateilisten Spezifikation; Konfiguration des Hauptprozesses und des Semaphors
    • unter Mac OS X: Verwendung OS X - spezifischer Menüs
  • Testen unter Mac OS X, Windows und Linux, manuell und mit JUnit

Erfolg

Das Programm wird wegen seiner großen Flexibilität und Schnelligkeit mit Erfolg beim Kunden und auch intern bei mir eingesetzt.


2006 - 2009, 3 Jahre
Branchen: europäische Automobilindustrie, Transportwesen, Finanzwesen, Chemie

Rolle: Architekt, Softwareentwickler, Qualitätssicherung

Projekt
(Produktentwicklung) OFTP
Planung, Architektur, Entwicklung und Implementierung eines in den oben genannten Branchen verwendeten Datenübertragungsprotokolls OdetteFTP (bzw. OFTP) zur direkten Übertragung von Dateien (Punktzu- Punkt Kommunikation) in Form eines Adapters für das Integrationswerkzeug Sterling Integrator

Eingesetzte Techniken
Unix / Windows, Eclipse IDE, Oracle SQL Developer, Java SE, J2EE, Java Script, JSP, OOA/OOD, Design Patterns, CVS, Ant, JCA, PKI, XML, JDBC, SQL, JDOM, SAX; Protokolle: OdetteFTP (Version 1.1 ? 2.0), IPv4, IPv6; eingesetzte AS: JBoss, Weblogic, Websphere, Noapp (Eigenentwicklung) Feature-Driven und testgetriebene Software-Entwicklung Testing: JUnit, Regressiontests, Integrationstests, CruiseControl, HP Quality Center

Aktivitäten

  • Architektonische Gesamtkonzeption (OOA/OOD) anhand der OFTP Spezifikationen (RFCs 2204 und 5024); Herausarbeitung dererforderlichen Teilkomponenten
  • Konzeption und Implementierung einer Partnerprofilverwaltung für OdetteFTP-Partner; die Datenhaltung wurde zunächst in XML mittels SAX-API realisiert, in einer nachfolgenden Version datenbankgestützt via JDBC und SQL
  • Entwicklung eines synchronisierenden Import- und Exporttools, um die XML- basierten und die in der Datenbank gehaltenen Partnerdaten abgleichen und bearbeiten zu können (z. B. Einzel- oder Massenimport bzw. Datenbankexport)
  • Implementierung eines Schedulers, der basierend auf einmaligen oder mehrfach periodisch auftretenden Kalendereinträgen spezifische OFTP Operationen oder andere systemweite Services ausführt
  • Verschiedene Teilimplementierungen, wie OdetteFTP Zustandstransformationen oder eine auf PKI (Public-Key-Infrastruktur) basierte Zertifikateverwaltung
  • IPv4- und IPv6 Fähigkeit bei TCP/IP Kommunikation: besonderes Augenmerk galt hier der syntaktischen Analyse von IPv4- und IPv6- Adressen
  • Qualitätssicherung: Testfallerstellung, JUnit Testerstellung
  • Dokumentation für das Benutzerhandbuch (in Englisch)

Erfolg

Sterling Commerce hat ca. 50 Sterling Integrator Installationen mit diesem Adapter an Neukunden verkauft (Stand 09/2009)


2005 / 2006, 12 Monate
Branchen: Alle Branchen

Rolle: Softwareentwickler in nationalem und internationalem Team

Projekt
(Produktentwicklung) MESA
Entwicklung eines neuen Produktes ?MESA Developer Studio? für Sterling Integrator, architektonisch konzipiert als eine Eclipse Rich Client Platform, die u. a. den Kunden eine eigene Modulentwicklung, Monitoring und ein individuell anpassbares Web Design für Sterling Integrator ermöglichen soll.

Eingesetzte Techniken
Unix / Windows, Java SE, J2EE, OOA/OOD, Eclipse, Eclipse RCP, Plugin Entwicklung, CVS, Ant, WebDAV, Java RMI (Middleware), SQL, XML; Testing: JUnit, Regressiontests, Integrationstests, CruiseControl, Mercury TestDirector

Aktivitäten

  • Erstellung eines Export Wizards als Eclipse Plug-in, der alle oder selektierte benutzerdefinierten Objekte innerhalb des MESA Developer Studios als .war ? Datei exportiert
  • Ermöglichung eines vereinfachten Deployments in Sterling Integrator und dem verwendeten Appl.Servers, um mit MESA Developer Studio erstellte Module in Sterling Integrator leichter verfügbar zu machen
  • Erstellung und Durchführung von Tests
  • Dokumentation für Benutzerhandbuch (in Englisch)

Erfolg

Neues Produkt ?MESA Developer Studio?. Es ist mir aber nicht bekannt, wieviele Lizenzen Sterling Commerce hiervon verkauft hat.


2004 / 2005, 6 Monate

Projekt:

Transformation von Unix Shell Script basierten Tests nach JUnit

Branche:  

alle

Rolle:    

Softwareentwickler, Qualitätssicherung

Beschreibung:

Im Rahmen einer Anbindung von Sterling Integrator an ERP System SAP R/3 sollten bereits auf der Basis von Unix Shell Script existierende Tests (Batch Testing, Smoke Tests) in ein Java-basiertes und Betriebs­system unabhängiges Regres­sionstestsystem (unter JUnit) transformiert werden.

Technisches Umfeld:

Unix/Windows, bash, ksh, Java, J2EE, Eclipse, cvs, Ant, XML; 

Testing:

Batch Testing, JUnit, Regressiontests, Smoke Testing, Integrati­onstests, Cruise­Control, Mercury TestDirector

Aktivitäten:

  • Schrittweise Umstellung dreier verschiedenen Testtypen (Integra­tions-, Komponenten- und ?stand-alone? Tests) in Regres­sion­tests unter Verwendung von JUnit

  • Erstellung zusätzlicher Komponententests um eine größere Abdeckung der zu testenden Funktionalität zu erreichen

  • Aufstockung aller Tests um Soll-Ist-Vergleichs Methoden

  • Durchführung umfangreicher Tests in der neuen Umgebung

Erfolg:

Schaffung einer plattformunabhängigen Testumgebung, insbesondere die Windows Umgebung wurde damit neu einbezogen

=> Senkung der Fehlerrate, Vereinfachung des Hinzufügens neuer Tests

 


2002 + 2004, 21 Monate

Projekt:

SAP Adapter

Branche:

alle Branchen, die SAP einsetzen

Rolle:    

Softwareentwickler, Qualitätssicherung

Beschreibung:

Entwicklung einer Java Programmierschnittstelle (API) zur Weiterverarbeitung von Metadaten (SAP IDOC), welche in einem SAP R/3-System hinterlegt sind. Dies erfolgte im Rahmen einer Anbindung von Sterling Integrator an ein SAP R/3-System (SAP Adapter), zunächst in Form eines Kommandozeilentools, in zweiter Projektphase als GUI

Technisches Umfeld:

Unix / Windows, Java SE, Java Script, JSP, OOA/OOD, JDBC, SQL, Eclipse, CVS, Ant, SAPJco, SAP RFC, SAP GUI, RMI, XML;

Testing:

Regressiontests, Integrationstests, Smoke Testing, Mercury TestDirector

Aktivitäten:

  • Erster Teil des Projekts: Recherche und Evaluierung, wie mit der zu benutzenden Middleware (SAPJco) Strukturen aus einem SAP System im gewünschten Maß gelesen werden können

  • Erstellung der API unter Verwendung der gefundenen RFC Aufrufe, die die Weiterverarbeitung der Metadaten ermöglicht

  • Implementierung eines Kommandozeilentools unter Verwendung der erstellten API

  • Erstellung und Durchführung von umfangreichen Tests

  • Dokumentation des Kommandozeilentools im Benutzer­handbuch (in Englisch)

  • Zweiter Teil des Projekts: Integration der API in die graphische Benutzeroberfläche von Sterling Integrator; Entwurf und Realisierung entsprechender Masken unter Verwendung von JSP und Java Script

  • Erstellung und Durchführung von umfangreichen Tests

  • Dokumentation des GUI für das Benutzerhandbuch (in Englisch)

Erfolg:

Sterling Commerce hat über 250 Sterling Integrator Installationen mit diesem Adapter an Alt- und Neukunden verkauft (Stand 09/2009) 


 2003, 9 Monate 

Projekt:

RosettaNet

Branche:

alle

Rolle:    

Softwareentwickler, Qualitätssicherung in nationalen und internationalen Teams

Beschreibung:

Entwicklung einer B2B-Lösung für das EAI- und B2B-Integrationswerk­zeug Sterling Integrator im Bereich Supply Chain Management gemäß normierter Standards (RosettaNet) für Kommunikations- und Geschäfts­prozessabläufe

Technisches Umfeld:

Unix/Windows, Java SE, J2EE, OOA/OOD, RosettaNet Spezifikationen (RNIF, PIP), BPML, HTTP, Eclipse, CVS, Ant, XML;

Testing:

Integrati­onstests, Smoke Testing, Cruise­Control, Mercury TestDirector

Aktivitäten:

  • Architektonische Konzeption der RosettaNet Spezifikati­onen (RNIF, PIP), insbesondere Modellierung und Design ihrer technischen Umsetzung im Kontext von Sterling Integrator

  • Umsetzung der wichtigsten RosettaNet-PIP Geschäftsprozess­abläufe für Supply Chain Management in Sterling Integrator spezifische Business Prozesse (BPML)

  • Erstellung und Durchführung ausführlicher Tests

  • Dokumentation für das Benutzerhandbuch (in Englisch)

Erfolg:

  • Vorbereitung für eine in einem nachfolgenden Projekt durchgeführte Zertifizierung und erfolgreiche Erlangung des ?RosettaNet Ready? Status (Supply Chain Integration Capability)

  • erfolgreiche Positionierung im Markt als Anbieter von RosettaNet Lösungen

 


 

Projekte und Tätigkeiten in der Qualitätssicherung

Die nachfolgenden Projekte beziehen sich auf Tätigkeiten in der Qualitätssicherung bei der Firma Sterling Commerce und davor bei o.tel.o communications GmbH & Co:



1998 - 2003 Senior Quality Assurance Analyst (Sterling Commerce GmbH)

für den Bereich Qualitätssicherung und Software-Entwicklung Regional Lab

  • Testfallerstellung und Automatisierung manueller Testabläufe bzgl. der SAP R/3-Kopplung zwischen einem SAP R/3 System und dem EAI-/B2B Integrationswerkzeug Sterling Integrator. Aufsetzend auf einer bereits existierenden Shell Script-basierten Testumgebung (batch testing) wurde diese Umgebung für die o.g. SAP R/3 Kopplung erweitert; inkl. anschlie­ßendem Monitoring

  • Eigenverantwortliche Durchführung von Qualitätsmanagement- und War­tungsaufgaben sowie Realisierung kundenspezifischer Anpassungen (z. B. Jahr 2000-Umstellung) eines von o.tel.o communications GmbH & Co. übernommenen EDI-Systems

 

1994 - 1998 Qualitätssicherungsbeauftragter (o.tel.o communications GmbH & Co)

Qualitätsmanagement und Durchführung von Qualitätssicherungsabnahmen für ein EDI-System in selbstständiger Arbeit und eigener Verantwortung:

  • Definition von Testfällen, Erstellung von Testdaten sowie manuelle Durch­führung und Dokumentation der Tests
  • Entwurf und schrittweise Implementierung automatisierter Testprozeduren
  • Aufbau, Administration und Dokumentation einer Testumgebung
  • Aufbau und Etablierung eines Fehlermanagement- und Anforderungssystems

  • Kontinuierliches Fehlermanagement und -tracking

  • Schnittstellenfunktion im Qualitätssicherungsprozess zwischen Software-Entwicklung, Support und Consulting

 

Aus- und Weiterbildung

Aus- und Weiterbildung

  • Weiterbildung in den Bereichen IT und Management wie z.B. ?Mastering J2EE and EJB?, ?Software-Qualitätssicherung?, ?Middleware im Vergleich? oder ?Project Management Essentials?
  • Selbststudium von u. a. Java 8, Java EE 6, SOA und Microservices

1980

Vinzenz Palotti Kolleg, Rheinbach

Abschluss: Abitur

1980 - 1990

Rheinische Friedrich-Wilhelms-Universität, Bonn

Studium der Informatik

Schwerpunkt: Künstliche Intelligenz, Nebenfach Betriebswirtschaftslehre

Abschluss: Diplom-Informatiker mit der Gesamtnote "gut"

Kompetenzen

Kompetenzen

Schwerpunkte

Anwendungs-, Kommunikationsund Backend- Entwicklung
Softwareentwicklung in Java
Systemintegration
Systemprogrammierung

Produkte / Standards / Erfahrungen / Methoden

Das Besondere an mir...

  • ist ein hohes Maß an Zielstrebigkeit, Kreativität und methodischem Vorgehen
  • verkörpert eine sehr gewissenhafte und gründliche Arbeitsweise
  • ist ein hohes Maß an Verlässlichkeit und Loyalität

Auf einen Blick

über 25 Jahre Berufserfahrung in unterschiedlichen IT-Rollen:

  • Acht Jahre als freiberuflicher Java-Softwareentwickler, besonders im ITK - Umfeld
  • Sechs Jahre als Java- Softwareingenieur (EDI, EAI, ERP) und fünf Jahre im Qualitätsmanagement, in Festanstellung, bei Sterling Commerce GmbH, Düsseldorf (seit 2010 gehört Sterling Commerce zu IBM)
  • Acht Jahre in der Qualitätssicherung, Softwareentwicklung (EDI- Entwicklung in C) und Consulting, bei o.tel.o communications GmbH & Co., Köln, vorher bei LION Gesellschaft für Systementwicklung mbH, Köln
  • Während des Studiums: Vier Jahre Pascal Programmierer und Anwendungsberater am Hochschulrechenzentrum der Universität Bonn; ein Jahr TeX / LaTeX Buchlayouter bei der Fraunhofer Gesellschaft (ehemals GMD), Sankt Augustin

Software Design:

OOP, OOA/OOD, Design Patterns, Modellierung, UML, Domain-Driven Design, Parallelprogrammierung

Vorgehensmodelle:

Wasserfall-Modell, Rapid Application Development, Agile Software-Entwicklung (XP, Feature-Driven Development, Scrum)

Java - Technologien:

Java SE, J2EE / JEE, EJB, Java Swing / JGoodies, JSP, Spring Batch, JPA, DOM, JDOM, JDBC, OSGi, SAX / JAXP, JAXB, JMS, JCA / JCE

Middleware:

EAI, Netty, RMI, REST WebServices, SAP Jco (Java Connector), RFC (SAP)

Protokolle & Standards:

XML, HTML, DTD, XML Schema, SAP-IDOC, BPML, PKI, X.509, AirPlay (RAOP, RTSP/RTP, SDP), VDV-KA

Kommunikation, EDI:

UN/EDIFACT, OdetteFTP, IPv4 / IPv6, X.400, X.25

Produkte:

Eclipse, Visual Studio Code, Xcode, SonarQube, Tomcat, Oracle Weblogic Server, Jboss / Wildfly, CruiseControl, Jenkins, HP Quality Center, Jira, UC4 / Atomic, ServiceNow, MS-/ Open Office, Sterling Integrator

allgemeine Werkzeuge:

CVS, SVN, Git, Ant, Maven, Unix Shells (sh, bash, csh, ksh, sh), Unix Tools (awk, sed, u. a.), TeX / LaTeX

Testtools / -methoden:

JUnit, Mockito, Komponententests, Integrationstests, Regressiontests, Lasttests (Smoke Testing)

Soziale und persönliche Kompetenz

  • Zielorientierte, systematische und kundenorientierte Arbeitsweise
  • Konzeptionelle Fähigkeiten, selbstständige Arbeitsweise
  • Analytisches und strukturiertes Denken
  • Sorgfalt, Genauigkeit, Selbstdisziplin
  • Teamfähigkeit, hohe kommunikative Kompetenz, Empathie

Betriebssysteme

CMS
am Hochschulrechenzentrum der Uni Bonn
CP/M
vor 25 Jahren
HP-UX
ca. 18 Jahre
IBM AIX
ca. 18 Jahre
iOS
4 Jahre
Linux
2 Jahre
Mac OS X / Darwin
7 Jahre - Fraunhofer Gesellschaft und jetzt privat (iMac)
MS-DOS
21 Jahre
MVS, OS/390
am Hochschulrechenzentrum der Uni Bonn
Sun/Oracle Solaris
ca. 18 Jahre
TOS
TSO: am Hochschulrechenzentrum der Uni Bonn
Unix
ca. 18 Jahre
VMS
ca. 4 Jahre
Windows
21 Jahre

Programmiersprachen

Ada
Grundkenntnisse
Basic
gute Kenntnisse (Anfang der 80-iger Jahre)
C
gute Kenntnisse, 90-iger Jahre
C++
gute Kenntnisse, 1998-2001
Java
Spezialist (ab 2001 bis heute)
JavaScript
Grundkenntnisse
Lisp
Spezialist (Studium, Diplomarbeit, Mitte der 80-iger Jahre)
Pascal
Spezialist (Studium, 80-iger Jahre)
PL/1
Grundkenntnisse (Anfang der 80-iger Jahre)
Prolog
gute Kenntnisse (Studium, Diplomarbeit, Mitte der 80-iger Jahre)
Python
Grundkenntnisse
TeX, LaTeX
Spezialist (Diplomarbeit, Ende der 80-iger Jahre)
Unix Scripting
Spezialist (ab Mitte der 80-iger Jahre bis heute)
Unix-Shells (bash, csh, ksh)
Spezialist (ab Mitte der 80-iger Jahre bis heute)

Datenbanken

JDBC
Spezialist
MS SQL Server
Grundkenntnisse
MySQL
Spezialist
Oracle
Spezialist
Oracle SQL Developer
gute Kenntnisse
PL/SQL
Grundkenntnisse
Proprietäre DB (Apache Derby, neo4j)
Grundkenntnisse
SQL
Spezialist

Datenkommunikation

AppleTalk
genauer AirTunes, AirPlay: gute Kenntnisse
FTAM
Spezialist, insbesondere in OdetteFTP
Internet, Intranet
gute Kenntnisse
ISDN
Grundkenntnisse, im Zusammenhang mit RFC 2204 (OdetteFTP)
ISO/OSI
gute Kenntnisse
Message Queuing
Spezialist (programmatisch)
OdetteFTP
Spezialist
RFC
RFC 2204 & 5024 (ODETTE FTP), 5280 (X.509): Spezialist
RPC
Spezialist im Zusammenhang mit Java RMI, SAPJco
TCP/IP
gute Kenntnisse: IPv4, IPv6
UN/EDIFACT
Spezialist
Voice
RAOP, RTSP/RTP, SDP: Grundkenntnisse - gute Kenntnisse
X.400 X.25 X.225 X.75...
gute Kenntnisse

Hardware

Atari
5 Jahre, privat
HP
HP-UX, ca. 18 Jahre
IBM Großrechner
4 Jahre
IBM RS6000
AIX, ca. 18 Jahre
Macintosh
7 Jahre - Fraunhofer Gesellschaft und jetzt privat (iMac)
PC
21 Jahre
Streamer
Tape Archivierung von einem EDI-System, ca. 1 Jahr
SUN
Sun-OS, ca. 18 Jahre

Branchen

Branchen

  • Systemhaus
  • Telekommunikation (EDI), ITK (IT + TK)
  • Logistik
  • Industrie
  • Handel
  • Banken
  • Versicherungen

Vertrauen Sie auf GULP

Im Bereich Freelancing
Im Bereich Arbeitnehmerüberlassung / Personalvermittlung

Fragen?

Rufen Sie uns an +49 89 500316-300 oder schreiben Sie uns:

Das GULP Freelancer-Portal

Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.