Softwareentwicklung und -architektur mit Java EE
Aktualisiert am 18.06.2023
Profil
Referenzen (1)
Freiberufler / Selbstständiger
Verfügbar ab: 01.07.2024
Verfügbar zu: 100%
davon vor Ort: 100%
Java DevOps
Kotlin Kubernetes Splunk Prometheus
Deutsch
Muttersprache
Englisch
verhandlungssicher
Französisch
fortgeschritten
Latein
Hobby
Niederländisch
fortgeschritten

Einsatzorte

Einsatzorte

Deutschland, Österreich, Schweiz

Deutschland: bevorzugt Bereich D2, insb. Hamburg; 

nicht möglich

Projekte

Projekte

Zeitraum:  02/2010 - 11/2010
Firmen:    Julius Baer Gruppe, Schweizer Privatbank, Zürich
Branche:   Swiss Private Banking, Financial Services
Tätigkeit: - Configuration Manager in technischer und in
              konzeptioneller Hinsicht
   - Projekt "Solution Configuration Management (SCM)"
   - Java EE Projekt "User Managed File Trasfer System" (UMFTS)
   - Administration der Atlassian Tools Crowd, Confluence, JIRA
   - Administration der Continuous Integration (CI) Server
        Hudson, Confluence
   - Application Server Prototyping für Oracle/Sun Glassfish
        Enterprise Server:
     - Setup des Containers und Konfiguration der Applikationen
       für das Deployment;
Fachlichkeit:
  - Projekt "Solution Configuration Maanagement (SCM)":
      - Erarbeitung von Kozepten für ein Technologie-übergreifendes
        Konfigurationsmanagement unter maximal möglicher
        Ausnutzung bestehender Versionierungssysteme
      - Stichworte: Configuration Items (CI), Configuration
        Manager, Baselining, Dependency Management
      - Behandlung von Problemen, wenn verschiedenste Projekte
        auf verschiedenste Applikationen zugreifen und dort Änderungen
        vornemhmen, die zu Konflikten führen können
      - Pilot-Projekt mt dem Ziel einer praktischen Umsetzung:
        Analyse von Problemen bei bestehenden Releases mit
        konkurrierenden Änderungen, die zu Konflikten führen;
        Erstellung von Software-Repositories für Tools, die Code
        und Daten mischen und diese nicht versioniert in einer
        Datenbank ablegen (Triple´A; TAAN - Triple´A Analyzer
        Plugin für Eclipse)
  - Java EE Projekt "User Manager File Trasfer System" (UMFTS):
      - Neuentwicklung einer Java EE basierenden Anwendung als
        "User Managed File Transfer System (UMFTS)"
      - Hochladen und zum Herunterladen zur-Verfügung-Stellen
        von Dokumenten unter strengen Sicherheitsvorkehrungen
  - Administration der Atlassian Tools Crowd, Confluence, JIRA
  - Administration der Continuous Integration (CI) Server
        Hudson, Confluence
  - Application Server Prototyping für Oracle/Sun Glassfish
        Enterprise Server;
Technische Umsetzung:
  - Projekt "Solution Configuration Maanagement (SCM)":
     - eher konzepitonelles, weniger technisches Projekt;
     - Erstellung von Datenmodellen für Configuration Items (CIs),
         ihre Abhängigkeiten zueinander, Projekte mit Change Requests
         etc.
     - Versuch, Prozesse für dieses Datenmodell zu etwerfen, wie
         z.B. Changes in den Configuration Items koordiniert werden
         um Konflikte zu vermeiden
     - jedoch auch Möglichkeiten zur technischen Umsetzung:
        - Tools zum Erstellen von Software-Repositories, die eine
          Versionerung ermöglichen;
        - Durchsetzung der Verwendung solcher Tools und Definition
          von Prozessen bei ihrer Verwendung;
  - Projekt "User Manager File Trasfer System" (UMFTS):
     - Java EE Anwendung
     - Maven-Build mit mehreren Profilen (Development, Production)
       für verschiedene Zielumgebungen
     - Maven Config - Modul mit dem Maven Assembly-Plugin zur Konfiguration
       des Production-Profils für verschiedene Zielumgebungen
     - Automatisches Generieren von DB-Schema und DB-Testdaten aus dem
       Java-Code heraus im Development-Profil
     - Unlimited Strength Cryptography mit Java Cryptography Extension
       (JCE)
     - Secure Connections zum File Upload Server;
     - Java Mail API zum automatisierten Versenden von E-Mails
     - Active Directory (AD)/LDAP - Anbindung für die Authentisierung
       und Autorisierung via LDAPs;
     - Konfiguration für Single-Sign-On mit Kerberos und SPNEGO
Verwendete Tools:
  - UMFTS:
    - Java Enterprise Edition (Java EE)
    - GlassFish Enterprise Application Server
    - Unlimited Strength Cryptography mit JCE (Java Cryptography Extension);
    - Hibernate und Java Persistence API (JPA)
    - Single-Sign-On mit Kerberos und SPNEGO mit einer Library
         von SourceForge;
    - Setup des Containers Oracle/Sun GlassFish für UMFTS für
         verschiedenste Zielumgebungen
    - Java Server Faces (JSF) 2.0;
    - Maven Builds
    - CI mittels Hudson
    - Verwendung mehrerer Komponenten des hauseigenen Java Application 
         Frameworks (JAF): Lifecycle Component, Security Component;
    - Subversion
 - Administration von Servern für die Continuous Integration (CI):
    - Hudson
    - Continuum 1.2.3, 1.3.6
    - Verteilte Builds;
 - Administration von Atlassian-Tools
    - Crowd
    - Confluence
    - Jira
    - Oracle 11gR2
    - LDAP / LDAPS - Anbindung für die Benutzerverwaltung mit Crowd
    - Active Directory Browser oder Kommandozeilen-Tools zum
        Abfragen der AD-Datenbestände
    - Single-Sign-On mit Kerberos und SPNEGO
    - DB Upgrades, z.B. Oracle 10gR2 - 11gR2
    - Versionsupgrades der einzelnen Tools;
 - Weitere administrative Tätgkeiten für:
    - Subversion: - Benutzerverwaltung, Zugriffsrechte
                  - Anlegen und Verwalten von Projekten
    - Maven: - Verschieben von Maven - Repositories 


Zeitraum:  04/2009 - 12/2009
Firmen:    LBS Landesbausparkasse München, LBS IT KG Bayern
Branche:   Bausparkasse, Banking, Financial Services
Tätigkeit: - Java EE Architektur, Weiterentwicklung, Wartung &
              automatisiertes Testen für das Bausparportal 2.3;
           - Optimierung der automatisierten GUI-basierten Tests
               (unter Verwendung von Selenium als Test-Tool)
            - Analyse, Refactoring, Nachdokumentation eines im Hause
              entwickelten Web- und Applikatons-Frameworks auf OSGi-Basis
            - Verbesserung hin zu einer modularen und schichtenbasierten
              Gesamtarchitektur
Fachlichkeit:
   - Bausparportal zur Abbildung sämtlicher Vorgänge im Zusammenhang mit
     dem Bausparen bei den Landesbausparkassen und Sparkassen mit zum Teil
     sehr komplexer Fachlogik wie z.B. dem Zusamenführen mehrerer
     Bausparveträge unterschiedlichster Tarife und Tarifgruppen zu einem
     einzigen nach komplexen fachlichen Regeln
   - Implementation gewünschter neuer Features im Framework-Code mit
     jeweils gründlicher Dokumentation der Fachlichkeit und der technischen
     Umsetzung;
   - Nachdokumentation des Web- und Applikations-Frameworks auf OSGi-Basis
     und Kommunikation der Egebnisse an die ca. 20 Anwendungsentwickler, die
     dieses Framework nutzen; Eingehen auf Wünsche der Anwendungsentwickler
     bei Änderungen und Erweiterungen des Frameworks;
     - insbesondere Analyse des Event-basierten Modells und Kommunikation
       desselben an die Anwendungsentwickler;
   - Autorisierungs-Modul:
     - Requirements-Analyse, Design, Umsetzung & Dokumentation
     - basierend auf einem Konzept von Rollen und Rollenzuordnungen, die
       rekursiv durchlaufen werden (mit Cycle-Prevention);
     - Implementation des zugeörigen Web-basierten GUI
  - Timer-Service, OSGi-basierend:
     - Requirements-Analyse, Design, Umsetzung & Dokumentation
     - Implementation des zugeörigen Web-basierten GUI
Technische Umsetzung:
   - OSGi basierendes im Hause entwickeltes Web- und Applikations-Framework;
   - Erstellung und Überwachung von Code Coventions;
   - Erhöhung des Automatisierungsgrades beim Testen sowohl auf der Ebene
     der Unit-Tests als auch auf der Ebene der Integrationstests (mittels Selenium);
     - Verbesserung der Testbarkeit durch ein Verbesserung der "Trennung
       der Zuständigkeiten" ("Searation of Concerns"), Layering etc.
     - regelmässige Testausführung im Rahmen der Continuous Integration (CI)
       und Reporting der Ergebnisse; 
Verwendete Tools:
   - Java Enterprise Edition (Java EE)
   - Struts 2, Java Server Pages (JSP)
   - Java Persistence mit JPA und Hibernate;
   - Eclipse mit diversen Plug-Ins
   - OSGi in der Eclipse Equinox Implementation
   - Bestimmung der Testabdeckung (Code Coverage) mittels Cobertura
   - Automatiserte Integrationstests mt Selenium
   - Code Quality Checks und Static Source Code Analysis mit Checkstyle
   - Continuous Integration (CI) mit Ant, Eclipse Headless PDE-Build
   - Deployment auf dem IBM WebSphere-Applikationsserver
   - Oracle 10gR11 Datenbanken
   - Datenbank-Tools: Squirrel, TOAD, Oracle Developer;
   - Subversion als Versionierungstool 

 

 

 

Zeitraum:  01/2009 - 03/2009
Firmen:    Deutsche Post World Net AG, Deutsche Post IT Services, Bonn;

  Transport-Informations-Plattform (TIP);

Branche:   Logistik: Auftragsmanagemengt, Transportplanung
Tätigkeit: Build-, Konfiugrations-, Deployment- und Release  - Management von komplexen

  mehrschichtigen J2EE - Awendungen; automatisierte Komponenten - Versionierung;   Konfiguration von Continuous Integration (CI) - Tools wie CruiseControl (CC);

  Branch-Planung;

Fachlichkeit:

  - Erstellung einer Transport-Informations-Plattform (TIP) zum Erfassen und

 Bearbeiten von Aufträgen und zu deren Einplanung in Transporte;

  - fachlich komplexe Logistik-Anwendung mit unter anderem dem Ziel der

 Nutzung der Synergien zwischen den ca. acht verschiedenen Logistik-

 Netzwerken der Post (z.B.  Schnelläufernetz SLN oder Express-

 Logistikknetz ELN);

  - Teilgebiete und damit Teil-Teams: Aufträge, Transporte, Stammdaten,

 Standorte, Framework, Test (Testdaten-Generierung,

JUnit-Testabdeckung;

 Test-Review etc.), Build, Datenbanken;

  - Mitglied im Test-Team und dabei Generierung von Test-Daten für Intuitiv-Tests

 und Evaluations-Tests / Abnahmetests;

  - Einarbeitung in das komplette Datenmodell: Aufträge (einzeln, regelmäßig),

 Transporte, Standorte, Leitstrukturen, Geschwindigkeitsprofile,

 Kostenberechnungsmodelle, Bereiche, Transportprodukte, Transportmittel,

 Benutzer und Benutzergruppen mit verschiedensten Rollen als

 Zuständigkeitsprofile; weitere Stammdaten;

 - Zuordnungstabellen diverser Stammdaten;

 - hierarchische Datenstrukturen, z.B. ein hierarchisches Berechtigungskonzept

mit einer Vielzahl von Verantwortungarten: Verwendungs-, Verwaltungs-,

Planungs-, Umsetzungsverantwortung;

  - Aufdecken vom Inkonsistenzen und Weiterentwicklung des Datenmodells in ARIS;

  - Weiterentwicklung des Testdaten-Generators:

 - Umsetzung des kompletten Datenmodells in ein XML-Schema;

 - Transformation der EXCEL-Testdaten nach XML in das vordefinierte

XML-Schema z.B. mittels Java-Parsern unter Verwendung des Apache

POI Projekts (POI-HSSF und POI-XSSF) oder mittels Excel-Makros (in

einfacheren Fällen);

 - Überprüfung der generierten Testdaten auf Schema-Konformität;

 - Transformation der XML-Testdaten in ein Zwischenformat mittels der XML

Query Language (XQuery);

 - Übersetzung der Testdaten im Zwischenformat in das Java-Objektmodell mit

Hilfe des Java Reflection - API;

 - Persistierung der Testdaten mittels Hibernate-Mappings aus dem existierenden

Code der Transport-Informations-Plattform(TIP)-Anwendung heraus;

Technische Umsetzung:

  - Erstellung der Transport-Informations-Plattform als Rich Client-Anwendung

 mit Eclipse RCP sowie mit einer serverseitigen Komponente (unter JBoss 5);

  - automatisierter Datenbankabgleich zwischen der lokalen Derby-Datenbank

 des Rich Clients sowie der Oracle-Datenbank des Servers; Zielsetzung

 dabei: zentrale Datenhaltung der Daten, die für alle Anwender sichtbar

 sein müssen, jedoch die möglich für einen Client, eine Zeit lang autonom

 (d.h. ohne Netzwerkverbindung) arbeiten zu können;

  - Eclipse RCP (Rich Client Platform)

  - Eclipse Equinox als OSGi Implementierung zum Management der

 Komponenten / Plug-Ins;

  - Eclipse Plug-In Development: GUI Plug-Ins und Plug-Ins mit reiner Fachlogik;

Verwendete Tools:

  - Java 6

  - Entwicklungsumgebung (IDE): Eclipse 3.4 (Ganymed) mit diversen Plug-Ins

 z.B. zum Versionsmanagement mit Serena Dimensions;

  - Eclipse Equinox als OSGi - Implementierung zur dynamischen

 Komponentenverwaltung sowie zur Verwaltung ihrer Abhängigkeiten;

  - GUI-Entwicklung mit  Eclipse RCP (Rich Client Platform):

  Standard Widget Toolkit(SWT)-Programmierung;

  - Datenbanken: Oracle Server-seitig sowie Derby Client-seitig;

 automatisierter Datenbankabgleich zwischen der Derby-Datenbank des

 Rich-Client sowie der server-seitigen Oracle-Datenbank;

  - Datenbanken-Anbindung (O/R-Mapper): Hibernate;

  - Datenbank-Tools: Squirrel, TOAD, Oracle Developer;

  - Application-Server: Server-seitige Komponente unter JBoss;

  - Versionsmanagement (SCM): Serena Dimensions;

  - Build-System: Ant 1.7.1;

  - Unit-Tests: JUnit4 sowie Tools zum Bestimmen der Testabdeckung wie Cobertura;




Zeitraum:  05/2008 - 12/2008
Firmen:    ING DiBa AG (Direktbank); Nürnberg;
Branche:   Banken, Direktbanken, Internetbanken
Tätigkeit: Build-, Konfiugrations-, Deployment- und Release  - Management von komplexen

  mehrschichtigen J2EE - Awendungen; automatisierte Komponenten - Versionierung;

  Konfiguration von Continuous Integration (CI) - Tools wie CruiseControl (CC);

  Branch-Planung;

Fachlichkeit:

  - Software zum Betreiben einer Direktbank mit mehrschichtiger (multi-tiered)

 J2EE- Architektur mit verschiedensten Clients z.B. für Internetanwendungen,

 Call-Center, Beschwerde-Management ("Turn Friedly"), Middle-Tier mit

 Fachlogik ("Middleware-Services (MWS)") und verschiedenste Backend-Systeme

 wie relationale Datenbanken (Oacle 9i/10i), Schufa-Auskunftssysteme,

 Kordoba ("Kundenorientiertes Dialog-system für Bankgeschäfte", nun Core24),

 PIN-TAN etc.;

  - Build-, Konfigurations-, Versionierungs-, Deployment- und Release-Management

 vor allem für den Middle-Tier ("Middleware - Services (MWS)") in voll

 automatisierter Form;

  - Erstellung von Build-Tools zur Unterstützung der eben genannten Aspekte für

 alle anderen Projekte, insbesondere für die verschiedenen Clients;

  - Dokumentation, Pflege und Weiterentwicklung der bestehenden Systeme;

  - Branch-Planung und -Durchführung zur Unterstützung des Release-Managements;

  - Administration und Installation von Entwicklungs- und Testsystemen,

 insbesondere der dortigen Anwendungsserver IBM Websphere 6.0.22 und

 JBoss 4.3;

Projektaufgabe:

  - Pflege des XML " basierten Konfigurations-Repositories zur Darstellung aller

 möglichen Kombinationen von Konfigurationen z.B. des Middle-Tiers und aller

 möglicher Backend-Systeme für die verschiedenen SCM-Branches und Zielsysteme

 als Grundlage für das vollautomatisierte Deployment und Archivierung /

 Release mit dem Ziel der Revisionssicherheit;

  - automatisiertes Erzeugen von Konifugrationsdaten anhand des Konfigurations-

 Repositories mit dem Ziele des automatisierten Deployments wahlweise auf

 IBM Websphere 6.0.22 oder auf JBoss 4.3. Anwendungsservern (wahlweise mit

 mehreren Clustern, Nodes und / oder Profiles);

 automatisiertes Generieren / Anpassen von JACL-Skripten zum Generieren von

 Backend-Anbindungen unter IBM Websphere;

  - automatisiertes Deployment auf verschiedenen Typen von Anwendungsservern und

 automatisierte Erfolgskontrolle des Deployments (z.B. mit JACL-Skripten für

 IBM WebSphere und MBeans/twiddle-Skript für JBoss oder einfacher durch

 Abfrage von URLs der deployten Anwendung);

  - Branching " Strategien zur Unterstützung des Release " Managements;

 Aufsetzen von Branches und zugehörigen Software-Repositories für das

 Dependency-Management (mittels Apache Ivy);

  - Einrichtung und Konfiguration von Werkzeugen für die kontinuierliche

 Integration ("Continuous Integration - CI") wie CruiseControl (CC);

 Pflege dieser Tools wie z.B. Einrichtung von Cron-Jobs zum Archivieren von

 Log-Dateien (automatisiertes Verhindern von Plattenübrläufen);

  - Automatisierungsansätze bei der Qualitätskontrolle:

 - JUnit-basierte Tests teilweise mit dem Charakter von Integrationstests;

 - JUnit-Testabdeckung (test coverage) z.B. mit Cobertura;

 - automatisiertes Ausführen von Defekt-Detektoren wie PMD;

 - JavaDoc Generierung;

 - automatisiertes regemäßiges Deployment wahlweise auf IBM WebSphere 6.0.22

oder auf JBoss 4.3;

 - Verwendung von JDiff zur automaisierten Dokumentation von Unterschieden

zwischen Releases;

  - Abhängigkeits-Management:

 - Verwendung von Tools wie Apache Ivy zum atomatisierten

Dependency-Management des Middle-Tiers, der sich aus ca. 65 Teilkomponenten

und vielen Third-Party-Libs zusammensetzt;

 - automatisierte Bestimmung der Kompilierungsreihenfolge (build order)

gemäß der vorgegebenen direkten Abhängigkeiten;

 - automatisertes Erstellen von Abhängigkeitsgraphen (dependency graphs);

  - automatisiertes Build der Middleware Services MWS gemäß verschiedenen

 Entwickler-Rollen entsprechend den verschiedenen Typen von Komponenten

 der MWS:

 - Entwickler des technischen Kernsystems T-Core (technical core);

 - Entwickler des fachlichen Kernsystems B-Core (business core);

 - Entwickler von Backend - Adaptoren;

 - Entwickler von Domänen wie z.B Kredit, Baufi, Spar;

 - Unterstützung von Builds von Teilsystemen der Middleware Services z.B.

mit nur bestmmten Domänen;

  - Publizerung und Archiverung der Ergebnisse des Build-Vorgangs:

 - sowohl der deploybaren Artefakte wie .ear-Dateien,

 - der umgebungsabhängigen Konfigarationsdateien je zulässiger Deployment-

Konfiguration und je Zielsystem

 - als auch von Zusatzdaten wie JDiff - Reports zur Dokumentation des

jeweiligen Releases;

 - Generierung und Publizierung von Artefakten nur für Clients der MWS;

  - automisierte Auswertung von Doclets zur Zugriffskontrolle und Dokumentation,

 welche Clients auf welche MWS - API Funktionen zugreifen dürfen;

 Dokumentation in Form von generierten HTML-Dokumenten;

  - Versions-Management: Erweiterung der automatiserten Versionierung:

 - Major- und Minor-Version-Number des Gesamtprodukts Middleware Services

(MWS);

 - Erhöhung der Major-Version-Number nur bei Schnittstellenänderungen für

die die MWS aufrufenden Clients-,

 - bis zu vierstellige automatisierte Versionierung der Einzelkomponenten

der MWS:

- erste Stelle: Schnittstellen-Änderungen für Client-Zugriffe für

  MWS-Client - Komponenten;

- zweite Stelle: sonstige Code-Änderungen;

- dritte Stelle: Äderungen in Konfigarationsdaten;

- vierte Stelle: Änderungen von direkten Abhängigkeiten oder in

  Komponenten, zu denen (direkt oder transitiv) Abhängigkeiten bestehen;

 - Erweiterung des Versionsmanagements mit dem Ziel der automatisierten

Berücksichtigung von Branches:

- Einführung Branch-unabhängiger, globaler Versionsnummern und damit

  Einführung Branch-unabhängiger, globaler Versionsrepositories für das

  Abhängigkeits-Managementsystem Apache Ivy;

- damit Ermöglichung eines wirklich komponentenbasierten Builds;

  - Erstellung und Erweiterung von Build-Skripten für den Build-Server, die

 den Gesamtprozess des Builds ohne weitere Benutzerinteraktion durchführen

 können nach anfänglicher Eingabe aller Daten;

  - Bestandteile des Gesamt-Build-Vorgangs:

 - eigentlicher Build: Erstellung der deploybaren Artefakte gemäß

automatisiert bestimmter Build-Reihenfolge;

 - Konfiguration: Erzeugung der umgebungsabhängigen Konfigurationsdateien

aus zugehörigen Templates für alle zulässigen Zielsysteme gemäß

Konfigurations-Repository für den gegebenen Branch, die gegebene

Anwendung etc.;

 - Versionierung: automatisiertes Bstimmen der Versionsnummern für das

Gesamtsystem als auch für alle Einzelkomponenten in reproduzierbarer

und damit revisionssicherer Form;

 - Release / Archivierung: Archivierung der erzeugten deploybaren Artefakte,

der Konfigurationsdaten für alle zulässigen Konfigurationen und

sämtlicher Metadaten wie automtisch generierten Release-Dokumentationen

(z.B JDiff zur Dokumentation der Differenzen zwischen zwei Releases);

 - Deployment des Systems gemäß gegebenen Konfigurationsdaten auf den

entsprechenden Applikations-Servern; Erfolgskontrolle des Deployments;

  - Pflege von Bibliotheksarchiven wie der "cmmonlib" und Unterstützung des

 Zugriffs hierauf mttels Apache Ivy;

  - Unterstützung der IDE wie Eclipse durch automatisiertes Generieren der

 .classpath Files gemäß der Ergebnisse der Abhängigkeitsanalyse mit

 Apache Ivy;

  - Beratung und Unterstützung der Entwickler beim lokalen Build als auch

 beim Build-Vorgang auf dem Build-Server;

  - Koordinierung mit dem Betriebsteam von Praxis- und Qualitätssicherungs(QS)-

 Servern zum Zwecke der Vereinheitlichung der Vorgehensweisen;

Technische Umsetzung:

  - reines Java/J2EE-Projekt mit Java 1.4.2 und  Java 1.5.0.12;

  - IDE: Eclipse 3.3 Europa und Rational Application Developer (RAD);

  - SCM (Source Configuration Management): CVS (Concurrent Version System);

 Wechsel auf SubVersion  geplant; Tools wie Tortoise CVS;

  - Backend-Systeme: relationale Datenbanken wie Oracle 9i / 10i;

 TOAD (Tool for Oracle Application Developers);

  - Application-Server: IBM WebSphere 6.0.22 (typischerweise mit einem Node,

 zwei Clustern und je zwei Server-Instanzen je Cluster);

  - JBoss 4.3 (typischerweise mit je zwei Profilen);

  - unterschiedliche Profiltypen für Clients und für den Middle-Tier;

  - Buildmanagement mit Ant 1.6.5 und Ant 1.7.1;

 diverse Ant-Libraries wie Ant-Contrib;

  - Dependency-Management mit Apache Ivy;

  - JUnit zum Erstellen automatisierter Tests (auch mit Backend-Anbindung);

  - Cobertura zum Bestimmen der Testabdeckung des Codes;




Zeitraum:  01/2008 - 12/2008 (Teilzeit)
Firmen:    Itellity GmbH; Hamburg   ->  www.itellity.de
Branche:   Mobilfunk; Internet-Dienstleister;
Tätigkeit: Weiterentwicklung eines Portals zum Bestimmen der kostengünstigsten

  Mobilfunktarife anhand der Einzelverbindungsnachweise;;

Projektaufgabe:

  - Entwicklung von Parsern für Mobilfunk - Einzelverbindungsnachweise

 im PDF - Format oder als CSV - Dateien (z.B. für nationale Provider wie

 Debitel, E-Plus, Mobilcom, O2, Talkline, T-Mobile, Vodafone);

  - Umwandlung der PDF - Daten in generische DataRecord - Formate zur

 anschließenden Weitergabe an das Tarif - Optimierungsmodul;

  - Erweiterung des internen Datenmodells zur Darstellung der verschiedensten

 Verbindungstypen und Arten (z.B. ConnectionType; InvoiceConnectionType;

 CallDetailRecord; DetailRecordType; ShortMessageType;

 Abstract-, Call-, Data-, Messaging-DetailRecord);

Technische Umsetzung:

  - IDE: Eclipse 3.3 Europe; diverse Eclipse Plug-Ins wie z.B Codehaus

 Maven Plug-In for Eclipse; Subclipse für SubVersion-Anbindung;

  - Application-Server: JBoss mit EJB 3.0;

  - Build-System: Ant, Maven;

  - Datenbank: MySQL;

  - Source Configuration Management (SCM): Subversion;

  - Tools: PDF Toolbox und diverse andere PDF - Parsing - Tools (ICE-Parser);




Zeitraum:  01/2007 - 05/2008
Firmen:    Nokia Networks / Nokia Siemens Networks, Düsseldorf;

  Tata Consultancy Services (TCS);

Branche:   Telekommunikation; Mobilfunk; Mobilfunknetze;
Tätigkeit: Design, Implementierung, Wartung, Refactoring und Dokumentation von

  komplexer Software zur Wartung heterogener Mobilfunknetze;

  Test Driven Development (TDD); Continuous Integration (CI);

  hierarchische Build-Systeme;Eclipse EMF zur Code-Generierung und Modell-Validierung;

Fachlichkeit:

  - komplexe Software zur Wartung von Mobilfunknetzen mit weltweitem

 Einsatzbereich;

 Herauslösung einer zugrunde liegenden Plattform (OES - Open EMS Suite)

 aus dem Gesamtprodukt OSS, um diese getrennt vermarkten zu können;

  - Teilbereiche unter anderem:

 - Configuration Management (CM): Managed Objects Framework (MOF)

zum Management der Konfiguration komplexer heterogener (da historisch

gewachsener) Mobilfunktetze durch Metamodellierung des eigentlichen

Datenmodells und durch  Erstellung von Adaptationen an die eigentliche

Netzwerktopologie (modellgetriebener Ansatz - Nodel Driven Architecture

(MDA));

 - Configuration Management User Interface (CMUI):

Managed Objects Framework Desktop (MOF-D) zum Designen neuer

Netzwerktopologien bzw. von  Adaptationen des Metamodels an die

physikalische Netzwerktopologie;

 - Performance Management (PM)

 - Fault Management (FM)

 - Adaptation Manager (AM) als Top-Level Komponente, die alle anderen

vorgenannten Komponenten aufruft während eines Vorgangs des sogenannten

Adaptation Deployments, d.h. des Einspielens einer speziellen

Netzwerktopologie;

Architektur:

  - vielschichtige J2EE - Architektur (multi-tiered architecture) unter

 Verwendung von stateful- und stateless Session-Beans, Message-Driven Beans

 und Entity Beans nach EJB 2.1 und unter Benutzung des WebSphere /

 Rational Application Servers (WAS, RAS);

  - Generierungsansatz für Meta-Modelle aus dem UML-Modell in Rational Rose

 mittels der Model-Driven Architecture (MDA);

  - Code-Generierung mittels des Eclipse Modelling Framwork (EMF) aus dem

 XMI-Fromat von Rational Rose;

  - EMF.Edit zum Erzeugen eines Editors für das Datenmodell;

  - EMF Validation Framework, um die Integrität des Modells zu jeder Zeit

 gewährleisten zu können; Definition der Constraints in Rational Rose

(einfache Constraints mit Regular Expressions,

 komplexe Constraints mit der Object Constraint Language (OCL));


Projektaufgabe:

  - Weiterentwicklung, Wartung, Design und Refactoring einer komplexen

 Software zur Wartung von Mobilfunknetzen (Open EMS Suite (OES));

  - Dokumentation der Fachlogik und des Designs nach massivem Refactoring;

 "Refactoring to patterns": Refactoring nach standardisierten J2EE-Musterns

 und Architekturprinzipien wie der Trennung von Fachlichkeit und Technik,

 Ausgliederung  der Backend-Zugriffslogik, um z.B. eine Migration von

 EJB-Entity Beans nach Hibernate erst zu ermöglichen;

 Migration von JDBC / SQL - Datenbankzugriffen nach Entity-Beans und

 Trennung von der Fachlogik;

  - Schreiben automatisierter Tests auf allen Ebenen (Unit-Tests in JUnit4,

 In-Container Integrationstests/ E2E-Tests; nach verbesserter Architektur

 und Design zur Trennung von Fachlogik und Datenbankzugriffslogik

 (Separation of Concerns / Trennung der Verantwortlichkeiten)

 Erstellung von Off-Container Unit-Tests mit nahezu derselben

 Funktionalität wie In-Container-Integrations-Tests (aber um einen Faktor

 von ca. 100 schneller);

  - Migrationen z.B. des Build-Prozesses von Ant nach Maven und des

 Quellcode-Konfigurationsmanagements (SCM) von IBM/ Rational ClearCase UCM

 nach Subversion; Anpassung des Test- und Delivery-Prozesses an die neue

 Infrastruktur;

Aufgabenbereich:

  - Weiterentwicklung der Fachlichkeit des Configuration Management(CM)-

 Deployment Controllers: Erweiterung um diverse Plausibilitätstests;

 Refactoring mit dem Ziel der verbesserten Wartbarkeit und Testbarkeit

 durch Einführung einer mehrschichtigen Architektur/ Designs unter

 strikter Trennung von Fachlogik in POJOs (Plain Old Java Beans) und

 von Infrastrukturlogik wie Datenbank- und Dateizugriffen;

 Erstellung von Tests hierzu durch Einführung von nur wenigen

 Dummy-Objekten (in der Regel keine Mock-Objekte) für die Infrastruktur-

 komponenten;

  - Dokumentation der Fachlogik als auch von Architektur und Design;

  - Mitglied eines Maintenance Teams: testgetriebener Ansatz, indem vor der

 Behebung von Fehlern - wenn immer möglich - zuerst ein End-to-End-Test

 geschrieben wird, der den erkannten Fehler offen legt;

  - Migration des Build-Systems von Ant nach Maven sowie des SCM von

 IBM ClearCase (UCM) nach Subversion sowie Anpassung der zugehörigen

 Delivery- und Test-Strategien: Erstellung von Maven - Projekt Objekt

 Models (POMs);  Testen von Branching Strategien in Subversion als

 Ersatz/ Simulation von Developer-Streams (und nicht Integration-Streams)

 in ClearCase;

  - Integration des sogenannten O2ML-Toolkits in MOF:

 Verkürzung des Zeitaufwands einer neuen Modellgenerierung des Metamodells

 von mehreren Tagen auf wenige Stunden durch Erhöhung des Automatisierungs-

 grades z.B. in der Code-Generierung;

  - Umfangreiches Refactoring des Quellcodes und der Maven - POMs wegen

 erheblich geänderter Projektabhängigkeiten; Versuch, diese sehr komplexe

 Umstellung in kleinere Deliverables aufzuteilen durch Einführung

 verschiedener Profile in den Project Object Models (POMs) von Maven;

  - Automatisierte Überprüfung erstellter Adaptationen an physikalische und

 logische Netzwerktopologien auf Plausibilitätsregeln und Konsistenzregeln

 hin;

 - teilweise Modellierung dieser Regeln in Rational Rose und

automatisierte Generierung des Codes hierzu;

 - Benutzung des "Eclipse Modelling Frameworks (EMF)" zur automatisierten

Verifikation dieser Plausibilitätsregeln;

 - Verifikation schon während des Generierungsvorgangs mittels des MOFD /

CMUI als auch später beim Deployment dieser Adaptationen mit

demselben Code;

Technische Umsetzung:

  - IDE: WebSphere Application Developer (WSAD) / Rational Application

 Developer (RAD);

 - Eclipse 3.3 Europe;

 - diverse Eclipse Plug-Ins wie z.B Codehaus Maven Plug-In for Eclipse

von Polarion; Subversive SVN Team Provider; Ant 1.6.5;

Rational ClearCase Explorer;

  - Application Server: IBM WebSphere / Rational Application Server

 (WAS / RAS) 6.0.22; Remote Debugging;

 Konfiguration skriptgesteuert (JACL) oder mittels WebSphere

 Administrationskonsole;

  - Design-Tool: Rational Rose;

  - Datenbank: Oracle 9i; 10g Enterpreise Edition Rel. 10.2.0;

HSQLDB 1.8.0 (Hypersonic SQL DB) zum Testen;

  - Datenbanktools: DbVisualizer 5.1.1;

Tool for Oracle Application Developers (TOAD);

  - Datenbankzugriff: JDBC / SQL; PL/SQL; EJB 2.1 Entity Beans; Hibernate;

  - Source Configuration Management (SCM):

 - IBM Rational ClearCase; ClearCase UCM (Unified Change Management);

 - Subversion; Tortoise SVN 1.4.4;

  - Build Management Tool: Ant 1.6.5; Maven 2.0.8;

  - Test Driven Development (TDD) / Test First Development (TFD):

 - JUnit für Unit-Tests;

 - Robot für Intgration-Tests (vergleichbar mit FIT/Fitness - Framework

for Integrated Tests, jedoch Nokia-proprietär bis 10/2007,

basierend auf Python und Jython);

  - Continuous Integration: Hierarchical Build Systems mit

Bamboo, CruiseControl;

  - Unit-Test Coverage Measurement: z.B. Verwendung von

Cobertura 1.9; djUnit 0.8.2;

  - Skripting mit Python 2.5 und Jython 2.2;




Zeitraum:  01/2006 - 12/2006
Firmen:    DBV Winterthur Versicherungen, Wiesbaden;
Branche:   Versicherungen
Tätigkeit: Architektur und Implementierung einer Reihe von Web Services für

  verschiedenartigste Versicherungsprodukte;

  Architektur eines "Generierungsansatzes" für diese Web Services

Aufgabenbereich:

  - Architektur und Implementierung von Web Services für verschiedenartigste

 Versicherungsprodukte unter Verwendung des Apache Axis Frameworks;

 unter anderem für ein Versicherungskombiprodukt, welches bis zu sieben

 verschiedene und voneinander unabhängige Versicherungssparten beinhaltet

 (BOX plus);

  - Spezifikation, Definition und Implementierung eines Standard Web Service

 für verschiedene Versicherungsprodukte basierend auf der Dokumentation

 des zugrunde liegenden Tarifierungskerns mit einem generischen,

 reproduzierbaren, und halbautomatischem Ansatz;

  - automatische Generierung von XML Schemadefinitionen und WSDLs für Standard

 Web Services basierend auf der Dokumentation des Tarifierungskerns unter

 Beachtung bestimmter Regeln für die Geschäftslogik; Herleitung/Extraktion,

 Spezifizierung und Implementierung dieser Geschäftsregeln als Bestandteil

 eines neu entwickelten Werkzeugs zur Generierung von XML Schemata;

  - Spezifizierung und Implementierung der verschiedenen Anwendungsfälle

 (Use Cases) für die Standard Web Services wie zum Beispiel

 "Angebot berechnen", "Versicherungsantrag/ Deckungsaufgabe prüfen",

 "Deckungsaufgabe senden" und "Status eines Versicherungsantrags erfragen";

  - Spezifizierung und Implementierung weitere Geschäftsregeln wie zum Beispiel

 "Vergleich von Versicherungstarifen" oder "Überprüfung der Nutzerrechte in

 Hinsicht auf verschiedene Tarifvarianten";

  - Vielschichtiger Ansatz (Multi - tiered approach):

 - in erster Linie Errichtung des Schicht des Web Service Anbieters im

Rahmen einer vielschichtigen J2EE-Architektur;

 - aber auch Durchführung Web Service spezifischer Änderungen und

Erweiterung in der Geschäftslogikschicht (Olan Business Tier/ Layer)

wie zum Beispiel

- Web Service spezifische Benutzerauthentifizierung und -authorisierung,

  oder

- Entwerfen und Befüllen von Datenbanktabellen mit geschäftspartner-

  spezifischen Inhalten für jeden Versicherungsantrag;

  - Entwicklung Swing-basierter and HTML-basierter Test Clients (HttpUnit);

  - Anbindung dieser Standard Web Services an eine Vielzahl von

 Geschäftspartnern mit verschiedenartigsten Schnittstellen, die durch

 unterschiedlichste WSDLs beschrieben werden;

  - Transformation der eingehenden SOAP - Requests und der ausgehenden SOAP -

 Responses der verschiedenen Geschäftspartner auf die Standard-Schnittstelle

 unter Benutzung von XSL Style Sheets zur Durchführung von

 XML Transformationen;

  - Benutzung von Web Service Handlern, um diese XML-Transformationsskripte

 zur Abbildung der SOAP - Requests und - Responses aufzurufen;

  - automatisierte Entscheidungslogik zur Identifizierung des geeigneten

 XSLT Transformationsskripts in Abhängigkeit des Geschäftspartners,

 des Anwendungsfalls, der benutzten Schnittstellenversion etc.;

  - Analyse der Anforderungen der verschiedenen Geschäftspartner, die zum

 Beispiel Vergleichssoftware für Versicherungstarife zur Verfügung stellen

 (z.B. Morgen & Morgen) mit dem Ziel, deren Web Service-Anfragen an unseren

 Standard Web Service anbinden zu können;

  - Objektorientierte Analyse und Design;

  - automatisiertes Testen der verschiedenen Module; JUnit Tests;

 Integrationstest;


Technische Umsetzung: reines Java/J2EE-Projekt;

  - Multi - Tiered Architektur: Web Service Konsument; Web Service Anbieter;

 Olan Business-Schicht; Olan Service mit Datenbankzugriffsschicht;

 Benutzer-Authorisierungs- Service / Kompetenzservice (und andere Dienste);

 Tarifierungskern; Host / RAS;

  - Mehrere Umgebungen / Stages:

 - lokale Entwicklungsumgebung;

 - Testumgebung für Entwickler (mit / ohne SOAP Firewall);

 - Testumgebung für Abnahmetests;

 - Produktionsumgebung;

  - Kommunikation zwischen den Schichten / Layers:

 - QSM (quasi - synchroner Modus mit Queues, über die die Dienste

  angesprochen werden);

 - EJB;

 - RMI;

  - Werkzeuge für Web Service Entwicklung:

 - Apache Axis Framework 1.1, 1.3, 2.0;

  - Werkzeuge zur Anbindung der Schnittstellen der Geschäftspartner:

 - Apache Axis Handlers and Handler Chains;

  - Werkzeuge für XML Transformationen: XSLT 2.0; XML Spy;

  - Anwendungsserver: JBoss 4.0; Jakarta Tomcat 5.1;

  - Datenbanken: Oracle 9;

  - Datenbankwerkzeuge: Tool for Oracle Application Developers (TOAD) 8.3;

  - IDE: Eclipse 3.1;

  - Versionierungstool:

 - CVS, Eclipse-Version, Kommandozeilenversion und WinCVS 1.3;

  - Java Swing API für GUI Entwicklung der Web Service Test-Clients;

  - Build Management mit ANT (Apache Ant 1.5);

  - (halb-)automatisches Testen und Simulation mittels JUnit und HttpUnit;

  - Methodiken: Test-Driven Development (TDD); Test-First Development (TFD);

  - JUnit; HttpUnit (für SOAP-Test Client); EasyMock;




Zeitraum:  06/2004 - 12/2005
Firmen:    Europäisches Patentamt Den Haag;
Branche:   Internationale Behörde
Tätigkeit: Entwurf einer neuen Architektur, Code Refactoring und funktionelle

  Erweiterung bestehender Software, die von Patentprüfern und

  Formalprüfern verwendet wird

  ("SEA" - "Suite of Examiner Applications";

"CASEX" - "Computer Assisted Search and Examination";

"MADRAS" - "Mother of all dossier-related applications",

"CSXPRIMA" - "CASEX Print Manager",

"DAISY" - Tool für Formalprüfer zur Administration von

 Tätigkeiten der Patentprüfer (Examiner Actions),

 die in Backend-Systemen wie der CASTEL Datenbank

 abgelegt worden sind).

Aufgabenbereich:

  - Analyse der Geschäftslogik, Architektur and Implementierung von

 front end und von middle tier;

  - Analyse und Implementierung von Änderungen im Geschäftsablauf

 und von Change Requests;

  - Code Refactoring hin zu einer objektorientierten und auf

 Software-Patterns aufbauenden Architektur;

  - Wartung; Performanceoptimierung;

  - (semi-automatisiertes) Testen der verschiedenen Module;

  - neben technischer  Implementierung vor allem Analyse und

 Modellierung der bestehenden Fachlogik; Vereinfachung und

 Dokumentation derselben;

  - Softwarearchitektur und -entwicklung von Front End und Middle Tier;

 Code Refactoring; Change Requests; Bug Fixing;

  - Coaching ehemaliger COBOL-Entwickler in Richtung J2EE-Entwicklung;


Erweiterungen / Änderungen im Geschäftsablauf wie z.B. EESR/ESOP:

  - Analyse von Änderungsanforderugen wie der "Extended European Search

 Report (EESR)" oder die "European Search Opinion (ESOP)";

  - Mitautorschaft und Analyse funktionaler Spezifikationen für Änderungs-

 anforderungen in enger Zusammenarbeit mit Vertretern der Software-Benutzer;

  - Analyse funktionaler Änderungswünsche mit Hinsicht auf Selsbtkonsistenz

 und mit Hinsicht auf Konsistenz mit der übrigen Geschäftslogik wie im

 Europäischen Patentübereinkommens (European Patent Convention - EPC)

 spezifiziert;

  - Definition von "Entschediungsbäumen" zur Bestimmung der Spezialfälle

 komplexer Erweiterungen im Geschäftsablauf wie dem ESOP

 (z.B.. waiver/non-waiver Fall, unity/non-unity Fall,

  positive/negative Meinung des Patentprüfers,

  Anwendbarkeit spezieller Regeln des Europäischen Patentübereinkommens

  (European Patent Convention - EPC), ...);

  - Übersetzung der funktionellen Spezifikationen in technische Spezifikationen

 die mit der exisitierenden Softwarearchitektur vereinbar sind;

  - schließlich Implementation der Änderungen im Geschäftsablauf und der

 Change Requests im Quellcode;

  - Testen der Änderungen in dem Quellcode;
Code Refactoring:

  - Verbesserung der Lesbarkeit und der Wartbarkeit des Quellcodes durch

 seine Restrukturierung und sorgfältige Dokumentation

 (JavaDoc, Analyse-Dokumente);

  - Trennung von Fachlogik und Darstellungslogik (GUI Logik) gemäß z.B.

 dem "Model-View-Controller (MVC)"-Modell;

  - Einführung von Software-Mustern/Patterns wie den "Gang-of-Four (GoF)"

 Patterns;

  - dadurch Vorbereitung des CASEX Quellcodes um die beiden Tools für

 Patentprüfer, CAESAR für die Recherchephase und CASEX für die daran

 anschließende Examination-Phase, zusammenzuführen im Rahmen des neuen

 EPODOS Projekts;


CASEX Send & Replace Logik:

  - Refactoring and Neu-Design des gesamten Send & Replace Logik in CASEX

 für das Kodieren und Senden von Examiner Actions:

  - Analyse des bestehenden Codes, (Rückwärts-)Spezifikation der zugrunde-

 liegenden Geschäftslogik,

  - Refactoring und Neu-schreiben des bestehenden Codes, um ihn

 objektorientiert zu gestalten, wartbarer, und transaktionssicherer

 (z.B. im Fall von Datenbankkonnektierungsproblemen);

  - Definition der Reihenfolge von Datenbankzugriffen wie z.B. MUSE/POEM,

 EPASYS/PIPS, SPDB/SDMS, CASTEL;

  - Definition von Statusmodellen und Modellen für Statusübergänge z.B.

 für Aktions-Stati (wie ACTIVE, ACTIVE_CODED, PRINTED; CHECKED, READY,

 SENT, SENT_NOT_CODED, BEING_PROCESSED, ARCHIVED, PURGED, WAITING, ...)

 und "send-to-assistant (STA)" Stati, Spezifikation der zugehörigen

 erlaubten Statusübergänge als Teil der Spezifikation der zugrunde-

 liegenden Geschäftslogik;


File synchronizer:

  - Design & Implementation eines "File Synchronizers" für automatisiertes

 Update, Versionierung und Administration einer großen Anzahl von Ressourcen

 wie Formularvorlagen oder Action-Description-Files auf den Client-PCs;


Technische Umsetzung:

  - Reines Java/J2EE-Projekt; Multi-Tiered Approach;

  - DB: Anbindung mind. 4 verschiedener IBM DB2 Datenbanken mittels CICS (IBM);

  - DB-Tool: iSeries Navigator;

  - IDE: Eclipse 3.0; IBM WebSphere Application Developer 5.0/5.1 (WSAD 5.0/5.1)

  - Versionierungstool: CVS, Kommandozeilenversion und WinCVS 1.3;

  - Sonstige: Java Swing API für GUI;

  - Buildmanagement mit ANT (Apache Ant 1.5);

  - Automatisiertes Testen mit JUnit und HtmlUnit;

  - Projektmanagement Techniken: Prince2



Zeitraum:  01/2003 - 08/2004
Firmen:    e-velopment (ein Versandhandels-IT Dienstleister) in Hamburg;

  Printus Versandhandel Offenburg;

Branche:   Logistik, Versandhandel
Tätigkeit: Entwicklung eines Lagerverwaltungssystems (LVS) für ein völlig neues

  Logistik-Zentrum; Softwarearchitektur und -entwicklung;

  Vor allem serverseitige Architektur und Entwicklung der Paketplanung und -optimierung,

  der Reihenfolgeoptimierung, der Pickplanung, der Kommissionierung,

  der Bestands- und Bedarfsrechnung sowie der Transport- und Nachschubsteuerung;

  serverseitige Funktionalität für PDAs/MDAs (z.B. auf Gabelstaplern);

  Performanceoptimierung;  Testen der verschiedenen Module;

  Technische Umsetzung: Reines Java/J2EE-Projekt basierend auf dem EJB2.0 Standard,

  d.h. Verwendung von Stateless Session Beans (Session Facades und Manager Beans),

  CMP-Entity-Beans zur objektrelationalen Abbildung der DB2-Datenbank und

  Message-Driven Beans zur Anbindung der Fremdsysteme wie MFR (Materialflußrechner)

  und KAF (Kaufmannisches System);

  Zerlegung zeitlich längerer Optimierungsalgorithmen in atomare Transaktionen;

  Vermeidung von Locks; Performanceoptimierung;

  Wiederaufsetzbarkeit der Algorithmen (z.B. nach Serverabsturz o.ä.);

  Cross-Platform-Development, d.h. Entwicklung auf Windows 2000-PCs und Deployment auf

  IBM-iSeries/AS400-Servern;

  Java Swing GUI-Programmierung;

  Application Server: IBM WebSphere 5.0.2;

  CASE-Tool: Innovator 8.0 von MID;

 Model Driven-Architecture (MDA)-Ansatz.

  DB: DB2 auf iSeries/AS400 und auf Microsoft Windows Servern; MS-SQL-Server

  DB-Tool: iSeries Navigator; WinSQL;

  IDE: IBM WebSphere Application Developer 5.0 (WSAD5.0);

 JBuilder 8.0.

  Versionierungstool: CVS, Kommandozeilenversion und WinCVS 1.3;

  Sonstige: Java Swing API für GUI; Velocity(v1.3)-Framework vom Apache Jakarta Projekt

für Model-View-Controller (MVC)-Web Entwicklung; Servlet API 2.2;

  Buildmanagement mit ANT (Apache Ant 1.5);

  Automatisiertes Testen mit JUnit und HtmlUnit;


Zeitraum:  08/2002 - 12/2002
Firmen:    e-velopment (ein Versandhandels-IT Dienstleister) in Hamburg;
Branche:   Logistik, Versandhandel
Tätigkeit: Entwicklung (Softwarearchitektur und Umsetzung) einer Komplettlösung

  für den Versandhandel; Teilgebiete:

  Auftragsmanagement (AM),

  Customer Relationship Management (CRM),

  Katalog- und Sortimentsplanung (KS),

  Debitorenbuchhaltung (DBH),

  Lagerverwaltungssystem (LVS)

  Vor allem Entwicklung des Auftragsmanagers unter Java/J2EE.

  CASE-Tool: OOA/OOD und ER/OO-Mapping mittels des Innovators 6.0 von MID

 mit einem Plug-In namens iQgen 1.0 von innoQ;

 Model Driven-Architecture (MDA)-Ansatz.

  DB: Microsoft SQL Server.

  DB-Tool: iSeries Navigator; WinSQL;

   IDE: JBuilder.

  Versionierungstool: CVS, Kommandozeilenversion und WinCVS 1.3;

  Sonstige: Performance Analysing & Tuning mit Sitraka JProbe 4.0;

Java Swing API für CRM-GUI;

Bulidmanagement mit ANT (Apache Ant 1.5);

Automatisiertes Testen mit JUnit;

Automatisierte Generierung von PDF-Dokumenten mittels FOP 0.20.4

  (XSL Formatting Object Processor in Java vom Jakarta XML-Projekt);

 

Zeitraum:  09/2002
Firmen:     iks Hilden; GfD Gesellschaft für Datenverarbeitung, Neuss (OBI Konzern)
Tätigkeit: Vorbereitung und Durchführung einer Schulung in objektorientierten

  Methoden, objektorientiertem Design, Grundzüge von UML und Java


Zeitraum:  08/2001 - 09/2002
Firmen:    Sun Microsystems; Softlab GmbH; e-plus Mobilfunk AG Düsseldorf;
Tätigkeit: Entwicklung einer Portalanwendung und eines E-Mail-Zugangsdienstes

  für einen Kunden im Bereich der mobilen Kommunikation;

  Erstellung der Softwarearchitektur;

  zeitweilig technische Projektleitung;

Technische Umsetzung: J2EE (Java 2 Enterprise Edition) basierte Applikation mit

  IMAP4/SMTP- und LDAP-Unterstützung Unterstützung (LDAP-Benutzerverwaltung);

  Anbindung eines E-Link Systems mit Tuxedo von BEA Systems (Middleware);

  LDAP-Konnektoren mit automatisiertem Mapping zwischen LDAP-Object classes

 und Java-Objekten (JNDI API 1.2; Netscape Directory SDK 4.1 for Java API);

  Performanceoptimierung des Directory Zugriffs;

  Oracle-Konnektoren (JDBC API 3.0);  JDBC API 3.0, SQL;

  Verwendung von Java-Servlets, JSP und Tag-Libraries im MVC-Modell;

  JavaMail API; XML/JAXB; diverse Design Patterns; Multithreading und

  Thread-Safety; Lasttests; Tcl/Tk; Verwendung diverser Java Design Patterns;

  Objektorientierte Modellierung und Design mit UML (Together 4.2);

  Design der LDAP-Schemata; ER - Modellierung;

  Entwicklungsumgebung (IDE): Forte for Java 3.0 Enterprise Edition

  mit J2EE/EJB/JSP-Unterstützung;

  Realisierung und Installation auf Sun Solaris 8, iPlanet WebServer 6,

  iPlanet Messaging Server 5, iPlanet Application Server 6 und

  iPlanet Directory Server 5.1 (LDAP-Server);


Zeitraum:  09/2001 - 10/2001        
Firmen;    Trademiles AG
Tätigkeit: Weiterentwicklung einer Onlineplattform, auf der Nutzern für

  Wertpapiertrans-aktionen über die Trademiles Kooperationspartner

  Bonuspunkte gutgeschriebenwerden,  die gegen Prämien eingelöst

  werden können.

  Entwicklungsumgebung: JBuilder;

  Realisierung in Java; JavaMailAPI und Installation auf Sun Solaris 8.


Zeitraum:  05/1999 - 07/2001        
Firmen:    Bucher Reisen GmbH, C&N Touristik AG, Lufthansa eCommerce
Tätigkeit: Programmierung und technische Betreuung,  Konzepterstellung &

  Beratung des Kunden;

  Erstellung eines E-Commerce WebSite für Bucher-Reisen, welche dem

  Einzelkunden u.a. ein Reiseinformations- und Buchngssystem zur Verfügung

  stellt (URL: http://www.bucher-reisen.de);

  Technische Umsetzung: Anbindung eines Buchungssystem (PHOENIX) und

  einer Reisedatenbank auf AS/400 mittels der IBM JavaToolBox (jetzt

  JTOpen2.0.2); erste Version mittels Java-Servlets, PHP3 und JavaScript

  (online 11/99), danach mittels WebObjects-Application Server und

  RMI - IIOP (online 4/01) unter Java;

  Realisierung und Installation auf Sun Solaris 7/8 und

  WebObjects 4.5.1 mit Apache Jserv/Tomcat und PHP3;

  Hintergrundprozesse (UNIX-daemons) in Java;

  Durchgeführte Datenbankmigrationen von Oracle nach DB2 und MySQL.


Zeitraun:  11/1999 - 02/2001        
Firmen:    Oneview internet systems & services GmbH
Tätigkeit: Programmierung einzelner Bereiche eines webbasierten Knowledge

  Management Systems für Internet Portale und Intranets.

  Version 1 und 2 mit PHP und Servlets, Versionen 3 und 4 mit Java

  unter WebObjects 4.0 - 5.0; Frontend-Funktionaltät für Version 2

  (Darstellung von Foldern und Links in Baumstruktur mittels

  Java-Servlets, JavaScript); Administrationstool für Versionen

  3 und 4 (Benutzer-/Gruppenverwaltung) unter Benutzung von

  WebObjects 4.5 und dem dort integrierten EOModeller zur

  objektorientierten Modellierung von Datanbanken; 


Zeitraum:  06/1996 - 06/1999        
Friemn:    Universität der Bundeswehr Hamburg-Jenfeld
Tätigkeit: Simulation, Analyse und Entwicklung statistischer Testverfahren

  mit Monte-Carlo-Simulationen (z.B.Hypothesentests zur Feststellung

  von Mischungsverteilungen); optimale Versuchsplanung im Bereich der

  statistischen Qualitätskontrolle; hierbei Verwendung ausschließlich

  von Unix-Maschinen (Linux-PC (dual CPU; Redhat-Linux); Sun Ultra

  Sparc-WorkStations; Parallelrechner von HP mit vier Knoten zu je

  vier Prozessoren (HPSPP-Hewlett Packard Scalable Parallel Processing);

  Implementierung komplexer statistischer und numerischer Algorithmen

  in Fortran/ C++; umfangreiche Nutzung von Unix-Skripten und des NQS

  zur Ablauf-steuerung der Simulationsrechnungen   


Zeitraum:  10/1995 - 06/1996
Friemn:    Max-Planck Institut für Meteorologie
Tätigkeit: Auswertung von Klimasimulationen über einen Zeitraum von 100 Jahren

  mit/ohne Treibhauseffekt; Analyse von ca. 0.2 Terabyte an

  Klimadatenfeldern auf den Simulationsrechnern und Fileservern des

  Deutschen Klimarechenzentrums (DKRZ) unter Nutzung des

  "Network Queuing Systems (NQS)";

  UNIX-Shell-Programmierung (tc-shell); Fortran-Programmierung;

  graphische Datenaus-wertung;



Aus- und Weiterbildung

Aus- und Weiterbildung

Diplom-Physiker mit Endnote "ausgezeichnet";
Diplom-Mathematiker mit Endnote "sehr gut";

Diplomarbeit in medizinischer Bildverarbeitung (240 S., engl.)

  am Fachbereich Informatik, Uni Hamburg, Arbeitsgruppe kognitive Systeme;

  Titel: [auf Anfrage]


diverse wissenschaftl. Veröffentlichungen

im Bereich math. Statistik und medizinischer Bildverarbeitung;


fundierte betriebs- und volkswirtschaftliche Kenntnisse;

Position

Position

v.a. Softwarearchitektur und -entwicklung;

Kompetenzen

Kompetenzen

Top-Skills

Java DevOps Kotlin Kubernetes Splunk Prometheus

Produkte / Standards / Erfahrungen / Methoden

- Geschäftsprozessanalyse und -modellierung in Großunternehmen

  und internationalen Behörden;

- Prince2 Projektmanagement-Methodiken
- objektorientierte Analyse und Design (OOA und OOD)

  unter Benutzung von CASE_Tools wie Argo/UML, Together,

  Innovator 8.0 von MID (mit iQgen Plug-Ins); Rational Rose;

  zur UML-Modellierung und Erstellung von UML-Diagrammen

  (UML: Unified Modelling Language);

- Multi-Tier-Architektur und Entwicklung:

  MVC-Modell (Model-View-Controller); Java EE; Java Server Faces (JSF); 

  Java-Servlets, EJB und Java Server Pages (JSP) oder WebObjects 5.0;

  Struts, Velocity und ähnliche Frameworks;

- Model Driven Architecture (MDA)
- Eclipse Modelling Framework (EMF):

 - EMF (Core) zur Code-Generierung aus dem XMI-Modell

 

 (letzteres z.B. aus Rational Rose exportiert);

 - EMF.Edit zum Erzeugen eines Editors für das Datenmodell

 - EMF Validation Framework, um die Integrität des Modells zu jeder Zeit


gewährleisten zu können; Definition der Constraints in Rational Rose


 (einfache Constraints mit Regular Expressions, komplexe Constraints


  mit der Object Constraint Language (OCL));

- Eclipse Rich client Platform (RCP);
- Benutzung verschiedenster Design Patterns unter Java/J2EE;

Technologien:

  Servlets, Applets; J2EE, JSP, EJB, Tag-Libraries;

  RMI over IIOP, CORBA, CORBA-IDL (open OMG-standards);

  Verzeichnisdienste (z.B. LDAP) mittels JNDI 1.2 API oder

 Netscape Directory SDK 4.1 for Java API;

  Enterprise Objects Framework (EOF),

  Regular Expressions unter Unix, Java und Perl;

  Network Queuing System (NQS);

  Source Configuration Management (SCM) Systems:

  - CVS (Concurrent Version System; z.B. WinCVS),

  - SubVersion,

  - ClearCase (UCM),

  - Serena Dimensions;

  Objekt/Relationales-Mapping- und Persistenz-Frameworks wie

 Hibernate, EJB-CMP unter J2EE, Java Data Objects (JDO),

 Java Persistence API (JPA),

 Castor JDO,

 Enterprise Objects Framework (EOF) von WebObjects etc.;

  Transaktionsmanagement; Zerlegung komplexer, langlaufender

  und zeitkritischer serverseitiger Algorithmen in einzelne

  Transaktionen mit dem Ziel  der Performance-Optimierung,

  der Wiederaufsetzbarkeit und der Deadlock-Vemeidung;

  UseCase-Modellierung mit UML2.0;

Applikationsserver:

  IBM (Rational) WebSphere WAS;

  JBoss;

  Oracle/BEA WebLogic Server;

  Sun GlassFish Enterprise Server; 

  iPlanet / SunONE Application Server;

  WebObjects; JServ/Tomcat;

weitere Server-Software:

  diverse SunONE / iPlanet Server

  (SunONE / iPlanet WebServer,

SunONE / iPlanet Messaging Server,

SunONE / iPlanet Application Server und

SunONE / iPlanet Directory Server (LDAP-Server));

  Tomcat/JServ;

Betriebssysteme

HPUX
(s.u.)
Mac OS
MS-DOS
(s.u.)
OS/400
(s. u.)
SUN OS, Solaris
(s.u.)
Unix
(s.u.)
Windows
(s.u.)
verschiedene UNIX-Varianten (Solaris 8, HPUX, Linux):

  Skript/Shell-Programmierung;

  Systemprogrammierung in C;

  Verwendung als Web-, Application-, Mail-, LDAP- oder DB-Server;

  Deployment von serverseitigen Anwendungen;


Konnektierung an AS400/iSeries Hosts zum Abfragen von Datenbanken,

  Abrufen von Services oder zur Produktion komplexer serverseitiger

  Algorithmen auf einem Applikations-Server wie IBM WebSphere 5.0;


verschiedene Windows-Varianten (Windows 95, Windows NT/2000, XP):

  Verwendung v.a. als Entwicklungs- und Testbetriebssyteme für

  Cross-Platform-Development;

  Deployment i.d.R. auf UNIX-Maschinen oder IBM-iSeries;

Programmiersprachen

ABAP4
Assembler
Basic
(s.u.)
C
(s.u.)
C++
(s.u.)
CORBA IDL
(s.u.)
Delphi
(s.u.)
Emacs
Fortran
v.a. wissenschaftl. Programmierung;
Java
(s.u.)
JavaScript
(s.u.)
Lisp
MATLAB / Simulink
Modula-2
Objective C
v.a. für WebObjects 3.5, 4.0, 5.0 (Objective-C to Java-Bridge);
Pascal
(s.u.)
Perl
(s.u.)
PHP
(s.u.)
PL/SQL
(s.u.)
Prolog
Python
Skriptsprache v.a. von mir verwendet zur Analyse großer Datenmenge und zur Datenaufbereitung;
Scriptsprachen
(s.u.)
Shell
(s.u.)
Tcl/Tk
(s.u.)
TeX, LaTeX
yacc/lex
(s.u.)
Java/J2EE: jahrelange Erfahrung als J2EE-Architekt und -Entwickler

  z.B. für komplexe serverseitige und/oder webbasierte Anwendungen;

  diverse APIs (JavaMail 1.2 API; RMI-Server/Clients);

  Servlets (Servlet 2.2 API; Servlet-basierte Internetdienste und Portale);

  Applets; JFC, AWT (Abstract Windowing Toolkit), Swing;

  J2EE v. 1.4 / J2SE v. 1.4.0;

  EJB 2.3 (BMP/CMP Entity Beans, stateful/stateless Session Beans,

 Message-driven Beans); EJB Design Patterns nach Marinescu;

  JSP, Tag-Libraries, Custom Tags;

  XML/JAXP 1.1 API (Java API for XML Processing);

  XML/SOAP (Simple Object Access Protocol);

  SAX2 (Simple API for XML);

  XSLT (Extensible Stylesheet Transformations);

  Datenbankzugriff mittels JDBC 3.0 API;

  Directoryzugriff (LDAP) mittels JNDI 1.2 API

 (Java Naming and Directory Interface) oder

 Netscape Directory SDK 4.1 for Java API;

  JMS 1.02 API (Java Message Service);

  JINI 1.1 API (Java Intelligent Network Interface); JavaSpaces;

  MVC-Modell (Model-View-Controller);

  Mehrschichtige Architekturen (Multi-tiered approach); EAI;

  (Creational, Behavioral, Structural) Design-Patterns;

  Struts-Bibliothek vom jakarta-Projekt;

  Multithreading, Thread-Synchronization und Thread-Safety;

  Application-Server wie IBW WebSphere 5.1 / IDE: WSAD 5.0,

 WebObjects 5.0, SunONE / iPlanet Application Server 6.0,

 JBoss 3.0;

  Transaktionsmanagement; Zerlegung komplexer, langlaufender

 und zeitkritischer serverseitiger Algorithmen in einzelne

 Transaktionen mit dem Ziel der Performance-Optimierung,

 der Wiederaufsetzbarkeit und der Deadlock-Vemeidung;

  JProbe (Java Profiling Tool);

  JUnit (XUnit testing framework for Extreme Programming (XP));

  Javadoc (Java API Documentation Generator);

  RMI over IIOP; CORBA; CORBA-IDL (open OMG-standards);

  u.a.;

C/C++: akademischer Schwerpunkt in medizinischer Bildverarbeitung;

  UNIX-Schnittstelle und UNIX-Systemprogrammierung in C;

Pascal, Fortran:

  wissenschaftliche Programmierung an der Uni;

  statistische Qualtitätskontrolle;

  Entwicklung statistischer Testverfahren;

  Auswertung von globalen Klimamodellen über einen Simulations-

  zeitraum von 100 Jahren;

HTML, PHP 3 und 4, CGI Programierung mit PERL und mod_perl, JavaScript,
UNIX-Shellscripting:

  bash, tcsh, csh, korn-/bourne-shell (v.a. unter Solaris);

weitere Tools: PERL, Tcl/Tk; yacc/lex, Python;
UML-Modellierung; Objektorientierte Analyse- und Design (OOA/OOD);
Design-Patterns;
Lisp/Prolog;
SQL - 92, Oracle SQL, mySQL, DB2;
Weitere Sprachen: Delphi (z.B. eigener MineSweeper); ADA;

  Visual-C++; (Visual-)Basic;



Datenbanken

DB/400
DB2
(s.u.)
JDBC
(s.u.)
MS SQL Server
MySQL
(s.u.)
ODBC
(s.u.)
Oracle
(s.u.)
SQL
(s.u.)
Oracle 8 - 9i, SQL/mSQL/MySQL, DB2, DB/400, MS SQL Server;

  Stored Procedures unter Oracle;

  Tools: Tool for Oracle Application Developers (TOAD);

  iSeries Navigator; WinSQL;

Durchgeführte Migrationen von Oracle nach DB2 und MySQL;

Datenbankanwendungen mittels JDBC unter Java, ODBC;
Objekt/Relationales-Mapping- und Persistenz-Frameworks wie 
     Java Persistence API (JPA), 

  Enterprise Objects Framework (EOF) von WebObjects,

  Hibernate, EJB-CMP unter J2EE, Java Data Objects (JDO),

  Castor JDO etc.;

  selbst geschriebene Datenbankkonnektoren unter JDBC;

OO-Modellierung von Datenmodellen einer Datenbank

  mittels des EOModellers von WebObjects oder selbst geschriebener

  Datenbankkonnektoren unter JDBC;


LDAP-Entwicklung (Light Weight Directory Access Protocol);

  Benutzung von Directory Servern wie dem SunONE / iPlanet Directory

  Server 5.1 (IDS 5.1);

Datenkommunikation

CORBA
CORBA/IIOP
Internet, Intranet
jahrelange Erfahrung als e-Commerce Entwickler
ISO/OSI
Message Queuing
RPC
SMTP
SMTP und IMAP4; insb. JavaMail 1.2 API
TCP/IP
Windows Netzwerk
JMS (Java Message Service) und Message Driven Beans in J2EE zur

  Datenkommunikation;


RMI (Remote Method Invocation): Entwicklung eines RMI-Servers zur Auslagerung

  von AS/400-Zugriffen vom Web-/Applicationserver auf die AS/400 selbst;

  Übergabe von Java-Objekten von der AS/400 an Web-/Application-Server

  (Sun e250), die als RMI-Client fungieren (RMI over IIOP).


JavaToolbox for AS400/iSeries (nun: JTOpen 2.0.2 for iSeries) zur Kommunikation

  von AS400 mit anderen Rechnern und zum Abrufen von Diensten auf einer

  AS400/iSeries, z.B. (Keyed)DataQueues.


TCP/IP-Snooping zur Fehlerdiagnose in heterogenen Kundennetzwerken.

JavaMail 1.2 API zur Erstellung von E-Mail Gateways zwischen mobilen Endgeräten

  und Internet-MailServern.


JINI (Java Intelligent Network Interface); JavaSpaces API

Hardware

AS/400
nun iSeries; Host-Rechner für diverse Java/J2EE-Anwendungen;
Ascii/X - Terminals
Cray
wissenschaftl. Simulationsrechnungen in der Klimaforschung;
HP
HP-Server unter HPUX (UNIX-Deivat);
PC
(s.u.)
SUN
(s.u.)
Intel-PC: Betriebssysteme: Linux, Windows NT/2000;

Sun: z.B. Sun-e250/e4500, Ultra-/Netra-Workstations als

  Web-, Application-, Message-, LDAP- oder Datenbank-Server;

  Wartung entsprechender Dienste;

  Skriptprogrammierung (cron-Daemon);


iSeries, AS400: JavaToolbox/JTOpen2.0.2 zum Abruf von AS400/iSeries-Diensten

  wie z.B. (Keyed)DataQueues;

Berechnung / Simulation / Versuch / Validierung

Rapid Control Prototyping (RCP)

Branchen

Branchen

E-Commerce: Internetportale;
Telekommunikation, Mobile Kommunikation:

  E-Mail-Zugangsdienst für Handys, MDAs, PDAs;

  Europäische I-Mode Implementation;

  Managementsysteme für Mobilfunknetze;

  Online Mobilfunk-Tarifvergleichsysteme;

Touristik: Last-Minute-Anbieter, Internetreiseanbieter;

  Pauschalreiseanbieter;

Banken: Wertpapierhandels- und Bonussystem; Finanzmathematik;

  Middleware für Online-Banken, Direktbanken; 

  Schweizer Privatbank im SMI;

Logistik, Versandhandel: Lagerverwaltungssystem (LVS);

  Entwicklung einer Versandhandels-Komplettlösung;

  Frachtkostenoptimierung; Transportwegoptimierung;

  Reihenfolgeoptimierung; Transport- und Nachschubsteuerung;

  Bestands- und Bedarfsrechnung; Kommissionierung;

  Auftragsmanagement; Customer Relationship Management (CRM);

  Katalog- und Sortimentsplanung (KS); Debitorenbuchhaltung (DBH);

Logistik / Auftragsbearbeitung und Transportplanung:

  Transport-Informations-Plattform (TIP);

Versicherungen, KFZ-Leistungabteilung, Krankenvers.-Leistungsabteilung:

  z.B. Datenbank mit allen LKW-Schadensfällen der EDEKA-Kette;

  Versicherungsmathematik, Versicherungsstatistik;

  WebServices / SOA für Versicherungsanträge;

Bildverarbeitung: medizinische Bildverarbeitung, Bildregistrierung,

  Merkmalsextraktion, spez. Landmarkenextraktion;

  Kantendetektion; Anpassung parametrischer deformierbarer Modelle;

  lokale vs. globaler Optimierung;

Qualitätskontrolle: statistische Testverfahren, Hypothesentests,

  Test auf Vorliegen von Mischungsverteilungen;

  Monte-Carlo-Simulation; Erzeugung von Pseudo-Zufallszahlen;

Meteorolgie, Klimaforschung: Auswertung von globalen Klimamodellen

  über ca. 100 Jahre zur Vorhersage des Treibhauseffekts;

  Datenmodellierung; graphische Auswertung;

Einsatzorte

Einsatzorte

Deutschland, Österreich, Schweiz

Deutschland: bevorzugt Bereich D2, insb. Hamburg; 

nicht möglich

Projekte

Projekte

Zeitraum:  02/2010 - 11/2010
Firmen:    Julius Baer Gruppe, Schweizer Privatbank, Zürich
Branche:   Swiss Private Banking, Financial Services
Tätigkeit: - Configuration Manager in technischer und in
              konzeptioneller Hinsicht
   - Projekt "Solution Configuration Management (SCM)"
   - Java EE Projekt "User Managed File Trasfer System" (UMFTS)
   - Administration der Atlassian Tools Crowd, Confluence, JIRA
   - Administration der Continuous Integration (CI) Server
        Hudson, Confluence
   - Application Server Prototyping für Oracle/Sun Glassfish
        Enterprise Server:
     - Setup des Containers und Konfiguration der Applikationen
       für das Deployment;
Fachlichkeit:
  - Projekt "Solution Configuration Maanagement (SCM)":
      - Erarbeitung von Kozepten für ein Technologie-übergreifendes
        Konfigurationsmanagement unter maximal möglicher
        Ausnutzung bestehender Versionierungssysteme
      - Stichworte: Configuration Items (CI), Configuration
        Manager, Baselining, Dependency Management
      - Behandlung von Problemen, wenn verschiedenste Projekte
        auf verschiedenste Applikationen zugreifen und dort Änderungen
        vornemhmen, die zu Konflikten führen können
      - Pilot-Projekt mt dem Ziel einer praktischen Umsetzung:
        Analyse von Problemen bei bestehenden Releases mit
        konkurrierenden Änderungen, die zu Konflikten führen;
        Erstellung von Software-Repositories für Tools, die Code
        und Daten mischen und diese nicht versioniert in einer
        Datenbank ablegen (Triple´A; TAAN - Triple´A Analyzer
        Plugin für Eclipse)
  - Java EE Projekt "User Manager File Trasfer System" (UMFTS):
      - Neuentwicklung einer Java EE basierenden Anwendung als
        "User Managed File Transfer System (UMFTS)"
      - Hochladen und zum Herunterladen zur-Verfügung-Stellen
        von Dokumenten unter strengen Sicherheitsvorkehrungen
  - Administration der Atlassian Tools Crowd, Confluence, JIRA
  - Administration der Continuous Integration (CI) Server
        Hudson, Confluence
  - Application Server Prototyping für Oracle/Sun Glassfish
        Enterprise Server;
Technische Umsetzung:
  - Projekt "Solution Configuration Maanagement (SCM)":
     - eher konzepitonelles, weniger technisches Projekt;
     - Erstellung von Datenmodellen für Configuration Items (CIs),
         ihre Abhängigkeiten zueinander, Projekte mit Change Requests
         etc.
     - Versuch, Prozesse für dieses Datenmodell zu etwerfen, wie
         z.B. Changes in den Configuration Items koordiniert werden
         um Konflikte zu vermeiden
     - jedoch auch Möglichkeiten zur technischen Umsetzung:
        - Tools zum Erstellen von Software-Repositories, die eine
          Versionerung ermöglichen;
        - Durchsetzung der Verwendung solcher Tools und Definition
          von Prozessen bei ihrer Verwendung;
  - Projekt "User Manager File Trasfer System" (UMFTS):
     - Java EE Anwendung
     - Maven-Build mit mehreren Profilen (Development, Production)
       für verschiedene Zielumgebungen
     - Maven Config - Modul mit dem Maven Assembly-Plugin zur Konfiguration
       des Production-Profils für verschiedene Zielumgebungen
     - Automatisches Generieren von DB-Schema und DB-Testdaten aus dem
       Java-Code heraus im Development-Profil
     - Unlimited Strength Cryptography mit Java Cryptography Extension
       (JCE)
     - Secure Connections zum File Upload Server;
     - Java Mail API zum automatisierten Versenden von E-Mails
     - Active Directory (AD)/LDAP - Anbindung für die Authentisierung
       und Autorisierung via LDAPs;
     - Konfiguration für Single-Sign-On mit Kerberos und SPNEGO
Verwendete Tools:
  - UMFTS:
    - Java Enterprise Edition (Java EE)
    - GlassFish Enterprise Application Server
    - Unlimited Strength Cryptography mit JCE (Java Cryptography Extension);
    - Hibernate und Java Persistence API (JPA)
    - Single-Sign-On mit Kerberos und SPNEGO mit einer Library
         von SourceForge;
    - Setup des Containers Oracle/Sun GlassFish für UMFTS für
         verschiedenste Zielumgebungen
    - Java Server Faces (JSF) 2.0;
    - Maven Builds
    - CI mittels Hudson
    - Verwendung mehrerer Komponenten des hauseigenen Java Application 
         Frameworks (JAF): Lifecycle Component, Security Component;
    - Subversion
 - Administration von Servern für die Continuous Integration (CI):
    - Hudson
    - Continuum 1.2.3, 1.3.6
    - Verteilte Builds;
 - Administration von Atlassian-Tools
    - Crowd
    - Confluence
    - Jira
    - Oracle 11gR2
    - LDAP / LDAPS - Anbindung für die Benutzerverwaltung mit Crowd
    - Active Directory Browser oder Kommandozeilen-Tools zum
        Abfragen der AD-Datenbestände
    - Single-Sign-On mit Kerberos und SPNEGO
    - DB Upgrades, z.B. Oracle 10gR2 - 11gR2
    - Versionsupgrades der einzelnen Tools;
 - Weitere administrative Tätgkeiten für:
    - Subversion: - Benutzerverwaltung, Zugriffsrechte
                  - Anlegen und Verwalten von Projekten
    - Maven: - Verschieben von Maven - Repositories 


Zeitraum:  04/2009 - 12/2009
Firmen:    LBS Landesbausparkasse München, LBS IT KG Bayern
Branche:   Bausparkasse, Banking, Financial Services
Tätigkeit: - Java EE Architektur, Weiterentwicklung, Wartung &
              automatisiertes Testen für das Bausparportal 2.3;
           - Optimierung der automatisierten GUI-basierten Tests
               (unter Verwendung von Selenium als Test-Tool)
            - Analyse, Refactoring, Nachdokumentation eines im Hause
              entwickelten Web- und Applikatons-Frameworks auf OSGi-Basis
            - Verbesserung hin zu einer modularen und schichtenbasierten
              Gesamtarchitektur
Fachlichkeit:
   - Bausparportal zur Abbildung sämtlicher Vorgänge im Zusammenhang mit
     dem Bausparen bei den Landesbausparkassen und Sparkassen mit zum Teil
     sehr komplexer Fachlogik wie z.B. dem Zusamenführen mehrerer
     Bausparveträge unterschiedlichster Tarife und Tarifgruppen zu einem
     einzigen nach komplexen fachlichen Regeln
   - Implementation gewünschter neuer Features im Framework-Code mit
     jeweils gründlicher Dokumentation der Fachlichkeit und der technischen
     Umsetzung;
   - Nachdokumentation des Web- und Applikations-Frameworks auf OSGi-Basis
     und Kommunikation der Egebnisse an die ca. 20 Anwendungsentwickler, die
     dieses Framework nutzen; Eingehen auf Wünsche der Anwendungsentwickler
     bei Änderungen und Erweiterungen des Frameworks;
     - insbesondere Analyse des Event-basierten Modells und Kommunikation
       desselben an die Anwendungsentwickler;
   - Autorisierungs-Modul:
     - Requirements-Analyse, Design, Umsetzung & Dokumentation
     - basierend auf einem Konzept von Rollen und Rollenzuordnungen, die
       rekursiv durchlaufen werden (mit Cycle-Prevention);
     - Implementation des zugeörigen Web-basierten GUI
  - Timer-Service, OSGi-basierend:
     - Requirements-Analyse, Design, Umsetzung & Dokumentation
     - Implementation des zugeörigen Web-basierten GUI
Technische Umsetzung:
   - OSGi basierendes im Hause entwickeltes Web- und Applikations-Framework;
   - Erstellung und Überwachung von Code Coventions;
   - Erhöhung des Automatisierungsgrades beim Testen sowohl auf der Ebene
     der Unit-Tests als auch auf der Ebene der Integrationstests (mittels Selenium);
     - Verbesserung der Testbarkeit durch ein Verbesserung der "Trennung
       der Zuständigkeiten" ("Searation of Concerns"), Layering etc.
     - regelmässige Testausführung im Rahmen der Continuous Integration (CI)
       und Reporting der Ergebnisse; 
Verwendete Tools:
   - Java Enterprise Edition (Java EE)
   - Struts 2, Java Server Pages (JSP)
   - Java Persistence mit JPA und Hibernate;
   - Eclipse mit diversen Plug-Ins
   - OSGi in der Eclipse Equinox Implementation
   - Bestimmung der Testabdeckung (Code Coverage) mittels Cobertura
   - Automatiserte Integrationstests mt Selenium
   - Code Quality Checks und Static Source Code Analysis mit Checkstyle
   - Continuous Integration (CI) mit Ant, Eclipse Headless PDE-Build
   - Deployment auf dem IBM WebSphere-Applikationsserver
   - Oracle 10gR11 Datenbanken
   - Datenbank-Tools: Squirrel, TOAD, Oracle Developer;
   - Subversion als Versionierungstool 

 

 

 

Zeitraum:  01/2009 - 03/2009
Firmen:    Deutsche Post World Net AG, Deutsche Post IT Services, Bonn;

  Transport-Informations-Plattform (TIP);

Branche:   Logistik: Auftragsmanagemengt, Transportplanung
Tätigkeit: Build-, Konfiugrations-, Deployment- und Release  - Management von komplexen

  mehrschichtigen J2EE - Awendungen; automatisierte Komponenten - Versionierung;   Konfiguration von Continuous Integration (CI) - Tools wie CruiseControl (CC);

  Branch-Planung;

Fachlichkeit:

  - Erstellung einer Transport-Informations-Plattform (TIP) zum Erfassen und

 Bearbeiten von Aufträgen und zu deren Einplanung in Transporte;

  - fachlich komplexe Logistik-Anwendung mit unter anderem dem Ziel der

 Nutzung der Synergien zwischen den ca. acht verschiedenen Logistik-

 Netzwerken der Post (z.B.  Schnelläufernetz SLN oder Express-

 Logistikknetz ELN);

  - Teilgebiete und damit Teil-Teams: Aufträge, Transporte, Stammdaten,

 Standorte, Framework, Test (Testdaten-Generierung,

JUnit-Testabdeckung;

 Test-Review etc.), Build, Datenbanken;

  - Mitglied im Test-Team und dabei Generierung von Test-Daten für Intuitiv-Tests

 und Evaluations-Tests / Abnahmetests;

  - Einarbeitung in das komplette Datenmodell: Aufträge (einzeln, regelmäßig),

 Transporte, Standorte, Leitstrukturen, Geschwindigkeitsprofile,

 Kostenberechnungsmodelle, Bereiche, Transportprodukte, Transportmittel,

 Benutzer und Benutzergruppen mit verschiedensten Rollen als

 Zuständigkeitsprofile; weitere Stammdaten;

 - Zuordnungstabellen diverser Stammdaten;

 - hierarchische Datenstrukturen, z.B. ein hierarchisches Berechtigungskonzept

mit einer Vielzahl von Verantwortungarten: Verwendungs-, Verwaltungs-,

Planungs-, Umsetzungsverantwortung;

  - Aufdecken vom Inkonsistenzen und Weiterentwicklung des Datenmodells in ARIS;

  - Weiterentwicklung des Testdaten-Generators:

 - Umsetzung des kompletten Datenmodells in ein XML-Schema;

 - Transformation der EXCEL-Testdaten nach XML in das vordefinierte

XML-Schema z.B. mittels Java-Parsern unter Verwendung des Apache

POI Projekts (POI-HSSF und POI-XSSF) oder mittels Excel-Makros (in

einfacheren Fällen);

 - Überprüfung der generierten Testdaten auf Schema-Konformität;

 - Transformation der XML-Testdaten in ein Zwischenformat mittels der XML

Query Language (XQuery);

 - Übersetzung der Testdaten im Zwischenformat in das Java-Objektmodell mit

Hilfe des Java Reflection - API;

 - Persistierung der Testdaten mittels Hibernate-Mappings aus dem existierenden

Code der Transport-Informations-Plattform(TIP)-Anwendung heraus;

Technische Umsetzung:

  - Erstellung der Transport-Informations-Plattform als Rich Client-Anwendung

 mit Eclipse RCP sowie mit einer serverseitigen Komponente (unter JBoss 5);

  - automatisierter Datenbankabgleich zwischen der lokalen Derby-Datenbank

 des Rich Clients sowie der Oracle-Datenbank des Servers; Zielsetzung

 dabei: zentrale Datenhaltung der Daten, die für alle Anwender sichtbar

 sein müssen, jedoch die möglich für einen Client, eine Zeit lang autonom

 (d.h. ohne Netzwerkverbindung) arbeiten zu können;

  - Eclipse RCP (Rich Client Platform)

  - Eclipse Equinox als OSGi Implementierung zum Management der

 Komponenten / Plug-Ins;

  - Eclipse Plug-In Development: GUI Plug-Ins und Plug-Ins mit reiner Fachlogik;

Verwendete Tools:

  - Java 6

  - Entwicklungsumgebung (IDE): Eclipse 3.4 (Ganymed) mit diversen Plug-Ins

 z.B. zum Versionsmanagement mit Serena Dimensions;

  - Eclipse Equinox als OSGi - Implementierung zur dynamischen

 Komponentenverwaltung sowie zur Verwaltung ihrer Abhängigkeiten;

  - GUI-Entwicklung mit  Eclipse RCP (Rich Client Platform):

  Standard Widget Toolkit(SWT)-Programmierung;

  - Datenbanken: Oracle Server-seitig sowie Derby Client-seitig;

 automatisierter Datenbankabgleich zwischen der Derby-Datenbank des

 Rich-Client sowie der server-seitigen Oracle-Datenbank;

  - Datenbanken-Anbindung (O/R-Mapper): Hibernate;

  - Datenbank-Tools: Squirrel, TOAD, Oracle Developer;

  - Application-Server: Server-seitige Komponente unter JBoss;

  - Versionsmanagement (SCM): Serena Dimensions;

  - Build-System: Ant 1.7.1;

  - Unit-Tests: JUnit4 sowie Tools zum Bestimmen der Testabdeckung wie Cobertura;




Zeitraum:  05/2008 - 12/2008
Firmen:    ING DiBa AG (Direktbank); Nürnberg;
Branche:   Banken, Direktbanken, Internetbanken
Tätigkeit: Build-, Konfiugrations-, Deployment- und Release  - Management von komplexen

  mehrschichtigen J2EE - Awendungen; automatisierte Komponenten - Versionierung;

  Konfiguration von Continuous Integration (CI) - Tools wie CruiseControl (CC);

  Branch-Planung;

Fachlichkeit:

  - Software zum Betreiben einer Direktbank mit mehrschichtiger (multi-tiered)

 J2EE- Architektur mit verschiedensten Clients z.B. für Internetanwendungen,

 Call-Center, Beschwerde-Management ("Turn Friedly"), Middle-Tier mit

 Fachlogik ("Middleware-Services (MWS)") und verschiedenste Backend-Systeme

 wie relationale Datenbanken (Oacle 9i/10i), Schufa-Auskunftssysteme,

 Kordoba ("Kundenorientiertes Dialog-system für Bankgeschäfte", nun Core24),

 PIN-TAN etc.;

  - Build-, Konfigurations-, Versionierungs-, Deployment- und Release-Management

 vor allem für den Middle-Tier ("Middleware - Services (MWS)") in voll

 automatisierter Form;

  - Erstellung von Build-Tools zur Unterstützung der eben genannten Aspekte für

 alle anderen Projekte, insbesondere für die verschiedenen Clients;

  - Dokumentation, Pflege und Weiterentwicklung der bestehenden Systeme;

  - Branch-Planung und -Durchführung zur Unterstützung des Release-Managements;

  - Administration und Installation von Entwicklungs- und Testsystemen,

 insbesondere der dortigen Anwendungsserver IBM Websphere 6.0.22 und

 JBoss 4.3;

Projektaufgabe:

  - Pflege des XML " basierten Konfigurations-Repositories zur Darstellung aller

 möglichen Kombinationen von Konfigurationen z.B. des Middle-Tiers und aller

 möglicher Backend-Systeme für die verschiedenen SCM-Branches und Zielsysteme

 als Grundlage für das vollautomatisierte Deployment und Archivierung /

 Release mit dem Ziel der Revisionssicherheit;

  - automatisiertes Erzeugen von Konifugrationsdaten anhand des Konfigurations-

 Repositories mit dem Ziele des automatisierten Deployments wahlweise auf

 IBM Websphere 6.0.22 oder auf JBoss 4.3. Anwendungsservern (wahlweise mit

 mehreren Clustern, Nodes und / oder Profiles);

 automatisiertes Generieren / Anpassen von JACL-Skripten zum Generieren von

 Backend-Anbindungen unter IBM Websphere;

  - automatisiertes Deployment auf verschiedenen Typen von Anwendungsservern und

 automatisierte Erfolgskontrolle des Deployments (z.B. mit JACL-Skripten für

 IBM WebSphere und MBeans/twiddle-Skript für JBoss oder einfacher durch

 Abfrage von URLs der deployten Anwendung);

  - Branching " Strategien zur Unterstützung des Release " Managements;

 Aufsetzen von Branches und zugehörigen Software-Repositories für das

 Dependency-Management (mittels Apache Ivy);

  - Einrichtung und Konfiguration von Werkzeugen für die kontinuierliche

 Integration ("Continuous Integration - CI") wie CruiseControl (CC);

 Pflege dieser Tools wie z.B. Einrichtung von Cron-Jobs zum Archivieren von

 Log-Dateien (automatisiertes Verhindern von Plattenübrläufen);

  - Automatisierungsansätze bei der Qualitätskontrolle:

 - JUnit-basierte Tests teilweise mit dem Charakter von Integrationstests;

 - JUnit-Testabdeckung (test coverage) z.B. mit Cobertura;

 - automatisiertes Ausführen von Defekt-Detektoren wie PMD;

 - JavaDoc Generierung;

 - automatisiertes regemäßiges Deployment wahlweise auf IBM WebSphere 6.0.22

oder auf JBoss 4.3;

 - Verwendung von JDiff zur automaisierten Dokumentation von Unterschieden

zwischen Releases;

  - Abhängigkeits-Management:

 - Verwendung von Tools wie Apache Ivy zum atomatisierten

Dependency-Management des Middle-Tiers, der sich aus ca. 65 Teilkomponenten

und vielen Third-Party-Libs zusammensetzt;

 - automatisierte Bestimmung der Kompilierungsreihenfolge (build order)

gemäß der vorgegebenen direkten Abhängigkeiten;

 - automatisertes Erstellen von Abhängigkeitsgraphen (dependency graphs);

  - automatisiertes Build der Middleware Services MWS gemäß verschiedenen

 Entwickler-Rollen entsprechend den verschiedenen Typen von Komponenten

 der MWS:

 - Entwickler des technischen Kernsystems T-Core (technical core);

 - Entwickler des fachlichen Kernsystems B-Core (business core);

 - Entwickler von Backend - Adaptoren;

 - Entwickler von Domänen wie z.B Kredit, Baufi, Spar;

 - Unterstützung von Builds von Teilsystemen der Middleware Services z.B.

mit nur bestmmten Domänen;

  - Publizerung und Archiverung der Ergebnisse des Build-Vorgangs:

 - sowohl der deploybaren Artefakte wie .ear-Dateien,

 - der umgebungsabhängigen Konfigarationsdateien je zulässiger Deployment-

Konfiguration und je Zielsystem

 - als auch von Zusatzdaten wie JDiff - Reports zur Dokumentation des

jeweiligen Releases;

 - Generierung und Publizierung von Artefakten nur für Clients der MWS;

  - automisierte Auswertung von Doclets zur Zugriffskontrolle und Dokumentation,

 welche Clients auf welche MWS - API Funktionen zugreifen dürfen;

 Dokumentation in Form von generierten HTML-Dokumenten;

  - Versions-Management: Erweiterung der automatiserten Versionierung:

 - Major- und Minor-Version-Number des Gesamtprodukts Middleware Services

(MWS);

 - Erhöhung der Major-Version-Number nur bei Schnittstellenänderungen für

die die MWS aufrufenden Clients-,

 - bis zu vierstellige automatisierte Versionierung der Einzelkomponenten

der MWS:

- erste Stelle: Schnittstellen-Änderungen für Client-Zugriffe für

  MWS-Client - Komponenten;

- zweite Stelle: sonstige Code-Änderungen;

- dritte Stelle: Äderungen in Konfigarationsdaten;

- vierte Stelle: Änderungen von direkten Abhängigkeiten oder in

  Komponenten, zu denen (direkt oder transitiv) Abhängigkeiten bestehen;

 - Erweiterung des Versionsmanagements mit dem Ziel der automatisierten

Berücksichtigung von Branches:

- Einführung Branch-unabhängiger, globaler Versionsnummern und damit

  Einführung Branch-unabhängiger, globaler Versionsrepositories für das

  Abhängigkeits-Managementsystem Apache Ivy;

- damit Ermöglichung eines wirklich komponentenbasierten Builds;

  - Erstellung und Erweiterung von Build-Skripten für den Build-Server, die

 den Gesamtprozess des Builds ohne weitere Benutzerinteraktion durchführen

 können nach anfänglicher Eingabe aller Daten;

  - Bestandteile des Gesamt-Build-Vorgangs:

 - eigentlicher Build: Erstellung der deploybaren Artefakte gemäß

automatisiert bestimmter Build-Reihenfolge;

 - Konfiguration: Erzeugung der umgebungsabhängigen Konfigurationsdateien

aus zugehörigen Templates für alle zulässigen Zielsysteme gemäß

Konfigurations-Repository für den gegebenen Branch, die gegebene

Anwendung etc.;

 - Versionierung: automatisiertes Bstimmen der Versionsnummern für das

Gesamtsystem als auch für alle Einzelkomponenten in reproduzierbarer

und damit revisionssicherer Form;

 - Release / Archivierung: Archivierung der erzeugten deploybaren Artefakte,

der Konfigurationsdaten für alle zulässigen Konfigurationen und

sämtlicher Metadaten wie automtisch generierten Release-Dokumentationen

(z.B JDiff zur Dokumentation der Differenzen zwischen zwei Releases);

 - Deployment des Systems gemäß gegebenen Konfigurationsdaten auf den

entsprechenden Applikations-Servern; Erfolgskontrolle des Deployments;

  - Pflege von Bibliotheksarchiven wie der "cmmonlib" und Unterstützung des

 Zugriffs hierauf mttels Apache Ivy;

  - Unterstützung der IDE wie Eclipse durch automatisiertes Generieren der

 .classpath Files gemäß der Ergebnisse der Abhängigkeitsanalyse mit

 Apache Ivy;

  - Beratung und Unterstützung der Entwickler beim lokalen Build als auch

 beim Build-Vorgang auf dem Build-Server;

  - Koordinierung mit dem Betriebsteam von Praxis- und Qualitätssicherungs(QS)-

 Servern zum Zwecke der Vereinheitlichung der Vorgehensweisen;

Technische Umsetzung:

  - reines Java/J2EE-Projekt mit Java 1.4.2 und  Java 1.5.0.12;

  - IDE: Eclipse 3.3 Europa und Rational Application Developer (RAD);

  - SCM (Source Configuration Management): CVS (Concurrent Version System);

 Wechsel auf SubVersion  geplant; Tools wie Tortoise CVS;

  - Backend-Systeme: relationale Datenbanken wie Oracle 9i / 10i;

 TOAD (Tool for Oracle Application Developers);

  - Application-Server: IBM WebSphere 6.0.22 (typischerweise mit einem Node,

 zwei Clustern und je zwei Server-Instanzen je Cluster);

  - JBoss 4.3 (typischerweise mit je zwei Profilen);

  - unterschiedliche Profiltypen für Clients und für den Middle-Tier;

  - Buildmanagement mit Ant 1.6.5 und Ant 1.7.1;

 diverse Ant-Libraries wie Ant-Contrib;

  - Dependency-Management mit Apache Ivy;

  - JUnit zum Erstellen automatisierter Tests (auch mit Backend-Anbindung);

  - Cobertura zum Bestimmen der Testabdeckung des Codes;




Zeitraum:  01/2008 - 12/2008 (Teilzeit)
Firmen:    Itellity GmbH; Hamburg   ->  www.itellity.de
Branche:   Mobilfunk; Internet-Dienstleister;
Tätigkeit: Weiterentwicklung eines Portals zum Bestimmen der kostengünstigsten

  Mobilfunktarife anhand der Einzelverbindungsnachweise;;

Projektaufgabe:

  - Entwicklung von Parsern für Mobilfunk - Einzelverbindungsnachweise

 im PDF - Format oder als CSV - Dateien (z.B. für nationale Provider wie

 Debitel, E-Plus, Mobilcom, O2, Talkline, T-Mobile, Vodafone);

  - Umwandlung der PDF - Daten in generische DataRecord - Formate zur

 anschließenden Weitergabe an das Tarif - Optimierungsmodul;

  - Erweiterung des internen Datenmodells zur Darstellung der verschiedensten

 Verbindungstypen und Arten (z.B. ConnectionType; InvoiceConnectionType;

 CallDetailRecord; DetailRecordType; ShortMessageType;

 Abstract-, Call-, Data-, Messaging-DetailRecord);

Technische Umsetzung:

  - IDE: Eclipse 3.3 Europe; diverse Eclipse Plug-Ins wie z.B Codehaus

 Maven Plug-In for Eclipse; Subclipse für SubVersion-Anbindung;

  - Application-Server: JBoss mit EJB 3.0;

  - Build-System: Ant, Maven;

  - Datenbank: MySQL;

  - Source Configuration Management (SCM): Subversion;

  - Tools: PDF Toolbox und diverse andere PDF - Parsing - Tools (ICE-Parser);




Zeitraum:  01/2007 - 05/2008
Firmen:    Nokia Networks / Nokia Siemens Networks, Düsseldorf;

  Tata Consultancy Services (TCS);

Branche:   Telekommunikation; Mobilfunk; Mobilfunknetze;
Tätigkeit: Design, Implementierung, Wartung, Refactoring und Dokumentation von

  komplexer Software zur Wartung heterogener Mobilfunknetze;

  Test Driven Development (TDD); Continuous Integration (CI);

  hierarchische Build-Systeme;Eclipse EMF zur Code-Generierung und Modell-Validierung;

Fachlichkeit:

  - komplexe Software zur Wartung von Mobilfunknetzen mit weltweitem

 Einsatzbereich;

 Herauslösung einer zugrunde liegenden Plattform (OES - Open EMS Suite)

 aus dem Gesamtprodukt OSS, um diese getrennt vermarkten zu können;

  - Teilbereiche unter anderem:

 - Configuration Management (CM): Managed Objects Framework (MOF)

zum Management der Konfiguration komplexer heterogener (da historisch

gewachsener) Mobilfunktetze durch Metamodellierung des eigentlichen

Datenmodells und durch  Erstellung von Adaptationen an die eigentliche

Netzwerktopologie (modellgetriebener Ansatz - Nodel Driven Architecture

(MDA));

 - Configuration Management User Interface (CMUI):

Managed Objects Framework Desktop (MOF-D) zum Designen neuer

Netzwerktopologien bzw. von  Adaptationen des Metamodels an die

physikalische Netzwerktopologie;

 - Performance Management (PM)

 - Fault Management (FM)

 - Adaptation Manager (AM) als Top-Level Komponente, die alle anderen

vorgenannten Komponenten aufruft während eines Vorgangs des sogenannten

Adaptation Deployments, d.h. des Einspielens einer speziellen

Netzwerktopologie;

Architektur:

  - vielschichtige J2EE - Architektur (multi-tiered architecture) unter

 Verwendung von stateful- und stateless Session-Beans, Message-Driven Beans

 und Entity Beans nach EJB 2.1 und unter Benutzung des WebSphere /

 Rational Application Servers (WAS, RAS);

  - Generierungsansatz für Meta-Modelle aus dem UML-Modell in Rational Rose

 mittels der Model-Driven Architecture (MDA);

  - Code-Generierung mittels des Eclipse Modelling Framwork (EMF) aus dem

 XMI-Fromat von Rational Rose;

  - EMF.Edit zum Erzeugen eines Editors für das Datenmodell;

  - EMF Validation Framework, um die Integrität des Modells zu jeder Zeit

 gewährleisten zu können; Definition der Constraints in Rational Rose

(einfache Constraints mit Regular Expressions,

 komplexe Constraints mit der Object Constraint Language (OCL));


Projektaufgabe:

  - Weiterentwicklung, Wartung, Design und Refactoring einer komplexen

 Software zur Wartung von Mobilfunknetzen (Open EMS Suite (OES));

  - Dokumentation der Fachlogik und des Designs nach massivem Refactoring;

 "Refactoring to patterns": Refactoring nach standardisierten J2EE-Musterns

 und Architekturprinzipien wie der Trennung von Fachlichkeit und Technik,

 Ausgliederung  der Backend-Zugriffslogik, um z.B. eine Migration von

 EJB-Entity Beans nach Hibernate erst zu ermöglichen;

 Migration von JDBC / SQL - Datenbankzugriffen nach Entity-Beans und

 Trennung von der Fachlogik;

  - Schreiben automatisierter Tests auf allen Ebenen (Unit-Tests in JUnit4,

 In-Container Integrationstests/ E2E-Tests; nach verbesserter Architektur

 und Design zur Trennung von Fachlogik und Datenbankzugriffslogik

 (Separation of Concerns / Trennung der Verantwortlichkeiten)

 Erstellung von Off-Container Unit-Tests mit nahezu derselben

 Funktionalität wie In-Container-Integrations-Tests (aber um einen Faktor

 von ca. 100 schneller);

  - Migrationen z.B. des Build-Prozesses von Ant nach Maven und des

 Quellcode-Konfigurationsmanagements (SCM) von IBM/ Rational ClearCase UCM

 nach Subversion; Anpassung des Test- und Delivery-Prozesses an die neue

 Infrastruktur;

Aufgabenbereich:

  - Weiterentwicklung der Fachlichkeit des Configuration Management(CM)-

 Deployment Controllers: Erweiterung um diverse Plausibilitätstests;

 Refactoring mit dem Ziel der verbesserten Wartbarkeit und Testbarkeit

 durch Einführung einer mehrschichtigen Architektur/ Designs unter

 strikter Trennung von Fachlogik in POJOs (Plain Old Java Beans) und

 von Infrastrukturlogik wie Datenbank- und Dateizugriffen;

 Erstellung von Tests hierzu durch Einführung von nur wenigen

 Dummy-Objekten (in der Regel keine Mock-Objekte) für die Infrastruktur-

 komponenten;

  - Dokumentation der Fachlogik als auch von Architektur und Design;

  - Mitglied eines Maintenance Teams: testgetriebener Ansatz, indem vor der

 Behebung von Fehlern - wenn immer möglich - zuerst ein End-to-End-Test

 geschrieben wird, der den erkannten Fehler offen legt;

  - Migration des Build-Systems von Ant nach Maven sowie des SCM von

 IBM ClearCase (UCM) nach Subversion sowie Anpassung der zugehörigen

 Delivery- und Test-Strategien: Erstellung von Maven - Projekt Objekt

 Models (POMs);  Testen von Branching Strategien in Subversion als

 Ersatz/ Simulation von Developer-Streams (und nicht Integration-Streams)

 in ClearCase;

  - Integration des sogenannten O2ML-Toolkits in MOF:

 Verkürzung des Zeitaufwands einer neuen Modellgenerierung des Metamodells

 von mehreren Tagen auf wenige Stunden durch Erhöhung des Automatisierungs-

 grades z.B. in der Code-Generierung;

  - Umfangreiches Refactoring des Quellcodes und der Maven - POMs wegen

 erheblich geänderter Projektabhängigkeiten; Versuch, diese sehr komplexe

 Umstellung in kleinere Deliverables aufzuteilen durch Einführung

 verschiedener Profile in den Project Object Models (POMs) von Maven;

  - Automatisierte Überprüfung erstellter Adaptationen an physikalische und

 logische Netzwerktopologien auf Plausibilitätsregeln und Konsistenzregeln

 hin;

 - teilweise Modellierung dieser Regeln in Rational Rose und

automatisierte Generierung des Codes hierzu;

 - Benutzung des "Eclipse Modelling Frameworks (EMF)" zur automatisierten

Verifikation dieser Plausibilitätsregeln;

 - Verifikation schon während des Generierungsvorgangs mittels des MOFD /

CMUI als auch später beim Deployment dieser Adaptationen mit

demselben Code;

Technische Umsetzung:

  - IDE: WebSphere Application Developer (WSAD) / Rational Application

 Developer (RAD);

 - Eclipse 3.3 Europe;

 - diverse Eclipse Plug-Ins wie z.B Codehaus Maven Plug-In for Eclipse

von Polarion; Subversive SVN Team Provider; Ant 1.6.5;

Rational ClearCase Explorer;

  - Application Server: IBM WebSphere / Rational Application Server

 (WAS / RAS) 6.0.22; Remote Debugging;

 Konfiguration skriptgesteuert (JACL) oder mittels WebSphere

 Administrationskonsole;

  - Design-Tool: Rational Rose;

  - Datenbank: Oracle 9i; 10g Enterpreise Edition Rel. 10.2.0;

HSQLDB 1.8.0 (Hypersonic SQL DB) zum Testen;

  - Datenbanktools: DbVisualizer 5.1.1;

Tool for Oracle Application Developers (TOAD);

  - Datenbankzugriff: JDBC / SQL; PL/SQL; EJB 2.1 Entity Beans; Hibernate;

  - Source Configuration Management (SCM):

 - IBM Rational ClearCase; ClearCase UCM (Unified Change Management);

 - Subversion; Tortoise SVN 1.4.4;

  - Build Management Tool: Ant 1.6.5; Maven 2.0.8;

  - Test Driven Development (TDD) / Test First Development (TFD):

 - JUnit für Unit-Tests;

 - Robot für Intgration-Tests (vergleichbar mit FIT/Fitness - Framework

for Integrated Tests, jedoch Nokia-proprietär bis 10/2007,

basierend auf Python und Jython);

  - Continuous Integration: Hierarchical Build Systems mit

Bamboo, CruiseControl;

  - Unit-Test Coverage Measurement: z.B. Verwendung von

Cobertura 1.9; djUnit 0.8.2;

  - Skripting mit Python 2.5 und Jython 2.2;




Zeitraum:  01/2006 - 12/2006
Firmen:    DBV Winterthur Versicherungen, Wiesbaden;
Branche:   Versicherungen
Tätigkeit: Architektur und Implementierung einer Reihe von Web Services für

  verschiedenartigste Versicherungsprodukte;

  Architektur eines "Generierungsansatzes" für diese Web Services

Aufgabenbereich:

  - Architektur und Implementierung von Web Services für verschiedenartigste

 Versicherungsprodukte unter Verwendung des Apache Axis Frameworks;

 unter anderem für ein Versicherungskombiprodukt, welches bis zu sieben

 verschiedene und voneinander unabhängige Versicherungssparten beinhaltet

 (BOX plus);

  - Spezifikation, Definition und Implementierung eines Standard Web Service

 für verschiedene Versicherungsprodukte basierend auf der Dokumentation

 des zugrunde liegenden Tarifierungskerns mit einem generischen,

 reproduzierbaren, und halbautomatischem Ansatz;

  - automatische Generierung von XML Schemadefinitionen und WSDLs für Standard

 Web Services basierend auf der Dokumentation des Tarifierungskerns unter

 Beachtung bestimmter Regeln für die Geschäftslogik; Herleitung/Extraktion,

 Spezifizierung und Implementierung dieser Geschäftsregeln als Bestandteil

 eines neu entwickelten Werkzeugs zur Generierung von XML Schemata;

  - Spezifizierung und Implementierung der verschiedenen Anwendungsfälle

 (Use Cases) für die Standard Web Services wie zum Beispiel

 "Angebot berechnen", "Versicherungsantrag/ Deckungsaufgabe prüfen",

 "Deckungsaufgabe senden" und "Status eines Versicherungsantrags erfragen";

  - Spezifizierung und Implementierung weitere Geschäftsregeln wie zum Beispiel

 "Vergleich von Versicherungstarifen" oder "Überprüfung der Nutzerrechte in

 Hinsicht auf verschiedene Tarifvarianten";

  - Vielschichtiger Ansatz (Multi - tiered approach):

 - in erster Linie Errichtung des Schicht des Web Service Anbieters im

Rahmen einer vielschichtigen J2EE-Architektur;

 - aber auch Durchführung Web Service spezifischer Änderungen und

Erweiterung in der Geschäftslogikschicht (Olan Business Tier/ Layer)

wie zum Beispiel

- Web Service spezifische Benutzerauthentifizierung und -authorisierung,

  oder

- Entwerfen und Befüllen von Datenbanktabellen mit geschäftspartner-

  spezifischen Inhalten für jeden Versicherungsantrag;

  - Entwicklung Swing-basierter and HTML-basierter Test Clients (HttpUnit);

  - Anbindung dieser Standard Web Services an eine Vielzahl von

 Geschäftspartnern mit verschiedenartigsten Schnittstellen, die durch

 unterschiedlichste WSDLs beschrieben werden;

  - Transformation der eingehenden SOAP - Requests und der ausgehenden SOAP -

 Responses der verschiedenen Geschäftspartner auf die Standard-Schnittstelle

 unter Benutzung von XSL Style Sheets zur Durchführung von

 XML Transformationen;

  - Benutzung von Web Service Handlern, um diese XML-Transformationsskripte

 zur Abbildung der SOAP - Requests und - Responses aufzurufen;

  - automatisierte Entscheidungslogik zur Identifizierung des geeigneten

 XSLT Transformationsskripts in Abhängigkeit des Geschäftspartners,

 des Anwendungsfalls, der benutzten Schnittstellenversion etc.;

  - Analyse der Anforderungen der verschiedenen Geschäftspartner, die zum

 Beispiel Vergleichssoftware für Versicherungstarife zur Verfügung stellen

 (z.B. Morgen & Morgen) mit dem Ziel, deren Web Service-Anfragen an unseren

 Standard Web Service anbinden zu können;

  - Objektorientierte Analyse und Design;

  - automatisiertes Testen der verschiedenen Module; JUnit Tests;

 Integrationstest;


Technische Umsetzung: reines Java/J2EE-Projekt;

  - Multi - Tiered Architektur: Web Service Konsument; Web Service Anbieter;

 Olan Business-Schicht; Olan Service mit Datenbankzugriffsschicht;

 Benutzer-Authorisierungs- Service / Kompetenzservice (und andere Dienste);

 Tarifierungskern; Host / RAS;

  - Mehrere Umgebungen / Stages:

 - lokale Entwicklungsumgebung;

 - Testumgebung für Entwickler (mit / ohne SOAP Firewall);

 - Testumgebung für Abnahmetests;

 - Produktionsumgebung;

  - Kommunikation zwischen den Schichten / Layers:

 - QSM (quasi - synchroner Modus mit Queues, über die die Dienste

  angesprochen werden);

 - EJB;

 - RMI;

  - Werkzeuge für Web Service Entwicklung:

 - Apache Axis Framework 1.1, 1.3, 2.0;

  - Werkzeuge zur Anbindung der Schnittstellen der Geschäftspartner:

 - Apache Axis Handlers and Handler Chains;

  - Werkzeuge für XML Transformationen: XSLT 2.0; XML Spy;

  - Anwendungsserver: JBoss 4.0; Jakarta Tomcat 5.1;

  - Datenbanken: Oracle 9;

  - Datenbankwerkzeuge: Tool for Oracle Application Developers (TOAD) 8.3;

  - IDE: Eclipse 3.1;

  - Versionierungstool:

 - CVS, Eclipse-Version, Kommandozeilenversion und WinCVS 1.3;

  - Java Swing API für GUI Entwicklung der Web Service Test-Clients;

  - Build Management mit ANT (Apache Ant 1.5);

  - (halb-)automatisches Testen und Simulation mittels JUnit und HttpUnit;

  - Methodiken: Test-Driven Development (TDD); Test-First Development (TFD);

  - JUnit; HttpUnit (für SOAP-Test Client); EasyMock;




Zeitraum:  06/2004 - 12/2005
Firmen:    Europäisches Patentamt Den Haag;
Branche:   Internationale Behörde
Tätigkeit: Entwurf einer neuen Architektur, Code Refactoring und funktionelle

  Erweiterung bestehender Software, die von Patentprüfern und

  Formalprüfern verwendet wird

  ("SEA" - "Suite of Examiner Applications";

"CASEX" - "Computer Assisted Search and Examination";

"MADRAS" - "Mother of all dossier-related applications",

"CSXPRIMA" - "CASEX Print Manager",

"DAISY" - Tool für Formalprüfer zur Administration von

 Tätigkeiten der Patentprüfer (Examiner Actions),

 die in Backend-Systemen wie der CASTEL Datenbank

 abgelegt worden sind).

Aufgabenbereich:

  - Analyse der Geschäftslogik, Architektur and Implementierung von

 front end und von middle tier;

  - Analyse und Implementierung von Änderungen im Geschäftsablauf

 und von Change Requests;

  - Code Refactoring hin zu einer objektorientierten und auf

 Software-Patterns aufbauenden Architektur;

  - Wartung; Performanceoptimierung;

  - (semi-automatisiertes) Testen der verschiedenen Module;

  - neben technischer  Implementierung vor allem Analyse und

 Modellierung der bestehenden Fachlogik; Vereinfachung und

 Dokumentation derselben;

  - Softwarearchitektur und -entwicklung von Front End und Middle Tier;

 Code Refactoring; Change Requests; Bug Fixing;

  - Coaching ehemaliger COBOL-Entwickler in Richtung J2EE-Entwicklung;


Erweiterungen / Änderungen im Geschäftsablauf wie z.B. EESR/ESOP:

  - Analyse von Änderungsanforderugen wie der "Extended European Search

 Report (EESR)" oder die "European Search Opinion (ESOP)";

  - Mitautorschaft und Analyse funktionaler Spezifikationen für Änderungs-

 anforderungen in enger Zusammenarbeit mit Vertretern der Software-Benutzer;

  - Analyse funktionaler Änderungswünsche mit Hinsicht auf Selsbtkonsistenz

 und mit Hinsicht auf Konsistenz mit der übrigen Geschäftslogik wie im

 Europäischen Patentübereinkommens (European Patent Convention - EPC)

 spezifiziert;

  - Definition von "Entschediungsbäumen" zur Bestimmung der Spezialfälle

 komplexer Erweiterungen im Geschäftsablauf wie dem ESOP

 (z.B.. waiver/non-waiver Fall, unity/non-unity Fall,

  positive/negative Meinung des Patentprüfers,

  Anwendbarkeit spezieller Regeln des Europäischen Patentübereinkommens

  (European Patent Convention - EPC), ...);

  - Übersetzung der funktionellen Spezifikationen in technische Spezifikationen

 die mit der exisitierenden Softwarearchitektur vereinbar sind;

  - schließlich Implementation der Änderungen im Geschäftsablauf und der

 Change Requests im Quellcode;

  - Testen der Änderungen in dem Quellcode;
Code Refactoring:

  - Verbesserung der Lesbarkeit und der Wartbarkeit des Quellcodes durch

 seine Restrukturierung und sorgfältige Dokumentation

 (JavaDoc, Analyse-Dokumente);

  - Trennung von Fachlogik und Darstellungslogik (GUI Logik) gemäß z.B.

 dem "Model-View-Controller (MVC)"-Modell;

  - Einführung von Software-Mustern/Patterns wie den "Gang-of-Four (GoF)"

 Patterns;

  - dadurch Vorbereitung des CASEX Quellcodes um die beiden Tools für

 Patentprüfer, CAESAR für die Recherchephase und CASEX für die daran

 anschließende Examination-Phase, zusammenzuführen im Rahmen des neuen

 EPODOS Projekts;


CASEX Send & Replace Logik:

  - Refactoring and Neu-Design des gesamten Send & Replace Logik in CASEX

 für das Kodieren und Senden von Examiner Actions:

  - Analyse des bestehenden Codes, (Rückwärts-)Spezifikation der zugrunde-

 liegenden Geschäftslogik,

  - Refactoring und Neu-schreiben des bestehenden Codes, um ihn

 objektorientiert zu gestalten, wartbarer, und transaktionssicherer

 (z.B. im Fall von Datenbankkonnektierungsproblemen);

  - Definition der Reihenfolge von Datenbankzugriffen wie z.B. MUSE/POEM,

 EPASYS/PIPS, SPDB/SDMS, CASTEL;

  - Definition von Statusmodellen und Modellen für Statusübergänge z.B.

 für Aktions-Stati (wie ACTIVE, ACTIVE_CODED, PRINTED; CHECKED, READY,

 SENT, SENT_NOT_CODED, BEING_PROCESSED, ARCHIVED, PURGED, WAITING, ...)

 und "send-to-assistant (STA)" Stati, Spezifikation der zugehörigen

 erlaubten Statusübergänge als Teil der Spezifikation der zugrunde-

 liegenden Geschäftslogik;


File synchronizer:

  - Design & Implementation eines "File Synchronizers" für automatisiertes

 Update, Versionierung und Administration einer großen Anzahl von Ressourcen

 wie Formularvorlagen oder Action-Description-Files auf den Client-PCs;


Technische Umsetzung:

  - Reines Java/J2EE-Projekt; Multi-Tiered Approach;

  - DB: Anbindung mind. 4 verschiedener IBM DB2 Datenbanken mittels CICS (IBM);

  - DB-Tool: iSeries Navigator;

  - IDE: Eclipse 3.0; IBM WebSphere Application Developer 5.0/5.1 (WSAD 5.0/5.1)

  - Versionierungstool: CVS, Kommandozeilenversion und WinCVS 1.3;

  - Sonstige: Java Swing API für GUI;

  - Buildmanagement mit ANT (Apache Ant 1.5);

  - Automatisiertes Testen mit JUnit und HtmlUnit;

  - Projektmanagement Techniken: Prince2



Zeitraum:  01/2003 - 08/2004
Firmen:    e-velopment (ein Versandhandels-IT Dienstleister) in Hamburg;

  Printus Versandhandel Offenburg;

Branche:   Logistik, Versandhandel
Tätigkeit: Entwicklung eines Lagerverwaltungssystems (LVS) für ein völlig neues

  Logistik-Zentrum; Softwarearchitektur und -entwicklung;

  Vor allem serverseitige Architektur und Entwicklung der Paketplanung und -optimierung,

  der Reihenfolgeoptimierung, der Pickplanung, der Kommissionierung,

  der Bestands- und Bedarfsrechnung sowie der Transport- und Nachschubsteuerung;

  serverseitige Funktionalität für PDAs/MDAs (z.B. auf Gabelstaplern);

  Performanceoptimierung;  Testen der verschiedenen Module;

  Technische Umsetzung: Reines Java/J2EE-Projekt basierend auf dem EJB2.0 Standard,

  d.h. Verwendung von Stateless Session Beans (Session Facades und Manager Beans),

  CMP-Entity-Beans zur objektrelationalen Abbildung der DB2-Datenbank und

  Message-Driven Beans zur Anbindung der Fremdsysteme wie MFR (Materialflußrechner)

  und KAF (Kaufmannisches System);

  Zerlegung zeitlich längerer Optimierungsalgorithmen in atomare Transaktionen;

  Vermeidung von Locks; Performanceoptimierung;

  Wiederaufsetzbarkeit der Algorithmen (z.B. nach Serverabsturz o.ä.);

  Cross-Platform-Development, d.h. Entwicklung auf Windows 2000-PCs und Deployment auf

  IBM-iSeries/AS400-Servern;

  Java Swing GUI-Programmierung;

  Application Server: IBM WebSphere 5.0.2;

  CASE-Tool: Innovator 8.0 von MID;

 Model Driven-Architecture (MDA)-Ansatz.

  DB: DB2 auf iSeries/AS400 und auf Microsoft Windows Servern; MS-SQL-Server

  DB-Tool: iSeries Navigator; WinSQL;

  IDE: IBM WebSphere Application Developer 5.0 (WSAD5.0);

 JBuilder 8.0.

  Versionierungstool: CVS, Kommandozeilenversion und WinCVS 1.3;

  Sonstige: Java Swing API für GUI; Velocity(v1.3)-Framework vom Apache Jakarta Projekt

für Model-View-Controller (MVC)-Web Entwicklung; Servlet API 2.2;

  Buildmanagement mit ANT (Apache Ant 1.5);

  Automatisiertes Testen mit JUnit und HtmlUnit;


Zeitraum:  08/2002 - 12/2002
Firmen:    e-velopment (ein Versandhandels-IT Dienstleister) in Hamburg;
Branche:   Logistik, Versandhandel
Tätigkeit: Entwicklung (Softwarearchitektur und Umsetzung) einer Komplettlösung

  für den Versandhandel; Teilgebiete:

  Auftragsmanagement (AM),

  Customer Relationship Management (CRM),

  Katalog- und Sortimentsplanung (KS),

  Debitorenbuchhaltung (DBH),

  Lagerverwaltungssystem (LVS)

  Vor allem Entwicklung des Auftragsmanagers unter Java/J2EE.

  CASE-Tool: OOA/OOD und ER/OO-Mapping mittels des Innovators 6.0 von MID

 mit einem Plug-In namens iQgen 1.0 von innoQ;

 Model Driven-Architecture (MDA)-Ansatz.

  DB: Microsoft SQL Server.

  DB-Tool: iSeries Navigator; WinSQL;

   IDE: JBuilder.

  Versionierungstool: CVS, Kommandozeilenversion und WinCVS 1.3;

  Sonstige: Performance Analysing & Tuning mit Sitraka JProbe 4.0;

Java Swing API für CRM-GUI;

Bulidmanagement mit ANT (Apache Ant 1.5);

Automatisiertes Testen mit JUnit;

Automatisierte Generierung von PDF-Dokumenten mittels FOP 0.20.4

  (XSL Formatting Object Processor in Java vom Jakarta XML-Projekt);

 

Zeitraum:  09/2002
Firmen:     iks Hilden; GfD Gesellschaft für Datenverarbeitung, Neuss (OBI Konzern)
Tätigkeit: Vorbereitung und Durchführung einer Schulung in objektorientierten

  Methoden, objektorientiertem Design, Grundzüge von UML und Java


Zeitraum:  08/2001 - 09/2002
Firmen:    Sun Microsystems; Softlab GmbH; e-plus Mobilfunk AG Düsseldorf;
Tätigkeit: Entwicklung einer Portalanwendung und eines E-Mail-Zugangsdienstes

  für einen Kunden im Bereich der mobilen Kommunikation;

  Erstellung der Softwarearchitektur;

  zeitweilig technische Projektleitung;

Technische Umsetzung: J2EE (Java 2 Enterprise Edition) basierte Applikation mit

  IMAP4/SMTP- und LDAP-Unterstützung Unterstützung (LDAP-Benutzerverwaltung);

  Anbindung eines E-Link Systems mit Tuxedo von BEA Systems (Middleware);

  LDAP-Konnektoren mit automatisiertem Mapping zwischen LDAP-Object classes

 und Java-Objekten (JNDI API 1.2; Netscape Directory SDK 4.1 for Java API);

  Performanceoptimierung des Directory Zugriffs;

  Oracle-Konnektoren (JDBC API 3.0);  JDBC API 3.0, SQL;

  Verwendung von Java-Servlets, JSP und Tag-Libraries im MVC-Modell;

  JavaMail API; XML/JAXB; diverse Design Patterns; Multithreading und

  Thread-Safety; Lasttests; Tcl/Tk; Verwendung diverser Java Design Patterns;

  Objektorientierte Modellierung und Design mit UML (Together 4.2);

  Design der LDAP-Schemata; ER - Modellierung;

  Entwicklungsumgebung (IDE): Forte for Java 3.0 Enterprise Edition

  mit J2EE/EJB/JSP-Unterstützung;

  Realisierung und Installation auf Sun Solaris 8, iPlanet WebServer 6,

  iPlanet Messaging Server 5, iPlanet Application Server 6 und

  iPlanet Directory Server 5.1 (LDAP-Server);


Zeitraum:  09/2001 - 10/2001        
Firmen;    Trademiles AG
Tätigkeit: Weiterentwicklung einer Onlineplattform, auf der Nutzern für

  Wertpapiertrans-aktionen über die Trademiles Kooperationspartner

  Bonuspunkte gutgeschriebenwerden,  die gegen Prämien eingelöst

  werden können.

  Entwicklungsumgebung: JBuilder;

  Realisierung in Java; JavaMailAPI und Installation auf Sun Solaris 8.


Zeitraum:  05/1999 - 07/2001        
Firmen:    Bucher Reisen GmbH, C&N Touristik AG, Lufthansa eCommerce
Tätigkeit: Programmierung und technische Betreuung,  Konzepterstellung &

  Beratung des Kunden;

  Erstellung eines E-Commerce WebSite für Bucher-Reisen, welche dem

  Einzelkunden u.a. ein Reiseinformations- und Buchngssystem zur Verfügung

  stellt (URL: http://www.bucher-reisen.de);

  Technische Umsetzung: Anbindung eines Buchungssystem (PHOENIX) und

  einer Reisedatenbank auf AS/400 mittels der IBM JavaToolBox (jetzt

  JTOpen2.0.2); erste Version mittels Java-Servlets, PHP3 und JavaScript

  (online 11/99), danach mittels WebObjects-Application Server und

  RMI - IIOP (online 4/01) unter Java;

  Realisierung und Installation auf Sun Solaris 7/8 und

  WebObjects 4.5.1 mit Apache Jserv/Tomcat und PHP3;

  Hintergrundprozesse (UNIX-daemons) in Java;

  Durchgeführte Datenbankmigrationen von Oracle nach DB2 und MySQL.


Zeitraun:  11/1999 - 02/2001        
Firmen:    Oneview internet systems & services GmbH
Tätigkeit: Programmierung einzelner Bereiche eines webbasierten Knowledge

  Management Systems für Internet Portale und Intranets.

  Version 1 und 2 mit PHP und Servlets, Versionen 3 und 4 mit Java

  unter WebObjects 4.0 - 5.0; Frontend-Funktionaltät für Version 2

  (Darstellung von Foldern und Links in Baumstruktur mittels

  Java-Servlets, JavaScript); Administrationstool für Versionen

  3 und 4 (Benutzer-/Gruppenverwaltung) unter Benutzung von

  WebObjects 4.5 und dem dort integrierten EOModeller zur

  objektorientierten Modellierung von Datanbanken; 


Zeitraum:  06/1996 - 06/1999        
Friemn:    Universität der Bundeswehr Hamburg-Jenfeld
Tätigkeit: Simulation, Analyse und Entwicklung statistischer Testverfahren

  mit Monte-Carlo-Simulationen (z.B.Hypothesentests zur Feststellung

  von Mischungsverteilungen); optimale Versuchsplanung im Bereich der

  statistischen Qualitätskontrolle; hierbei Verwendung ausschließlich

  von Unix-Maschinen (Linux-PC (dual CPU; Redhat-Linux); Sun Ultra

  Sparc-WorkStations; Parallelrechner von HP mit vier Knoten zu je

  vier Prozessoren (HPSPP-Hewlett Packard Scalable Parallel Processing);

  Implementierung komplexer statistischer und numerischer Algorithmen

  in Fortran/ C++; umfangreiche Nutzung von Unix-Skripten und des NQS

  zur Ablauf-steuerung der Simulationsrechnungen   


Zeitraum:  10/1995 - 06/1996
Friemn:    Max-Planck Institut für Meteorologie
Tätigkeit: Auswertung von Klimasimulationen über einen Zeitraum von 100 Jahren

  mit/ohne Treibhauseffekt; Analyse von ca. 0.2 Terabyte an

  Klimadatenfeldern auf den Simulationsrechnern und Fileservern des

  Deutschen Klimarechenzentrums (DKRZ) unter Nutzung des

  "Network Queuing Systems (NQS)";

  UNIX-Shell-Programmierung (tc-shell); Fortran-Programmierung;

  graphische Datenaus-wertung;



Aus- und Weiterbildung

Aus- und Weiterbildung

Diplom-Physiker mit Endnote "ausgezeichnet";
Diplom-Mathematiker mit Endnote "sehr gut";

Diplomarbeit in medizinischer Bildverarbeitung (240 S., engl.)

  am Fachbereich Informatik, Uni Hamburg, Arbeitsgruppe kognitive Systeme;

  Titel: [auf Anfrage]


diverse wissenschaftl. Veröffentlichungen

im Bereich math. Statistik und medizinischer Bildverarbeitung;


fundierte betriebs- und volkswirtschaftliche Kenntnisse;

Position

Position

v.a. Softwarearchitektur und -entwicklung;

Kompetenzen

Kompetenzen

Top-Skills

Java DevOps Kotlin Kubernetes Splunk Prometheus

Produkte / Standards / Erfahrungen / Methoden

- Geschäftsprozessanalyse und -modellierung in Großunternehmen

  und internationalen Behörden;

- Prince2 Projektmanagement-Methodiken
- objektorientierte Analyse und Design (OOA und OOD)

  unter Benutzung von CASE_Tools wie Argo/UML, Together,

  Innovator 8.0 von MID (mit iQgen Plug-Ins); Rational Rose;

  zur UML-Modellierung und Erstellung von UML-Diagrammen

  (UML: Unified Modelling Language);

- Multi-Tier-Architektur und Entwicklung:

  MVC-Modell (Model-View-Controller); Java EE; Java Server Faces (JSF); 

  Java-Servlets, EJB und Java Server Pages (JSP) oder WebObjects 5.0;

  Struts, Velocity und ähnliche Frameworks;

- Model Driven Architecture (MDA)
- Eclipse Modelling Framework (EMF):

 - EMF (Core) zur Code-Generierung aus dem XMI-Modell

 

 (letzteres z.B. aus Rational Rose exportiert);

 - EMF.Edit zum Erzeugen eines Editors für das Datenmodell

 - EMF Validation Framework, um die Integrität des Modells zu jeder Zeit


gewährleisten zu können; Definition der Constraints in Rational Rose


 (einfache Constraints mit Regular Expressions, komplexe Constraints


  mit der Object Constraint Language (OCL));

- Eclipse Rich client Platform (RCP);
- Benutzung verschiedenster Design Patterns unter Java/J2EE;

Technologien:

  Servlets, Applets; J2EE, JSP, EJB, Tag-Libraries;

  RMI over IIOP, CORBA, CORBA-IDL (open OMG-standards);

  Verzeichnisdienste (z.B. LDAP) mittels JNDI 1.2 API oder

 Netscape Directory SDK 4.1 for Java API;

  Enterprise Objects Framework (EOF),

  Regular Expressions unter Unix, Java und Perl;

  Network Queuing System (NQS);

  Source Configuration Management (SCM) Systems:

  - CVS (Concurrent Version System; z.B. WinCVS),

  - SubVersion,

  - ClearCase (UCM),

  - Serena Dimensions;

  Objekt/Relationales-Mapping- und Persistenz-Frameworks wie

 Hibernate, EJB-CMP unter J2EE, Java Data Objects (JDO),

 Java Persistence API (JPA),

 Castor JDO,

 Enterprise Objects Framework (EOF) von WebObjects etc.;

  Transaktionsmanagement; Zerlegung komplexer, langlaufender

  und zeitkritischer serverseitiger Algorithmen in einzelne

  Transaktionen mit dem Ziel  der Performance-Optimierung,

  der Wiederaufsetzbarkeit und der Deadlock-Vemeidung;

  UseCase-Modellierung mit UML2.0;

Applikationsserver:

  IBM (Rational) WebSphere WAS;

  JBoss;

  Oracle/BEA WebLogic Server;

  Sun GlassFish Enterprise Server; 

  iPlanet / SunONE Application Server;

  WebObjects; JServ/Tomcat;

weitere Server-Software:

  diverse SunONE / iPlanet Server

  (SunONE / iPlanet WebServer,

SunONE / iPlanet Messaging Server,

SunONE / iPlanet Application Server und

SunONE / iPlanet Directory Server (LDAP-Server));

  Tomcat/JServ;

Betriebssysteme

HPUX
(s.u.)
Mac OS
MS-DOS
(s.u.)
OS/400
(s. u.)
SUN OS, Solaris
(s.u.)
Unix
(s.u.)
Windows
(s.u.)
verschiedene UNIX-Varianten (Solaris 8, HPUX, Linux):

  Skript/Shell-Programmierung;

  Systemprogrammierung in C;

  Verwendung als Web-, Application-, Mail-, LDAP- oder DB-Server;

  Deployment von serverseitigen Anwendungen;


Konnektierung an AS400/iSeries Hosts zum Abfragen von Datenbanken,

  Abrufen von Services oder zur Produktion komplexer serverseitiger

  Algorithmen auf einem Applikations-Server wie IBM WebSphere 5.0;


verschiedene Windows-Varianten (Windows 95, Windows NT/2000, XP):

  Verwendung v.a. als Entwicklungs- und Testbetriebssyteme für

  Cross-Platform-Development;

  Deployment i.d.R. auf UNIX-Maschinen oder IBM-iSeries;

Programmiersprachen

ABAP4
Assembler
Basic
(s.u.)
C
(s.u.)
C++
(s.u.)
CORBA IDL
(s.u.)
Delphi
(s.u.)
Emacs
Fortran
v.a. wissenschaftl. Programmierung;
Java
(s.u.)
JavaScript
(s.u.)
Lisp
MATLAB / Simulink
Modula-2
Objective C
v.a. für WebObjects 3.5, 4.0, 5.0 (Objective-C to Java-Bridge);
Pascal
(s.u.)
Perl
(s.u.)
PHP
(s.u.)
PL/SQL
(s.u.)
Prolog
Python
Skriptsprache v.a. von mir verwendet zur Analyse großer Datenmenge und zur Datenaufbereitung;
Scriptsprachen
(s.u.)
Shell
(s.u.)
Tcl/Tk
(s.u.)
TeX, LaTeX
yacc/lex
(s.u.)
Java/J2EE: jahrelange Erfahrung als J2EE-Architekt und -Entwickler

  z.B. für komplexe serverseitige und/oder webbasierte Anwendungen;

  diverse APIs (JavaMail 1.2 API; RMI-Server/Clients);

  Servlets (Servlet 2.2 API; Servlet-basierte Internetdienste und Portale);

  Applets; JFC, AWT (Abstract Windowing Toolkit), Swing;

  J2EE v. 1.4 / J2SE v. 1.4.0;

  EJB 2.3 (BMP/CMP Entity Beans, stateful/stateless Session Beans,

 Message-driven Beans); EJB Design Patterns nach Marinescu;

  JSP, Tag-Libraries, Custom Tags;

  XML/JAXP 1.1 API (Java API for XML Processing);

  XML/SOAP (Simple Object Access Protocol);

  SAX2 (Simple API for XML);

  XSLT (Extensible Stylesheet Transformations);

  Datenbankzugriff mittels JDBC 3.0 API;

  Directoryzugriff (LDAP) mittels JNDI 1.2 API

 (Java Naming and Directory Interface) oder

 Netscape Directory SDK 4.1 for Java API;

  JMS 1.02 API (Java Message Service);

  JINI 1.1 API (Java Intelligent Network Interface); JavaSpaces;

  MVC-Modell (Model-View-Controller);

  Mehrschichtige Architekturen (Multi-tiered approach); EAI;

  (Creational, Behavioral, Structural) Design-Patterns;

  Struts-Bibliothek vom jakarta-Projekt;

  Multithreading, Thread-Synchronization und Thread-Safety;

  Application-Server wie IBW WebSphere 5.1 / IDE: WSAD 5.0,

 WebObjects 5.0, SunONE / iPlanet Application Server 6.0,

 JBoss 3.0;

  Transaktionsmanagement; Zerlegung komplexer, langlaufender

 und zeitkritischer serverseitiger Algorithmen in einzelne

 Transaktionen mit dem Ziel der Performance-Optimierung,

 der Wiederaufsetzbarkeit und der Deadlock-Vemeidung;

  JProbe (Java Profiling Tool);

  JUnit (XUnit testing framework for Extreme Programming (XP));

  Javadoc (Java API Documentation Generator);

  RMI over IIOP; CORBA; CORBA-IDL (open OMG-standards);

  u.a.;

C/C++: akademischer Schwerpunkt in medizinischer Bildverarbeitung;

  UNIX-Schnittstelle und UNIX-Systemprogrammierung in C;

Pascal, Fortran:

  wissenschaftliche Programmierung an der Uni;

  statistische Qualtitätskontrolle;

  Entwicklung statistischer Testverfahren;

  Auswertung von globalen Klimamodellen über einen Simulations-

  zeitraum von 100 Jahren;

HTML, PHP 3 und 4, CGI Programierung mit PERL und mod_perl, JavaScript,
UNIX-Shellscripting:

  bash, tcsh, csh, korn-/bourne-shell (v.a. unter Solaris);

weitere Tools: PERL, Tcl/Tk; yacc/lex, Python;
UML-Modellierung; Objektorientierte Analyse- und Design (OOA/OOD);
Design-Patterns;
Lisp/Prolog;
SQL - 92, Oracle SQL, mySQL, DB2;
Weitere Sprachen: Delphi (z.B. eigener MineSweeper); ADA;

  Visual-C++; (Visual-)Basic;



Datenbanken

DB/400
DB2
(s.u.)
JDBC
(s.u.)
MS SQL Server
MySQL
(s.u.)
ODBC
(s.u.)
Oracle
(s.u.)
SQL
(s.u.)
Oracle 8 - 9i, SQL/mSQL/MySQL, DB2, DB/400, MS SQL Server;

  Stored Procedures unter Oracle;

  Tools: Tool for Oracle Application Developers (TOAD);

  iSeries Navigator; WinSQL;

Durchgeführte Migrationen von Oracle nach DB2 und MySQL;

Datenbankanwendungen mittels JDBC unter Java, ODBC;
Objekt/Relationales-Mapping- und Persistenz-Frameworks wie 
     Java Persistence API (JPA), 

  Enterprise Objects Framework (EOF) von WebObjects,

  Hibernate, EJB-CMP unter J2EE, Java Data Objects (JDO),

  Castor JDO etc.;

  selbst geschriebene Datenbankkonnektoren unter JDBC;

OO-Modellierung von Datenmodellen einer Datenbank

  mittels des EOModellers von WebObjects oder selbst geschriebener

  Datenbankkonnektoren unter JDBC;


LDAP-Entwicklung (Light Weight Directory Access Protocol);

  Benutzung von Directory Servern wie dem SunONE / iPlanet Directory

  Server 5.1 (IDS 5.1);

Datenkommunikation

CORBA
CORBA/IIOP
Internet, Intranet
jahrelange Erfahrung als e-Commerce Entwickler
ISO/OSI
Message Queuing
RPC
SMTP
SMTP und IMAP4; insb. JavaMail 1.2 API
TCP/IP
Windows Netzwerk
JMS (Java Message Service) und Message Driven Beans in J2EE zur

  Datenkommunikation;


RMI (Remote Method Invocation): Entwicklung eines RMI-Servers zur Auslagerung

  von AS/400-Zugriffen vom Web-/Applicationserver auf die AS/400 selbst;

  Übergabe von Java-Objekten von der AS/400 an Web-/Application-Server

  (Sun e250), die als RMI-Client fungieren (RMI over IIOP).


JavaToolbox for AS400/iSeries (nun: JTOpen 2.0.2 for iSeries) zur Kommunikation

  von AS400 mit anderen Rechnern und zum Abrufen von Diensten auf einer

  AS400/iSeries, z.B. (Keyed)DataQueues.


TCP/IP-Snooping zur Fehlerdiagnose in heterogenen Kundennetzwerken.

JavaMail 1.2 API zur Erstellung von E-Mail Gateways zwischen mobilen Endgeräten

  und Internet-MailServern.


JINI (Java Intelligent Network Interface); JavaSpaces API

Hardware

AS/400
nun iSeries; Host-Rechner für diverse Java/J2EE-Anwendungen;
Ascii/X - Terminals
Cray
wissenschaftl. Simulationsrechnungen in der Klimaforschung;
HP
HP-Server unter HPUX (UNIX-Deivat);
PC
(s.u.)
SUN
(s.u.)
Intel-PC: Betriebssysteme: Linux, Windows NT/2000;

Sun: z.B. Sun-e250/e4500, Ultra-/Netra-Workstations als

  Web-, Application-, Message-, LDAP- oder Datenbank-Server;

  Wartung entsprechender Dienste;

  Skriptprogrammierung (cron-Daemon);


iSeries, AS400: JavaToolbox/JTOpen2.0.2 zum Abruf von AS400/iSeries-Diensten

  wie z.B. (Keyed)DataQueues;

Berechnung / Simulation / Versuch / Validierung

Rapid Control Prototyping (RCP)

Branchen

Branchen

E-Commerce: Internetportale;
Telekommunikation, Mobile Kommunikation:

  E-Mail-Zugangsdienst für Handys, MDAs, PDAs;

  Europäische I-Mode Implementation;

  Managementsysteme für Mobilfunknetze;

  Online Mobilfunk-Tarifvergleichsysteme;

Touristik: Last-Minute-Anbieter, Internetreiseanbieter;

  Pauschalreiseanbieter;

Banken: Wertpapierhandels- und Bonussystem; Finanzmathematik;

  Middleware für Online-Banken, Direktbanken; 

  Schweizer Privatbank im SMI;

Logistik, Versandhandel: Lagerverwaltungssystem (LVS);

  Entwicklung einer Versandhandels-Komplettlösung;

  Frachtkostenoptimierung; Transportwegoptimierung;

  Reihenfolgeoptimierung; Transport- und Nachschubsteuerung;

  Bestands- und Bedarfsrechnung; Kommissionierung;

  Auftragsmanagement; Customer Relationship Management (CRM);

  Katalog- und Sortimentsplanung (KS); Debitorenbuchhaltung (DBH);

Logistik / Auftragsbearbeitung und Transportplanung:

  Transport-Informations-Plattform (TIP);

Versicherungen, KFZ-Leistungabteilung, Krankenvers.-Leistungsabteilung:

  z.B. Datenbank mit allen LKW-Schadensfällen der EDEKA-Kette;

  Versicherungsmathematik, Versicherungsstatistik;

  WebServices / SOA für Versicherungsanträge;

Bildverarbeitung: medizinische Bildverarbeitung, Bildregistrierung,

  Merkmalsextraktion, spez. Landmarkenextraktion;

  Kantendetektion; Anpassung parametrischer deformierbarer Modelle;

  lokale vs. globaler Optimierung;

Qualitätskontrolle: statistische Testverfahren, Hypothesentests,

  Test auf Vorliegen von Mischungsverteilungen;

  Monte-Carlo-Simulation; Erzeugung von Pseudo-Zufallszahlen;

Meteorolgie, Klimaforschung: Auswertung von globalen Klimamodellen

  über ca. 100 Jahre zur Vorhersage des Treibhauseffekts;

  Datenmodellierung; graphische Auswertung;

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.