BESCHREIBUNG: Der NEWPOSS-Projekt umfasste im Wesentlichen das Kassensystem und die zugehörige Backend-Komponente für jeden Supermarkt von ALDI SÜD. Das Kassensystem verfügte über eine lokale H2 Datenbank und verwendete die JPOS Schnittstelle zur Anbindung von externen Geräten. Im Backend kamen JBoss als Applikationsserver und PostgreSQL als Datenbank zum Einsatz. Beide Anwendungen basierten auf dem TREND - Framework der Firma GEBIT, dem wiederum eine OSGI-Implementierung zugrunde lag. Es wurden mehrere Länderversionen unterstützt, die sich teilweise erheblich in der Geräte-Ausstattung, steuerlichen und rechtlichen Gegebenheiten unterschieden haben. Die Projektorganisation folgte dem Spotify Modell von Scrum.
MEINE AUFGABEN: Anbindung von Peripherie-Geräten, z.B. den Fiskaldrucker für Italien. Einsatz von Graphenalgorithmus (nach Ahuja-Orlin) für den maximalen Durchfluss zu Berechnung der optimalen Zuteilung von Zahlungsmitteln zu den Artikeln an der Kasse unter Berücksichtigung der Einschränkungen zwischen den Artikeln und Zahlungsmitteln. Implementieren von Schnittstellen zwischen den einzelnen NEWPOSS-Komponenten und zur Außenwelt als XML- und REST-basierte Webservices. Schreiben von End-To-End Tests mit dem GEBIT-internen Testframework "Integrity".
Aufgrund der Kontaktbeschränkungen in den Lockdowns erfolgte die Weiterbildung ausschliesslich durch das Studieren der Fachliteratur und Internet-Dokumentationen, sowie durch die Realisierung kleiner Programmierprojekte zum Ausprobieren bestimmter Tools und Technologien. Die getroffene Auswahl der Tools und Technologien für die Weiterbildung richtete sich in erster Linie nach den zur Zeit vorherrschenden Erfordernissen des IT-Marktes. Die weiteren Kriterien waren meine fehlende Erfahrung mit diesen Technologien, gefolgt von Wiederholung und Erweiterung des Know-hows.
Unternehmensweite Einführung einer Single Sign On (SSO) Lösung mit Unterstützung für das Sicherheitprotokoll OAuth/OpenID Connect. Die SSOP Anwendung diente der Anpassung des gewählten SSO Servers (Keycloak) an die Bedürfnisse des Unternehmens. Der mit Spring Boot und REST realisierte SSO Secret Service Mikroservice kümmerte sich um die Schlüsselverwaltung. Die K2 Legacy Anwendung (JEE, JBoss) war das Herzstück des Alarmsystems und besaß außer der Backend-Komponenten ein Wicket Web-Frontend.
Der Hauptzweck von OSRR war die Berechnung und Verwaltung von Bonuspunkten eines Kunden, die er für seine Einkäufe bekommen hat. Bei der Berechnung wurden zusätzlich Gutscheine, Partnerpromotionen, Voucher usw. berücksichtigt. Es handelte sich hier vor allem um mehrere JEE Backend Anwendungen, mit einigen wenigen Frontend Applikationen
Die Anwendung diente der Erstellung von neuen Fahrzeugmodellen aus verschiedenen Teilen, die wiederum mit CAD Tools wie CATIA und ähnlichen erstellt wurden. Da das BMW Konzern Konstruktionsbüros in anderen Ländern geöffnet hat, durften viele Konstruktionsdaten den Mitarbeitern dieser Niederlassungen nicht angezeigt werden. Es war deshalb notwendig, ein ausgefeiltes Berechtigungskonzept in der Anwendung einzuführen, eine sog. Need To Know (N2K)Funktionalität.
Alle drei Projekte drehten sich um die Umsetzung der EU-Richtlinie MiFID II. Das PGS Service diente der Zuordnung von Wertpapieren und anderen Bankprodukten zu den Kategorien, die nur bestimmten Kundengruppen angeboten wurden. Das C3S Projekt berechnete alle Kosten und Gebühren, die dem Kunden beim Kauf, Verkauf und während der Haltephase eines Finanzproduktes in Rechnung gestellt werden. Das WPS Projekt lieferte Informationen zu Wertpapieren, die für die Berechnung dieser Kosten benötigt wurden. Alle drei Projekte basierten auf Spring Boot. Für die Kommunikation nach Außen dienten Messaging- und REST-Schnittstellen
VPS war eine von den wichtigsten Komponenten in der SOA Landschaft für die Abwicklung von Versicherungspolicen. Es Bestand aus einem Web-Frontend realisiert mit VaadinFramework und zwei WebService-Anwendungen: einer für Verträge und einer für Versicherungsobjekte. Technologisch wurden die Anwendungen in JEE mit IBM WebSphere als Applikationsserver realisiert. Die Implementierung basierte auf den Frameworks IPM und IPS der 'Faktor Zehn AG'.
Alle Business-Prozesse des Versicherungsunternehmens wurden in einer SOALandschaft (Service Oriented Architecture) bestehend aus IBM Tools Business Process Manager (BPM), Enterprise Service Bus (ESB) und einem Regelwerk realisiert
Ein Teil des AMCF Projektes beschäftigte sich mit der Problematik des Deep Learnings (DP). Unter anderem wurden die DP Bibliotheken Theano und TensorFlow eingesetzt. Das Unterprojekt "Theano Interpreter" entwickelte Module zur Ausführung von DP Workflows in C++ und Java, die mit Hilfe der Theano-Bibliothek modelliert und trainiert wurden. Die Workflows wurden in der platform- und sprachunabhängigen Serialisierungsformat Protocol Buffers gehalten. Es gab 3 Arten von Workflows: Feature Extraction, Random Forest und Convolutional Neural Networks.
Die Anwendung ermöglichte die Berechnung von Wartungsintervallen für die Gasturbinen anhand der historischen Daten so wie das Treffen der entsprechenden Voraussagen für die Zukunft. Die Wartungsintervalle konnten flexibel für verschiedene Einheiten, Komponenten und Teile der Gasturbinen berechnet werden. Die Signale der Sensoren wurden auf dem HDFS gespeichert und dienten als Input für die Berechnungen. Die Berechnung-Workflow wurde von Oozie überwacht, die Berechnung selbst wurde mit Pig gestartet. Die Ergebnisse wurden in die Teradata-Datenbank geschrieben. Die Konfiguration für die Berechnungen wurde in einer objektorientierten Datenbank ObjectDB gehalten. Die Benutzerschnittstelle wurde mit dem Vaadin Framework als Web-Oberfläche realisiert. Das Projekt wurde durch ein Scrum-Team bestehend aus Entwicklern in Deutschland, Rumänien und Indien realisiert.
ePOS ist eine Web-Anwendung für die O2-Shops, die nur von offiziellen O2-Händler verwendet wurde. Diese Anwendung stellte vor allem kompliziertere Funktionalitäten und Prozesse zur Verfügung, die nich im Internetportal des Unternehmens vom Kunden selbst bedient werden konnten. Es gab auch eine Version der Anwendung, die speziell für Tablets designet wurde. Als Webframework kam Wicket zum Einsatz. Das Responsive-Design der Tablet-Anwendung wurde durch Verwendung der Bibliotheken JQuery-Mobile und Bootstrap ermöglicht. Die Backend-Seite wurde mit JBoss als Applikationsserver und Oracle-Datenbank realisiert. Für die Sicherheitsaspekte war Apache Shiro verantwortlich. Wichtiger Bestandteil der Anwendung war der Zugriff auf die anderen Backend-Systeme des Unternehmens, der fast komplett durch eine REST-Schnittstelle namens MCE standardisiert wurde. Als REST Client wurde dabei Spring's RestTemplate Modul eingesetzt. Die zahlreichen Formulare in den Flows wurden im PDF-Format mit Hilfe der itextpdf-Bibliothek erstellt und elektronisch unterschrieben mit signPOS.
Pegasus.Gas war eine Anwendung zum Verkauf von Erdgas an Großkunden des Unternehmens. Es wurden verschiedene Verkaufsmethoden implementiert, unter anderem ein spezieller, in Scala geschriebener Server für Gas-Termingeschäfte. Die Hauptanwendung bestand aus Rich-Client UI (geschrieben in Java-Swing), einem Java-Server und der Oracle-Datenbank. Zum Herunterladen und Starten der Client-Anwendung wurde in erster Linie Java Web Start Technologie verwendet. Der Zugriff von Client auf den Server erfolgte via Spring HttpInvoker. Der Entwicklungsprozess folgte der ScrumMethodologie.
CommonAR ist ein Register aller Ärzte und Praxen für die gesetzliche Krankenversicherung der Länder Bayern und Baden-Württemberg. Der Zugriff auf das Regiter erfolgte ausschließlich via eine WebService-Schicht. Eine zusätzliche Quelle der Daten waren bestimmte LegacyDatenbanken. Der sog. Syncer-Modul sorgte dafür, dass die Daten in diesen Datenbanken und dem CommonAR immer im aktuellen Zustand gehalten wurden. eBIP ist eine Web-Anwendung zur Anzeige und Prüfung der Bilder verschiedener Organe. Die Bilder wurden durch die Geräte der Kassenärzte erstellt.
Piranha ist ein Authentifizierungs- und Autorisierungsportal von O2. Die ursprüngliche, Cookie-basierte Implementierung wurde durch einen Single Sign-On Server OpenAM ersetzt, bei dem der Austausch von Authentifizierungs- und Autorisierungsinformationen nicht nur via Cookie sondern auch mittels SAML erfolgte. Bei der Prepaid-Anwendung handelt sich um einen WebPortal für die Prepaid-Kunden von O2. Die Entwicklung in beiden Projekten erfolgte gemäß der ScrumMethodologie.
Es handelte sich hier um eine Web-Anwendung für mobile Geräte der Firma O2 Deutschland. Wegen der enormen Vielfalt der unterschiedlichsten mobilen Geräte mussten die Seiten für verschiedene Gerätegruppen und sogar für einzelne Geräte in sog. Template Manager (mittels XSLT Transformationen und Cocoon) angepasst werden. Die Anbindung an die Backend-Systeme erfolgte überwiegend über REST Schnittstellen (JAX-RS 1.1). Die HTML Seiten wurden mit Wicket und node.js Technologien angefertigt. Ein anderes Problem bei der Erstellung von Web-Anwendungen auf den mobilen Geräten war die unterschiedliche Größe und Auflösung von Bildschirmen und die fehlende Unterstützung für bestimmte Bildformate (z.B. JPEG, GIF usw.). Dadurch mussten für jeden mobilen Gerätetyp die Bilder entsprechend skaliert und formatiert werden, was die Aufgabe eines Image-Servers war.
WebService basierte Platform UNICA diente zum Austausch von Daten zwischen dem Mutterkonzern Telefónica und deren Tochtergesellschaften wie z.B. O2 Deutschland. Die Sicherheitsaspekte wurden dabei durch einen Prototyp für den unternehmensweiten Security Server abgehandelt. Später wurde UNICA ein Teil der konzernweiten SOA-Lösung. Sämtliche Projekte des Unternehmens wurden agil als Scrum-Projekte realisiert
Das Metadatensystem beinhaltete Datendefinitionen und -formate aller Forschungsdatensätze, die in Laufe der Jahrzehnte durch die BA erhoben worden sind. Es war möglich Datenkataloge mit der Beschreibung der Daten in gewählten Versionen zu erstellen. Der IAB Thesaurus war eine Sammlung von hierarchisch und alphabetisch angeordneten Schlagwörtern. Durch die Verknüpfung dieser Schlagwörter mit verschiedenen Datenquellen war es möglich, Daten zu bestimmten Themen schnell ausfindig zu machen.
ZEITRAUM: 03.2020 - 04.2021
Auftraggeber: Waldemar Joachim Kipka.
Auftraggeberprofil: IT Beratung.
Projekt: Berufliche Weiterbildung.
Branche: IT Dienstleistung.
Ort: München / Deutschland.
Beschreibung: Wegen der Pandemie-Situation und der damit zusammenhängenden Lockdowns ist der IT-Projektmarkt in Deutschland und den Nachbarländern weitgehend zusammengebrochen. Die projektfreie Zeit wurde von mir zur beruflichen Weiterbildung genutzt.
Art der Beschäftigung: Freiberuflich.
Funktionen: Developer, Lead Developer.
Meine Aufgaben: Aufgrund der Kontaktbeschränkungen in den Lockdowns erfolgte die Weiterbildung ausschliesslich durch das Studieren der Fachliteratur und Internet-Dokumentationen, sowie durch die Realisierung kleiner Programmierprojekte zum Ausprobieren bestimmter Tools und Technologien.
Hardware: Apple MacBook Pro.
Software: OSX 11.2.3, Microservices-Programmierung (SpringBoot in Cloud / Kubernetes Umfeld, Quarkus, Domain Driven Design), Betrieb von Microservices (Kubernetes, Terraform), Frontend (Angular, TypeScript, Vaadin, Bootstrap, JavaFX), Kotlin (SpringBoot für Kotlin), Scala (Scala 3, Cats), Prozessprogrammierung (Camunda, BPMN, DMN), funktionale Programmierung (funktionale Muster wie Funktor, Monoid, Monad usw.), reaktive Programmierung (Reactive Streams, reaktive Programmierung in Spring und Quarkus), Kafka (ZooKeeper, Kafka Streams mit Stream- und Prozess API), Elasticsearch (Abfragen, ELK Stack: Elasticsearch, Logstash, Kibana), aktuelle Java-Versionen (von Java 9 bis Java 15), NoSQL-Datenbanken (MongoDB).
ZEITRAUM: 02.2019 - 12.2019
Auftraggeber: F24 AG.
Auftraggeberprofil: Anbieter von Alarmsystemen.
Projekt: SSOP (Single Sign On Provider), SSO Secret Service, K2.
Branche: IT Software Hersteller.
Ort: München / Deutschland.
Beschreibung: Unternehmensweite Einführung einer Single Sign On (SSO) Lösung mit Unterstützung für das Sicherheitprotokoll OAuth/OpenID Connect. Die SSOP Anwendung diente der Anpassung des gewählten SSO Servers (Keycloak) an die Bedürfnisse des Unternehmens. Der mit Spring Boot und REST realisierte SSO Secret Service Mikroservice kümmerte sich um die Schlüsselverwaltung. Die K2 Legacy Anwendung (JEE, JBoss) war das Herzstück des Alarmsystems und besaß außer der Backend-Komponenten ein Wicket Web-Frontend.
Art der Beschäftigung: Freiberuflich.
Funktionen: Lead Developer.
Meine Aufgaben: Betreuung eines Nearshore Teams aus Rumänien. Anlage neuer Projekte SSOP und SSO Secret Service. Anpassung der SSO Lösung mit Hilfe des Keycloak's SPI Schnittstellen (Service Provider Interface) und WildFly CLI. Gestaltung der REST Schnittstelle der Secret Service Anwendung mitsamt Logins mit Hilfe von SSO JWT Token. Performance Verbesserungen in K2 durch Optimierung der MySQL Datenbankzugriffe und Einführung von Caching mit Caffeine. Schreiben von Docker Compose Skripten zum lokalen Starten von den neuen Anwendungen inklusive derer Umgebung (Datenbanken, Proxies usw.).
Hardware: Apple MacBook.
Software: OSX 10.15.1, JDK 8, Groovy, IntelliJ IDEA 2018.1, JBoss EAP 6.4, Keycloak 6.0.1, SpringBoot 2.1.3, MySql 5.7, Liquibase 3.5.5,MySQL Workbench 8.0, Flyway, Caffeine 2.8.0, Jasypt 2.1.1, JAX-RS, Retrofit 2.6.0, JUnit 4, JMockit 1.45, JProfiler 11.0.1, GIT, GitLab, Maven 3.6.0, Docker 2.1.0.4, Prometheus 2.13, JIRA, Confluence.
ZEITRAUM: 06.2018 - 12.2018
Auftraggeber: PAYBACK GmbH.
Auftraggeberprofil: Anbieter von Bonussystemen.
Projekt: OSRR (Online Shopping Realtime & Rating).
Branche: Handel.
Ort: München / Deutschland.
Beschreibung: Der Hauptzweck von OSRR war die Berechnung und Verwaltung von Bonuspunkten eines Kunden, die er für seine Einkäufe bekommen hat. Bei der Berechnung wurden zusätzlich Gutscheine, Partnerpromotionen, Voucher usw. berücksichtigt. Es handelte sich hier vor allem um mehrere JEE Backend Anwendungen, mit einigen wenigen Frontend Applikationen.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwickler- und Integrations-Tests.
Meine Aufgaben: Das Umsetzen von Use Cases im JEE Backend Umfeld, mit Zugriffen auf die Datenbanken via JPA und REST- und SOAP-Webservice Schnittstellen. Auswählen, Aggregieren und Verschicken von Nachrichten an Kafka-Topics zwecks Auswertung mittels BI (Business Intelligence)- Verfahren. Performance Verbesserungen mit Hilfe von JProfile. Implementierung von GUI-Oberflächen mit Angular. Schreiben, Überwachen und Verwenden von End-To-End-Tests mit TOSCA.
Hardware: IBM-PC.
Software: Windows 10, JDK 7, JDK 8, Groovy, IntelliJ IDEA 2018.2.5, WebLogic 12.1.3.0.0, Tomcat 7, Oracle 12.1.0, PL/SQL Developer, Kafka, Angular 6.1.4, JUnit, Mockito, OpenEJB 4.5.1, Jasmine, Karma, TRICENTIS TOSCA Testsuite 7.0.0, JProfiler 10, GIT, Subversion, Maven 3.5.0, ANT 1.8.2, Ansible, Kibana, Grafana, SonarQube, FishEye, Crucible, JIRA, Confluence.
ZEITRAUM: 11.2017 - 04.2018
Auftraggeber: NTT DATA Deutschland GmbH.
Auftraggeberprofil: IT Consulting-Unternehmen.
Endkunde: BMW AG.
Projekt: CA PDM (Computer Aided Product Data Management).
Branche: Automobilindustrie.
Ort: München / Deutschland.
Beschreibung: Die Anwendung diente der Erstellung von neuen Fahrzeugmodellen aus verschiedenen Teilen, die wiederum mit CAD Tools wie CATIA und ähnlichen erstellt wurden. Da das BMW Konzern Konstruktionsbüros in anderen Ländern geöffnet hat, durften viele Konstruktionsdaten den Mitarbeitern dieser Niederlassungen nicht angezeigt werden. Es war deshalb notwendig, ein ausgefeiltes Berechtigungskonzept in der Anwendung einzuführen, eine sog. Need To Know (N2K)-Funktionalität.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwickler- und Integrations-Tests.
Meine Aufgaben: Einholen der Berechtigungsinformationen aus der PRISMA Datenbank mittels der bereitgestellten Datenbank - Views oder gespeicherten Prozeduren. Das anwendungsweite Anbieten dieser Informationen mit Hilfe von ThredLocal - Objekten. Verwendung der JEE Interceptors und Annotationen zum Verstecken von Datenteilen für nicht authorisierte Benutzer. Die Anzahl der versteckten Elemente wurde als eine Meldung in der Web-GUI angezeigt und die Elemente mit ausgefilterten Kindern wurden in GUI-Baumsdarstellung mit speziellen Symbolen markiert. Export von Arbeitsstrukturen an ausländische Konstruktionsbüros mit Hilfe von REST-Webservices (JSON). Das Schreiben von automatischen Unit- und Integrationstests, die sicherstellten, dass die Sicherheitsmechanismen für sensible Konstruktionsdaten tatsächlich greifen. Das Ergänzen der Dokumentation.
Hardware: IBM-PC.
Software: Windows XP, Linux, JDK 7, Eclipse Oxygen, GlassFish 3.1.2.2, Jersey 1.9-ea04, JAX-RS, SoapUI 5.3.0, Oracle 12, Oracle SQL Developer 17.3.1.279, UCS (Struts), ExtJS 3.2.2, Direct Web Remoting (DWR, Ajax for Java), Violet UML 2.1.0, JUnit 4, Reflections 0.9.10, ANT 1.8.4, Maven 3.0.5.
ZEITRAUM: 07.2017 - 10.2017
Auftraggeber: DAB BNP PARIBAS.
Auftraggeberprofil: Bank.
Projekt: Product Catalog Service (PGS), Central Cost & Charges Service (C3S), Wertpapier Service (WPS).
Branche: Finanzwirtschaft.
Ort: München / Deutschland.
Beschreibung: Alle drei Projekte drehten sich um die Umsetzung der EU-Richtlinie MiFID II. Das PGS Service diente der Zuordnung von Wertpapieren und anderen Bankprodukten zu den Kategorien, die nur bestimmten Kundengruppen angeboten wurden. Das C3S Projekt berechnete alle Kosten und Gebühren, die dem Kunden beim Kauf, Verkauf und während der Haltephase eines Finanzproduktes in Rechnung gestellt werden. Das WPS Projekt lieferte Informationen zu Wertpapieren, die für die Berechnung dieser Kosten benötigt wurden. Alle drei Projekte basierten auf Spring Boot. Für die Kommunikation nach Außen dienten Messaging- und REST-Schnittstellen.
Art der Beschäftigung: Freiberuflich.
Funktionen: Backend-Entwickler.
Meine Aufgaben: Neuanlage der Projekte, Bestimmung der Projektstruktur und der verwendeten Technologien. Erstellen von DMN 1.1 Entscheidungstabellen für Kostenberechnungen mit Camunda. Mannigfache Spring Boot Konfiguration. ActiveMQ Konfiguration für Transaktionen und Dead Letter Queues. Durchführung von Kostenberechnungen anhand der Daten aus der Datenbank- und DMN Entscheidungstabellen. Archivierung von Datenbanktabellen mit Hibernate Envers. Schreiben von Lasttests für Messaging mit JMeter.
Hardware: IBM-PC.
Software: Windows 7, JDK 1.8, Intellij IDEA 2017.2.2, Tomcat v8.5.20, Spring Boot 1.5.6, JAX-RS 2.0.1, Swagger UI, Spring JMS 4.3.9.RELEASE, ActiveMQ 5.15.0, Hawtio-UI, Camunda 7.7.0, Oracle 12.1.0, JPA, Hibernate 5.2.10.Final, Spring Data, Hibernate Envers, Oracle SQL Developer 17.2.0.188, Apache FOP 2.1, YAML, Maven, Jenkins, REST-assured 3.0.3, Wiremock 2.7.1, Cucumber 1.2.5, JMeter 3.2, AssertJ 3.8.0, JUnit 4, Mockito, JIRA, Confluence.
ZEITRAUM: 05.2017 - 06.2017
Auftraggeber: Versicherungskammer Bayern (VKB).
Auftraggeberprofil: Versicherungsunternehmen.
Abteilung: Kompas.
Projekt: Vertrag Produkt System (VPS).
Branche: Versicherungsindustrie.
Ort: München / Deutschland.
Beschreibung: VPS war eine von den wichtigsten Komponenten in der SOA Landschaft für die Abwicklung von Versicherungspolicen. Es Bestand aus einem Web-Frontend realisiert mit Vaadin-Framework und zwei WebService-Anwendungen: einer für Verträge und einer für Versicherungsobjekte. Technologisch wurden die Anwendungen in JEE mit IBM WebSphere als Applikationsserver realisiert. Die Implementierung basierte auf den Frameworks IPM und IPS der 'Faktor Zehn AG'.
Art der Beschäftigung: Freiberuflich.
Funktionen: Backend- und Frontendentwickler.
Meine Aufgaben: Erweiterung der bestehenden Anwendungsfunktionalität. Analysieren und Lösen von Produktabweichungen. Datenbankmigration im Zuge von IPM Upgrade. Lösung der Probleme mit Speichern von Daten mittels EclipseLink JPA. Mitarbeit in einer Multiteam-Umgebung nach den Prinzipien des Scrum Nexus.
Hardware: IBM-PC.
Software: Windows 8.1 Enterprise, JDK 1.8, Eclipse Mars Release 4.5.2, IBM WebSphere Application Server 8.5.5.9, Vaadin, Maven, GIT, GitLab, DB2 V10.5, EclipseLink JPA 2.6.0, liquibase, Confluence, Jira.
ZEITRAUM: 10.2016 - 04.2017
Auftraggeber: Versicherungskammer Bayern (VKB).
Auftraggeberprofil: Versicherungsunternehmen.
Abteilung: Kompas.
Projekt: Prozesse und Services Architektur (PSA).
Branche: Versicherungsindustrie.
Ort: München / Deutschland.
Beschreibung: Alle Business-Prozesse des Versicherungsunternehmens wurden in einer SOA-Landschaft (Service Oriented Architecture) bestehend aus IBM Tools Business Process Manager (BPM), Enterprise Service Bus (ESB) und einem Regelwerk realisiert.
Art der Beschäftigung: Freiberuflich.
Funktionen: Prozessprogrammierer.
Meine Aufgaben: Das Erstellen von Schnittstellen (WSDL) im ESB. Implementierung von Mediationen zwischen verschiedenen Schnittstellen (hauptsächlich unter Verwendung von XPath und XSLT, aber auch mit Java). Zugriff vom ESB auf Legacy-Systeme. Erweiterung der bestehenden Prozesse im BPM mit graphischen Mitteln (BPMN: Business Process Model and Notation) und JavaScript. Erstellung von Regeln im Regelwerk. Fehlersuche und Fehleranalyse in Prozessen. Das Bereitstellen der Möglichkeit zum lokalen Debuggen von Backendsystemen zusammen mit den Prozesskomponenten (ESB, BPM).
Hardware: IBM-PC.
Software: Windows 8.1 Enterprise, Linux, IBM Integration Designer 8.0.1.2, IBM WebSphere 8.0.0.12, IBM BPMPS 8.0.1.3 (IBM ESB, IBM BPM, IBM Rule Engine), IBM WebSphere Operational Decision Management 8.0.0.1, Subversion, Jenkins.
ZEITRAUM: 06.2016 - 09.2016
Auftraggeber: Siemens AG.
Auftraggeberprofil: Maschinen- und Anlagenbauunternehmen.
Abteilung: BAM LSY (BAM Learning Systems).
Projekt: AMCF (Analytic Model Container Framework).
Branche: Maschinenbauindurstrie.
Ort: München / Deutschland.
Beschreibung: Ein Teil des AMCF Projektes beschäftigte sich mit der Problematik des Deep Learnings (DP). Unter anderem wurden die DP Bibliotheken Theano und TensorFlow eingesetzt. Das Unterprojekt "Theano Interpreter" entwickelte Module zur Ausführung von DP Workflows in C++ und Java, die mit Hilfe der Theano-Bibliothek modelliert und trainiert wurden. Die Workflows wurden in der platform- und sprachunabhängigen Serialisierungsformat Protocol Buffers gehalten. Es gab 3 Arten von Workflows: Feature Extraction, Random Forest und Convolutional Neural Networks.
Art der Beschäftigung: Freiberuflich.
Funktionen: Lead Developer.
Meine Aufgaben: Evaluierung der Möglichkeiten zum Einsatz von TensorFlow unter Windows (Build mit Bazel) und mit Java. Schreiben von C++ Unit- (mit Google Test Bibliothek) und Workflow-Tests (mit CMake und Bash-Skripten). Erstellung und erste Entwicklung der Java-Version des Unterprojektes "Theano Interpreter". Dabei wurde die Algebra Bibliothek ND4J zur Entwicklung von Operationen wie Convolutional, Max Pooling, Rectifier usw. verwendet. Die C++ Implementierung von diesen Operationen basierte auf der Eigen Bibliothek für lineare Algebra.
Hardware: IBM-PC.
Software: Windows, Linux, JDK 1.8, C++ 11, C++ GNU Compiler 5.3.0, IntelliJ 2016, Microsoft Visual Studio Express 2013, Google Protocol Buffers 2.5.0, CMake 3.3.2, ND4J 0.6.0, DL4J, Eigen 3.2.7, Google Test 1.7.0, JUnit 4, JMockIt 1.2, Maven, Google Bazel, GIT, Jira, Confluence.
ZEITRAUM: 11.2015 - 05.2016
Auftraggeber: Siemens AG.
Auftraggeberprofil: Maschinen- und Anlagenbauunternehmen.
Abteilung: BAM LSY (BAM Learning Systems).
Projekt: SAMS IT (Siemens Advanced Maintenance Services).
Branche: Maschinenbauindurstrie.
Ort: München / Deutschland.
Beschreibung: Die Anwendung ermöglichte die Berechnung von Wartungsintervallen für die Gasturbinen anhand der historischen Daten so wie das Treffen der entsprechenden Voraussagen für die Zukunft. Die Wartungsintervalle konnten flexibel für verschiedene Einheiten, Komponenten und Teile der Gasturbinen berechnet werden. Die Signale der Sensoren wurden auf dem HDFS gespeichert und dienten als Input für die Berechnungen. Die Berechnung-Workflow wurde von Oozie überwacht, die Berechnung selbst wurde mit Pig gestartet. Die Ergebnisse wurden in die Teradata-Datenbank geschrieben. Die Konfiguration für die Berechnungen wurde in einer objektorientierten Datenbank ObjectDB gehalten. Die Benutzerschnittstelle wurde mit dem Vaadin Framework als Web-Oberfläche realisiert. Das Projekt wurde durch ein Scrum-Team bestehend aus Entwicklern in Deutschland, Rumänien und Indien realisiert.
Art der Beschäftigung: Freiberuflich.
Funktionen: Lead Developer.
Meine Aufgaben: Das Überwachen und Verbessern der Code-Qualität. Das Erstellen und Umsetzen von Code-Qualität-Konzepten. Das Umziehen von Konfigurationsdaten für die Berechnungen von Dateisystem in die ObjectDB-Datenbank. Die Injektion von JPA-Klassen in die DAO-Objekte mit Hilfe des Google Guice Frameworks. Zugriff auf die Teradata-Datenbank via JDBC. Mitwirkung bei der Umstellung der Berechnungen von dateisystemorientierten, sequentiellen Modus in parallele Verarbeitung auf den Hadoop-Servern. Das Schreiben von Pig?s User Defined Functions (mit Java) und Pig Skripten (mit Pig Latin). Das Schreiben von Unit-Tests mit Kotlin.
Hardware: IBM-PC.
Software: Windows, Linux, JDK 1.8, Kotlin 1.0.3, IntelliJ 2016, Tomcat 8.0.2, Vaadin 7.4.2, Guice 4.0, ObjectDB 2.6.7_05, Hadoop 2.4.0, Hive 1.1.0, HDFS, Oozie 4.0.0, Ambari 1.5.1, Teradata 15.0, Teradata Studio Express, JUnit 4, JMockIt 1.2, Maven, GIT, Bamboo, Jira, Confluence, Sonar, mobaXterm 8.6.
ZEITRAUM: 10.2014 - 07.2015
Auftraggeber: Telefónica O2 Deutschland GmbH.
Auftraggeberprofil: Mobilfunkprovider.
Abteilung: O2 Workbench Portal Solutions.
Projekt: ePOS.
Branche: Telekommunikation.
Ort: München / Deutschland.
Beschreibung: ePOS ist eine Web-Anwendung für die O2-Shops, die nur von offiziellen O2-Händler verwendet wurde. Diese Anwendung stellte vor allem kompliziertere Funktionalitäten und Prozesse zur Verfügung, die nich im Internetportal des Unternehmens vom Kunden selbst bedient werden konnten. Es gab auch eine Version der Anwendung, die speziell für Tablets designet wurde. Als Webframework kam Wicket zum Einsatz. Das Responsive-Design der Tablet-Anwendung wurde durch Verwendung der Bibliotheken JQuery-Mobile und Bootstrap ermöglicht. Die Backend-Seite wurde mit JBoss als Applikationsserver und Oracle-Datenbank realisiert. Für die Sicherheitsaspekte war Apache Shiro verantwortlich. Wichtiger Bestandteil der Anwendung war der Zugriff auf die anderen Backend-Systeme des Unternehmens, der fast komplett durch eine REST-Schnittstelle namens MCE standardisiert wurde. Als REST Client wurde dabei Spring's RestTemplate Modul eingesetzt. Die zahlreichen Formulare in den Flows wurden im PDF-Format mit Hilfe der itextpdf-Bibliothek erstellt und elektronisch unterschrieben mit signPOS.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations-, Regressions- und Lasttests.
Meine Aufgaben: Entwurf und Programmierung der GUI-Elmenente mit Wicket, HTML und CSS (Bootstrap, LESS). Der Zugriff auf die REST-Schnittstelle (MCE) und das Schreiben von Unit Tests, die die Konsistenz dieser Schnittstelle bei Änderungen sicherten. Erstellen eines REST-Mock-Servers der MCE-Schnittstelle für Testzwecke. Das Cachen der MCE-Daten mit Ehcache. Interaktionen mit der Datenbank via JPA. Das Erstellen von Lasttests zum Testen von den wichtigsten Programm-Flows.
Hardware: Apple MacBook, IBM-PC.
Software: Mac OS X 10.10.3, JDK 1.7, IntelliJ IDEA 14.1.3, JBoss 7.2.0Final, Tomcat 7.0, Java EE 6, CDI, Spring Framework 3.1.1, Ehcache 3, itextpdf 5.1.3, Hibernate 1.4.4, Oracle 11g, Oracle SQL Developer 4.0.3, Wicket 6.16.0, Maven 3.0.4, ANT, GIT 1.7.6.4, jMeter 2.11, Jenkins, Jira, Confluence, jUnit 4.
ZEITRAUM: 03.2014 - 10.2014
Auftraggeber: E.ON Business Services GmbH.
Auftraggeberprofil: Energieproduzent und -lieferant.
Projekt: Pegasus.Gas.
Branche: Energiewirtschaft.
Ort: München / Deutschland.
Beschreibung: Pegasus.Gas war eine Anwendung zum Verkauf von Erdgas an Großkunden des Unternehmens. Es wurden verschiedene Verkaufsmethoden implementiert, unter anderem ein spezieller, in Scala geschriebener Server für Gas-Termingeschäfte. Die Hauptanwendung bestand aus Rich-Client UI (geschrieben in Java-Swing), einem Java-Server und der Oracle-Datenbank. Zum Herunterladen und Starten der Client-Anwendung wurde in erster Linie Java Web Start Technologie verwendet. Der Zugriff von Client auf den Server erfolgte via Spring HttpInvoker. Der Entwicklungsprozess folgte der Scrum-Methodologie.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations- und Akzeptanztests.
Meine Aufgaben: Swing-GUI-Entwicklung mit JFormDesigner. Server-Programmierung von der Client-Fassade bis zu der Datenbank. Gestaltung von SOAP-WebService Schnittstellen zu anderen Systemen im Unternehmen. Schreiben von Swing-GUI funktionalen Tests mit Hilfe der FEST-Bibliotheken.
Hardware: IBM-PC.
Software: Windows 7 Enterprise, JDK 7, Scala 2.10.2, Java-Swing, JNLP, JGoodies 2.2.2, JFormDesigner 5.1.0, Spring 3.1.4, Spring Tool Suite (STS) 3.2.0, Apache Tomee 7.0.47, Oracle 11.2.0.3, Oracle SQL Developer 3.2.20.09, H2 In-Memory Database, Hibernate 4.1.7, Flyway 2.1.1, quartz 2.1.6, Enterprise Architect 10.0.1009, soapUI-4.5.0, Lombok 1.14.3, jUnit, fest-swing 1.2.1, DbUnit 2.4.8, Mockito 1.9.5, Subversion 1.7, TortoiseSVN, Maven, Jenkins, Sonar, onTrack 5.2.
ZEITRAUM: 10.2013 - 01.2014
Auftraggeber: Kassenärztliche Vereinigung Bayerns (KVB).
Auftraggeberprofil: Öffentlicher Dienst.
Abteilung: CoC SDC.
Projekt: CommonAR (Arztregister), eBIP (Elektronische Bilderprüfung).
Branche: Gesundheitswesen.
Ort: München / Deutschland.
Beschreibung: CommonAR ist ein Register aller Ärzte und Praxen für die gesetzliche Krankenversicherung der Länder Bayern und Baden-Württemberg. Der Zugriff auf das Regiter erfolgte ausschließlich via eine WebService-Schicht. Eine zusätzliche Quelle der Daten waren bestimmte Legacy-Datenbanken. Der sog. Syncer-Modul sorgte dafür, dass die Daten in diesen Datenbanken und dem CommonAR immer im aktuellen Zustand gehalten wurden. eBIP ist eine Web-Anwendung zur Anzeige und Prüfung der Bilder verschiedener Organe. Die Bilder wurden durch die Geräte der Kassenärzte erstellt.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations-, Regressions- und Lasttests.
Meine Aufgaben: Erweiterung des Arztregisters durch Bereitsstellung neuer Webservices, Erweiterung der Datenbank und Implementierung der sonstigen Anwendungsschichten. Import der Daten aus anderen Systemen mittels des Syncer-Moduls. Erstellung und Testen von HTML-Seiten mit Wicket in der eBIP-Anwendung. Alle Projekte wurden im SCRUM-Modus und nach den Prinzipien von Clean Code Developer (CCD) durchgeführt.
Hardware: IBM-PC.
Software: Windows 7, JDK 7, IntelliJ IDEA 13, Groovy, Gradle 1.10, Spring, Oracle 11, Oracle SQL Developer 3.0.04, H2 In-Memory Database, Hibernate, Flyway, Wicket, WicketTester, soapUI-4.5.0, Togglz, Lombok, Google Guava, DbUnit, HTMLUnit, Hamcrest, Mockito, Jenkins, Sonar, Cygwin, Jira, Confluence.
ZEITRAUM: 10.2012 - 09.2013
Auftraggeber: Telefónica O2 Deutschland GmbH.
Auftraggeberprofil: Mobilfunkprovider.
Abteilung: O2 Workbench Portal Solutions.
Projekt: Piranha, Prepaid.
Branche: Telekommunikation.
Ort: München / Deutschland.
Beschreibung: Piranha ist ein Authentifizierungs- und Autorisierungsportal von O2. Die ursprüngliche, Cookie-basierte Implementierung wurde durch einen Single Sign-On Server OpenAM ersetzt, bei dem der Austausch von Authentifizierungs- und Autorisierungsinformationen nicht nur via Cookie sondern auch mittels SAML erfolgte. Bei der Prepaid-Anwendung handelt sich um einen Web-Portal für die Prepaid-Kunden von O2. Die Entwicklung in beiden Projekten erfolgte gemäß der Scrum-Methodologie.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations-, Regressions- und Lasttests.
Meine Aufgaben: Einführung von OpenAM in Piranha: Installation und Konfiguration des OpenAM Servers, das Schreiben von Custom Login Modulen und Post Authentication Plugins (PAP), Anpassung der HTML-Seiten für das Login usw. Mitwirkung bei der Migration von der Piranha-Anwendung von JBoss 4 auf JBoss7. Erstellung von Prepaid-Webseiten mit Wicket.
Hardware: Apple MacBook, IBM-PC.
Software: Mac OS X 10.8.3, Red Hat 6, JDK 1.7, IntelliJ IDEA 12.1, JBoss 7.2.0Final, Tomcat 7.0, Java EE 6, CDI, OpenAM 10.1.0, Spring Framework 3.1, Oracle 11g, Oracle SQL Developer 3.2.10.09, Wicket 6.0, Groovy, Maven 3.0.3, GIT 1.7.6.4, Arquillian, TestNG, jMeter 2.4, Jenkins 1.467, Jira, Confluence, HP SiteScope 11.22.
ZEITRAUM: 11.2011 - 09.2012
Auftraggeber: Telefónica O2 Deutschland GmbH.
Auftraggeberprofil: Mobilfunkprovider.
Abteilung: O2 Workbench Portal Solutions.
Projekt: Mobile Portal.
Branche: Telekommunikation.
Ort: München / Deutschland.
Beschreibung: Es handelte sich hier um eine Web-Anwendung für mobile Geräte der Firma O2 Deutschland. Wegen der enormen Vielfalt der unterschiedlichsten mobilen Geräte mussten die Seiten für verschiedene Gerätegruppen und sogar für einzelne Geräte in sog. Template Manager (mittels XSLT Transformationen und Cocoon) angepasst werden. Die Anbindung an die Backend-Systeme erfolgte überwiegend über REST Schnittstellen (JAX-RS 1.1). Die HTML Seiten wurden mit Wicket und node.js Technologien angefertigt. Ein anderes Problem bei der Erstellung von Web-Anwendungen auf den mobilen Geräten war die unterschiedliche Größe und Auflösung von Bildschirmen und die fehlende Unterstützung für bestimmte Bildformate (z.B. JPEG, GIF usw.). Dadurch mussten für jeden mobilen Gerätetyp die Bilder entsprechend skaliert und formatiert werden, was die Aufgabe eines Image-Servers war.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations-, Regressions- und Lasttests.
Meine Aufgaben: Die Anbindung von Backend-Systemen der Firma O2 Germany. Erstellung von Mocks der Backend-Schnittstellen für Testzwecke. Verbesserungen der Performance durch das Cachen von Daten mit Hilfe einer EhCache-Lösung. Erstellung der HTML-Seiten mit node.js. Durchführung von Akzeptanztests auf den unterschiedlichsten mobilen Geräten. Erstellung einer Fahrtenbuch App für Android Geräte. Mitwirkung bei der Erstellung verschiedener Module wie der Pack Manager oder Master Data Change. Implementierung eines Image Servers, in dem aus Performance-Gründen die skalierten und formatierten Bilder in einem Squid Proxy Cache gehalten wurden.
Hardware: Apple MacBook, IBM-PC.
Software: Mac OS X 10.7.4, Ubuntu Linux, IntelliJ IDEA 11.1.3, Tomcat 7.0, Spring Framework 3.1, CXF 2.5.1, Jersey 1.10, Squid Cache Proxy 2.7, DBCP 1.4, Maven 3.0.3, slf4j 1.6.4, GIT 1.7.6.4, TestNG, jMeter 2.4, Selenium 2.0, Jenkins 1.467, Jira, Confluence, WebStorm 4.0, node.js 0.6.10, nave 0.2.6, NPM, express 2.5.8, connect 1.8.6, cluster 0.7.7, jQuery, jsdom 0.2.10, weld 0.2.2, winston 0.5.9, vows 0.6.2.
ZEITRAUM: 10.2010 - 10.2011
Auftraggeber: Telefónica O2 Deutschland GmbH.
Auftraggeberprofil: Mobilfunkprovider.
Abteilung: O2 Workbench Portal Solutions.
Projekt: Service Delivery Framework (SDF) / UNICA Facade.
Branche: Telekommunikation.
Ort: München / Deutschland.
Beschreibung: WebService basierte Platform UNICA diente zum Austausch von Daten zwischen dem Mutterkonzern Telefónica und deren Tochtergesellschaften wie z.B. O2 Deutschland. Die Sicherheitsaspekte wurden dabei durch einen Prototyp für den unternehmensweiten Security Server abgehandelt. Später wurde UNICA ein Teil der konzernweiten SOA-Lösung. Sämtliche Projekte des Unternehmens wurden agil als Scrum-Projekte realisiert.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations-, funktionale und Lasttests, Enterprise Integration.
Meine Aufgaben: Implementierung der UNICA-Webservice-Schnittstelle, Zugriff auf verschiedene Untersysteme in der IT Architektur von O2 Deutschland und Konvertierung der Daten zwischen UNICA und den O2 Untersystemen. Die meisten WebService Endpoints und Clients wurden mit JAX-WS entwickelt (Document/Literal Stil), nur für einige ältere O2 Untersysteme musste noch wegen der Benutzung des veralteten RPC/Literal Stils Axis genommen werden. Schreiben der gespeicherten Prozeduren für den Zugriff auf die MySQL Datenbank. Entwicklung der Login-Module des Security Servers mit Hilfe von JAAS und WS-Security Standards, unter anderem mit XML Signaturen basierend auf digitalen Zertifikaten. Passwörter und Zertifikate wurden aus einem lDAP Server geholt. Evaluierung verschiedener freien und kommerziellen ESB-Lösungen, wie ServiceMix 4.3.0, Mule 3.1.1 (MuleStudio), UltraESB 1.4.0, Oracle Service Bus 11gR1, zwecks der Einführung einer unternehmensweiten SOA Architektur.
Hardware: Apple MacBook, IBM-PC.
Software: Mac OS X 10.6.7, Ubuntu Linux, IntelliJ IDEA 10.5, Tomcat 6.0.29, Apache HTTP Server 2.2, OpenLDAP 2.4.25, MySQL 5.5, MySQL Workbench 5.2.31, Maven 2.2.1, Subversion 1.7, JAX-WS 2.1.7, Axis 1.4, Android 2.2, Adium 1.3.10, jMeter 2.4, jMockIt 0.999.4, jUnit 4.8.1.
ZEITRAUM: 09.2009 - 08.2010
Auftraggeber: Institut für Arbeitswissenschaft und Berufsforschung (IAB).
Auftraggeberprofil: Forschungseinrichtung der Bundesagentur für Arbeit (BA).
Projekt: Metadatensystem, IAB Thesaurus.
Branche: Wissenschaft und Forschung, öffentliche Verwaltung.
Ort: Nürnberg / Deutschland.
Beschreibung: Das Metadatensystem beinhaltete Datendefinitionen und -formate aller Forschungsdatensätze, die in Laufe der Jahrzehnte durch die BA erhoben worden sind. Es war möglich Datenkataloge mit der Beschreibung der Daten in gewählten Versionen zu erstellen. Der IAB Thesaurus war eine Sammlung von hierarchisch und alphabetisch angeordneten Schlagwörtern. Durch die Verknüpfung dieser Schlagwörter mit verschiedenen Datenquellen war es möglich, Daten zu bestimmten Themen schnell ausfindig zu machen.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations- und funktionale Tests, Datenbankmodellierung.
Meine Aufgaben: Der Schwerpunkt meiner Arbeit lag in der Backendprogrammierung mit EJB 3.0. Nur in bestimmten Projektphasen habe ich Unterstützung bei der Internetprogrammierung mit JSF geleistet. Die Businessobjekte wurden durch den Entwurf von JPA Entitäten modelliert, aus denen dann automatisch die Datenbankstruktur erstellt wurde. Die Datensätze wurden vor dem konkurrierenden Zugriff durch ein selbst entwickeltes "optimistic locking" Ansatz geschützt. Den Clients wurden die Businessobjekte sowohl durch eine WebService-Schnittstelle (JAX-WS) als auch durch RMI zur Verfügung gestellt. Die Sicherheitsaspekte wurden dabei meistens durch WS-Security (SSO und SAML auf Basis von WebLogic) realisiert, aber auch durch Zwei-Wege-Authentifizierung SSL (in JBoss). Eine nicht unbedeutende Rolle spielte der Datenaustausch mit anderen Modulen: Import von Daten aus fremden Thesauren via StAX in SKOS-Format (Simple Knowledge Organization System), eingebettet als RDF (Resource Description Framework), oder Export von Metadaten in DDI-Format (Data Documentation Initiative, Metadatenmodell für die Beschreibung von sozialwissenschaftlichen Daten) mit Hilfe von JAXB. Für das Deployment auf verschiedenen Arten von Servern wurden ANT und Bash-Skripte bereitgestellt.
Hardware: IBM-PC.
Software: Windows XP, Linux, JDK 6, Eclipse 3.4.1, NetBeans 6.1, EJB 3.0, WebService Metro Framework, SoapUI 3.0.1, Oracle Weblogic 10.3, JBoss Portal Server 2.64, Oracle 10, Oracle SQL Developer 1.5.1, SQL Workbench/J, JSF 1.2, ANT 1.7, CVS, jMockIt.
ZEITRAUM: 01.2009 - 06.2009
Auftraggeber: Giesecke & Devrient GmbH.
Auftraggeberprofil: Anbieter von Banknotendruck, Banknotenbearbeitungssystemen, Karten und
Sicherheitssystemlösungen
.
Projekt: Visa Card Instance Issuance System (IIS).
Branche: Bankwesen.
Ort: München / Deutschland.
Beschreibung: Das Ziel des Systems war die Ausgabe von neuen Kreditkarten innerhalb von 10 Minuten nach der Beantragung. Die Clientseite bestand aus Kartenausgabeautomat (unattended issuance kiosk), einem integrierten Gerät mit Kartenleser, Videodisplay und Kartendrucker als Hauptkomponenten. Im Backend-Bereich der Bank wurden normalerweise die gesammelten Kreditkartenaufträge einmal am Tag abgearbeitet, was für die schnelle Ausgabe von Karten unzureichend war. Um die Kosten für die Umstellung der Batchprozesse auf Real Time Bearbeitung zu vermeiden, wurde ein Pool mit Personalisierungsdaten entwickelt (pre-generated personalization data pool).
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations- und funktionale Tests.
Meine Aufgaben: Entwicklung einer WatchDog Anwendung, die die verschiedenen Komponenten des Kiosks via JMX permanent überwacht hat. Im Falle von Fehlern wurden diverse Reparaturversuche durchgeführt oder ein Alarm ausgelöst. Das Importieren, Validieren, Konvertieren (XSLT), Verschlüsseln (AES) und Hashen (SHA 256) von Personalisierungsdaten und Verschicken dieser via JMS zum Aufbau des Pools. Die einzelnen Komponenten wurden durch Spring Dependency Injection aktiviert. Einrichten eines Schlüsselbundes (JCA Keystore) so wie das Befüllen dessen mit übergebenen (via secret splitting) und selbst erzeugten Schlüsseln und Zertifikaten. Schreiben der Test-Cases und das Testen deren mit einer Emulation der Hardware (z.B. Kartenleser, Kartendrucker).
Hardware: IBM-PC, Eracom HSM (Hardware Security Module), StarSign USB Token "StarKey 100", Picture Card Drucker, Inline Lamination Unit.
Software: Windows XP, JDK 6, Spring 2.5, Eclipse 3.4.1, NetBeans 6.5, JMX, JCA, XSLT 2.0, XPath 2.0, Maven 2.0.9, ANT 1.7, ClearCase, ClearQuest, CruiseControl, EnterpriseArchitect, ActiveMQ 5.1.0, Apache Felix (OSGi).
ZEITRAUM: 08.2008 - 12.2008
Auftraggeber: TeamBank AG.
Auftraggeberprofil: Kreditbank.
Projekt: EasyCredit Karte.
Branche: Bankwesen.
Ort: Nürnberg / Deutschland.
Beschreibung: Eine neuartige Kreditkarte wurde entwickelt, bei der ab einer bestimmten, monatlichen Abschöpfungshöhe die Schuldbeträge in einen Ratenkredit umgewandelt wurden. Die technologische Basis bildeten EJB 3 mit JBoss Applikationsserver und Hibernate JPA. Es gab Anbindung an viele fremde Komponenten wie z.B. an die Abrechnungssoftware KORDOBA, den Druckdienstserver Invaris oder den FDD Gateway für die Kreditkartenverwaltung.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwickler- und Integrations-Tests.
Meine Aufgaben: Schreiben von Hintergrundprozessen (MBeans gestartet vom Job Scheduler UC4) aus den Bereichen Verhaltensscoring (z.B. Schufa-Scoring, Schufa-Nachmeldungen) und Karten-Cycle (z.B. die Zinsverwaltung, das Erzeugen, Export und Import von Kartenstatements) samt der Anbindung an externe Komponenten und Persistierung in der Datenbank. Erstellung von Briefvorlagen mit der Software Invaris (DLA-Designer und DLA-Datamodeller) für das elektronischen Formular- und Outputmanagement. Befüllung der Briefvorlagen mit via JAXB erstellten XML-Inputdateien. Einrichtung einer automatisierten Testserverumgebung unter Linux (Bash-Skripte, automatisches Starten von MBeans mit JBoss-Twiddle). Schreiben von Entwicklertests mit JUnit, EasyMock und OpenEJB. Schreiben von Web-basierten Tests mit Hilfe von Selenium zur automatischen Erzeugung von Kreditkartenanträgen. Durchführung von Integrationstests in Test- und Produktionsumgebungen.
Hardware: IBM-PC.
Software: Windows XP, Linux, JDK 1.5, Eclipse 3.3, JBoss 4.3.0, Hibernate JPA, OpenEJB 3.0, JAXB 2.0, Oracle 10, SqlDeveloper, Enterprise Architect, JUnit 4, EasyMock 2.2, Selenium 1.0, Molybdenum 0.6.5, Maven 2.0.8, Bamboo, Jira, CVS.
ZEITRAUM: 07.2007 - 05.2008
Auftraggeber: Cirquent GmbH.
Auftraggeberprofil: IT Consulting-Unternehmen.
Endkunde: BMW AG.
Projekt: PEP PDM LS3 (ProduktEntstehungsProzess ProduktDatenManagement Leistungsstufe 3).
Branche: Automobilindustrie.
Ort: München / Deutschland.
Beschreibung: Integration aller CAD-verwaltenden Prozesse in einer UTC Architektur (Ultra Thin Client). Für die Webschicht wurde ein Struts basiertes UCS Framework verwendet, das die Navigation zwischen den Seiten als endlicher Zustandsautomat abbildete. Auf der Backend-Seite wurde im Laufe des Projektes der MDA-Ansatz (Model Driven Architecture, PIM,PSM) mit Together durch einen proprietären MDD-Ansatz (Model Driven Development) ersetzt. Die sehr heterogene Architekturlandschaft verlangte die Anbindung des Applikationsservers via EAI mit diversen Legacy-Systemen, wie z. B. SAP (via MQSeries, SeeBeyond Connector, SAP JCo) oder Carisma (C++ Aufsatz auf den CAD Tool CATIA, via Webservices). Für den Datenbankzugriff wurden ausschliesslich SQL-Abfragen und gespeicherte Prozeduren mit Oracle PL/SQL eingesetzt.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwickler- und Integrations-Tests.
Meine Aufgaben: Analyse, Design, Programmierung und Testen in allen Anwendungschichten: Webfrontend (JSP, JavaScript, Ajax), Business Logik (EJB, JDBC) und EAI (JMS, Webservices). Der Schwerpunkt meiner Arbeit lag jedoch in EAI-Bereich, insbesondere im Zugriff auf SAP via JMS Topics und in der Bereitstellung von Webservice-Schnittstellen für Carisma. Weiterhin spielte das Schreiben der IT-Konzepte und der Programmdokumentation eine bedeutende Rolle.
Hardware: IBM-PC.
Software: Windows XP, Linux, Eclipse 3.3.1, BEA Weblogic 8.1, Together 6.2, SQuirreL, Apache Axis, soapUI 1.7.6, UCS (Struts), JSTL, Direct Web Remoting (DWR, Ajax for Java), FireBug.
ZEITRAUM: 03.2007 - 05.2007
Auftraggeber: sd&m AG.
Auftraggeberprofil: Softwareunternehmen.
Endkunde: BSH Bosch und Siemens Hausgeräte GmbH.
Projekt: Produktdatenpool (PDP) und Katalogeditor.
Branche: Handel.
Ort: München / Deutschland.
Beschreibung: Die Produktdaten wurden aus einem SAP-System in das Produktdatenpool (PDP) importiert. Von dort dienten diese Daten als Input für verschiedene Anwendungen, unter anderen für den Katalogeditor zur Erstellung von konfigurierbaren Produktkatalogen.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwickler- und Integrations-Tests.
Meine Aufgaben: Entwurf und Programmierung der Importschnittstelle zu PDP. Die Daten wurden in Form von XML-Dateien übermittelt und via Hibernate in die PDP-Datenbank geschrieben. Das OR-Mapping wurde automatisch durch reverse engineering aus der Datenbank mit Hilfe von HibernateTools generiert. Für die Deklaration und Konfiguration von Klassen wurde Spring-Framework verwendet (dependency injection). Einrichtung eines RMI-Server, der die PDP-Daten für andere Anwendungen bereitgestellt hat. Die Produktdaten wurden via PL/SQL aus der Datenbank ausgelesen und in die für die jeweilige Anwendung angepasste XML-Dateien transferiert.
Hardware: IBM-PC.
Software: Windows XP, Java SDK 1.5, Eclipse 3.2, Hibernate 3.2.2, Spring, Enterprise Architect 6.5, Apache Commons Logging, Apache Commons Digester, JDOM, Oracle 10, SQL Explorer 3.0, Opensymphony OSCache, Subversion (Subclipse 1.0.5, TortoiseSVN 1.4.3), ANT, Maven.
ZEITRAUM: 05.2005 - 12.2006
Auftraggeber: Media Saturn Systemzentrale GmbH.
Auftraggeberprofil: IT Ableger eines großen Handelsunternehmens.
Projekt: Mobile Point of Sales (POS, dezentrale Kassensoftware) als Teil eines Warenwirtschaftssystems.
Branche: Handel.
Ort: Ingolstadt / Deutschland.
Beschreibung: In jedem Markt befinden sich jeweils ein Applikations- und ein Datenbankserver so wie mehrere Kassenclients (POS). Die Kassensoftware unterstützt sowohl den Online- als auch den Offline- Modus. In Offline Modus werden die Verkaufsdaten temporär auf die Festplatte geschrieben und nach der Wiederherstellung des Online Modus mit dem Server synchronisiert. Da die Software auf dem Server viel häufiger upgedated wird als auf dem Client, muss durch eine ausgeklügelte Versionierung deren Zusammenspielen sichergestellt werden. Der Kassenclient bestand aus einer C++ GUI mit angeschlossenen Geräten (z.B. Barcode- und Kartenleser), einem eingebetteten CORBA Server und einem Java- Teil.
Art der Beschäftigung: Freiberuflich.
Funktionen: Entwurf der Anwendungsarchitektur, OOA/OOD/OOP, Entwickler-, Integrations- und Performance- Tests.
Meine Aufgaben: Konzept und Entwurf der neuen Java Client- und Server- Architektur. Zur Ausführung der von C++ über CORBA kommenden Anweisungen wurden die OOD Muster Strategie und Befehl verwendet. Der Serverzugriff erfolgte über die dynamischen Proxies. Bei der serverseitigen Programmierung wurde ein J2EE Framework verwendet, das auf Codegenerierung (MDA) basierte. Zu den häufigsten Aufgaben gehörte das Schreiben von Session Bean Fassaden und der Klassen mit der Business Logik. Synchronisierung von Offline- Daten mit dem Server unter Verwendung von JMS Warteschlangen. Schreiben von JMX MBeans, die als JBoss- Interceptors fungiert haben. Durchführung von Performancetests mit JMeter, Profilierung mit JProbe. Dokumentation im Wiki- Format.
Hardware: IBM-PC.
Software: Windows XP, Linux, Java SDK 1.5, Jacorb, JBoss 3.6, Solid Database 4.50, DBVisualizer, Eclipse 3.2, TogetherJ 6.2, ANT, StarTeam, JProbe 6.0.1, JMeter 2.2.
ZEITRAUM: 11.2004 - 04.2005
Auftraggeber: Deutsche Post AG.
Auftraggeberprofil: Großes Post und Logistik Unternehmen.
Abteilung: DP IT Solutions.
Projekt: Maßnahmen und Anforderungen Planung (MAP).
Branche: Post, Logistik.
Ort: Darmstadt / Deutschland.
Beschreibung: Intranetanwendung für die interne Projektplanung und Controlling.
Art der Beschäftigung: Freiberuflich.
Funktionen: Entwurf der Anwendungsarchitektur, Deployment, OOA/OOD/OOP, Webprogrammierung, Entwicklertests.
Meine Aufgaben: Wiederherstellung der J2EE Konformität der MAP- Anwendung. Erstellung einer neuen Projektstruktur in einer separaten Eclipse- Workspace, die die verteilte Architektur und die Class-Loader Abhängigkeiten in WebLogic Server nachbildet. Schreiben ANT- Build- Skripte zur Erstellung von Deployment- Dateien sowohl für den Entwicklung- als auch den Produktionsmodus (EAR). Portierung der Anwendung von WebLogic 7.02 auf die Serverversion 8.1. Mitarbeit an der Implementierung der Controlling Module in allen Anwendungsschichten: in Frontend (JSP's, Servlets), Backend (Session Beans, DAO Objekte) und in der Datenbank (Anlegen von Tabellen, Views usw.). Single Sign-On zwischen der MAP Anwendung und dem Corporate Intranet. Zugriff auf die Web Services in Corporate Intranet mittels Weblogic und Axis JAX-RPC Implementierungen.
Hardware: IBM-PC.
Software: Windows XP, Java SDK 1.4.2, BEA WebLogic 7.02 und BEA WebLogic 8.1, Oracle 10g RDBMS, Axis, Toad, Eclipse 3.0, ANT, CVS.
ZEITRAUM: 01.2004 - 10.2004
Auftraggeber: Forstware Informationssysteme GmbH in Meersburg.
Auftraggeberprofil: Softwarehaus mit Schwerpunkten in GIS und Bereichen mit GIS-Anwendung
.
Projekt: Pflege und Weiterentwicklung des Reportgenerators.
Branche: IT.
Ort: Ulm / Deutschland.
Beschreibung: Der Reportgenerator nimmt als Input eine Textdatei im vordefinierten Format und basierend auf den Daten aus der Datenbank generiert daraus Auswertungen und Reports, die in verschiedenen Formaten (z.B. HTML, ASCII-Datei, PDF usw.) und auf verschiedenen Geräten (z.B. Bildschirm, Drucker) ausgegeben werden können.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwicklertests, Datenbankprogrammierung.
Meine Aufgaben: Umbau der Stand-alone-Anwendung in eine Client-Server Architektur. Portierung des Reportgenerators von der Netzwerkdatenbank Raima auf eine relationale Datenbank MS SQL Server. Schreiben von Datenbankfunktionen und -prozeduren mit Transact-SQL. Ein spezielles Abfragenmodul ermöglichte dem Benutzer, SQL-Abfragen zu formulieren, die nur aus einer Auflistung von Tabellenspalten bestanden. Programmintern wurde dieser SQL-Statement mittels des SandStone- Parsers analysiert und um die fehlenden Tabellennamen und Verknüpfungen zwischen den Tabellen ergänzt. Ausgabe der Reports als MS Excel- Tabellen. Entwicklung eines Moduls zum Überprüfen der Konsistenz der Daten in der Datenbank. Analyse der Log-Dateien mit Hilfe der Perl-Skripte.
Hardware: IBM-PC.
Software: Windows XP, C++, MS Visual C++ .NET, ODBC, MS SQL Server 8.0, RDM (Raima databasemanager), SandStone VisualParse++ 4.0, Perl, MS Excel, SSL, Subversion 1.1.
ZEITRAUM: 10.2003 - 12.2003
Auftraggeber: MVI Solve-IT GmbH.
Auftraggeberprofil: Softwarehaus mit Schwerpunkten in CAD (Computer Aided Design) und Anwendungen für
die Automobilindustrie
.
Endkunde: Volkswagen AG.
Projekt: Virtueller Marktplatz der Firma Volkswagen AG.
Branche: Automobilindustrie.
Ort: München / Deutschland.
Beschreibung: Eine B2B Anwendung basierend auf der Oracle Datenbank und dem Oracle Applikationserver. Die Client-Seite wurde anhand der Swing-GUI realisiert.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit- und andere Entwicklertests.
Meine Aufgaben: Bereitstellung der Daten für den sog. Präsentationbereich, wo in Meetings auf verschiedenen Ebenen des Konzerns über die Angebote der Lieferanten entschieden worden ist. Erstellung von CMP und CMR Entiy Beans gemäß der EJB 2.0 Spezifikation und Generierung der Interfaces und Deployment Descriptors mittels Ant und XDoclets. Die aus mehreren Entity Beans zusammengetragenen Daten wurden in DAO Objekten aufbereitet und in einem sog. Business Objekten an den Client übergeben.
Hardware: IBM-PC.
Software: Windows XP, Java SDK 1.4.2, Oracle9iAS (Orion), Oracle 9i RDBMS, Eclipse 2.1.1, Synergy, Ant, XDoclets.
ZEITRAUM: 07.2003 - 09.2003
Auftraggeber: Forstware Informationssysteme GmbH in Meersburg.
Auftraggeberprofil: Softwarehaus mit Schwerpunkten in GIS und Bereichen mit GIS-Anwendung
.
Projekt: Zentrale Datenverwaltung und Konfiguration.
Branche: IT.
Ort: Ulm / Deutschland.
Beschreibung: Ein Stand-Alone Programm, das auf einem Fileserver installiert wurde und auf mehreren Arbeitrechnern ausgeführt wurde. Es war eine Art Simulation der Client-Server Umgebung. Auf dem Server wurden mehrere Datenverzeichnisse eingerichtet, in denen verschiedene Datensätze in Zip-Format zusammen mit der für alle Datensätze im Verzeichnis gültigen Konfiguration abgespeichert wurden. Ein Bearbeiter konnte sich einen oder mehrere Datensätze samt Konfiguration vom Server herunterladen und das richtig konfiguriertes Programm sofort starten.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, GUI-Programmierung, Unit- und andere Entwicklertests, Deployment.
Meine Aufgaben: Selbständige Erstellung der Anwendung mit Java Swing. Der Transfer von Datensätzen wurde anhand Ant- Builds durchgeführt. Dadurch war es möglich, Änderungen durch Modifizieren von Build Dateien durchzuführen, ohne den Programmcode verändern zu müssen. Rechteverwaltung: verschiedene Benutzerrollen hatten das Recht nur bestimmte Dateien zu transferieren. Um die sog. race conditions auszuschalten, wurden die Logging und Fehlerbehandlung im Programm im HTML Format angezeigt (als JEditorPane des Typs "text/html").
Hardware: IBM-PC.
Software: Windows XP, Java SDK 1.4.2, Java Swing, Eclipse 2.1.1, CVS 1.11.1, JUnit 3.8.1, Ant 1.5.3, Xerces 2.4.
ZEITRAUM: 04.2003 - 06.2003
Auftraggeber: TRANSFLOW Informationslogistik GmbH.
Auftraggeberprofil: Software-Haus mit Schwerpunkten Informationslogistik.
Projekt: Software Configuration Management.
Branche: Logistik.
Ort: Dornbirn / Österreich.
Beschreibung: Das Ziel des Projektes war die Verbesserung und Automatisierung der Installationprozeduren und der Verteilung von Datenbankinhalten. Wichtige Rolle spielten hier die Versionierung und Customizing, so wie die Unterstützung der verteilten Entwicklung.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwicklertests.
Meine Aufgaben: Entwurf und Entwicklung der objekt-relationalen Mapping-Module. Export von Inhalten aus der Entwicklung Datenbank in XML Format und Import deren in die Kunden Datenbank. Das ganze lief vollautomatisiert als ein Ant Projekt. Der Kern des Projektes war sog. Merging Modul. Es ging hier um das Zusammenführen von den Inhalten von 2 Datenbanken, z.B. um die Erhaltung der kundenspezifischen Einstellungen, Auflösung von Schlüssel-Konflikten usw. Das ganze Projekt wurde nach den Prinzipien des Extreme Programing (XP) durchgeführt. Insbesondere wurde großer Wert auf die Absicherung des Kodes durch Unit-Tests gelegt. Die Entwicklungsumgebung bestand größtenteils aus den Open Source Werkzeugen.
Hardware: IBM-PC.
Software: Windows 2000, Linux, JDK 1.3, JBuilder 6.0, CVS 1.11.1, JUnit, Ant 1.5.3, log4J 1.2.7, Jacarta CLI 1.0, Xerces, Oracle 8i, Toad 7.2.
ZEITRAUM: 11.2001 - 02.2003
Auftraggeber: SAP AG.
Auftraggeberprofil: Großes Softwarehaus mit Schwerpunkt im Bereich von Enterprise Resource Planing (ERP)
.
Projekt: Central Supplier Directory (CSD) als Teil des virtuellen Markplatzes für die Automobilindustrie.
Branche: Automobilindustrie.
Ort: Walldorf / Deutschland.
Beschreibung: CSD beinhaltet alle Informationen über die Lieferanten. Es ermöglicht die Suche nach Lieferanten, die einem bestimmten Profil entsprechen. Eine der wichtigsten Teile von CSD ist ein Katalog der Kategorien, die ihrerseits aus ausgefüllten Fragebögen bestehen. Der Katalog ist eine detaillierte Abbildung der ganzen Produktpalette des Unternehmens.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Webprogrammierung, Entwicklertests.
Meine Aufgaben: Migration der Entwicklungsumgebung von VA for Java auf WSAD. Portierung der Anwendung von WebSphere auf SAP J2EE Engine, unter anderem Ersetzen von CMP durch BMP entity beans. Registrierung der neuen Unternehmen und Genehmigen von Marktplatzadministrator. Erstellen und Visualisieren von Kategorie Bäumen. Migration der neuen Kategorie Hierarchien in die bestehende Datenbank. Darüber hinaus wurde das Model-View-Controller (MVC) Framework von Jacarta Struts mit ActionServlet und Action-Klassen nachprogrammiert.
Hardware: IBM-PC, Sun Workstation.
Software: Windows 2000, Solaris, DB2 7.1, WebSphere Studio Application Developer 4.0.3, WebSphere 3.5, Perforce 2000.2.19464, JSP 2.0, Struts, Java 1.3, EJB 2.0, XML (DTD).
ZEITRAUM: 02.2001 - 10.2001
Auftraggeber: SAP Markets Europe Inc.
Auftraggeberprofil: Softwarehaus mit Schwerpunkt Internetanwendungen.
Projekt: Business-to-Business (B2B) Anwendung als Teil eines Internet-Portals.
Branche: Automobilindustrie.
Ort: St.Leon-Rot / Deutschland.
Beschreibung: Erstellung eines virtuellen Marktplatzes unter der Verwendung der EJB's 1.0 Spezifikation und den IBM WebSphere als Applicationsserver. Aufbau eines WebSphere - Clusters basierend auf dem Konzept der Persistent Sessions. Anbindung eines Backend-Systems (SAP R/3) an den Marktplatz mittels XML-Transfers via HTTP und den SAP Business Connector. Die Hauptbestandteile des virtuellen Marktplatzes waren: User Management (UM), Business Directory (BD), Dynamic Pricing Engine (DPE) und Backend Integration (BI).
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Webprogrammierung, Entwicklertests, technische Projektleitung.
Meine Aufgaben: Ersetzen der ursprünglich vorhandenen IBM spezifischen AccessBeans durch portable EJB- Implementierung. Aufbau eines WebSphere Clusters durch Sicherstellung der Serialisierbarkeit von HTTPSession Variablen. Erstellung von XML- Schema Dateien für die automatische Generierung von Java Klassen durch das Castor Framework. Design von Schnittstellen für das Backend Integration Modul. Bereitstellung der HTTP Kommunikation auf der Seite des Marktplatzes mittels der HTTP Servlets.
Hardware: IBM-PC.
Software: Windows 2000, DB2 Version 7, Visual Age for Java 3.02 und 3.5, WebSphere 3.5, Perforce 2000.2.19464, Netscape Directory Server 4.1, JSP 2.0, Java 1.2, EJB 1.0, XML, XML-Schema, Castor, HTTPUnit.
ZEITRAUM: 10.2000 - 12.2000
Auftraggeber: abaXX Technology GmbH.
Auftraggeberprofil: Softwarehaus mit Schwerpunkt in der Entwicklung von e-Commerce Anwendungen mittels J2EE
Technologie
.
Endkunde: Hypovereinsbank AG.
Projekt: Internet Relaunch Projekt der Hypovereinsbank AG.
Branche: Banken.
Ort: München / Deutschland.
Beschreibung: Vollständige Neuentwicklung des E-Commerce Portal der Hypovereinsbank, Teilprojekt Banking und Wertpapierverwaltung. Das Portal wurde gänzlich mit J2EE Technologien implementiert (EJB, JSP). Die Grundlage der Implementierung bildete das Framework der Firma abaxx GmbH.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwicklertests.
Meine Aufgaben: Erstellung von Enterprise Java Beans nach der 1.1 Spezifikation, Entwurf und Implementierung von Textimportmodulen sowie Anbindung an die Hintergrundprozesse. Implementierung der XML-Konfiguration Klassen und Klassen für die Ausgabe von Instanzvariablen (sog. "Objeckt- Dump" mittels Java Reflection).
Hardware: IBM-PC clientseitig, SUN-Workstations serverseitig.
Software: Windows NT, Oracle 8i, JBuilder 3.0, Weblogic 5.01, JSP 2.0, Java 1.2, EJB 1.1, XML, PVCS.
ZEITRAUM: 05.2000 - 09.2000
Auftraggeber: abaXX Technology GmbH.
Auftraggeberprofil: Softwarehaus mit Schwerpunkt in der Entwicklung von e-Commerce Anwendungen mittels J2EE
Technologie
.
Endkunde: Hypovereinsbank AG.
Projekt: PlanetHome Immobilienportal der Hypovereinsbank AG.
Branche: Banken.
Ort: München / Deutschland.
Beschreibung: Erstellung von E-Commerce Portal der Bank, Teilprojekt Immobilienverwaltung und Online-Finanzierung. Die Oracle Datenbank enthielt Immobiliendaten, nach denen eine ausgefeilte Suche gestartet werden konnte. Newsletter Dienst informierte die Abonnenten über neue Immobilienangebote, die den von ihnen eingegebenen Kriterien entsprachen. Die Grundlage der Implementierung bildete das Framework der Firma abaxx GmbH.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Datenbankdesign und -administration, Entwicklertests.
Meine Aufgaben: Design und Betreuen der Oracle Datenbank. Erstellung von Enterprise Java Beans nach der 1.1 Spezifikation: entity und stateless session beans. Konfigurierung einer E-Mail Engine mit Hilfe von XML und XSL Dateien. Entwicklung der Hintergrundprozesse für die Newsletter und E-mail Dienste.
Hardware: IBM-PC clientseitig, SUN-Workstations serverseitig.
Software: Windows NT, Oracle 8i, JBuilder 3.0, Weblogic 5.01, JSP 2.0, Java 1.2, EJB 1.1, Together (UML), XML, XSL, PVCS.
ZEITRAUM: 01.1999 - 04.2000
Auftraggeber: Cybernet AG.
Auftraggeberprofil: Internetfirma mit Schwerpunkten Internetproviding und Entwicklung von Internetsoftware
.
Endkunde: Boston Consulting Group Inc.
Projekt: Intranetanwendung für ein führendes Consultingunternehmen.
Branche: Consulting.
Ort: Neu-Ulm / Deutschland.
Beschreibung: Das Intranet zeigte Daten aus der Oracle Datenbank, was anhand Java Servlets und JSP Technologies realisiert wurde. Bestimmte Benutzergruppen konnten nur eingeschränkte Informationen erhalten. Die wichtigsten Informationsbereiche (Projekte, Mitarbeiter, Organizationen usw.) waren alle miteinander verlinkt, z.B. ein Projekt mit seinen Mitarbeitern, die zu bestimmten Organizationen gehörten usw.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Webprogrammierung, Datenbankdesign und -administration, Entwicklertests.
Meine Aufgaben: Design und Betreuen der Oracle Datenbank, Schreiben von Oracle Packages (PL/SQL). Java Servlets und Java Beans Programmierung. Erstellung von Internet Seiten mit HTML und JavaScript. Integration der Volltextsuche in Dokumenten mit Fulcrum Search Server.
Hardware: IBM-PC.
Software: Windows NT, Oracle 8i, JBuilder 3.0, JRun 2.3, Web Server (IIS, Apache), HTML, JSP 2.0, JavaScript, Java 1.2 (Java Servlets, Java Beans, JDBC 2.0), Fulcrum Search Server.
ZEITRAUM: 06.1998 - 12.1998
Auftraggeber: Debis Systemhaus GEI GmbH.
Auftraggeberprofil: Großes Softwarehaus.
Abteilung: Verkehrstelematik.
Endkunde: Bundesländer Baden-Württemberg und Rheinland-Pfalz.
Projekt: Verkehrregelungszentrale für das Straßennetz der Bundesländer Baden-Württemberg und Rheinland-Pfalz.
Branche: Öffentliche Verwaltung.
Ort: Ulm / Deutschland.
Beschreibung: Steuerungsystem für das ganze Verkehrsaufkommen der Bundesländer BW und RPF. Daten von den Diversen Sensoren an den Straßen (z.B. Glätte-, Verkehrsdichte- Sensoren) wurden in die Datenbank eingespeist und in den Autobahnmeistereien visualisiert. Ansteuerung von Schilderbrücken an den Autobahnen. Die Daten aus den Autobahnmeistereien wurden repliziert (Oracle Replikation) zu der Verkehrregelungszentrale (VRZ).
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Datenbankprogrammierung, Entwicklertests.
Meine Aufgaben: Oberflächen Programmierung mit MFC. Datenbankmodelierung mit Oracle Designer 2000. Schreiben von Packages, Stored Procedures und Triggers mit PL/SQL. Programmieren des Medlungsverwaltung: UML, Windows Multithreading Programmierung, Oracle Alerts und Triggers. Archivierung der Datan auf Magnetbändern.
Hardware: IBM-PC.
Software: Windows NT, MS Visual C++ 5.0, MFC, STL, Oracle 8.004, Designer 2000, PL/SQL, Perl, UML, SELECT Enterprise.
ZEITRAUM: 03.1998 - 06.1998
Auftraggeber: Debis Systemhaus GEI GmbH.
Auftraggeberprofil: Großes Softwarehaus.
Abteilung: Verkehrstelematik.
Endkunde: Stadt Stuttgart.
Projekt: Verkehrinformationszentralle (VIZ) für die Stadt Stuttgart.
Branche: Öffentliche Verwaltung.
Ort: Ulm / Deutschland.
Beschreibung: Erstellen eines GIS-basierten Verkehrsinformationssystems für die Stadt Stuttgart. Alle Straßen in der Stadt wurden digitalisiert. Zusätzlich wurden die wichtigsten Objekte wie Krankenhäuser, Ampeln, Unfallschwerpunkte auf den Karten visualisiert. Die ankommenden Staumeldungen wurden ebenfalls auf den Karten dargestellt.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Datenbankdesign, -programierung und -administration, Entwicklertests.
Meine Aufgaben: Konzeption, Erstellung und Verwaltung einer Datenbank für die GIS-Daten und Verkehrsobjekte. Anbindung der Datenbank an das Programm und Bereitstellung der Daten. Programmierung der Client-Server Funktionalität. Sonstige Aufgaben: Oberflächen Programmierung mit MFC, Formatierung und Ausgabe der Daten auf dem Drucker, Laden der GIS-Daten in die Datenbank mit Oracle Loader.
Hardware: IBM-PC.
Software: Windows NT, MS Visual C++ 5.0, MFC, STL, Oracle 8.004, Awk.
ZEITRAUM: 06.1997 - 10.1997
Auftraggeber: ICR GmbH in Überlingen.
Auftraggeberprofil: Softwarehaus mit Schwerpunkt in OCR (Optical Character Recognition).
Projekt: Unterstützung für die Internationalisierung der OCR Anwendung.
Branche: IT.
Ort: Uhldingen / Deutschland.
Beschreibung: Erstellung von speziellen Windows-Resource-Dateien mit integrierter Unterstützung von verschiedenen Sprachen. Einlesen und Auslesen der Resource- Dateien in oder aus Datenbanken.
Art der Beschäftigung: Freiberuflich.
Funktionen: Programmierung, Testen.
Meine Aufgaben: Erstellung von Datenbanken via ODBC, Import und Export von Daten aus der Datenbank unter Verwendung von ODBC API.
Hardware: IBM-PC.
Software: Windows95, MS VisualC++, Yacc, Lex, ODBC API 3.0, Access.
ZEITRAUM: 06.1994 - 02.1998
Auftraggeber: Fortsware Informationssysteme GmbH.
Auftraggeberprofil: Softwarehaus mit Schwerpunkten in GIS und Bereichen mit GIS-Anwendung
.
Projekt: GIS System "PIA" und GIS basierte Anwendungen z.B. für die Forstwirtschaft, Flurstücksverwaltung.
Branche: IT.
Ort: Meersburg / Deutschland.
Beschreibung: Durchführung von verschiedenen kundenspezifischen Projekten, z.B. forstliche Bestandesinventur, Jungwuchsmonitoring, Weiterentwicklung von Flurstücksverwaltung-Software, Schnittstellen zum GIS.
Art der Beschäftigung: Festangestellt und freiberuflich.
Funktionen: Programmierung, Datenbankdesign, Testen.
Meine Aufgaben: Programmierung der Datenerfassung und Datenauswertung (GDI, Postscript), Programmierung der Benutzeroberflächen (WIN32 API), Datenbankdesign, Statistik, Import/Export von Datenbankdaten (ASCII-Format).
Hardware: Sun workstation, IBM-PC.
Software: Solaris/Unix, SCO Unix, Windows 95, Windows NT, RDM (Raima database manager), C/C++.
ZEITRAUM: 10.1993 - 06.1994
Auftraggeber: Albert-Ludwigs-Universität in Freiburg i.Br.
Auftraggeberprofil: Hochschule.
Abteilung: Biometrie.
Endkunde: Food and Agriculture Organization (FAO).
Projekt: Remote Sensing for Monitoring Tropical Moist Forests.
Branche: Öffentliche Verwaltung.
Ort: Freiburg i.Br. / Deutschland.
Beschreibung: Statistische Analyse der Satellitenbilder in Hinblick auf die Verteilung der Regenwaldmuster.
Art der Beschäftigung: Freiberuflich.
Funktionen: Programmierung, Testen.
Meine Aufgaben: Computersimulationen zur Erfassung der Lage und Veränderungen der tropischen Regenwälder anhand der Satellitenaufnahmen. Bei den Simulationen wurden sowohl echte Satellitenbilder als auch computergenerierte Bilder verwendet.
Hardware: IBM-PC.
Software: Windows 3.1, Object Pascal (Borland Pascal Compiler).
Senior Developer, Lead Developer
Sonstige Kenntnisse
BESCHREIBUNG: Der NEWPOSS-Projekt umfasste im Wesentlichen das Kassensystem und die zugehörige Backend-Komponente für jeden Supermarkt von ALDI SÜD. Das Kassensystem verfügte über eine lokale H2 Datenbank und verwendete die JPOS Schnittstelle zur Anbindung von externen Geräten. Im Backend kamen JBoss als Applikationsserver und PostgreSQL als Datenbank zum Einsatz. Beide Anwendungen basierten auf dem TREND - Framework der Firma GEBIT, dem wiederum eine OSGI-Implementierung zugrunde lag. Es wurden mehrere Länderversionen unterstützt, die sich teilweise erheblich in der Geräte-Ausstattung, steuerlichen und rechtlichen Gegebenheiten unterschieden haben. Die Projektorganisation folgte dem Spotify Modell von Scrum.
MEINE AUFGABEN: Anbindung von Peripherie-Geräten, z.B. den Fiskaldrucker für Italien. Einsatz von Graphenalgorithmus (nach Ahuja-Orlin) für den maximalen Durchfluss zu Berechnung der optimalen Zuteilung von Zahlungsmitteln zu den Artikeln an der Kasse unter Berücksichtigung der Einschränkungen zwischen den Artikeln und Zahlungsmitteln. Implementieren von Schnittstellen zwischen den einzelnen NEWPOSS-Komponenten und zur Außenwelt als XML- und REST-basierte Webservices. Schreiben von End-To-End Tests mit dem GEBIT-internen Testframework "Integrity".
Aufgrund der Kontaktbeschränkungen in den Lockdowns erfolgte die Weiterbildung ausschliesslich durch das Studieren der Fachliteratur und Internet-Dokumentationen, sowie durch die Realisierung kleiner Programmierprojekte zum Ausprobieren bestimmter Tools und Technologien. Die getroffene Auswahl der Tools und Technologien für die Weiterbildung richtete sich in erster Linie nach den zur Zeit vorherrschenden Erfordernissen des IT-Marktes. Die weiteren Kriterien waren meine fehlende Erfahrung mit diesen Technologien, gefolgt von Wiederholung und Erweiterung des Know-hows.
Unternehmensweite Einführung einer Single Sign On (SSO) Lösung mit Unterstützung für das Sicherheitprotokoll OAuth/OpenID Connect. Die SSOP Anwendung diente der Anpassung des gewählten SSO Servers (Keycloak) an die Bedürfnisse des Unternehmens. Der mit Spring Boot und REST realisierte SSO Secret Service Mikroservice kümmerte sich um die Schlüsselverwaltung. Die K2 Legacy Anwendung (JEE, JBoss) war das Herzstück des Alarmsystems und besaß außer der Backend-Komponenten ein Wicket Web-Frontend.
Der Hauptzweck von OSRR war die Berechnung und Verwaltung von Bonuspunkten eines Kunden, die er für seine Einkäufe bekommen hat. Bei der Berechnung wurden zusätzlich Gutscheine, Partnerpromotionen, Voucher usw. berücksichtigt. Es handelte sich hier vor allem um mehrere JEE Backend Anwendungen, mit einigen wenigen Frontend Applikationen
Die Anwendung diente der Erstellung von neuen Fahrzeugmodellen aus verschiedenen Teilen, die wiederum mit CAD Tools wie CATIA und ähnlichen erstellt wurden. Da das BMW Konzern Konstruktionsbüros in anderen Ländern geöffnet hat, durften viele Konstruktionsdaten den Mitarbeitern dieser Niederlassungen nicht angezeigt werden. Es war deshalb notwendig, ein ausgefeiltes Berechtigungskonzept in der Anwendung einzuführen, eine sog. Need To Know (N2K)Funktionalität.
Alle drei Projekte drehten sich um die Umsetzung der EU-Richtlinie MiFID II. Das PGS Service diente der Zuordnung von Wertpapieren und anderen Bankprodukten zu den Kategorien, die nur bestimmten Kundengruppen angeboten wurden. Das C3S Projekt berechnete alle Kosten und Gebühren, die dem Kunden beim Kauf, Verkauf und während der Haltephase eines Finanzproduktes in Rechnung gestellt werden. Das WPS Projekt lieferte Informationen zu Wertpapieren, die für die Berechnung dieser Kosten benötigt wurden. Alle drei Projekte basierten auf Spring Boot. Für die Kommunikation nach Außen dienten Messaging- und REST-Schnittstellen
VPS war eine von den wichtigsten Komponenten in der SOA Landschaft für die Abwicklung von Versicherungspolicen. Es Bestand aus einem Web-Frontend realisiert mit VaadinFramework und zwei WebService-Anwendungen: einer für Verträge und einer für Versicherungsobjekte. Technologisch wurden die Anwendungen in JEE mit IBM WebSphere als Applikationsserver realisiert. Die Implementierung basierte auf den Frameworks IPM und IPS der 'Faktor Zehn AG'.
Alle Business-Prozesse des Versicherungsunternehmens wurden in einer SOALandschaft (Service Oriented Architecture) bestehend aus IBM Tools Business Process Manager (BPM), Enterprise Service Bus (ESB) und einem Regelwerk realisiert
Ein Teil des AMCF Projektes beschäftigte sich mit der Problematik des Deep Learnings (DP). Unter anderem wurden die DP Bibliotheken Theano und TensorFlow eingesetzt. Das Unterprojekt "Theano Interpreter" entwickelte Module zur Ausführung von DP Workflows in C++ und Java, die mit Hilfe der Theano-Bibliothek modelliert und trainiert wurden. Die Workflows wurden in der platform- und sprachunabhängigen Serialisierungsformat Protocol Buffers gehalten. Es gab 3 Arten von Workflows: Feature Extraction, Random Forest und Convolutional Neural Networks.
Die Anwendung ermöglichte die Berechnung von Wartungsintervallen für die Gasturbinen anhand der historischen Daten so wie das Treffen der entsprechenden Voraussagen für die Zukunft. Die Wartungsintervalle konnten flexibel für verschiedene Einheiten, Komponenten und Teile der Gasturbinen berechnet werden. Die Signale der Sensoren wurden auf dem HDFS gespeichert und dienten als Input für die Berechnungen. Die Berechnung-Workflow wurde von Oozie überwacht, die Berechnung selbst wurde mit Pig gestartet. Die Ergebnisse wurden in die Teradata-Datenbank geschrieben. Die Konfiguration für die Berechnungen wurde in einer objektorientierten Datenbank ObjectDB gehalten. Die Benutzerschnittstelle wurde mit dem Vaadin Framework als Web-Oberfläche realisiert. Das Projekt wurde durch ein Scrum-Team bestehend aus Entwicklern in Deutschland, Rumänien und Indien realisiert.
ePOS ist eine Web-Anwendung für die O2-Shops, die nur von offiziellen O2-Händler verwendet wurde. Diese Anwendung stellte vor allem kompliziertere Funktionalitäten und Prozesse zur Verfügung, die nich im Internetportal des Unternehmens vom Kunden selbst bedient werden konnten. Es gab auch eine Version der Anwendung, die speziell für Tablets designet wurde. Als Webframework kam Wicket zum Einsatz. Das Responsive-Design der Tablet-Anwendung wurde durch Verwendung der Bibliotheken JQuery-Mobile und Bootstrap ermöglicht. Die Backend-Seite wurde mit JBoss als Applikationsserver und Oracle-Datenbank realisiert. Für die Sicherheitsaspekte war Apache Shiro verantwortlich. Wichtiger Bestandteil der Anwendung war der Zugriff auf die anderen Backend-Systeme des Unternehmens, der fast komplett durch eine REST-Schnittstelle namens MCE standardisiert wurde. Als REST Client wurde dabei Spring's RestTemplate Modul eingesetzt. Die zahlreichen Formulare in den Flows wurden im PDF-Format mit Hilfe der itextpdf-Bibliothek erstellt und elektronisch unterschrieben mit signPOS.
Pegasus.Gas war eine Anwendung zum Verkauf von Erdgas an Großkunden des Unternehmens. Es wurden verschiedene Verkaufsmethoden implementiert, unter anderem ein spezieller, in Scala geschriebener Server für Gas-Termingeschäfte. Die Hauptanwendung bestand aus Rich-Client UI (geschrieben in Java-Swing), einem Java-Server und der Oracle-Datenbank. Zum Herunterladen und Starten der Client-Anwendung wurde in erster Linie Java Web Start Technologie verwendet. Der Zugriff von Client auf den Server erfolgte via Spring HttpInvoker. Der Entwicklungsprozess folgte der ScrumMethodologie.
CommonAR ist ein Register aller Ärzte und Praxen für die gesetzliche Krankenversicherung der Länder Bayern und Baden-Württemberg. Der Zugriff auf das Regiter erfolgte ausschließlich via eine WebService-Schicht. Eine zusätzliche Quelle der Daten waren bestimmte LegacyDatenbanken. Der sog. Syncer-Modul sorgte dafür, dass die Daten in diesen Datenbanken und dem CommonAR immer im aktuellen Zustand gehalten wurden. eBIP ist eine Web-Anwendung zur Anzeige und Prüfung der Bilder verschiedener Organe. Die Bilder wurden durch die Geräte der Kassenärzte erstellt.
Piranha ist ein Authentifizierungs- und Autorisierungsportal von O2. Die ursprüngliche, Cookie-basierte Implementierung wurde durch einen Single Sign-On Server OpenAM ersetzt, bei dem der Austausch von Authentifizierungs- und Autorisierungsinformationen nicht nur via Cookie sondern auch mittels SAML erfolgte. Bei der Prepaid-Anwendung handelt sich um einen WebPortal für die Prepaid-Kunden von O2. Die Entwicklung in beiden Projekten erfolgte gemäß der ScrumMethodologie.
Es handelte sich hier um eine Web-Anwendung für mobile Geräte der Firma O2 Deutschland. Wegen der enormen Vielfalt der unterschiedlichsten mobilen Geräte mussten die Seiten für verschiedene Gerätegruppen und sogar für einzelne Geräte in sog. Template Manager (mittels XSLT Transformationen und Cocoon) angepasst werden. Die Anbindung an die Backend-Systeme erfolgte überwiegend über REST Schnittstellen (JAX-RS 1.1). Die HTML Seiten wurden mit Wicket und node.js Technologien angefertigt. Ein anderes Problem bei der Erstellung von Web-Anwendungen auf den mobilen Geräten war die unterschiedliche Größe und Auflösung von Bildschirmen und die fehlende Unterstützung für bestimmte Bildformate (z.B. JPEG, GIF usw.). Dadurch mussten für jeden mobilen Gerätetyp die Bilder entsprechend skaliert und formatiert werden, was die Aufgabe eines Image-Servers war.
WebService basierte Platform UNICA diente zum Austausch von Daten zwischen dem Mutterkonzern Telefónica und deren Tochtergesellschaften wie z.B. O2 Deutschland. Die Sicherheitsaspekte wurden dabei durch einen Prototyp für den unternehmensweiten Security Server abgehandelt. Später wurde UNICA ein Teil der konzernweiten SOA-Lösung. Sämtliche Projekte des Unternehmens wurden agil als Scrum-Projekte realisiert
Das Metadatensystem beinhaltete Datendefinitionen und -formate aller Forschungsdatensätze, die in Laufe der Jahrzehnte durch die BA erhoben worden sind. Es war möglich Datenkataloge mit der Beschreibung der Daten in gewählten Versionen zu erstellen. Der IAB Thesaurus war eine Sammlung von hierarchisch und alphabetisch angeordneten Schlagwörtern. Durch die Verknüpfung dieser Schlagwörter mit verschiedenen Datenquellen war es möglich, Daten zu bestimmten Themen schnell ausfindig zu machen.
ZEITRAUM: 03.2020 - 04.2021
Auftraggeber: Waldemar Joachim Kipka.
Auftraggeberprofil: IT Beratung.
Projekt: Berufliche Weiterbildung.
Branche: IT Dienstleistung.
Ort: München / Deutschland.
Beschreibung: Wegen der Pandemie-Situation und der damit zusammenhängenden Lockdowns ist der IT-Projektmarkt in Deutschland und den Nachbarländern weitgehend zusammengebrochen. Die projektfreie Zeit wurde von mir zur beruflichen Weiterbildung genutzt.
Art der Beschäftigung: Freiberuflich.
Funktionen: Developer, Lead Developer.
Meine Aufgaben: Aufgrund der Kontaktbeschränkungen in den Lockdowns erfolgte die Weiterbildung ausschliesslich durch das Studieren der Fachliteratur und Internet-Dokumentationen, sowie durch die Realisierung kleiner Programmierprojekte zum Ausprobieren bestimmter Tools und Technologien.
Hardware: Apple MacBook Pro.
Software: OSX 11.2.3, Microservices-Programmierung (SpringBoot in Cloud / Kubernetes Umfeld, Quarkus, Domain Driven Design), Betrieb von Microservices (Kubernetes, Terraform), Frontend (Angular, TypeScript, Vaadin, Bootstrap, JavaFX), Kotlin (SpringBoot für Kotlin), Scala (Scala 3, Cats), Prozessprogrammierung (Camunda, BPMN, DMN), funktionale Programmierung (funktionale Muster wie Funktor, Monoid, Monad usw.), reaktive Programmierung (Reactive Streams, reaktive Programmierung in Spring und Quarkus), Kafka (ZooKeeper, Kafka Streams mit Stream- und Prozess API), Elasticsearch (Abfragen, ELK Stack: Elasticsearch, Logstash, Kibana), aktuelle Java-Versionen (von Java 9 bis Java 15), NoSQL-Datenbanken (MongoDB).
ZEITRAUM: 02.2019 - 12.2019
Auftraggeber: F24 AG.
Auftraggeberprofil: Anbieter von Alarmsystemen.
Projekt: SSOP (Single Sign On Provider), SSO Secret Service, K2.
Branche: IT Software Hersteller.
Ort: München / Deutschland.
Beschreibung: Unternehmensweite Einführung einer Single Sign On (SSO) Lösung mit Unterstützung für das Sicherheitprotokoll OAuth/OpenID Connect. Die SSOP Anwendung diente der Anpassung des gewählten SSO Servers (Keycloak) an die Bedürfnisse des Unternehmens. Der mit Spring Boot und REST realisierte SSO Secret Service Mikroservice kümmerte sich um die Schlüsselverwaltung. Die K2 Legacy Anwendung (JEE, JBoss) war das Herzstück des Alarmsystems und besaß außer der Backend-Komponenten ein Wicket Web-Frontend.
Art der Beschäftigung: Freiberuflich.
Funktionen: Lead Developer.
Meine Aufgaben: Betreuung eines Nearshore Teams aus Rumänien. Anlage neuer Projekte SSOP und SSO Secret Service. Anpassung der SSO Lösung mit Hilfe des Keycloak's SPI Schnittstellen (Service Provider Interface) und WildFly CLI. Gestaltung der REST Schnittstelle der Secret Service Anwendung mitsamt Logins mit Hilfe von SSO JWT Token. Performance Verbesserungen in K2 durch Optimierung der MySQL Datenbankzugriffe und Einführung von Caching mit Caffeine. Schreiben von Docker Compose Skripten zum lokalen Starten von den neuen Anwendungen inklusive derer Umgebung (Datenbanken, Proxies usw.).
Hardware: Apple MacBook.
Software: OSX 10.15.1, JDK 8, Groovy, IntelliJ IDEA 2018.1, JBoss EAP 6.4, Keycloak 6.0.1, SpringBoot 2.1.3, MySql 5.7, Liquibase 3.5.5,MySQL Workbench 8.0, Flyway, Caffeine 2.8.0, Jasypt 2.1.1, JAX-RS, Retrofit 2.6.0, JUnit 4, JMockit 1.45, JProfiler 11.0.1, GIT, GitLab, Maven 3.6.0, Docker 2.1.0.4, Prometheus 2.13, JIRA, Confluence.
ZEITRAUM: 06.2018 - 12.2018
Auftraggeber: PAYBACK GmbH.
Auftraggeberprofil: Anbieter von Bonussystemen.
Projekt: OSRR (Online Shopping Realtime & Rating).
Branche: Handel.
Ort: München / Deutschland.
Beschreibung: Der Hauptzweck von OSRR war die Berechnung und Verwaltung von Bonuspunkten eines Kunden, die er für seine Einkäufe bekommen hat. Bei der Berechnung wurden zusätzlich Gutscheine, Partnerpromotionen, Voucher usw. berücksichtigt. Es handelte sich hier vor allem um mehrere JEE Backend Anwendungen, mit einigen wenigen Frontend Applikationen.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwickler- und Integrations-Tests.
Meine Aufgaben: Das Umsetzen von Use Cases im JEE Backend Umfeld, mit Zugriffen auf die Datenbanken via JPA und REST- und SOAP-Webservice Schnittstellen. Auswählen, Aggregieren und Verschicken von Nachrichten an Kafka-Topics zwecks Auswertung mittels BI (Business Intelligence)- Verfahren. Performance Verbesserungen mit Hilfe von JProfile. Implementierung von GUI-Oberflächen mit Angular. Schreiben, Überwachen und Verwenden von End-To-End-Tests mit TOSCA.
Hardware: IBM-PC.
Software: Windows 10, JDK 7, JDK 8, Groovy, IntelliJ IDEA 2018.2.5, WebLogic 12.1.3.0.0, Tomcat 7, Oracle 12.1.0, PL/SQL Developer, Kafka, Angular 6.1.4, JUnit, Mockito, OpenEJB 4.5.1, Jasmine, Karma, TRICENTIS TOSCA Testsuite 7.0.0, JProfiler 10, GIT, Subversion, Maven 3.5.0, ANT 1.8.2, Ansible, Kibana, Grafana, SonarQube, FishEye, Crucible, JIRA, Confluence.
ZEITRAUM: 11.2017 - 04.2018
Auftraggeber: NTT DATA Deutschland GmbH.
Auftraggeberprofil: IT Consulting-Unternehmen.
Endkunde: BMW AG.
Projekt: CA PDM (Computer Aided Product Data Management).
Branche: Automobilindustrie.
Ort: München / Deutschland.
Beschreibung: Die Anwendung diente der Erstellung von neuen Fahrzeugmodellen aus verschiedenen Teilen, die wiederum mit CAD Tools wie CATIA und ähnlichen erstellt wurden. Da das BMW Konzern Konstruktionsbüros in anderen Ländern geöffnet hat, durften viele Konstruktionsdaten den Mitarbeitern dieser Niederlassungen nicht angezeigt werden. Es war deshalb notwendig, ein ausgefeiltes Berechtigungskonzept in der Anwendung einzuführen, eine sog. Need To Know (N2K)-Funktionalität.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwickler- und Integrations-Tests.
Meine Aufgaben: Einholen der Berechtigungsinformationen aus der PRISMA Datenbank mittels der bereitgestellten Datenbank - Views oder gespeicherten Prozeduren. Das anwendungsweite Anbieten dieser Informationen mit Hilfe von ThredLocal - Objekten. Verwendung der JEE Interceptors und Annotationen zum Verstecken von Datenteilen für nicht authorisierte Benutzer. Die Anzahl der versteckten Elemente wurde als eine Meldung in der Web-GUI angezeigt und die Elemente mit ausgefilterten Kindern wurden in GUI-Baumsdarstellung mit speziellen Symbolen markiert. Export von Arbeitsstrukturen an ausländische Konstruktionsbüros mit Hilfe von REST-Webservices (JSON). Das Schreiben von automatischen Unit- und Integrationstests, die sicherstellten, dass die Sicherheitsmechanismen für sensible Konstruktionsdaten tatsächlich greifen. Das Ergänzen der Dokumentation.
Hardware: IBM-PC.
Software: Windows XP, Linux, JDK 7, Eclipse Oxygen, GlassFish 3.1.2.2, Jersey 1.9-ea04, JAX-RS, SoapUI 5.3.0, Oracle 12, Oracle SQL Developer 17.3.1.279, UCS (Struts), ExtJS 3.2.2, Direct Web Remoting (DWR, Ajax for Java), Violet UML 2.1.0, JUnit 4, Reflections 0.9.10, ANT 1.8.4, Maven 3.0.5.
ZEITRAUM: 07.2017 - 10.2017
Auftraggeber: DAB BNP PARIBAS.
Auftraggeberprofil: Bank.
Projekt: Product Catalog Service (PGS), Central Cost & Charges Service (C3S), Wertpapier Service (WPS).
Branche: Finanzwirtschaft.
Ort: München / Deutschland.
Beschreibung: Alle drei Projekte drehten sich um die Umsetzung der EU-Richtlinie MiFID II. Das PGS Service diente der Zuordnung von Wertpapieren und anderen Bankprodukten zu den Kategorien, die nur bestimmten Kundengruppen angeboten wurden. Das C3S Projekt berechnete alle Kosten und Gebühren, die dem Kunden beim Kauf, Verkauf und während der Haltephase eines Finanzproduktes in Rechnung gestellt werden. Das WPS Projekt lieferte Informationen zu Wertpapieren, die für die Berechnung dieser Kosten benötigt wurden. Alle drei Projekte basierten auf Spring Boot. Für die Kommunikation nach Außen dienten Messaging- und REST-Schnittstellen.
Art der Beschäftigung: Freiberuflich.
Funktionen: Backend-Entwickler.
Meine Aufgaben: Neuanlage der Projekte, Bestimmung der Projektstruktur und der verwendeten Technologien. Erstellen von DMN 1.1 Entscheidungstabellen für Kostenberechnungen mit Camunda. Mannigfache Spring Boot Konfiguration. ActiveMQ Konfiguration für Transaktionen und Dead Letter Queues. Durchführung von Kostenberechnungen anhand der Daten aus der Datenbank- und DMN Entscheidungstabellen. Archivierung von Datenbanktabellen mit Hibernate Envers. Schreiben von Lasttests für Messaging mit JMeter.
Hardware: IBM-PC.
Software: Windows 7, JDK 1.8, Intellij IDEA 2017.2.2, Tomcat v8.5.20, Spring Boot 1.5.6, JAX-RS 2.0.1, Swagger UI, Spring JMS 4.3.9.RELEASE, ActiveMQ 5.15.0, Hawtio-UI, Camunda 7.7.0, Oracle 12.1.0, JPA, Hibernate 5.2.10.Final, Spring Data, Hibernate Envers, Oracle SQL Developer 17.2.0.188, Apache FOP 2.1, YAML, Maven, Jenkins, REST-assured 3.0.3, Wiremock 2.7.1, Cucumber 1.2.5, JMeter 3.2, AssertJ 3.8.0, JUnit 4, Mockito, JIRA, Confluence.
ZEITRAUM: 05.2017 - 06.2017
Auftraggeber: Versicherungskammer Bayern (VKB).
Auftraggeberprofil: Versicherungsunternehmen.
Abteilung: Kompas.
Projekt: Vertrag Produkt System (VPS).
Branche: Versicherungsindustrie.
Ort: München / Deutschland.
Beschreibung: VPS war eine von den wichtigsten Komponenten in der SOA Landschaft für die Abwicklung von Versicherungspolicen. Es Bestand aus einem Web-Frontend realisiert mit Vaadin-Framework und zwei WebService-Anwendungen: einer für Verträge und einer für Versicherungsobjekte. Technologisch wurden die Anwendungen in JEE mit IBM WebSphere als Applikationsserver realisiert. Die Implementierung basierte auf den Frameworks IPM und IPS der 'Faktor Zehn AG'.
Art der Beschäftigung: Freiberuflich.
Funktionen: Backend- und Frontendentwickler.
Meine Aufgaben: Erweiterung der bestehenden Anwendungsfunktionalität. Analysieren und Lösen von Produktabweichungen. Datenbankmigration im Zuge von IPM Upgrade. Lösung der Probleme mit Speichern von Daten mittels EclipseLink JPA. Mitarbeit in einer Multiteam-Umgebung nach den Prinzipien des Scrum Nexus.
Hardware: IBM-PC.
Software: Windows 8.1 Enterprise, JDK 1.8, Eclipse Mars Release 4.5.2, IBM WebSphere Application Server 8.5.5.9, Vaadin, Maven, GIT, GitLab, DB2 V10.5, EclipseLink JPA 2.6.0, liquibase, Confluence, Jira.
ZEITRAUM: 10.2016 - 04.2017
Auftraggeber: Versicherungskammer Bayern (VKB).
Auftraggeberprofil: Versicherungsunternehmen.
Abteilung: Kompas.
Projekt: Prozesse und Services Architektur (PSA).
Branche: Versicherungsindustrie.
Ort: München / Deutschland.
Beschreibung: Alle Business-Prozesse des Versicherungsunternehmens wurden in einer SOA-Landschaft (Service Oriented Architecture) bestehend aus IBM Tools Business Process Manager (BPM), Enterprise Service Bus (ESB) und einem Regelwerk realisiert.
Art der Beschäftigung: Freiberuflich.
Funktionen: Prozessprogrammierer.
Meine Aufgaben: Das Erstellen von Schnittstellen (WSDL) im ESB. Implementierung von Mediationen zwischen verschiedenen Schnittstellen (hauptsächlich unter Verwendung von XPath und XSLT, aber auch mit Java). Zugriff vom ESB auf Legacy-Systeme. Erweiterung der bestehenden Prozesse im BPM mit graphischen Mitteln (BPMN: Business Process Model and Notation) und JavaScript. Erstellung von Regeln im Regelwerk. Fehlersuche und Fehleranalyse in Prozessen. Das Bereitstellen der Möglichkeit zum lokalen Debuggen von Backendsystemen zusammen mit den Prozesskomponenten (ESB, BPM).
Hardware: IBM-PC.
Software: Windows 8.1 Enterprise, Linux, IBM Integration Designer 8.0.1.2, IBM WebSphere 8.0.0.12, IBM BPMPS 8.0.1.3 (IBM ESB, IBM BPM, IBM Rule Engine), IBM WebSphere Operational Decision Management 8.0.0.1, Subversion, Jenkins.
ZEITRAUM: 06.2016 - 09.2016
Auftraggeber: Siemens AG.
Auftraggeberprofil: Maschinen- und Anlagenbauunternehmen.
Abteilung: BAM LSY (BAM Learning Systems).
Projekt: AMCF (Analytic Model Container Framework).
Branche: Maschinenbauindurstrie.
Ort: München / Deutschland.
Beschreibung: Ein Teil des AMCF Projektes beschäftigte sich mit der Problematik des Deep Learnings (DP). Unter anderem wurden die DP Bibliotheken Theano und TensorFlow eingesetzt. Das Unterprojekt "Theano Interpreter" entwickelte Module zur Ausführung von DP Workflows in C++ und Java, die mit Hilfe der Theano-Bibliothek modelliert und trainiert wurden. Die Workflows wurden in der platform- und sprachunabhängigen Serialisierungsformat Protocol Buffers gehalten. Es gab 3 Arten von Workflows: Feature Extraction, Random Forest und Convolutional Neural Networks.
Art der Beschäftigung: Freiberuflich.
Funktionen: Lead Developer.
Meine Aufgaben: Evaluierung der Möglichkeiten zum Einsatz von TensorFlow unter Windows (Build mit Bazel) und mit Java. Schreiben von C++ Unit- (mit Google Test Bibliothek) und Workflow-Tests (mit CMake und Bash-Skripten). Erstellung und erste Entwicklung der Java-Version des Unterprojektes "Theano Interpreter". Dabei wurde die Algebra Bibliothek ND4J zur Entwicklung von Operationen wie Convolutional, Max Pooling, Rectifier usw. verwendet. Die C++ Implementierung von diesen Operationen basierte auf der Eigen Bibliothek für lineare Algebra.
Hardware: IBM-PC.
Software: Windows, Linux, JDK 1.8, C++ 11, C++ GNU Compiler 5.3.0, IntelliJ 2016, Microsoft Visual Studio Express 2013, Google Protocol Buffers 2.5.0, CMake 3.3.2, ND4J 0.6.0, DL4J, Eigen 3.2.7, Google Test 1.7.0, JUnit 4, JMockIt 1.2, Maven, Google Bazel, GIT, Jira, Confluence.
ZEITRAUM: 11.2015 - 05.2016
Auftraggeber: Siemens AG.
Auftraggeberprofil: Maschinen- und Anlagenbauunternehmen.
Abteilung: BAM LSY (BAM Learning Systems).
Projekt: SAMS IT (Siemens Advanced Maintenance Services).
Branche: Maschinenbauindurstrie.
Ort: München / Deutschland.
Beschreibung: Die Anwendung ermöglichte die Berechnung von Wartungsintervallen für die Gasturbinen anhand der historischen Daten so wie das Treffen der entsprechenden Voraussagen für die Zukunft. Die Wartungsintervalle konnten flexibel für verschiedene Einheiten, Komponenten und Teile der Gasturbinen berechnet werden. Die Signale der Sensoren wurden auf dem HDFS gespeichert und dienten als Input für die Berechnungen. Die Berechnung-Workflow wurde von Oozie überwacht, die Berechnung selbst wurde mit Pig gestartet. Die Ergebnisse wurden in die Teradata-Datenbank geschrieben. Die Konfiguration für die Berechnungen wurde in einer objektorientierten Datenbank ObjectDB gehalten. Die Benutzerschnittstelle wurde mit dem Vaadin Framework als Web-Oberfläche realisiert. Das Projekt wurde durch ein Scrum-Team bestehend aus Entwicklern in Deutschland, Rumänien und Indien realisiert.
Art der Beschäftigung: Freiberuflich.
Funktionen: Lead Developer.
Meine Aufgaben: Das Überwachen und Verbessern der Code-Qualität. Das Erstellen und Umsetzen von Code-Qualität-Konzepten. Das Umziehen von Konfigurationsdaten für die Berechnungen von Dateisystem in die ObjectDB-Datenbank. Die Injektion von JPA-Klassen in die DAO-Objekte mit Hilfe des Google Guice Frameworks. Zugriff auf die Teradata-Datenbank via JDBC. Mitwirkung bei der Umstellung der Berechnungen von dateisystemorientierten, sequentiellen Modus in parallele Verarbeitung auf den Hadoop-Servern. Das Schreiben von Pig?s User Defined Functions (mit Java) und Pig Skripten (mit Pig Latin). Das Schreiben von Unit-Tests mit Kotlin.
Hardware: IBM-PC.
Software: Windows, Linux, JDK 1.8, Kotlin 1.0.3, IntelliJ 2016, Tomcat 8.0.2, Vaadin 7.4.2, Guice 4.0, ObjectDB 2.6.7_05, Hadoop 2.4.0, Hive 1.1.0, HDFS, Oozie 4.0.0, Ambari 1.5.1, Teradata 15.0, Teradata Studio Express, JUnit 4, JMockIt 1.2, Maven, GIT, Bamboo, Jira, Confluence, Sonar, mobaXterm 8.6.
ZEITRAUM: 10.2014 - 07.2015
Auftraggeber: Telefónica O2 Deutschland GmbH.
Auftraggeberprofil: Mobilfunkprovider.
Abteilung: O2 Workbench Portal Solutions.
Projekt: ePOS.
Branche: Telekommunikation.
Ort: München / Deutschland.
Beschreibung: ePOS ist eine Web-Anwendung für die O2-Shops, die nur von offiziellen O2-Händler verwendet wurde. Diese Anwendung stellte vor allem kompliziertere Funktionalitäten und Prozesse zur Verfügung, die nich im Internetportal des Unternehmens vom Kunden selbst bedient werden konnten. Es gab auch eine Version der Anwendung, die speziell für Tablets designet wurde. Als Webframework kam Wicket zum Einsatz. Das Responsive-Design der Tablet-Anwendung wurde durch Verwendung der Bibliotheken JQuery-Mobile und Bootstrap ermöglicht. Die Backend-Seite wurde mit JBoss als Applikationsserver und Oracle-Datenbank realisiert. Für die Sicherheitsaspekte war Apache Shiro verantwortlich. Wichtiger Bestandteil der Anwendung war der Zugriff auf die anderen Backend-Systeme des Unternehmens, der fast komplett durch eine REST-Schnittstelle namens MCE standardisiert wurde. Als REST Client wurde dabei Spring's RestTemplate Modul eingesetzt. Die zahlreichen Formulare in den Flows wurden im PDF-Format mit Hilfe der itextpdf-Bibliothek erstellt und elektronisch unterschrieben mit signPOS.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations-, Regressions- und Lasttests.
Meine Aufgaben: Entwurf und Programmierung der GUI-Elmenente mit Wicket, HTML und CSS (Bootstrap, LESS). Der Zugriff auf die REST-Schnittstelle (MCE) und das Schreiben von Unit Tests, die die Konsistenz dieser Schnittstelle bei Änderungen sicherten. Erstellen eines REST-Mock-Servers der MCE-Schnittstelle für Testzwecke. Das Cachen der MCE-Daten mit Ehcache. Interaktionen mit der Datenbank via JPA. Das Erstellen von Lasttests zum Testen von den wichtigsten Programm-Flows.
Hardware: Apple MacBook, IBM-PC.
Software: Mac OS X 10.10.3, JDK 1.7, IntelliJ IDEA 14.1.3, JBoss 7.2.0Final, Tomcat 7.0, Java EE 6, CDI, Spring Framework 3.1.1, Ehcache 3, itextpdf 5.1.3, Hibernate 1.4.4, Oracle 11g, Oracle SQL Developer 4.0.3, Wicket 6.16.0, Maven 3.0.4, ANT, GIT 1.7.6.4, jMeter 2.11, Jenkins, Jira, Confluence, jUnit 4.
ZEITRAUM: 03.2014 - 10.2014
Auftraggeber: E.ON Business Services GmbH.
Auftraggeberprofil: Energieproduzent und -lieferant.
Projekt: Pegasus.Gas.
Branche: Energiewirtschaft.
Ort: München / Deutschland.
Beschreibung: Pegasus.Gas war eine Anwendung zum Verkauf von Erdgas an Großkunden des Unternehmens. Es wurden verschiedene Verkaufsmethoden implementiert, unter anderem ein spezieller, in Scala geschriebener Server für Gas-Termingeschäfte. Die Hauptanwendung bestand aus Rich-Client UI (geschrieben in Java-Swing), einem Java-Server und der Oracle-Datenbank. Zum Herunterladen und Starten der Client-Anwendung wurde in erster Linie Java Web Start Technologie verwendet. Der Zugriff von Client auf den Server erfolgte via Spring HttpInvoker. Der Entwicklungsprozess folgte der Scrum-Methodologie.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations- und Akzeptanztests.
Meine Aufgaben: Swing-GUI-Entwicklung mit JFormDesigner. Server-Programmierung von der Client-Fassade bis zu der Datenbank. Gestaltung von SOAP-WebService Schnittstellen zu anderen Systemen im Unternehmen. Schreiben von Swing-GUI funktionalen Tests mit Hilfe der FEST-Bibliotheken.
Hardware: IBM-PC.
Software: Windows 7 Enterprise, JDK 7, Scala 2.10.2, Java-Swing, JNLP, JGoodies 2.2.2, JFormDesigner 5.1.0, Spring 3.1.4, Spring Tool Suite (STS) 3.2.0, Apache Tomee 7.0.47, Oracle 11.2.0.3, Oracle SQL Developer 3.2.20.09, H2 In-Memory Database, Hibernate 4.1.7, Flyway 2.1.1, quartz 2.1.6, Enterprise Architect 10.0.1009, soapUI-4.5.0, Lombok 1.14.3, jUnit, fest-swing 1.2.1, DbUnit 2.4.8, Mockito 1.9.5, Subversion 1.7, TortoiseSVN, Maven, Jenkins, Sonar, onTrack 5.2.
ZEITRAUM: 10.2013 - 01.2014
Auftraggeber: Kassenärztliche Vereinigung Bayerns (KVB).
Auftraggeberprofil: Öffentlicher Dienst.
Abteilung: CoC SDC.
Projekt: CommonAR (Arztregister), eBIP (Elektronische Bilderprüfung).
Branche: Gesundheitswesen.
Ort: München / Deutschland.
Beschreibung: CommonAR ist ein Register aller Ärzte und Praxen für die gesetzliche Krankenversicherung der Länder Bayern und Baden-Württemberg. Der Zugriff auf das Regiter erfolgte ausschließlich via eine WebService-Schicht. Eine zusätzliche Quelle der Daten waren bestimmte Legacy-Datenbanken. Der sog. Syncer-Modul sorgte dafür, dass die Daten in diesen Datenbanken und dem CommonAR immer im aktuellen Zustand gehalten wurden. eBIP ist eine Web-Anwendung zur Anzeige und Prüfung der Bilder verschiedener Organe. Die Bilder wurden durch die Geräte der Kassenärzte erstellt.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations-, Regressions- und Lasttests.
Meine Aufgaben: Erweiterung des Arztregisters durch Bereitsstellung neuer Webservices, Erweiterung der Datenbank und Implementierung der sonstigen Anwendungsschichten. Import der Daten aus anderen Systemen mittels des Syncer-Moduls. Erstellung und Testen von HTML-Seiten mit Wicket in der eBIP-Anwendung. Alle Projekte wurden im SCRUM-Modus und nach den Prinzipien von Clean Code Developer (CCD) durchgeführt.
Hardware: IBM-PC.
Software: Windows 7, JDK 7, IntelliJ IDEA 13, Groovy, Gradle 1.10, Spring, Oracle 11, Oracle SQL Developer 3.0.04, H2 In-Memory Database, Hibernate, Flyway, Wicket, WicketTester, soapUI-4.5.0, Togglz, Lombok, Google Guava, DbUnit, HTMLUnit, Hamcrest, Mockito, Jenkins, Sonar, Cygwin, Jira, Confluence.
ZEITRAUM: 10.2012 - 09.2013
Auftraggeber: Telefónica O2 Deutschland GmbH.
Auftraggeberprofil: Mobilfunkprovider.
Abteilung: O2 Workbench Portal Solutions.
Projekt: Piranha, Prepaid.
Branche: Telekommunikation.
Ort: München / Deutschland.
Beschreibung: Piranha ist ein Authentifizierungs- und Autorisierungsportal von O2. Die ursprüngliche, Cookie-basierte Implementierung wurde durch einen Single Sign-On Server OpenAM ersetzt, bei dem der Austausch von Authentifizierungs- und Autorisierungsinformationen nicht nur via Cookie sondern auch mittels SAML erfolgte. Bei der Prepaid-Anwendung handelt sich um einen Web-Portal für die Prepaid-Kunden von O2. Die Entwicklung in beiden Projekten erfolgte gemäß der Scrum-Methodologie.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations-, Regressions- und Lasttests.
Meine Aufgaben: Einführung von OpenAM in Piranha: Installation und Konfiguration des OpenAM Servers, das Schreiben von Custom Login Modulen und Post Authentication Plugins (PAP), Anpassung der HTML-Seiten für das Login usw. Mitwirkung bei der Migration von der Piranha-Anwendung von JBoss 4 auf JBoss7. Erstellung von Prepaid-Webseiten mit Wicket.
Hardware: Apple MacBook, IBM-PC.
Software: Mac OS X 10.8.3, Red Hat 6, JDK 1.7, IntelliJ IDEA 12.1, JBoss 7.2.0Final, Tomcat 7.0, Java EE 6, CDI, OpenAM 10.1.0, Spring Framework 3.1, Oracle 11g, Oracle SQL Developer 3.2.10.09, Wicket 6.0, Groovy, Maven 3.0.3, GIT 1.7.6.4, Arquillian, TestNG, jMeter 2.4, Jenkins 1.467, Jira, Confluence, HP SiteScope 11.22.
ZEITRAUM: 11.2011 - 09.2012
Auftraggeber: Telefónica O2 Deutschland GmbH.
Auftraggeberprofil: Mobilfunkprovider.
Abteilung: O2 Workbench Portal Solutions.
Projekt: Mobile Portal.
Branche: Telekommunikation.
Ort: München / Deutschland.
Beschreibung: Es handelte sich hier um eine Web-Anwendung für mobile Geräte der Firma O2 Deutschland. Wegen der enormen Vielfalt der unterschiedlichsten mobilen Geräte mussten die Seiten für verschiedene Gerätegruppen und sogar für einzelne Geräte in sog. Template Manager (mittels XSLT Transformationen und Cocoon) angepasst werden. Die Anbindung an die Backend-Systeme erfolgte überwiegend über REST Schnittstellen (JAX-RS 1.1). Die HTML Seiten wurden mit Wicket und node.js Technologien angefertigt. Ein anderes Problem bei der Erstellung von Web-Anwendungen auf den mobilen Geräten war die unterschiedliche Größe und Auflösung von Bildschirmen und die fehlende Unterstützung für bestimmte Bildformate (z.B. JPEG, GIF usw.). Dadurch mussten für jeden mobilen Gerätetyp die Bilder entsprechend skaliert und formatiert werden, was die Aufgabe eines Image-Servers war.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations-, Regressions- und Lasttests.
Meine Aufgaben: Die Anbindung von Backend-Systemen der Firma O2 Germany. Erstellung von Mocks der Backend-Schnittstellen für Testzwecke. Verbesserungen der Performance durch das Cachen von Daten mit Hilfe einer EhCache-Lösung. Erstellung der HTML-Seiten mit node.js. Durchführung von Akzeptanztests auf den unterschiedlichsten mobilen Geräten. Erstellung einer Fahrtenbuch App für Android Geräte. Mitwirkung bei der Erstellung verschiedener Module wie der Pack Manager oder Master Data Change. Implementierung eines Image Servers, in dem aus Performance-Gründen die skalierten und formatierten Bilder in einem Squid Proxy Cache gehalten wurden.
Hardware: Apple MacBook, IBM-PC.
Software: Mac OS X 10.7.4, Ubuntu Linux, IntelliJ IDEA 11.1.3, Tomcat 7.0, Spring Framework 3.1, CXF 2.5.1, Jersey 1.10, Squid Cache Proxy 2.7, DBCP 1.4, Maven 3.0.3, slf4j 1.6.4, GIT 1.7.6.4, TestNG, jMeter 2.4, Selenium 2.0, Jenkins 1.467, Jira, Confluence, WebStorm 4.0, node.js 0.6.10, nave 0.2.6, NPM, express 2.5.8, connect 1.8.6, cluster 0.7.7, jQuery, jsdom 0.2.10, weld 0.2.2, winston 0.5.9, vows 0.6.2.
ZEITRAUM: 10.2010 - 10.2011
Auftraggeber: Telefónica O2 Deutschland GmbH.
Auftraggeberprofil: Mobilfunkprovider.
Abteilung: O2 Workbench Portal Solutions.
Projekt: Service Delivery Framework (SDF) / UNICA Facade.
Branche: Telekommunikation.
Ort: München / Deutschland.
Beschreibung: WebService basierte Platform UNICA diente zum Austausch von Daten zwischen dem Mutterkonzern Telefónica und deren Tochtergesellschaften wie z.B. O2 Deutschland. Die Sicherheitsaspekte wurden dabei durch einen Prototyp für den unternehmensweiten Security Server abgehandelt. Später wurde UNICA ein Teil der konzernweiten SOA-Lösung. Sämtliche Projekte des Unternehmens wurden agil als Scrum-Projekte realisiert.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations-, funktionale und Lasttests, Enterprise Integration.
Meine Aufgaben: Implementierung der UNICA-Webservice-Schnittstelle, Zugriff auf verschiedene Untersysteme in der IT Architektur von O2 Deutschland und Konvertierung der Daten zwischen UNICA und den O2 Untersystemen. Die meisten WebService Endpoints und Clients wurden mit JAX-WS entwickelt (Document/Literal Stil), nur für einige ältere O2 Untersysteme musste noch wegen der Benutzung des veralteten RPC/Literal Stils Axis genommen werden. Schreiben der gespeicherten Prozeduren für den Zugriff auf die MySQL Datenbank. Entwicklung der Login-Module des Security Servers mit Hilfe von JAAS und WS-Security Standards, unter anderem mit XML Signaturen basierend auf digitalen Zertifikaten. Passwörter und Zertifikate wurden aus einem lDAP Server geholt. Evaluierung verschiedener freien und kommerziellen ESB-Lösungen, wie ServiceMix 4.3.0, Mule 3.1.1 (MuleStudio), UltraESB 1.4.0, Oracle Service Bus 11gR1, zwecks der Einführung einer unternehmensweiten SOA Architektur.
Hardware: Apple MacBook, IBM-PC.
Software: Mac OS X 10.6.7, Ubuntu Linux, IntelliJ IDEA 10.5, Tomcat 6.0.29, Apache HTTP Server 2.2, OpenLDAP 2.4.25, MySQL 5.5, MySQL Workbench 5.2.31, Maven 2.2.1, Subversion 1.7, JAX-WS 2.1.7, Axis 1.4, Android 2.2, Adium 1.3.10, jMeter 2.4, jMockIt 0.999.4, jUnit 4.8.1.
ZEITRAUM: 09.2009 - 08.2010
Auftraggeber: Institut für Arbeitswissenschaft und Berufsforschung (IAB).
Auftraggeberprofil: Forschungseinrichtung der Bundesagentur für Arbeit (BA).
Projekt: Metadatensystem, IAB Thesaurus.
Branche: Wissenschaft und Forschung, öffentliche Verwaltung.
Ort: Nürnberg / Deutschland.
Beschreibung: Das Metadatensystem beinhaltete Datendefinitionen und -formate aller Forschungsdatensätze, die in Laufe der Jahrzehnte durch die BA erhoben worden sind. Es war möglich Datenkataloge mit der Beschreibung der Daten in gewählten Versionen zu erstellen. Der IAB Thesaurus war eine Sammlung von hierarchisch und alphabetisch angeordneten Schlagwörtern. Durch die Verknüpfung dieser Schlagwörter mit verschiedenen Datenquellen war es möglich, Daten zu bestimmten Themen schnell ausfindig zu machen.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations- und funktionale Tests, Datenbankmodellierung.
Meine Aufgaben: Der Schwerpunkt meiner Arbeit lag in der Backendprogrammierung mit EJB 3.0. Nur in bestimmten Projektphasen habe ich Unterstützung bei der Internetprogrammierung mit JSF geleistet. Die Businessobjekte wurden durch den Entwurf von JPA Entitäten modelliert, aus denen dann automatisch die Datenbankstruktur erstellt wurde. Die Datensätze wurden vor dem konkurrierenden Zugriff durch ein selbst entwickeltes "optimistic locking" Ansatz geschützt. Den Clients wurden die Businessobjekte sowohl durch eine WebService-Schnittstelle (JAX-WS) als auch durch RMI zur Verfügung gestellt. Die Sicherheitsaspekte wurden dabei meistens durch WS-Security (SSO und SAML auf Basis von WebLogic) realisiert, aber auch durch Zwei-Wege-Authentifizierung SSL (in JBoss). Eine nicht unbedeutende Rolle spielte der Datenaustausch mit anderen Modulen: Import von Daten aus fremden Thesauren via StAX in SKOS-Format (Simple Knowledge Organization System), eingebettet als RDF (Resource Description Framework), oder Export von Metadaten in DDI-Format (Data Documentation Initiative, Metadatenmodell für die Beschreibung von sozialwissenschaftlichen Daten) mit Hilfe von JAXB. Für das Deployment auf verschiedenen Arten von Servern wurden ANT und Bash-Skripte bereitgestellt.
Hardware: IBM-PC.
Software: Windows XP, Linux, JDK 6, Eclipse 3.4.1, NetBeans 6.1, EJB 3.0, WebService Metro Framework, SoapUI 3.0.1, Oracle Weblogic 10.3, JBoss Portal Server 2.64, Oracle 10, Oracle SQL Developer 1.5.1, SQL Workbench/J, JSF 1.2, ANT 1.7, CVS, jMockIt.
ZEITRAUM: 01.2009 - 06.2009
Auftraggeber: Giesecke & Devrient GmbH.
Auftraggeberprofil: Anbieter von Banknotendruck, Banknotenbearbeitungssystemen, Karten und
Sicherheitssystemlösungen
.
Projekt: Visa Card Instance Issuance System (IIS).
Branche: Bankwesen.
Ort: München / Deutschland.
Beschreibung: Das Ziel des Systems war die Ausgabe von neuen Kreditkarten innerhalb von 10 Minuten nach der Beantragung. Die Clientseite bestand aus Kartenausgabeautomat (unattended issuance kiosk), einem integrierten Gerät mit Kartenleser, Videodisplay und Kartendrucker als Hauptkomponenten. Im Backend-Bereich der Bank wurden normalerweise die gesammelten Kreditkartenaufträge einmal am Tag abgearbeitet, was für die schnelle Ausgabe von Karten unzureichend war. Um die Kosten für die Umstellung der Batchprozesse auf Real Time Bearbeitung zu vermeiden, wurde ein Pool mit Personalisierungsdaten entwickelt (pre-generated personalization data pool).
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit-, Integrations- und funktionale Tests.
Meine Aufgaben: Entwicklung einer WatchDog Anwendung, die die verschiedenen Komponenten des Kiosks via JMX permanent überwacht hat. Im Falle von Fehlern wurden diverse Reparaturversuche durchgeführt oder ein Alarm ausgelöst. Das Importieren, Validieren, Konvertieren (XSLT), Verschlüsseln (AES) und Hashen (SHA 256) von Personalisierungsdaten und Verschicken dieser via JMS zum Aufbau des Pools. Die einzelnen Komponenten wurden durch Spring Dependency Injection aktiviert. Einrichten eines Schlüsselbundes (JCA Keystore) so wie das Befüllen dessen mit übergebenen (via secret splitting) und selbst erzeugten Schlüsseln und Zertifikaten. Schreiben der Test-Cases und das Testen deren mit einer Emulation der Hardware (z.B. Kartenleser, Kartendrucker).
Hardware: IBM-PC, Eracom HSM (Hardware Security Module), StarSign USB Token "StarKey 100", Picture Card Drucker, Inline Lamination Unit.
Software: Windows XP, JDK 6, Spring 2.5, Eclipse 3.4.1, NetBeans 6.5, JMX, JCA, XSLT 2.0, XPath 2.0, Maven 2.0.9, ANT 1.7, ClearCase, ClearQuest, CruiseControl, EnterpriseArchitect, ActiveMQ 5.1.0, Apache Felix (OSGi).
ZEITRAUM: 08.2008 - 12.2008
Auftraggeber: TeamBank AG.
Auftraggeberprofil: Kreditbank.
Projekt: EasyCredit Karte.
Branche: Bankwesen.
Ort: Nürnberg / Deutschland.
Beschreibung: Eine neuartige Kreditkarte wurde entwickelt, bei der ab einer bestimmten, monatlichen Abschöpfungshöhe die Schuldbeträge in einen Ratenkredit umgewandelt wurden. Die technologische Basis bildeten EJB 3 mit JBoss Applikationsserver und Hibernate JPA. Es gab Anbindung an viele fremde Komponenten wie z.B. an die Abrechnungssoftware KORDOBA, den Druckdienstserver Invaris oder den FDD Gateway für die Kreditkartenverwaltung.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwickler- und Integrations-Tests.
Meine Aufgaben: Schreiben von Hintergrundprozessen (MBeans gestartet vom Job Scheduler UC4) aus den Bereichen Verhaltensscoring (z.B. Schufa-Scoring, Schufa-Nachmeldungen) und Karten-Cycle (z.B. die Zinsverwaltung, das Erzeugen, Export und Import von Kartenstatements) samt der Anbindung an externe Komponenten und Persistierung in der Datenbank. Erstellung von Briefvorlagen mit der Software Invaris (DLA-Designer und DLA-Datamodeller) für das elektronischen Formular- und Outputmanagement. Befüllung der Briefvorlagen mit via JAXB erstellten XML-Inputdateien. Einrichtung einer automatisierten Testserverumgebung unter Linux (Bash-Skripte, automatisches Starten von MBeans mit JBoss-Twiddle). Schreiben von Entwicklertests mit JUnit, EasyMock und OpenEJB. Schreiben von Web-basierten Tests mit Hilfe von Selenium zur automatischen Erzeugung von Kreditkartenanträgen. Durchführung von Integrationstests in Test- und Produktionsumgebungen.
Hardware: IBM-PC.
Software: Windows XP, Linux, JDK 1.5, Eclipse 3.3, JBoss 4.3.0, Hibernate JPA, OpenEJB 3.0, JAXB 2.0, Oracle 10, SqlDeveloper, Enterprise Architect, JUnit 4, EasyMock 2.2, Selenium 1.0, Molybdenum 0.6.5, Maven 2.0.8, Bamboo, Jira, CVS.
ZEITRAUM: 07.2007 - 05.2008
Auftraggeber: Cirquent GmbH.
Auftraggeberprofil: IT Consulting-Unternehmen.
Endkunde: BMW AG.
Projekt: PEP PDM LS3 (ProduktEntstehungsProzess ProduktDatenManagement Leistungsstufe 3).
Branche: Automobilindustrie.
Ort: München / Deutschland.
Beschreibung: Integration aller CAD-verwaltenden Prozesse in einer UTC Architektur (Ultra Thin Client). Für die Webschicht wurde ein Struts basiertes UCS Framework verwendet, das die Navigation zwischen den Seiten als endlicher Zustandsautomat abbildete. Auf der Backend-Seite wurde im Laufe des Projektes der MDA-Ansatz (Model Driven Architecture, PIM,PSM) mit Together durch einen proprietären MDD-Ansatz (Model Driven Development) ersetzt. Die sehr heterogene Architekturlandschaft verlangte die Anbindung des Applikationsservers via EAI mit diversen Legacy-Systemen, wie z. B. SAP (via MQSeries, SeeBeyond Connector, SAP JCo) oder Carisma (C++ Aufsatz auf den CAD Tool CATIA, via Webservices). Für den Datenbankzugriff wurden ausschliesslich SQL-Abfragen und gespeicherte Prozeduren mit Oracle PL/SQL eingesetzt.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwickler- und Integrations-Tests.
Meine Aufgaben: Analyse, Design, Programmierung und Testen in allen Anwendungschichten: Webfrontend (JSP, JavaScript, Ajax), Business Logik (EJB, JDBC) und EAI (JMS, Webservices). Der Schwerpunkt meiner Arbeit lag jedoch in EAI-Bereich, insbesondere im Zugriff auf SAP via JMS Topics und in der Bereitstellung von Webservice-Schnittstellen für Carisma. Weiterhin spielte das Schreiben der IT-Konzepte und der Programmdokumentation eine bedeutende Rolle.
Hardware: IBM-PC.
Software: Windows XP, Linux, Eclipse 3.3.1, BEA Weblogic 8.1, Together 6.2, SQuirreL, Apache Axis, soapUI 1.7.6, UCS (Struts), JSTL, Direct Web Remoting (DWR, Ajax for Java), FireBug.
ZEITRAUM: 03.2007 - 05.2007
Auftraggeber: sd&m AG.
Auftraggeberprofil: Softwareunternehmen.
Endkunde: BSH Bosch und Siemens Hausgeräte GmbH.
Projekt: Produktdatenpool (PDP) und Katalogeditor.
Branche: Handel.
Ort: München / Deutschland.
Beschreibung: Die Produktdaten wurden aus einem SAP-System in das Produktdatenpool (PDP) importiert. Von dort dienten diese Daten als Input für verschiedene Anwendungen, unter anderen für den Katalogeditor zur Erstellung von konfigurierbaren Produktkatalogen.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwickler- und Integrations-Tests.
Meine Aufgaben: Entwurf und Programmierung der Importschnittstelle zu PDP. Die Daten wurden in Form von XML-Dateien übermittelt und via Hibernate in die PDP-Datenbank geschrieben. Das OR-Mapping wurde automatisch durch reverse engineering aus der Datenbank mit Hilfe von HibernateTools generiert. Für die Deklaration und Konfiguration von Klassen wurde Spring-Framework verwendet (dependency injection). Einrichtung eines RMI-Server, der die PDP-Daten für andere Anwendungen bereitgestellt hat. Die Produktdaten wurden via PL/SQL aus der Datenbank ausgelesen und in die für die jeweilige Anwendung angepasste XML-Dateien transferiert.
Hardware: IBM-PC.
Software: Windows XP, Java SDK 1.5, Eclipse 3.2, Hibernate 3.2.2, Spring, Enterprise Architect 6.5, Apache Commons Logging, Apache Commons Digester, JDOM, Oracle 10, SQL Explorer 3.0, Opensymphony OSCache, Subversion (Subclipse 1.0.5, TortoiseSVN 1.4.3), ANT, Maven.
ZEITRAUM: 05.2005 - 12.2006
Auftraggeber: Media Saturn Systemzentrale GmbH.
Auftraggeberprofil: IT Ableger eines großen Handelsunternehmens.
Projekt: Mobile Point of Sales (POS, dezentrale Kassensoftware) als Teil eines Warenwirtschaftssystems.
Branche: Handel.
Ort: Ingolstadt / Deutschland.
Beschreibung: In jedem Markt befinden sich jeweils ein Applikations- und ein Datenbankserver so wie mehrere Kassenclients (POS). Die Kassensoftware unterstützt sowohl den Online- als auch den Offline- Modus. In Offline Modus werden die Verkaufsdaten temporär auf die Festplatte geschrieben und nach der Wiederherstellung des Online Modus mit dem Server synchronisiert. Da die Software auf dem Server viel häufiger upgedated wird als auf dem Client, muss durch eine ausgeklügelte Versionierung deren Zusammenspielen sichergestellt werden. Der Kassenclient bestand aus einer C++ GUI mit angeschlossenen Geräten (z.B. Barcode- und Kartenleser), einem eingebetteten CORBA Server und einem Java- Teil.
Art der Beschäftigung: Freiberuflich.
Funktionen: Entwurf der Anwendungsarchitektur, OOA/OOD/OOP, Entwickler-, Integrations- und Performance- Tests.
Meine Aufgaben: Konzept und Entwurf der neuen Java Client- und Server- Architektur. Zur Ausführung der von C++ über CORBA kommenden Anweisungen wurden die OOD Muster Strategie und Befehl verwendet. Der Serverzugriff erfolgte über die dynamischen Proxies. Bei der serverseitigen Programmierung wurde ein J2EE Framework verwendet, das auf Codegenerierung (MDA) basierte. Zu den häufigsten Aufgaben gehörte das Schreiben von Session Bean Fassaden und der Klassen mit der Business Logik. Synchronisierung von Offline- Daten mit dem Server unter Verwendung von JMS Warteschlangen. Schreiben von JMX MBeans, die als JBoss- Interceptors fungiert haben. Durchführung von Performancetests mit JMeter, Profilierung mit JProbe. Dokumentation im Wiki- Format.
Hardware: IBM-PC.
Software: Windows XP, Linux, Java SDK 1.5, Jacorb, JBoss 3.6, Solid Database 4.50, DBVisualizer, Eclipse 3.2, TogetherJ 6.2, ANT, StarTeam, JProbe 6.0.1, JMeter 2.2.
ZEITRAUM: 11.2004 - 04.2005
Auftraggeber: Deutsche Post AG.
Auftraggeberprofil: Großes Post und Logistik Unternehmen.
Abteilung: DP IT Solutions.
Projekt: Maßnahmen und Anforderungen Planung (MAP).
Branche: Post, Logistik.
Ort: Darmstadt / Deutschland.
Beschreibung: Intranetanwendung für die interne Projektplanung und Controlling.
Art der Beschäftigung: Freiberuflich.
Funktionen: Entwurf der Anwendungsarchitektur, Deployment, OOA/OOD/OOP, Webprogrammierung, Entwicklertests.
Meine Aufgaben: Wiederherstellung der J2EE Konformität der MAP- Anwendung. Erstellung einer neuen Projektstruktur in einer separaten Eclipse- Workspace, die die verteilte Architektur und die Class-Loader Abhängigkeiten in WebLogic Server nachbildet. Schreiben ANT- Build- Skripte zur Erstellung von Deployment- Dateien sowohl für den Entwicklung- als auch den Produktionsmodus (EAR). Portierung der Anwendung von WebLogic 7.02 auf die Serverversion 8.1. Mitarbeit an der Implementierung der Controlling Module in allen Anwendungsschichten: in Frontend (JSP's, Servlets), Backend (Session Beans, DAO Objekte) und in der Datenbank (Anlegen von Tabellen, Views usw.). Single Sign-On zwischen der MAP Anwendung und dem Corporate Intranet. Zugriff auf die Web Services in Corporate Intranet mittels Weblogic und Axis JAX-RPC Implementierungen.
Hardware: IBM-PC.
Software: Windows XP, Java SDK 1.4.2, BEA WebLogic 7.02 und BEA WebLogic 8.1, Oracle 10g RDBMS, Axis, Toad, Eclipse 3.0, ANT, CVS.
ZEITRAUM: 01.2004 - 10.2004
Auftraggeber: Forstware Informationssysteme GmbH in Meersburg.
Auftraggeberprofil: Softwarehaus mit Schwerpunkten in GIS und Bereichen mit GIS-Anwendung
.
Projekt: Pflege und Weiterentwicklung des Reportgenerators.
Branche: IT.
Ort: Ulm / Deutschland.
Beschreibung: Der Reportgenerator nimmt als Input eine Textdatei im vordefinierten Format und basierend auf den Daten aus der Datenbank generiert daraus Auswertungen und Reports, die in verschiedenen Formaten (z.B. HTML, ASCII-Datei, PDF usw.) und auf verschiedenen Geräten (z.B. Bildschirm, Drucker) ausgegeben werden können.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwicklertests, Datenbankprogrammierung.
Meine Aufgaben: Umbau der Stand-alone-Anwendung in eine Client-Server Architektur. Portierung des Reportgenerators von der Netzwerkdatenbank Raima auf eine relationale Datenbank MS SQL Server. Schreiben von Datenbankfunktionen und -prozeduren mit Transact-SQL. Ein spezielles Abfragenmodul ermöglichte dem Benutzer, SQL-Abfragen zu formulieren, die nur aus einer Auflistung von Tabellenspalten bestanden. Programmintern wurde dieser SQL-Statement mittels des SandStone- Parsers analysiert und um die fehlenden Tabellennamen und Verknüpfungen zwischen den Tabellen ergänzt. Ausgabe der Reports als MS Excel- Tabellen. Entwicklung eines Moduls zum Überprüfen der Konsistenz der Daten in der Datenbank. Analyse der Log-Dateien mit Hilfe der Perl-Skripte.
Hardware: IBM-PC.
Software: Windows XP, C++, MS Visual C++ .NET, ODBC, MS SQL Server 8.0, RDM (Raima databasemanager), SandStone VisualParse++ 4.0, Perl, MS Excel, SSL, Subversion 1.1.
ZEITRAUM: 10.2003 - 12.2003
Auftraggeber: MVI Solve-IT GmbH.
Auftraggeberprofil: Softwarehaus mit Schwerpunkten in CAD (Computer Aided Design) und Anwendungen für
die Automobilindustrie
.
Endkunde: Volkswagen AG.
Projekt: Virtueller Marktplatz der Firma Volkswagen AG.
Branche: Automobilindustrie.
Ort: München / Deutschland.
Beschreibung: Eine B2B Anwendung basierend auf der Oracle Datenbank und dem Oracle Applikationserver. Die Client-Seite wurde anhand der Swing-GUI realisiert.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Unit- und andere Entwicklertests.
Meine Aufgaben: Bereitstellung der Daten für den sog. Präsentationbereich, wo in Meetings auf verschiedenen Ebenen des Konzerns über die Angebote der Lieferanten entschieden worden ist. Erstellung von CMP und CMR Entiy Beans gemäß der EJB 2.0 Spezifikation und Generierung der Interfaces und Deployment Descriptors mittels Ant und XDoclets. Die aus mehreren Entity Beans zusammengetragenen Daten wurden in DAO Objekten aufbereitet und in einem sog. Business Objekten an den Client übergeben.
Hardware: IBM-PC.
Software: Windows XP, Java SDK 1.4.2, Oracle9iAS (Orion), Oracle 9i RDBMS, Eclipse 2.1.1, Synergy, Ant, XDoclets.
ZEITRAUM: 07.2003 - 09.2003
Auftraggeber: Forstware Informationssysteme GmbH in Meersburg.
Auftraggeberprofil: Softwarehaus mit Schwerpunkten in GIS und Bereichen mit GIS-Anwendung
.
Projekt: Zentrale Datenverwaltung und Konfiguration.
Branche: IT.
Ort: Ulm / Deutschland.
Beschreibung: Ein Stand-Alone Programm, das auf einem Fileserver installiert wurde und auf mehreren Arbeitrechnern ausgeführt wurde. Es war eine Art Simulation der Client-Server Umgebung. Auf dem Server wurden mehrere Datenverzeichnisse eingerichtet, in denen verschiedene Datensätze in Zip-Format zusammen mit der für alle Datensätze im Verzeichnis gültigen Konfiguration abgespeichert wurden. Ein Bearbeiter konnte sich einen oder mehrere Datensätze samt Konfiguration vom Server herunterladen und das richtig konfiguriertes Programm sofort starten.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, GUI-Programmierung, Unit- und andere Entwicklertests, Deployment.
Meine Aufgaben: Selbständige Erstellung der Anwendung mit Java Swing. Der Transfer von Datensätzen wurde anhand Ant- Builds durchgeführt. Dadurch war es möglich, Änderungen durch Modifizieren von Build Dateien durchzuführen, ohne den Programmcode verändern zu müssen. Rechteverwaltung: verschiedene Benutzerrollen hatten das Recht nur bestimmte Dateien zu transferieren. Um die sog. race conditions auszuschalten, wurden die Logging und Fehlerbehandlung im Programm im HTML Format angezeigt (als JEditorPane des Typs "text/html").
Hardware: IBM-PC.
Software: Windows XP, Java SDK 1.4.2, Java Swing, Eclipse 2.1.1, CVS 1.11.1, JUnit 3.8.1, Ant 1.5.3, Xerces 2.4.
ZEITRAUM: 04.2003 - 06.2003
Auftraggeber: TRANSFLOW Informationslogistik GmbH.
Auftraggeberprofil: Software-Haus mit Schwerpunkten Informationslogistik.
Projekt: Software Configuration Management.
Branche: Logistik.
Ort: Dornbirn / Österreich.
Beschreibung: Das Ziel des Projektes war die Verbesserung und Automatisierung der Installationprozeduren und der Verteilung von Datenbankinhalten. Wichtige Rolle spielten hier die Versionierung und Customizing, so wie die Unterstützung der verteilten Entwicklung.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwicklertests.
Meine Aufgaben: Entwurf und Entwicklung der objekt-relationalen Mapping-Module. Export von Inhalten aus der Entwicklung Datenbank in XML Format und Import deren in die Kunden Datenbank. Das ganze lief vollautomatisiert als ein Ant Projekt. Der Kern des Projektes war sog. Merging Modul. Es ging hier um das Zusammenführen von den Inhalten von 2 Datenbanken, z.B. um die Erhaltung der kundenspezifischen Einstellungen, Auflösung von Schlüssel-Konflikten usw. Das ganze Projekt wurde nach den Prinzipien des Extreme Programing (XP) durchgeführt. Insbesondere wurde großer Wert auf die Absicherung des Kodes durch Unit-Tests gelegt. Die Entwicklungsumgebung bestand größtenteils aus den Open Source Werkzeugen.
Hardware: IBM-PC.
Software: Windows 2000, Linux, JDK 1.3, JBuilder 6.0, CVS 1.11.1, JUnit, Ant 1.5.3, log4J 1.2.7, Jacarta CLI 1.0, Xerces, Oracle 8i, Toad 7.2.
ZEITRAUM: 11.2001 - 02.2003
Auftraggeber: SAP AG.
Auftraggeberprofil: Großes Softwarehaus mit Schwerpunkt im Bereich von Enterprise Resource Planing (ERP)
.
Projekt: Central Supplier Directory (CSD) als Teil des virtuellen Markplatzes für die Automobilindustrie.
Branche: Automobilindustrie.
Ort: Walldorf / Deutschland.
Beschreibung: CSD beinhaltet alle Informationen über die Lieferanten. Es ermöglicht die Suche nach Lieferanten, die einem bestimmten Profil entsprechen. Eine der wichtigsten Teile von CSD ist ein Katalog der Kategorien, die ihrerseits aus ausgefüllten Fragebögen bestehen. Der Katalog ist eine detaillierte Abbildung der ganzen Produktpalette des Unternehmens.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Webprogrammierung, Entwicklertests.
Meine Aufgaben: Migration der Entwicklungsumgebung von VA for Java auf WSAD. Portierung der Anwendung von WebSphere auf SAP J2EE Engine, unter anderem Ersetzen von CMP durch BMP entity beans. Registrierung der neuen Unternehmen und Genehmigen von Marktplatzadministrator. Erstellen und Visualisieren von Kategorie Bäumen. Migration der neuen Kategorie Hierarchien in die bestehende Datenbank. Darüber hinaus wurde das Model-View-Controller (MVC) Framework von Jacarta Struts mit ActionServlet und Action-Klassen nachprogrammiert.
Hardware: IBM-PC, Sun Workstation.
Software: Windows 2000, Solaris, DB2 7.1, WebSphere Studio Application Developer 4.0.3, WebSphere 3.5, Perforce 2000.2.19464, JSP 2.0, Struts, Java 1.3, EJB 2.0, XML (DTD).
ZEITRAUM: 02.2001 - 10.2001
Auftraggeber: SAP Markets Europe Inc.
Auftraggeberprofil: Softwarehaus mit Schwerpunkt Internetanwendungen.
Projekt: Business-to-Business (B2B) Anwendung als Teil eines Internet-Portals.
Branche: Automobilindustrie.
Ort: St.Leon-Rot / Deutschland.
Beschreibung: Erstellung eines virtuellen Marktplatzes unter der Verwendung der EJB's 1.0 Spezifikation und den IBM WebSphere als Applicationsserver. Aufbau eines WebSphere - Clusters basierend auf dem Konzept der Persistent Sessions. Anbindung eines Backend-Systems (SAP R/3) an den Marktplatz mittels XML-Transfers via HTTP und den SAP Business Connector. Die Hauptbestandteile des virtuellen Marktplatzes waren: User Management (UM), Business Directory (BD), Dynamic Pricing Engine (DPE) und Backend Integration (BI).
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Webprogrammierung, Entwicklertests, technische Projektleitung.
Meine Aufgaben: Ersetzen der ursprünglich vorhandenen IBM spezifischen AccessBeans durch portable EJB- Implementierung. Aufbau eines WebSphere Clusters durch Sicherstellung der Serialisierbarkeit von HTTPSession Variablen. Erstellung von XML- Schema Dateien für die automatische Generierung von Java Klassen durch das Castor Framework. Design von Schnittstellen für das Backend Integration Modul. Bereitstellung der HTTP Kommunikation auf der Seite des Marktplatzes mittels der HTTP Servlets.
Hardware: IBM-PC.
Software: Windows 2000, DB2 Version 7, Visual Age for Java 3.02 und 3.5, WebSphere 3.5, Perforce 2000.2.19464, Netscape Directory Server 4.1, JSP 2.0, Java 1.2, EJB 1.0, XML, XML-Schema, Castor, HTTPUnit.
ZEITRAUM: 10.2000 - 12.2000
Auftraggeber: abaXX Technology GmbH.
Auftraggeberprofil: Softwarehaus mit Schwerpunkt in der Entwicklung von e-Commerce Anwendungen mittels J2EE
Technologie
.
Endkunde: Hypovereinsbank AG.
Projekt: Internet Relaunch Projekt der Hypovereinsbank AG.
Branche: Banken.
Ort: München / Deutschland.
Beschreibung: Vollständige Neuentwicklung des E-Commerce Portal der Hypovereinsbank, Teilprojekt Banking und Wertpapierverwaltung. Das Portal wurde gänzlich mit J2EE Technologien implementiert (EJB, JSP). Die Grundlage der Implementierung bildete das Framework der Firma abaxx GmbH.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Entwicklertests.
Meine Aufgaben: Erstellung von Enterprise Java Beans nach der 1.1 Spezifikation, Entwurf und Implementierung von Textimportmodulen sowie Anbindung an die Hintergrundprozesse. Implementierung der XML-Konfiguration Klassen und Klassen für die Ausgabe von Instanzvariablen (sog. "Objeckt- Dump" mittels Java Reflection).
Hardware: IBM-PC clientseitig, SUN-Workstations serverseitig.
Software: Windows NT, Oracle 8i, JBuilder 3.0, Weblogic 5.01, JSP 2.0, Java 1.2, EJB 1.1, XML, PVCS.
ZEITRAUM: 05.2000 - 09.2000
Auftraggeber: abaXX Technology GmbH.
Auftraggeberprofil: Softwarehaus mit Schwerpunkt in der Entwicklung von e-Commerce Anwendungen mittels J2EE
Technologie
.
Endkunde: Hypovereinsbank AG.
Projekt: PlanetHome Immobilienportal der Hypovereinsbank AG.
Branche: Banken.
Ort: München / Deutschland.
Beschreibung: Erstellung von E-Commerce Portal der Bank, Teilprojekt Immobilienverwaltung und Online-Finanzierung. Die Oracle Datenbank enthielt Immobiliendaten, nach denen eine ausgefeilte Suche gestartet werden konnte. Newsletter Dienst informierte die Abonnenten über neue Immobilienangebote, die den von ihnen eingegebenen Kriterien entsprachen. Die Grundlage der Implementierung bildete das Framework der Firma abaxx GmbH.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Datenbankdesign und -administration, Entwicklertests.
Meine Aufgaben: Design und Betreuen der Oracle Datenbank. Erstellung von Enterprise Java Beans nach der 1.1 Spezifikation: entity und stateless session beans. Konfigurierung einer E-Mail Engine mit Hilfe von XML und XSL Dateien. Entwicklung der Hintergrundprozesse für die Newsletter und E-mail Dienste.
Hardware: IBM-PC clientseitig, SUN-Workstations serverseitig.
Software: Windows NT, Oracle 8i, JBuilder 3.0, Weblogic 5.01, JSP 2.0, Java 1.2, EJB 1.1, Together (UML), XML, XSL, PVCS.
ZEITRAUM: 01.1999 - 04.2000
Auftraggeber: Cybernet AG.
Auftraggeberprofil: Internetfirma mit Schwerpunkten Internetproviding und Entwicklung von Internetsoftware
.
Endkunde: Boston Consulting Group Inc.
Projekt: Intranetanwendung für ein führendes Consultingunternehmen.
Branche: Consulting.
Ort: Neu-Ulm / Deutschland.
Beschreibung: Das Intranet zeigte Daten aus der Oracle Datenbank, was anhand Java Servlets und JSP Technologies realisiert wurde. Bestimmte Benutzergruppen konnten nur eingeschränkte Informationen erhalten. Die wichtigsten Informationsbereiche (Projekte, Mitarbeiter, Organizationen usw.) waren alle miteinander verlinkt, z.B. ein Projekt mit seinen Mitarbeitern, die zu bestimmten Organizationen gehörten usw.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Webprogrammierung, Datenbankdesign und -administration, Entwicklertests.
Meine Aufgaben: Design und Betreuen der Oracle Datenbank, Schreiben von Oracle Packages (PL/SQL). Java Servlets und Java Beans Programmierung. Erstellung von Internet Seiten mit HTML und JavaScript. Integration der Volltextsuche in Dokumenten mit Fulcrum Search Server.
Hardware: IBM-PC.
Software: Windows NT, Oracle 8i, JBuilder 3.0, JRun 2.3, Web Server (IIS, Apache), HTML, JSP 2.0, JavaScript, Java 1.2 (Java Servlets, Java Beans, JDBC 2.0), Fulcrum Search Server.
ZEITRAUM: 06.1998 - 12.1998
Auftraggeber: Debis Systemhaus GEI GmbH.
Auftraggeberprofil: Großes Softwarehaus.
Abteilung: Verkehrstelematik.
Endkunde: Bundesländer Baden-Württemberg und Rheinland-Pfalz.
Projekt: Verkehrregelungszentrale für das Straßennetz der Bundesländer Baden-Württemberg und Rheinland-Pfalz.
Branche: Öffentliche Verwaltung.
Ort: Ulm / Deutschland.
Beschreibung: Steuerungsystem für das ganze Verkehrsaufkommen der Bundesländer BW und RPF. Daten von den Diversen Sensoren an den Straßen (z.B. Glätte-, Verkehrsdichte- Sensoren) wurden in die Datenbank eingespeist und in den Autobahnmeistereien visualisiert. Ansteuerung von Schilderbrücken an den Autobahnen. Die Daten aus den Autobahnmeistereien wurden repliziert (Oracle Replikation) zu der Verkehrregelungszentrale (VRZ).
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Datenbankprogrammierung, Entwicklertests.
Meine Aufgaben: Oberflächen Programmierung mit MFC. Datenbankmodelierung mit Oracle Designer 2000. Schreiben von Packages, Stored Procedures und Triggers mit PL/SQL. Programmieren des Medlungsverwaltung: UML, Windows Multithreading Programmierung, Oracle Alerts und Triggers. Archivierung der Datan auf Magnetbändern.
Hardware: IBM-PC.
Software: Windows NT, MS Visual C++ 5.0, MFC, STL, Oracle 8.004, Designer 2000, PL/SQL, Perl, UML, SELECT Enterprise.
ZEITRAUM: 03.1998 - 06.1998
Auftraggeber: Debis Systemhaus GEI GmbH.
Auftraggeberprofil: Großes Softwarehaus.
Abteilung: Verkehrstelematik.
Endkunde: Stadt Stuttgart.
Projekt: Verkehrinformationszentralle (VIZ) für die Stadt Stuttgart.
Branche: Öffentliche Verwaltung.
Ort: Ulm / Deutschland.
Beschreibung: Erstellen eines GIS-basierten Verkehrsinformationssystems für die Stadt Stuttgart. Alle Straßen in der Stadt wurden digitalisiert. Zusätzlich wurden die wichtigsten Objekte wie Krankenhäuser, Ampeln, Unfallschwerpunkte auf den Karten visualisiert. Die ankommenden Staumeldungen wurden ebenfalls auf den Karten dargestellt.
Art der Beschäftigung: Freiberuflich.
Funktionen: OOA/OOD/OOP, Datenbankdesign, -programierung und -administration, Entwicklertests.
Meine Aufgaben: Konzeption, Erstellung und Verwaltung einer Datenbank für die GIS-Daten und Verkehrsobjekte. Anbindung der Datenbank an das Programm und Bereitstellung der Daten. Programmierung der Client-Server Funktionalität. Sonstige Aufgaben: Oberflächen Programmierung mit MFC, Formatierung und Ausgabe der Daten auf dem Drucker, Laden der GIS-Daten in die Datenbank mit Oracle Loader.
Hardware: IBM-PC.
Software: Windows NT, MS Visual C++ 5.0, MFC, STL, Oracle 8.004, Awk.
ZEITRAUM: 06.1997 - 10.1997
Auftraggeber: ICR GmbH in Überlingen.
Auftraggeberprofil: Softwarehaus mit Schwerpunkt in OCR (Optical Character Recognition).
Projekt: Unterstützung für die Internationalisierung der OCR Anwendung.
Branche: IT.
Ort: Uhldingen / Deutschland.
Beschreibung: Erstellung von speziellen Windows-Resource-Dateien mit integrierter Unterstützung von verschiedenen Sprachen. Einlesen und Auslesen der Resource- Dateien in oder aus Datenbanken.
Art der Beschäftigung: Freiberuflich.
Funktionen: Programmierung, Testen.
Meine Aufgaben: Erstellung von Datenbanken via ODBC, Import und Export von Daten aus der Datenbank unter Verwendung von ODBC API.
Hardware: IBM-PC.
Software: Windows95, MS VisualC++, Yacc, Lex, ODBC API 3.0, Access.
ZEITRAUM: 06.1994 - 02.1998
Auftraggeber: Fortsware Informationssysteme GmbH.
Auftraggeberprofil: Softwarehaus mit Schwerpunkten in GIS und Bereichen mit GIS-Anwendung
.
Projekt: GIS System "PIA" und GIS basierte Anwendungen z.B. für die Forstwirtschaft, Flurstücksverwaltung.
Branche: IT.
Ort: Meersburg / Deutschland.
Beschreibung: Durchführung von verschiedenen kundenspezifischen Projekten, z.B. forstliche Bestandesinventur, Jungwuchsmonitoring, Weiterentwicklung von Flurstücksverwaltung-Software, Schnittstellen zum GIS.
Art der Beschäftigung: Festangestellt und freiberuflich.
Funktionen: Programmierung, Datenbankdesign, Testen.
Meine Aufgaben: Programmierung der Datenerfassung und Datenauswertung (GDI, Postscript), Programmierung der Benutzeroberflächen (WIN32 API), Datenbankdesign, Statistik, Import/Export von Datenbankdaten (ASCII-Format).
Hardware: Sun workstation, IBM-PC.
Software: Solaris/Unix, SCO Unix, Windows 95, Windows NT, RDM (Raima database manager), C/C++.
ZEITRAUM: 10.1993 - 06.1994
Auftraggeber: Albert-Ludwigs-Universität in Freiburg i.Br.
Auftraggeberprofil: Hochschule.
Abteilung: Biometrie.
Endkunde: Food and Agriculture Organization (FAO).
Projekt: Remote Sensing for Monitoring Tropical Moist Forests.
Branche: Öffentliche Verwaltung.
Ort: Freiburg i.Br. / Deutschland.
Beschreibung: Statistische Analyse der Satellitenbilder in Hinblick auf die Verteilung der Regenwaldmuster.
Art der Beschäftigung: Freiberuflich.
Funktionen: Programmierung, Testen.
Meine Aufgaben: Computersimulationen zur Erfassung der Lage und Veränderungen der tropischen Regenwälder anhand der Satellitenaufnahmen. Bei den Simulationen wurden sowohl echte Satellitenbilder als auch computergenerierte Bilder verwendet.
Hardware: IBM-PC.
Software: Windows 3.1, Object Pascal (Borland Pascal Compiler).
Senior Developer, Lead Developer
Sonstige Kenntnisse
"Der Consultant war bestens qualifiziert und hat sich äußerst engagiert in sein neues Arbeitsgebiet eingearbeitet. Bereits nach sehr kurzer Zeit arbeitete er vollkommen selbstständig. Er arbeitete sich aufgrund seiner guten Auffassungsgabe schnell und erfolgreich in neue Probleme ein. Der Consultant verfügt über eine große Berufserfahrung. Er beherrschte seinen Arbeitsbereich umfassend und überdurchschnittlich. Im Rahmen seiner Tätigkeit hat der Consultant seine Arbeiten stets eigenständig, planvoll und systematisch durchgeführt. Der Consultant lieferte stets eine überdurchschnittliche Arbeitsqualität. Die Arbeitsqualität vom Consultant war konstant gut."
— Projekt Java Webentwicklung unter Bea Weblogic, 11/04 - 04/05
Referenz durch Projektleiter Logistikunternehmen, vom 29.03.05
"Der Consultant überzeugt durch ausgezeichnete Kenntnisse in Java und der J2EE-Architektur. Er bringt eigene Ideen in das Projekt ein und hat durch seine vielfältigen Projekterfahrungen viele Anregungen zu Verbesserungen innerhalb der Systemarchitektur zur Steigerung der Systemperformance geben können. Er war im Projektteam sehr angesehen, sein Einsatz und seine Arbeitsbereitschaft waren immer vorbildlich."
— Projekt e-Procurement-Plattform für einen Automobilhersteller, 10/03 - 12/03
Referenz Regionalcenterleiter eines IT-Dienstleisters mit 250 MA
"Konzeption und Implementierung von RDBM/XML-Mapping, Integration in ein Build/Upgrade-Framework, Test-Automatisierung mit JUnit, Build-Automatisierung mit Ant, Protokollierung mit Log4j, Dokumentation mit JavaDoc. Zuverlässige und termingerechte selbständige Abwicklung."
— Projekt Release und Konfigurationsmangement von 04/03 - 05/03
Referenz durch TRANSFLOW Informationsgesellschaft vom 21.05.03
"Zum Einsatz im Projekt kamen Java Technologien wie EJB, JSP, Servlets und XML. Die Entwicklungs- und Produktionsbasis bestand überwiegend aus den Produkten der Firmen SAP und IBM: IBM WebSphere und SAP J2EE Engine als Application Server, VisualAge und WSAD als Entwicklungsumgebung und DB2 als Datenbank. Die Hauptaufgabe des Consultants lag im Design und der Implementierung von server- und clientseitigen Java Komponenten. Der Consultant zeichnet sich durch hervorragende Kenntnisse der eingesetzten Technologien und Werkzeuge aus. Aufgrund dieser Kenntnisse war er imstande, die gestellten Aufgaben in den meisten Fällen deutlich früher als geplant zu erledigen, ohne dass Einbussen an der Qualität oder Fehlerfreiheit der von ihm erstellten Software in Kauf genommen werden mussten. Insbesondere hervorzuheben ist die Zuverlässigkeit, Belastbarkeit und Verlässlichkeit des Consultants, die maßgeblich zum Erfolg des Projektes und Kundenzufriedenheit beigetragen haben. Seine gute Zusammenarbeit mit anderen Projektbeteiligten sorgte für einen reibungslosen Verlauf des Projektes."
— Projekt Supplier Directory auf Basis von J2EE von 11/01 - 01/03
Referenz durch Development Manager gr. dt. Standard-Softwarehaus vom 03.02.03
"Der Consultant verfügt über ein umfangreiches Wissen im J2EE Umfeld, insbesondere EJBs, Servlets, JSBs und XML. Er war an der Entwicklung einer Anwendungskomponente (Firmenverzeichnis, Gelbe Seiten des Marktplatzes) und der Entwicklung einer Backend-Integrations-Lösung beteiligt. Dabei kamen WebSphere (Version 3.02 + 3.5), IBM DB2 (Version 6.1 und 7.1) und VAJ (Version 3.02 und 3.5) zum Einsatz. Er hat das Projekt in allen Phasen von der Spezifikation über die Entwicklungs- und Testphase bis hin zur Inbetriebnahme und Wartung begleitet. Die von ihm entwickelten Applikationen laufen fehlerfrei und effizient. Neben seiner fachlichen Qualifikation ist sein besonderes Engagement hervorzuheben. Wir möchten uns an dieser Stelle dafür bedanken und den Consultant weiterempfehlen."
— Projekt Marktplatz in der Automobilindustrie auf Basis von JSPs, 02/01 - 09/01
Referenz durch Technischer Projektleiter des SAPMarkets vom 29.10.01