Speicherung, Bearbeitung, Visualisierung von Messdaten
In diesem Projekt habe ich mehrere Datenbanken, Web-Anwendungen, Import/Export-Schnittstellen und Anwendungsprogramme im Auftrag des Kunden entworfen und programmiert. Das System dient der Verwaltung und Manipulation großer Mengen von Messdaten (Zeitreihen) aus dem Bereich der Küstenforschung. Es ermöglicht den nutzenden Wissenschaftlern, Messnetz-Daten automatisiert zu importieren, in Online-Plots orts- und zeitbezogen zu visualisieren, systematisch zu speichern, zu bearbeiten und internen und externen Interessenten zur Verfügung zu stellen. Dies ist ein lang laufendes Projekt, für das ich immer mal wieder beauftragt werde. Mein jüngster Auftrag war, die Datenbank-Zugriffe einer Fremd-Anwendung zu optimieren und die Plots der Web-Anwendungen von serverseitig erzeugten, statischen Grafiken (PNGs) auf interaktive JavaScript-Plots auf Grundlage des Plot-Frameworks Plotly.js umzustellen.
Skills
Data Warehouse Administration, ETL Entwicklung
In diesem Projekt war ich als Mitglied des Teams tätig, das das konzernweite Data Warehouse des Kunden betreibt. Das Data Warehouse besteht aus einem Cluster von PostgreSQL-Datenbanken (Greenplum). Meine Aufgabenstellung im Bereich des Anwendungs-Management lag in der Incident-Bearbeitung und der Überwachung und Korrektur der ETL/ELT (Extract, Transform, Load) Prozesse. Ferner habe ich mehrere Entwickler-Aufträge zur Verbesserung und Optimierung der Systemlandschaft übernommen, unter anderem die Umstellung auf ein neues CPM (Copy Management), die Reimplementierung der Anbindung der hierarchischen Datenbanken (IMS) des Konzern-Hosts an das DWH, das Tuning von Laufzeit- und/oder Resourcen-intensiven Einzel-Statements, das Tuning der MS SQL-Datenbank, auf der die Steuerung der DWH-Prozesse basiert, sowie die Migration von mehreren hundert ETL/ELT-Programmen auf eine neue Version des DBMS.
Skills
Programmierung EDI Backendsystem
In diesem Projekt habe ich eine Verarbeitungsphase für das EDI (Electronic Data Exchange) Backendsystem des Kunden realisiert, welche Nachrichten von Mandanten von einer JSON-Repräsentation in eine XML-Repräsentation wandelt, unter Rückgriff auf einen XSLT Server. Ferner habe ich Module und Deployment-Skripte in Ansible entwickelt sowie Bugfixing am Legacy System vorgenommen. Die Entwicklung fand in einer virtuellen Linux-Umgebung (RHEL) statt, die zunächst from scratch aufzusetzen war. Die Produktionsumgebung war unter AIX angesiedelt.
Skills
Überwachung und Betrieb externer Schnittstellen
In diesem Projekt war ich Mitglied des Teams, das die zahlreichen Schnittstellen des Kernsystems des Kundens zu externen Systemen bei Mandanten, zu Banken und zu Anwendungen des eigenen Außendiensts betreut. Meine Aufgabe war, den Datenaustausch hinsichtlich auftretender Fehler beim Übergang in die Datenbank (Oracle) zu überwachen, diese Fehler zu analysieren und für eine Behebung zu sorgen, entweder durch Weitergabe an die entsprechende Fachabteilung zur manuellen Nachbearbeitung oder durch Programmierung. Desweiteren habe ich ad-hoc Lösungen für den Import von Mandanten-Daten programmiert, die von den betreffenden Mandanten einmalig übergeben worden sind. Die Aufgaben waren ticketgetrieben (Jira), meine Arbeitsergebnisse habe ich im Unternehmens-Wiki dokumentiert (Confluence).
Skills
Reimplementierung Mandantenverwaltung
Im Rahmen dieses Projekts habe ich die Mandantenverwaltung als Teil der unternehmenseigenen Intranet Web-Applikation des Kunden reimplementiert. Ferner habe ich eine SOAP-Schnittstelle für den Datenaustausch mit den Mandanten des Unternehmens realisiert.
Skills
Last- und Performance-Tests, Qualitätssicherung
In diesem Projekt war meine Aufgabe, Last- und Performance-Tests für Komponenten und Programmabläufe aus der heterogenen Systemlandschaft des Kunden durchzuführen. Zielsetzung hierbei war, bereits erfolgte Optimierungen auf ihren Erfolg hin zu überprüfen und weitere Optimierungsmöglichkeiten im Bereich der C++-, Perl-, Shell- und Java-Programme sowie des Oracle-DBMS aufzuzeigen. Ferner war eine Prognose zu erstellen, wie sich das Laufzeitverhalten in den nächsten Jahren entwickeln wird, durch erwartete Zuwächse aus dem Tagesgeschäft sowie durch Firmenaufkäufe. Als Analyse-Werkzeug habe ich im Rahmen des Projektes eine Web-Applikation entwickelt, die die Performancedaten aller beteiligten Serverrechner gemeinsam in Plots visualisiert. Dies erwies sich als unverzichtbar bei der Beurteilung der verteilten Systemlast und bei der Erkennung von Bottlenecks. Das Werkzeug wird vom Kunden weiterhin zum laufenden Monitoring eingesetzt. Alle Projekt-Ergebnisse wurden detailliert im Unternehmens-Wiki (Confluence) dokumentiert. Darüber hinaus habe ich im Bereich der Qualitätssicherung, d.h. der Durchführung von manuellen Tests und der Programmierung von automatisierten Tests mitgewirkt.
Skills
E-Commerce, Shop-Entwicklung
In diesem Projekt war meine Aufgabe, Anpassungen und -Erweiterungen an Web-Shops vorzunehmen, sowohl frontend-seitig (HTML, CSS, JavaScript, Ajax) als auch backend-seitig (Linux, Perl, MySQL). Die Web-Shops hat der Kunde seinen Endkunden auf Basis seiner E-Commerce-Plattform („CosmoShop“) bereitgestellt. Meine Aufgabe war, die individuellen Wünsche der Endkunden umzusetzen. Ferner hatte ich die Aufgabe, die Warenwirtschaft eines Endkunden an mehrere seiner Lieferanten anzubinden. Jeder Lieferant hatte hierbei eine eigene, proprietäre Schittstelle, basierend auf SOAP bzw. FTP+XML. Alle Arbeiten habe ich remote von meinem Büro aus ausgeführt. Die Aufgabenorganisation erfolgte über das Ticketsystem des Kunden.
Skills
In diesem Projekt bestand meine Aufgabe im Bugfixing und der Stabilisierung zweier Intranet-Websysteme. In diesen von ProSiebenSat.1 eingesetzten CRM-Systemen waren Fehler aufgetreten, die analysiert und behoben werden sollten. Für diese Aufgabe hat man mich beauftragt. Über ein Virtual Private Network (VPN) wurde mir Shell-, Datenbank- und HTTP-Zugriff auf die beteiligten Rechner eingeräumt. Die Fehlerliste wurde dem Bugtracking-System entnommen und an mich übergeben. Diese Fehlerliste habe ich schrittweise abgearbeitet und die einzelnen Fehler behoben. Am Ende habe ich eine Beschreibung der durchgeführten Fixes angefertigt und dem Kunden übergeben. Die Arbeit habe ich remote von meinem Büro aus durchgeführt.
Skills
Qualitätssicherung Inkassosystem
In diesem Projekt war ich als Verstärkung des QA-Teams des Kunden tätig, der seine Software größtenteils selbst entwickelt. Zur Systemlandschaft gehören GUI-Anwendungen, zahlreiche Backend-Prozesse („Batches“) und webbasierte B2B- und B2C-Systeme. Zur Absicherung des neusten Release bestand meine Aufgabe darin, verschiedenste Softwareänderungen aus o.g. Bereichen im Rahmen von System- und Regressionstests auf ihre Korrektheit zu überprüfen. Der Aufgabenbereich umfasste die Erstellung von Testkonzepten, die manuelle Ausführung und Programmierung von Tests, sowie die Klärung/Abstimmung mit den Software-Entwicklern sowie das Reporting an die QA-Leitung.
Skills
Shop-Entwicklung, E-Commerce
In diesem Projekt habe ich daran mitgewirkt die internationalen Online-Webshops des Kunden, die über einen Zeitraum von ca. 10 Jahre realisiert worden waren, zu konsolidieren und weiter zu entwickeln. Meine Hauptaufgaben hierbei waren: Verbesserung der Mehrsprachigkeit durch Entwicklung und Integration eines Übersetzungswerkzeugs für beliebig viele Sprachen, Entwicklung eines Werkzeugs zum Definieren und Schalten von Marketing-Aktionen, Umstellung der Shop-Navigation auf Facettensuche und After-Search-Navigation, Änderung der Zeichenkodierung auf Unicode (UTF-8) und Überarbeitung des Deployment-Prozesses. Darüber hinaus war ich in das Tagesgeschäft, also die Abarbeitung von Tickets, eingebunden.
Skills
Verifikation von Datenbanken
In diesem Projekt hatte ich die Aufgabe, eine Testsuite zur Verifikation zweier Datenbanken zu entwickeln. Der Kunde hat für den Relaunch seiner Online-Verkaufsplattform mehrere Java Web-Applikationen und sein Datenbank-Modell (Oracle) redesigned und die Daten vom Alt-System auf das Neu-System migriert. Meine Aufgabe bestand darin, die Korrektheit der Migration zu verifizieren. Das Prüfergebnis diente gegenüber den Wirtschaftsprüfern des Unternehmens als Nachweis, dass die Migration korrekt durchgeführt worden ist. Wegen der Komplexität der Datenmodelle und der großen Datenvolumina waren umfangreiche Tuning-Maßnahmen erforderlich, damit das Validierungs-Programm unter den engen Zeit-Constraints (geringe Downtime) als Komponente in den Gesamt-Workflow der Migration integriert werden konnte.
Skills
Regressionstest Backend-System
In diesem Projekt hatte ich die Aufgabe, einen Regressionstest zu entwickeln, der die Korrektheit eines Backend-Systems zur Analyse von Klickströmen sicherstellt. Der Kunde ist auf dem Gebiet der Zielgruppenanalyse im Web tätig und hat eine Komponente mit einer neuartigen Analyse-Technik entwickelt. Die Komponente ist Bestandteil eines komplexen Backend-Systems, das Klickströme verarbeitet und analysiert. Die entwickelte Testsuite stellt die Korrektheit des Backend-Systems sicher, bevor dieses in Produktion geht. Die Testsuite umfasst ca. 120.000 Einzeltests und gewährleistet damit, dass das System sich gemäß Spezifikation verhält. Die Testsuite ist unter Nutzung des Perl Unit-Test-Frameworks Test::Class entstanden. Entwickelt wurde auf Mac OSX unter Eclipse.
Skills
Implementierung Blacklist-Service
In diesem Projekt bestand meine Aufgabe in der Entwicklung eines Blacklist-Service für ein Shop-System zum Verkauf von Fußball-Eintrittskarten. Kunden, die negativ aufgefallen sind, weil sie z.B. ihre Rechnung nicht bezahlt haben, werden in einer Datenbankstruktur hinterlegt (Blacklist). Im Zuge des Bestellvorgangs werden die aktuellen Kundendaten gegen die Blacklist geprüft. Die Aufgabenstellung umfasste die Erstellung der Datenbankstruktur, die Programmierung eines Importprogramms für das Einspielen der Kundendaten und die Programmierung des Service auf Basis von HTTP gemäß einer bereits vorhandenen Protokollspezifikation.
Skills
In diesem Projekt habe ich für den Kunden eine Webanwendung mit Datenbank entworfen und programmiert, die es diesem ermöglicht, einem Interessentenkreis Institutsdaten zur Verfügung zu stellen. Die Daten werden über die Webanwendung von den Interessenten selbst recherchiert und heruntergeladen. Die Anwendung läuft in der DMZ des Kunden und wird aus dem internen Netz mit den betreffenden Daten versorgt.
Skills