Zeitraum : 2011-11 – 2011-12
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : PHP, MySQL, LATEX, Mantis
Für die Dokumentation von Produktabnahmen sollte eine Datenbank mit
komfortabler Eingabe und Analysemöglichkeit sowie einem feingranularen
Berechtigungsmanagment eingerichtet werden. Nach der Evaluierung ver-
schiedener Ticket-Systeme wurde eine Installation und Konfiguration von
Mantis durchgeführt. Anschließend wurden für Mantis individuelle Anpas-
sungen und Erweiterungen entwickelt, um die speziellen Anforderungen
des Projektes abzubilden. Insbesondere wurde eine Report-Generierung
von HTML nach PDF erforderlich, hier wurde der Weg über LaTeX gewählt.
Zusätzlich wurde ein JavaScript Wysiwyg-Editor integriert, um den Komfort
für die Benutzer zu erhöhen. Das Berechtigungssystem wurde zusätzlich
erweitert.
Nun ist es möglich, die komplette Approval Dokumentation im Bereich
Model-Validation für neue Produkte in der neu geschaffenen Umgebung zu
pflegen. Die gesamte betroffene Kommunikation kann nun elektronisch in
dem neuen Ticket-System erfolgen.
Zeitraum : 2011-10 – 2011-10
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : C#, XML, XSD
Ein internes Werkzeug zur Bewertung von Portfolien konnte nur mittels
Excel-Plugin gesteuert werden. Alle über dieses Plugin verfügbaren Funk-
tionen, auch die
über Bewertungen hinausgehenden, sollten
über die
Kommandozeile ansteuerbar gemacht werden. Dies sollte zusätzlich in
zwei Ausprägungen geschehen, zum einen mittels direkter Parameter, zum
anderen über XML-Steuerdateien.
Nun ist es möglich, den kompletten Bewertungsmechanismus mittels Kom-
mandozeile fernzusteuern. Somit können zeitgesteuerte, vollautomatische
Batch-Prozesse ablaufen. Der XML-Dialekt wird durch ein XML Schema abge-
sichert.
Zeitraum : 2011-08 – 2011-09
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : C++, LTProf
Bei einem Werkzeug zur Bewertung von Portfolien traten unerklärlich lange
Laufzeiten auf. Diese konnten reproduziert werden. Das System sollte
analysiert und beschleunigt werden. In einem iterativen Prozess wurde
ein Profiling durchgeführt, die Ergebnisse analysiert um die weak spots zu
finden, dann wurde an diesen Schwächen optimiert, um sodann mit dem be-
schriebenen Prozess von vorne zu beginnen. Die wesentlichen gefundenen
Verbesserungen betrafen: In hochrekursivem Code wurden Call by Value-
Aufrufe durch Call by Reference-Aufrufe ersetzt. Für Feiertagsberechnungen
wurde eine Lookup-Table implementiert und für den Hull-White-Algorithmus
wurde eine effizientere Implementierung gewählt.
Nach der Optimierung liefen lang laufende Bewertungen um den Faktor drei
schneller.
Zeitraum : 2011-07 – 2011-07
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : C++, MySQL
Es sollte geprüft werden, ob bestimmte Datenobjekte in einer Datenbank
gespeichert werden können und daraus wieder reinstanziierbar sind. Ziel
war es, diese Objekte in der Datenbank mittels SQL-Queries analysierbar
zu machen. Es musste ein generischer Ansatz gewählt werden, weil zum
einen zu viele verschiedene Ausprägungen dieser Datenobjekte vorhanden
waren, zum anderen auch zukünftig weitere Ausprägungen anfallen würden.
Auf Grund der projektspezifischen Anforderungen schieden nach kurzer
Evaluierung alle gängigen objektrelationalen Mapper am Markt aus. In
einem weiteren Optimierungsnachgang wurden wenige im generischen
Ansatz unperformante Objekte noch durch ein spezifisches Datenmodell
abgebildet, um eine bessere Gesamtperformance zu gewährleisten.
Nach dem Abschluss der Arbeiten am weitestgehend generisch arbeitenden
objektrelationalen Mapper konnten die Datenbestände performant reinstan-
ziiert werden. Die treibende Idee, mittels SQL-Queries die Datenbestände
durchsuchen zu können, wurde auf Grund unüberwindbarer Performance-
Probleme fallen gelassen.
Zeitraum : 2011-06 – 2011-06
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : C#, C++, Boost, Spice
In einem Werkzeug zur Bewertung von Portfolien sollten Datenbestände
nach komplexen Regeln gefiltert und zusammengestellt werden, um die-
se Gesamtmenge dann einer Bewertung zuzuführen. Vor Projektbeginn
konnten solche Filter nur im Zielsystem eingepflegt und von außen referen-
ziert werden (ähnlich zu Stored Procedures). Die Schnittstelle zu diesem
Backend-Werkzeug liegt nur als eine .NET Schnittstelle vor. Es musste eine
spezifische Objekt-Struktur aufgebaut werden, die dieser Schnittstelle
genügt. Die Regelbeschreibung selbst muss in einem Excel-Interface statt-
finden. Somit musste eine Beschreibungssprache gefunden werden, die
übersichtlich und einfach zu pflegen ist und gleichzeitig die vollständige
Komplexität der .NET Schnittstelle abbildet.
Nach Implementierung der Filterlogik können nun Regelsätze ad hoc zusam-
mengestellt, geändert und verworfen werden, ohne dies aufwändig im Back-
end-Werkzeug von Hand zu erledigen. Dadurch ist die Arbeit auf dieser Ebene
wesentliche flüssiger und effizienter geworden.
Zeitraum : 2011-05 – 2011-05
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : C++, Visual Studio
Das Compilieren und Linken eines umfangreichen Visual Studio-Projekts
dauerte durchschnittlich zehn Minuten. Es wurde erforderlich, diese Zeit zu
reduzieren. Die Verwendung von precompiled headers und pregenerated
include files führte zu einer Verbesserung. Der Release-Build und der
Debug-Build wurden stark unterschiedlich behandelt.
Seit der Optimierung dauert ein Debug-Build des gesamten Projektes nur
noch vier Minuten. Es wurde ein Performancegewinn von 60% erreicht. Der
Release-Build wurde weitestgehend unangetastet belassen.
Zeitraum : 2011-03 – 2011-04
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : C#, XML Schema, WebService
Ein internes Werkzeug zur Bewertung von Portfolien nutzte bisher auch auf
Mehrprozessor-Rechnern nur die Rechenkraft eines einzigen Prozessors.
Aus Performancegründen sollte insbesondere bei großen Portfolien die
Möglichkeit eröffnet werden, diese zu splitten und die so gewonnenen
Teilportfolien parallel zu berechnen. Die Aggregation der daraus resultieren-
den Teilergebnisse musste mit den Ergebnissen eines Einzel-Gesamtlaufes
übereinstimmen. Um diesen Prozess noch weiter zu beschleunigen, wurde
die Möglichkeit eröffnet, umfangreiche Bewertungen auf leistungsfähigen
Backend-Komponenten remote berechnen zu lassen. Dieser Dienst wurde
mittels WebService-Schnittstelle zur Verfügung gestellt.
Auf einer Acht-Prozessor-Maschine erreicht der parallelisierte Rechenkern
eine Performance von Faktor 6,5. Dieser Performance-Gewinn kann durch
den Remote-Mechanismus selbst auf schwach ausgestatteten Clients ge-
nutzt werden.
Zeitraum : 2011-03 – 2011-03
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : C#, XML, Parallelisierung, Scheduling, Queueing
Ein internes Werkzeug zur Bewertung von Portfolien, welches nur mittels
Excel-Plugin gesteuert werden konnte, musste um eine Möglichkeit erweitert
werden, die Funktionalitäten auch über die Kommandozeilen aufrufen zu
können. Es musste auch die Möglichkeit gegeben sein, eine Kette von
mehreren Kommandos in einer Kommandozeile zu spezifizieren. Um die
komplexen Einzelheiten der Kommandos spezifizieren zu können, wurde ein
Dialekt für XML-Steuerdateien entworfen und mittels Schema abgesichtert.
Nun ist es möglich, diese Bewertungsmechanismen mittels Kommando-
zeile fernzusteuern. Somit können zeitgesteuerte, vollautomatische Batch-
Prozesse ablaufen.
Zeitraum : 2011-01 – 2011-02
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : C++
An einem internen Werkzeug zur Bewertung von Portfolien wurden an der
Schnittstelle zur darunterliegenden Mathematik-Bibliothek Verbesserungen
durchgeführt. Zum einen wurde die Möglichkeit geschaffen, noch kom-
plexere Berechnungen in einem einzelnen abgeschlossenen Regelsatz zu
beschreiben, was vorher nur mit mehreren getrennten Regelsätzen möglich
gewesen war. Durch den Wegfall der vormals benötigten aufwändigen
Berechnung von Zwischenergebnissen und deren Aufbereitung wurde ein
beachtlicher Performance-Gewinn erzielt, da die neue Komponente gleich
mit dem erzielten Zwischenergebnisstand die nächsten Schritte weiterrech-
nen kann. Mittels umfangreicher Regressions-Tests wurde die Gleichheit der
Ergebnisse sichergestellt.
Komplexere Bewertungen können nun effizienter und einfacher mit C++-
Templates beschrieben werden und gleichzeitig liefert die Bibliothek im
Durchschnitt die gewünschten Ergebnisse mit einer Performance-Gewinn von
20%.
Zeitraum : 2010-11 – 2010-11
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : XLW, Automation AddIn
Es sollte eine Bibliothek so an Excel angebunden werden, dass aus Excel
heraus Berechnungen in dieser Bibliothek angestoßen werden können.
Die anzubindende Bibliothek ist selbst fortlaufend Ziel von Erweiterungen
und Neuentwicklungen, so dass die Anbindung auf eine generische Art
und Weise geschehen musste, damit zukünftige Bibliotheks-Erweiterungen
ohne Mehraufwand schon automatisch angebunden sind. Dazu wurde ein
Source Code-Generator implementiert, der das Bibliotheks-Interface auto-
matisch untersucht und Klassen generiert, die die gefundene Infrastruktur
komplett an Excel anbindet. Die Anbindung geschieht wahlweise
über
XLL oder Automation AddIn. Hierzu war es notwendig, die Open Source
XLW-Bibliothek selbst zu erweitern, und zwar um die Funktionalität der
Excel-Funktionsgruppen.
Excel-Programmierern steht nun ein transparenter Zugriff auf die externe Bi-
bliothek zur Verfügung.
Zeitraum : 2010-10 – 2010-10
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : Hudson
Für die gesamte Entwicklungslandschaft sollte die Testumgebung au-
tomatisiert werden. Build-Prozesse und alle vorhandenen Tests sollten
automatisch angestoßen werden, sobald
Änderungen im Subversion
Repository bekannt werden. Um dies umzusetzten, wurden Continuous
Integration Server evaluiert und Hudson installiert und konfiguriert. Hierzu
mussten alle Regressions-Tests auf Batchbetrieb umgestellt werden.
Builds und Tests werden nun vollautomatisch nach jedem Subversion com-
mit gestartet und bei Fehlern werden die entsprechenden Entwickler auto-
matisch benachrichtigt.
Zeitraum : 2010-09 – 2010-10
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : C#, .NET
Zu der Excel-Schnittstelle zu einem internen Werkzeug zur Bewertung von
Portfolien existierten Dialog-Wizards um Bewertungen vorzukonfigurieren.
Diese wurden lange Jahre parallel zu der verwendeten Bibliothek gewartet.
Dieser Prozess war aufwändig und bedurfte fortlaufender Anpassung. Es
wurde ein generischer Ansatz implementiert, der die Bibliotheks-Interfaces
mit den dazugehörigen Hilfe-Texten analysiert und daraus automatisch und
zur Laufzeit Dialog-Wizards generiert.
Seit dieser Änderung entfällt der Aufwand der parallelen Wartung der Wi-
zards.
Zeitraum : 2010-08 – 2010-09
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : C++, .NET
Ein internes Werkzeug zur Bewertung von Portfolien besaß bisher noch keine
Serialisierungs-Schnittstelle. Der vorhandene XML-Dialekt zur Deseriali-
sierung wurde verwendet, um darin die zu serialisierenden Datenobjekte
zu speichern. Desweiteren wurde die GUI um entsprechende Dialoge zur
Steuerung des Daten-Imports und -Exports erweitert.
Datenobjekte lassen sich nun in XML persistieren.
Zeitraum : 2010-08 – 2010-08
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : XLL, Automation AddIn, .NET
Die Excel-Schnittstelle eines internen Werkzeugs zur Bewertung von Portfo-
lien wurde bisher mittels XLL umgesetzt. Das ehemals reine C++-Projekt
wurde in letzter Zeit um .NET-Komponenten erweitert. Dies beinhaltete auch
eine .NET-Schnittstelle nach außen, um mit anderen .NET-Komponenten zu
interagieren. Um für die Zukunft sicher aufgestellt zu sein, wurde gewünscht,
dass die GUI zu der Excel-Schnittstelle nicht nur mittels XLL, sondern auch
mittels Automation AddIn angebunden werden kann und dies parallel
und für die Entwickler transparent. Hierzu wurde ein Wrapper um XLL und
Automation AddIn geschrieben, der diese Abstraktion bewerkstelligt. Die
Entwickler programmieren nun nur noch gegen diesen Wrapper.
Die Arbeit für die Entwickler wurde um eine Komplexität verringert, weil nur
noch gegen den neu geschaffenen Wrapper programmiert werden muss, oh-
ne XLL- oder Automation AddIn-Details kennen zu müssen.
Zeitraum : 2010-07 – 2010-07
Funktion : Vater
Elternzeit
Zeitraum : 2010-06 – 2010-06
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : C++, Refactoring
In einer C++-Bibliothek wurde durchweg eine zentrale Datenstruktur
verwendet. Dieser Datentyp war in der Verwendung fehleranfällig und
unperformant und wurde deshalb in einem umfassenden Refactoring durch
eine Neuimplementierung ersetzt.
Damit war die Bibliothek von einem problematischen Datentyp bereinigt.
Zeitraum : 2010-05 – 2010-06
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : C++CLI, C#
Ein internes C++-basiertes Werkzeug zur Bewertung von Portfolien musste
um eine .NET-Schnittstelle erweitert werden. Im Zuge dessen wurde ein altes
Regressions-Test Tool auf C# portiert.
Den Entwicklern ist nun der Zugriff mittels .NET auf das Werkzeug möglich.
Zeitraum : 2010-02 – 2011-12
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : C#, Automation AddIn, XLW, WebService
Eine Bewertungsbibliothek einer anderen Abteilung und die dazu gehörigen
Datenquellen sollten an die lokale Infrastruktur angebunden werden. Es
wurde ein umfangreiches Framework konzipiert und implementiert, welches
auch die abteilungseigenen Basisbibliotheken in ein gemeinsames Ganzes
integriert.
Das so geschaffene Framework wurde innerhalb von zwölf Monaten zu der
zentralen Entwicklungsplattform eines wichtigen Arbeitswerkzeugs der Ab-
teilung.
Zeitraum : 2010-01 – 2010-02
Funktion : Berater
Branche : Investment Banking, Model Validation
Eine umfangreiche bestehende VB6-GUI für Excel sollte nach .NET portiert
werden. Hierzu waren systemische Unterschiede zwischen VB6 und .NET
auszugleichen.
Die neue GUI lief problemlos auf .NET und bildete alle alten Funktionalitäten
sauber ab. Die letzte Abhängigkeit des Projektes von VB6 war somit aufge-
löst.
Zeitraum : 2009-11 – 2010-04
Funktion : Berater
Branche : Investment Banking, Model Validation
Technik : C++, C#, XML, XSLT, COM-Schnittstelle
Verschiedene Fremdsysteme und fremde Datenquellen mussten für die
abteilungseigenen IT-Landschaft verfügbar gemacht werden. Hierzu wurde
eine Schnittstelle konzipiert und ein Wrapper für die diversen Fremd-
Schnittstellen geschrieben.
Den Entwicklern steht nun ein schlankes, einheitliches Interface zur Verfü-
gung, um die Fremdsysteme in den Programmablauf zu integrieren.
Zeitraum : 2009-10 – 2009-10
Funktion : Vater
Elternzeit
Zeitraum : 03/2008 - 09/2009
Projekt : Entwicklung eines Frameworks für mobile Datenerfassung mit Anbindung
an verschiedene Backend-Systeme auf C#/.NET & .NET-CF-Basis
Branche : branchenunabhängig
Funktion : Design, Entwicklung, Review
Team : 5-8
Aufgaben : - Design & Entwicklung der Datenbank-Anbindung der Client- und Server-
komponenten, der Verarbeitung ein- und ausgehender Daten im Server, der
Web-Service-Schnittstelle für die Kommunikation mit einem Backend-System.
- Anleitung und Review der Arbeiten externer Projektmitarbeiter
- Umsetzung von Kundenprojekten unter Verwendung des Frameworks
Technik : C#, .NET / Compact Framwork, Windows Mobile, SOAP-Web-Service,
IIS, XML, XSLT, XSL-FO, MS-MessageQueues, SQL Server MergeReplication,
DB-Trigger, SVN, Unit-Testing, Continuous Integration (CruiseControl)
Zeitraum : 03/2004 – 04/2008
Projekt : Framework für mobile Datenerfassung mit Anbindung an verschiedene
Backend-Systeme
Branche : vorwiegend Facility Management
Funktion : Technische Projektleitung, Entwicklung
Team : 2-5
Aufgaben : - Weiterentwicklung der mobilen Client-Anwendung
- Weiterentwicklung verschiedener Server-Komponenten
- Entwicklung eines generischen Interfaces zur Integration in
verschiedene Backend-Systeme (Navision, ConjectFM, SAP-PLM)
- Umsetzung verschiedener Kundenprojekte auf der Basis dieses Frameworks
Technik : Client/Server-Technologie, C++, Perl, JAVA, SQL, XML, XSLT, SOAP, JBoss,
Oracle, SQL Server, Windows Mobile, Windows 2003, GPS, Barcode-Printer, CVS
Zeitraum : 11/2004 - 09/2009
Projekt : Common Reporting System
technische Administration von SAP-Systemen (BW/BCS)
Branche : Logistics (Finance/Controlling)
Funktion : Administration / 2nd-Level-Support
Team : 4
Aufgaben : technische Betreuung, Wartung und 2nd-Level-Support für eine
SAP-Systemlandschaft mit 20 Systemen (BW/BCS)
Technik : Fernwartung, Administration, 24h-Support, Remedy
Zeitraum : 04/2004 – 07/2004
Projekt : Management Information System
Datenübernahme aus SAP-BW-Systemen und aus manueller Datenerfassung,
Konvertierung, Aggregation und Bereitstellung der Strukturen, Stamm- und
Bewegungsdaten für ein Cognos OLAP-System,
Perl-basierter Server, Datenerfassung und Steuerung mit Java-Clients,
Aggregation und Aufbereitung der Daten durch Stored Procedures
Branche : Service
Funktion : Entwickler
Team : 5
Aufgaben : Technischer Entwurf und Umsetzung des Servers,
Anpassung und Erweiterung der Client-Anwendungen und Stored Procedures
Technik : Client/Server-Technologie, Perl, SAP-RFC, Oracle, SQL,
PL/SQL, Java/Swing, XML
Zeitraum : 04/2003 – 05/2003
Projekt : Framework für Datenerfassung
über XML-Beschreibung zu konfigurierendes Framework zur Bereitstellung von
Eingabemasken, Client- und Serverkomponeten und Datenbankschemas auf ver-
schiedenen Server- und GUI-Plattformen, Anbindung an verschiedene
Datenbanksysteme
Branche : branchenunabhängig / IT-Dienstleiter (SCM/CRM/Projektmanagement)
Funktion : Entwickler
Team : 5
Aufgaben : Entwicklung eines Generators zur automatischen Erzeugung von Qt-basierten
Dateneingabe- und Suchmasken aus XML-Datenstrukturbeschreibungen
Technik : C++, Qt / Qt-Designer, XML, Doxygen, Linux, CVS
Zeitraum : 02/2002 - 07/2002
Branche : Forschung (Universität Stuttgart)
Projekt : Diplomarbeit:
"Verzeichnis für Informationsangebote in NEXUS"
- Verzeichnis für Location based Services als Web-Service
- DB-Entwurf und Realisierung auf unterschiedlichen DB-Systemen
-Verarbeitung und Transformation von XML-Daten (u.a. GML)
Software : JAVA, JAXP / XSLT, JAX-RPC / SOAP, Tomcat,
IBM DB2 UDB + Spatial Extender, PostgreSQL + PostGIS,
Poseidon4UML (UML-CASE-Tool)
Zeitraum : 02/2001 - 04/2001
Branche : Automotive
Aufgaben : Umstellung der Datenbank für Sicherungsstände und -medien
in einer Datensicherungssoftware für CAD-Daten
von Parody(OO-File-DB) nach MySQL
Software : IBM AIX, IRIX, Linux, C++, Qt, MySQL, Parody, Doxygen, CVS
Zeitraum : 12/2000 - 01/2001
Branche : Automotive / Maschienenbau
Aufgaben : Erstellung eines Plug-in für Acrobat Reader zur Bestellscheinerstellung
für Bestellungen aus einem PDF-Teile-Katalog
Software : MS Windows, VC++, Adobe Acrobat & Adobe Acrobat Reader
Zeitraum : 10/1999 - 11/1999
Branche : Automotive
Projekt : Device-Handler zur Steuerung von Bandlaufwerken für
Datensicherungs- und Archivierungssoftware
Software : IBM AIX, IRIX, Linux, C++, CVS
Zeitraum : 08/1998
Branche : Automotive
Aufgaben : Wartungsarbeiten und Anpassungen an Bandlaufwerkssteuerung
Software : IBM AIX, IRIX, C, CVS
Zeitraum : 03/1997 - 09/1997
Branche : Automotive
Aufgaben : diverse Wartungsarbeiten und Erweiterungen, u.a.:
- Datenaustauschsoftware an anderes Backend angepasst (Odette)
und Bedienoberfläche erweitert
- Konfigurationsmöglichkeiten von CAD-Datensicherungssoftware erweitert
Software : IBM AIX, C, X11 (Xt, Xmt, Motif), Odette, Catia V3 & V4, CVS
Zeitraum : 10/1996 - 12/1996
Branche : Automotive
Aufgaben : Portierung von Datensicherungssoftware für CAD-Daten von AIX nach IRIX
Software : IRIX, C, X11 (Xt, Xmt, Motif), Catia V3 & V4, CVS
Zeitraum : 04/1996 - 09/1996
Branche : Automotive
Aufgaben : diverse Wartungsarbeiten und Erweiterungen an Datensicherungssoftware
und Datenaustauschsoftware
- Erweiterung der Bedienoberfläche und Konfigurationsmöglichkeit
- Bandsteuerung an DAT-Laufwerke angepasst und verbessert
Software : IBM AIX, C, X11 (Xt, Xmt, Motif), Odette, Catia V3 & V4, CVS
Zeitraum : 11/1995 - 03/1996
Branche : Automotive
Aufgaben : Industrie-Praktikum
- Umstellung einer Software zur Archivierung von CAD-Daten von CatiaV3
auf CatiaV3 & V4
- Umstellung einer Software zum CAD-Daten-Austausch von CatiaV3 auf V3 & V4
- Erweiterung einer Software zum Management verschiedener
Programm-Versionen und Projektumgebungen von Catia