Basic-Profil
Profilbild
Knud Werner
Sofort verfügbar
System Architekt und Programmierer

Allgemeine Informationen

Startdatum
ASAP / ab sofort
Auslastung / Workload (Mehrfachauswahl möglich)
Vollzeit
Remote
Remote bevorzugt
Umzugsbereitschaft
Nicht angegeben

Kenntnisse

Sprachen
Deutsch Englisch
Skills
3rd Level Support C C++ Clean Code Data Mining Data Science Datenanalyse Dokumentation DSGVO Kanban Linux Perl PL/SQL Qualitätssicherung Requirements Engineering Scrum SQL Administration Blockchain Confluence MySQL PHP Product Owner Python Scala Java JavaScript Implementierung Kotlin MariaDB MongoDB Neo4j Rust SQLite Windows

Berufs- und Projekthistorie

03.2020 bis 11.2024
Bundesagentur für Arbeit, Fürth
•Lead Programmierer, Architekt und stellvertretender Product Owner
•Abschließen des Umbaus von zPDV auf STEP
•Qualitätssicherung der C++ und perl Quellen (automatisiert und manuell)
•Unterstützung bei der Lösung von Incidents / Fehlern im Test
•Implementation des Nachversorgungsbatches zur Ergänzung der Zahlweglaufnummern
•Implementation des Batches zur Verteilung der SGB 2 Informationen an die zKT
•Unterstützung bei der Ersetzung von Solaris durch Linux
•Upgrade des gcc 7.4 auf den gcc 9.3
•Programmatische Erzeugung der für den Build benötigten Makefiles aus den Borland Projekten
•Ergänzung der Förderung um das neue Attribut “Kennzeichen Fahrtkosten Praktikum”
•Programmatische Erzeugung der für den Build notwendigen xsd und wsdl Dateien aus den IDL Dateien
•Vertretung des Product Owners
•Implementation des Batches zur Durchführung der Einmalzahlung
•Implementation eines Generators für Liquibase Dateien
•Implementation und Betreuung der regelmäßig durchzuführenden Anonymisierung des Produktionsdaten
Abzuges
•Unterstützung bei der Migration von SLES 12 auf SLES 15
•Unterstützung bei der Einführung von mTLS
•Implementation des Batches zur Übermittlung des Löschimpuls an EDA BE
•Strukturierung des Skripts Verzeichnisses
•Untersuchung der Möglichkeiten der Einführung von String-Latin
•Untersuchung und ggf. Beseitigung der von CheckMarx ermittelten Findings
•Unterstützung bei den PAP-Rückrechnungen sowie den allgemeinen Änderungsbescheiden
•Implementation der sog. “Minimallösung” für String-Latin
•Umstellung der ERP Schnittstellen von SOAP auf Rest
•Unterstützung bei der Planung der Umsetzung diverser technischer und fachlicher Themen (Registermo-
dernisierungsgesetzt, Kassensicherheit, Weiterbildungskosten, 2/4-Augen-Prinzip, …)

02.2019
TÜV Rheinland, Köln
•Erstellung eines Softwaregutachtens (C++, ca. 800k LOC)

05.2016 bis 12.2018
Mobilcom-Debitel, Büdelsdorf
•Senior Analyst, Programmierer und Coach
•Migration der E-Plus Kunden der Mobilcom-Debitel zu O2
•Selektion der Kunden und Verarbeitung der Daten an und von E-Plus und O2
•Testdatenmanagement für die O2 Migration
•Identifikation der erneut abzurechnenden Services nach den Vorgaben der BNetzA
•Matching und Merging der Roaming SMS Partials für Abrechnungszwecke
•Pseudonymisierung von Kundendaten für Testzwecke entsprechend EU-DSGVO
•Zusammenfassung von Einzel-Briefen zu Sendungen für den Postdienstleister
•Abgleich der Systeme DECOS und TCS gegen SAP (Händlerprovisionen)
•Migration der klarmobil Kunden von MySQL in den ApiOmat
•Performancetests mit Gatling
•API Management mit Apigee
•Coaching der Kundendatenbereinigung
•Produktionsunterstützung
•Visualisierung der ApiOmat Daten
•Performance Tuning diverser Verarbeitungen
•Qualitätssicherung durch Code-Review gemäß der Clean Code Prinzipien
•Coaching zu gängigen Verfahren des Data Mining und der Data Science
•Windows, Linux, Informix, Oracle, MySQL, Perl, C, Java, XML, PHP, ksh, JIRA, Scala, ApiOmat, Apigee,
Scrum

Es bestand beim Kunden schon lange der Wunsch, die Abrechnung der Kontingente von Roaming SMS zu
optimieren. Da in diesen Fällen kein einzelner Datensatz alleine Grundlage der Abrechnung sein kann und
eine fehlerfreie Zuordnung und Anreicherung der entsprechenden Datensätze nicht möglich schien, wurde
„im Zweifel“ zu Gunsten des Kunden abgerechnet, mit teils signifikanten entgangenen Umsätzen.
Für die Zuordnung lassen sich im Wesentlichen nur der Sender sowie die Zeitstempel in den Datensätzen
heranziehen. Da diese Datensätze von verschiedenen Quellen mit ggf. nicht synchronen Uhren sowie in der
Regel aus unterschiedlichen Zeitzonen stammen, treten hier Differenzen in den Stunden und den Sekunden
auf, die eine Zuordnung erschweren.
Mit Hilfe eines hoch agilen iterativen „rapid prototyping“ wurden in enger Abstimmung mit dem Fachbereich
die Anforderungen ermittelt und anhand der Ergebnisse der Implementierung immer weiter verfeinert. Final
wurde ein geeigneter Algorithmus implementiert, der für fast alle Datensätze die Abrechnung ermöglicht und
durch die vorgenommene Prüfung der Daten Unstimmigkeiten entdeckte, die bereinigt werden konnten.
Der Kunde bat um Hilfe bei einer unternehmenskritischen Anwendung, bei der nach Vorgaben der Bundes-
netzagentur bereits mit einem Preis versehene, aber noch nicht abgerechnete Services zu bestimmten Ruf-
nummern nicht auf der Rechnung erscheinen dürfen. Diese Vorgaben erfolgen regelmäßig mehrmals in der
Woche und gelten mit Zustellung. Die vorhandene Lösung war dem wachsenden Umfang dieser Listen nicht
mehr gewachsen, da der Aufwand linear mit der Anzahl der Rufnummern anstieg und die Datenbank beim
Untersuchen der ca. fünf Milliarden Datensätze umfassenden Tabelle „am Anschlag“ war.
Hier wurde zunächst in einer Vor-Analyse die zu untersuchende Datenmenge innerhalb der Datenbank auf
ca. eins von Hundert reduziert und diese sodann mit Hilfe eines Skriptes auf die vorgegebenen Rufnummern
untersucht. Dabei kam ein sog. “digitaler Baum” zum Einsatz, welcher eine “longest matching prefix” Suche
effizient und unabhängig von der Anzahl der zu suchenden Nummern ermöglicht. Durch diese Massnahmen
wurde die Datenbank massiv entlastet sowie die Laufzeit der Verarbeitung deutlich reduziert.

02.2017 bis 03.2018
Tele Columbus / Primacom, Leipzig
•Anbindung der Sky Schnittstelle an die Systeme der Tele Columbus
•Implementierung der neuen Queues für die Dienstleister
•Produktionsunterstützung, insbesondere bzgl. Unterschieden zwischen Oracle 11 und 12
•Windows, Linux, Oracle, SQL, PL/SQL

07.2017 bis 12.2017
Kunde wünscht Anonymität, München
•Beratung zu den Themen blockchain und bitcoin

02.2015 bis 02.2016
Weiterbildung im Selbststudium
•HTML5, CSS, Scala, Clojure, MongoDB, Neo4j, Orient DB, Blockchain

04.2013 bis 11.2014
EOS IT Services, Hamburg
•Senior Application Analyst und Application Manager
•Beratung in technischen Fragen und bei der Steuerung der Weiterentwicklung
•Re-Design der Schnittstellen und Verarbeitungen des Aussendienstes sowie Unterstützung bei der Imple-
mentierung
•Konzeption und Mitwirkung bei der Dokumentation der Rückmeldungen
•2nd und 3rd Level Support der Inkasso Software, insbesondere der Aufträge an und Meldungen des Au-
ßendienstes
•Durchführung qualitätssichernder Maßnahmen bei Inbetriebnahmen neuer Versionen
•Fehler-Beschreibung und Analyse, Unterstützung bei der Behebung, Test
•Erstellung von Ad-Hoc Reports für den Fachbereich
•Windows, Solaris, Linux, Perl, C/C++, SQL, ksh, JIRA, Confluence

Der Kunde wünschte sich unter anderem die Betreuung einer unternehmenskritischen Schnittstelle, die
durch häufig auftretende Fehlerfälle eine intensive manuelle Pflege erforderte. Die bei diesen Fehlerfällen
durchgeführten Analysen und Maßnahmen erfolgten im agilen Sinne in enger Abstimmung mit dem Fachbe-
reich sowie den Entwicklern und erlaubten es, die offenbar vorhandenen “Unschärfen” bei der Abbildung der
Geschäftslogik durch ein vollständiges Re-Design der Schnittstelle zu beseitigen. Dieses wurde innerhalb
der Projektlaufzeit umgesetzt und eliminierte die vorherigen Aufwände fast vollständig.

02.2012 bis 11.2012
Gesellschaft für Konsumforschung GfK, Nürnberg
•Senior Data Scientist, Programmierer und agiler Coach
•Entwurf der Algorithmen des “Performance Layers” und Unterstützung bei der Implementierung
•Optimierung Performance kritischer Stellen (sog. “hot spots”)
•Schulungen (praktische Anwendung statistischer Verfahren im Rahmen der Business Intelligence, Daten-
strukturen, Algorithmen, Perl)
•Bearbeitung von kritischen Debug-Tickets
•Software Test und Review
•Windows, Perl, C/C++, Visual Studio, SQL, TFS

03.2009 bis 07.2011
Talkline / debitel / Mobilcom, Elmshorn
•Senior Data Scientist und Programmierer
•Qualitätssicherung (bill-to-bill) der Migration des Billing Systems der debitel auf das der Talkline
•Automation des Data Cleansing von ca. 100 Millionen Namens- und Adressdaten
•Migration des Rechnungsarchives und der “unbilled usage” der talkline
•Vorbereitung der Migration des Billingsystems der Talkline auf das der Mobilcom
•Implementierung der EU Richtlinien für Roaming und SMS
•Erstellung mehrerer CGIs zur Automation typischer Geschäftsvorfälle
•Performancetuning diverser Reports und Verarbeitungen
•Windows, Solaris, Linux, Perl, C/C++, SQL, ksh

Ein wichtiger Grundsatz aus dem Qualitätsmanagement lautet: "Ein Fehler kommt umso teurer zu stehen, je
später er bemerkt wird". Daher wurde bei der Migration eines Abrechnungssystems beschlossen, die Berei-
nigung der ca. 100 Millionen Datensätze mit Kundendaten so gut wie möglich im Altsystem vorzunehmen
und im besten Fall nur vollständige und korrekte Angaben in das neue System zu übernehmen.
Die Bereinigung der Daten stand unter Anderem vor der Herausforderung, mit der Vielzahl von unterschied-
lichen Namen aus diversen Sprachen und Kulturen umzugehen. Es ist das eine, aus "Mueller" ein "Müller"
zu machen, bei "Meier" und "Maier" ist es dann schon schwieriger, und ausländische Namen erschweren die
Aufgabe zusätzlich.
Durch den Einsatz und die Modifikation der Algorithmen von Jaro und Winkler zur Abstandsmessung und
Daitch-Mokotoff zur phonetischen Suche sowie einer Nachbarschaftssuche innerhalb der Damerau-Le-
venshtein Distanz sowie weiteren Techniken konnten die Daten automatisch mit mehreren weicher werden-
den Kriterien überprüft und ggf. sogar automatisiert bereinigt werden. Die danach immer noch fraglichen Da-
ten hatten einen so kleinen Umfang, dass sie dem Fachbereich zur Prüfung und Klärung vorgelegt werden
konnten. So wurden im Ergebnis nur geprüfte und für gut befundene Daten in das neue System übernom-
men.

Der Kunde stand sehr kurzfristig vor der Aufgabenstellung, die Rechnungen aus dem Altsystem auch für das
neue System zur Verfügung zu stellen, da sich das ursprünglich geplante Vorgehen aus lizenzrechtlichen
Gründen als nicht umsetzbar erwies. Die Lösung ergab sich durch ein in wenigen Wochen durchgeführtes
umfangreiches Reverse- und Re-Engineering des alten Abrechnungssystems, wodurch es gelang, ohne Ver-
letzung von Lizenzen die gewünschten Rechnungen auch im Neusystem zur Verfügung zu stellen.

01.2008 bis 08.2008
Deutsche Telekom, Darmstadt
•Senior Architekt und Programmierer
•Reverse Engineering des IBM IMS Dateiformates
•Entwurf eines generischen Werkzeuges zur Messung und Verbesserung der Datenqualität über alle Sys-
teme der Deutschen Telekom
•Beschreibung eines adaptiven Prozesses zur Verbesserung der Datenqualität
•Maschinelle Qualitätssicherung der Spezifikation der zu berechnenden KPIs
•Berechnung mehrerer KPIs aus bis zu 100 Millionen Datensätzen mittels agiler Methoden
•Windows, Linux, IMS, Java, Perl, Python, C/C++, SQL, Scrum

03.2001 bis 06.2007
Vodafone D2, Düsseldorf
•Senior Data Scientist, Architekt und Programmierer
•Qualitätssicherung (QS) der Abrechnung Leistungen an und für Dritte (Inter Carrier)
•QS des Rechnungswesens (Billing)
•Konzeption der Logik des "GPRS Merge"
•QS der Umwandlung der Telefoniedaten (Converted Usage)
•Entwicklung von Tools zur Untersuchung ASN.1 kodierter Daten für den 2nd und 3rd level Support
•Entwicklung diverser Werkzeuge zur QS, etwa
-zur Verfolgung automatisch generierter Test Gespräche von der Annahme (Collection) bis zur
Rechnung (Data Ware House)
-zur effizienten Implementierung von Filtern für ASN.1 kodierte Daten
-zur Prüfung der Implementierung der Business Rules für Inter Carrier Billing
-zur near real-time Visualisierung und Überwachung von Datenströmen
•Integration der bereit gestellten Funktionalität in eine durch den Kunden vorgegebene Infrastruktur (multi-
threaded Client-Server, Oracle)
•Windows, Solaris, Linux, Perl, Python, ksh, SQL*Plus, C/C++, Scrum

Zu Testzwecken bei der Einführung neuer Produkte stellte sich die Aufgabe, aus allen Datensätzen, die von
der produktiven Hardware eines Netzbetreibers geliefert werden, genau diejenigen zu finden, in denen eine
von ca. zwei Tausend vorgegebenen Telefonnummern vorkommt. Dabei werden pro Tag mehrere Dutzend
Millionen Datensätze geliefert, welche binär kodiert sind, verschiedene Arten und Längen besitzen und Tele-
fonnummern an verschiedenen Stellen enthalten.
Eine vollständige De-Kodierung und Prüfung jedes einzelnen Datensatzes wäre viel zu aufwändig gewesen,
daher wurde ein zweistufiges Verfahren implementiert: erst wurde entschieden, ob ein Datensatz überhaupt
eine der fraglichen Nummern enthalten kann, danach die in Frage kommenden exakt geprüft.
Für den ersten Schritt wurde eine Variante eines Bloom-Filters implementiert. Bloom-Filter sind eine probabi-
listische Datenstruktur, welche zu einer Menge von Werten und einer Anfrage entweder sagt "Kann in der
Menge vorkommen" oder "Kommt definitiv nicht in der Menge vor". Dies wurde kombiniert mit einer Modifika-
tion des Horspool-Algorithmus, um die notwendigen Rechnungen für das Durchsuchen grosser Datenmen-
gen zu optimieren. Dabei wurde ausgenutzt, dass Telefonnummern - und damit die zu suchenden Muster -
eine maximale Länge haben und somit die erzeugte Datenstruktur im First Level Cache Platz fand.
Im zweiten Schritte wurden die in Frage kommenden Datensätzen exakt dekodiert und einzeln überprüft.
Durch dieses Vorgehen wurde eine "quasi"-lineare Laufzeit - also eine unabhängig von der Anzahl der zu
suchenden Telefonnummern - auf der Menge der zu durchsuchenden Daten erreicht und die Laufzeit im
Vergleich zum "naiven" Vorgehen um einen Faktor - je nach Art der Daten - von vier bis fünf Größenordnun-
gen reduziert.

04.2000 bis 10.2000
Actis.BSP, Frankfurt
•Senior Architekt, Programmierer und Coach
•Einführung des Wertpapier Backoffice „as a service“
•Konzeption und Implementierung eines Job Control Servers (JCS)
•Konzeption der Abläufe um BSP Trade (ca. 15 Schnittstellen und EOD Verarbeitung, mehrere Mandanten)
•Implementierung dieser Abläufe in der Sprache des JCS
•Implementierung von ca. 80 Solaris Skripten pro Instanz
•Dokumentation, Training
•Windows, Solaris, Linux, Perl, C, SQL, ksh
Aufgrund der Erfahrungen im vorausgehenden Projekt beauftragte der Hersteller der Wertpapier-Backoffice
Lösung BSP Trade die Automation der Abläufe innerhalb seines Rechenzentrums. Dabei wünschte er sich
das Anlegen neuer Mandanten “auf Knopfdruck”, um seinen Kunden das Produkt “as-a-service” anbieten zu
können. Die bereitgestellte Lösung implementierte einen eigenen Job Control Server als Ersatz für Control-
M und wurde erfolgreich mit zwei Kunden gestartet. Die Software war länger als zehn Jahre im Einsatz.

01.1999 bis 03.2000
WestLB, Düsseldorf
•Senior Architekt, Programmierer und Coach
•Konzeption der Automation der Abläufe um BSP Trade mittels Control-M (ca. 30 Schnittstellen, teilweise
mehrmals täglich zu bedienen, sowie diverse Batch Verarbeitungen wie EOD etc.)
•Implementierung von ca. 300 Unix und einem Dutzend Host Skripten
•Administration der Microfocus COBOL Workbench 4.x
•Integration des SQL Precompilers Oracle ProCOB 1.x
•Konzeption der Anbindung externer Teilnehmer am Wertpapierhandel
•Dokumentation, Schulungen, Training
•Windows, Solaris, MVS, ksh, JCL, Perl

Bei der Einführung des Wertpapier-Backoffice BSP Trade stand der Kunde vor der Herausforderung, die
zentrale und hoch-automatisierte Ablaufsteuerung zwischen dem neuen Backoffice und den bestehenden
Umgebungen neu zu gestalten. Die aus der Implementierung in Control-M sowie ca. 300 Shell und einem
Dutzend Host Skripten bestehende Lösung stellte die gewünschten Abläufe fehlerfrei dar und half wesent-
lich, die reibungslose Einführung von BSP Trade mit zu gewährleisten.

03.1997 bis 12.1998
Barmer Ersatzkasse, Wuppertal
•Senior Architekt und Programmierer
•Entwicklung von Werkzeugen zur Jahr-2000-Umstellung von ca. acht Millionen Zeilen Host Assembler
•Windows, AIX, MVS, OS/390, C, C++, perl

Der Kunde stand vor einem Jahr 2000 Problem in seinen Assembler Programmen für den Host. Die Beson-
derheit dieser Sprache ist, daß ausschließlich indirekte Sprünge Anwendung finden, so daß traditionelle Me-
thoden der Datenflußanalyse versagen. Daher wurde zuerst mit Hilfe einer innovativen Heuristik die sog.
„dynamische Blockzerlegung“ berechnet, in der die indirekten Sprünge soweit möglich automatisiert aufge-
löst wurden. Die wenigen nicht automatisiert auflösbaren Sprünge wurden manuell untersucht.
Kombiniert wurde dies mit damals neuen Verfahren der (dynamischen) abstrakten Interpretation, welche im
Ergebnis alle Stellen in den Programmen ermittelten, die tatsächlich oder auch nur möglicherweise einen
zweistelligen Datumswert verarbeiten. Diese wurden dann automatisiert korrigiert, so daß im Ergebnis die
Programme nicht nur Jahr 2000 fähig gemacht wurden, es wurden im Verlauf der Analysen auch zahlreiche
weitere Fehler gefunden und bereinigt, so dass die Häufigkeit des Auftretens von Fehlern im Betrieb - ohne
die schon vorhandenen Jahr 2000 Fehler - um drei Viertel reduziert wurde.

Ausbildung und Zertifikate

Abitur 05.1987
Grundwehrdienst 07.1987 bis 09.1988
Studium 10.1988 bis 09.1996 (Mathematik, Informatik, Physik, Philosophie, Wirtschaft)
Diplom-Mathematiker
Dr. rer. nat.
Stipendiat der Studienstiftung
Stipendiat des Bayer Förderkreises
Stipendiat der Universität Duisburg
Mitglied der ACM (Association for Computing Machinery www.acm.org)
Mitglied der AMS (American Mathematical Society www.ams.org)
Mitglied der DELUG (Deutsche Linux User Group)

Kontaktdaten

Mehr Kontaktdaten mit Premium

Für dieses Profil sind weitere Kontaktdaten hinterlegt, die mit einem passenden Premium-Paket sichtbar werden.

Premium ansehen