Entwicklung der Data Integration Hub Plattform (DIH) im Rahmen eines Data Governance Projekts. DIH ist das zentrale Architektur-Element zum Austausch von Daten zwischen Mandanten. Es basiert hauptsächlich auf Beschreibungen der Datenprodukte (Spezifikationen), Data-Katalogen und Services, um gemeinsame Daten darzustellen.
Ein typischer Workflow hat folgende Schritte:
Einspeisung der Datenproduktbeschreibung über REST API oder Swagger UI.
Metadaten werden in Kafka Topics geschrieben.
Kafka-Consumer lesen die Daten und führen Aktionen aus, wie z.B. Anlegen von Metadaten in Datahub, Erstellen von Tabellen in Trino, Anlegen vordefinierter Verzeichnisstrukturen auf S3, Anlegen von Policies usw.
Mein Schwerpunkt war:
Implementierung von Single Sign-On in Services basierend auf JWT Tokens.
Entwicklung von REST APIs.
Entwicklung von Integrationswerkzeugen zwischen Softwarekomponenten (SelfService, Trino, S3, Datahub, Great Expectations usw.).
Entwicklung von Data Quality Validierungsdiensten.
Data-Kataloge und Data Lineage: Datahub, OpenLineage; mit Integrationen zu Spark, Pandas. Services wurden in Python umgesetzt.
SQL-Engines: Trino mit Starburst Web UI, PostgreSQL, Hadoop, DB2, Delta Lake.
Data Quality: Great Expectations.
REST API: Java, Swagger, Springboot.
Authentifizierung: JWT, OAuth2, Single Sign-On.
Apache Ranger für Access-Policy-Management.
Prometheus und Grafana für Monitoring.
Zertifizierung: AWS Certified Data Engineer - Associate.
Okt. 2021 - Apr. 2023
1 Jahr 7 Monaten
Hamburg, Deutschland
Senior DevOps (extern)
Otto GmbH & Co KG
Konzeption und Implementierung datengetriebener Microservices zur Optimierung der Suchmaschine (Google) mit AWS Services. Die Services folgen meist ETL-Mustern. Ein typischer Service bezieht Daten aus einer Quelle (REST API, SQS, DynamoDB etc.), transformiert sie (z.B. Berechnung von Änderungen in einer Liste gegenüber den Vortagen) und lädt Ergebnisse in ein Backend (S3, Datenbank).
Service I (MLOps). Bewertung von OTTO-Seiten durch Extraktion relevanter Keywords, die den Seiteninhalt beschreiben, und Abgleich mit Google-Suchen. Migration der Datenverarbeitung, Modelltraining und -retraining sowie des Modells in Produktion von GCP zu AWS. Design und Implementierung von Workflows.
Einsatz von GitHub Actions als CI/CD-Pipelines.
Einsatz von Terraform zur Verwaltung von Cloud-Ressourcen (Erstellung von Containern, Load Balancing für Modellinstanzen etc.).
Implementierung von Model Validations und Testing mit Python.
Implementierung von Modell-Monitoring mit Grafana.
Service S
Millionen von REST API-Aufrufen pro Stunde mit AsyncIO.
Konzeption und Umsetzung hybrider Umgebungen auf Google Cloud Platform.
Bereitstellung der GCP-Infrastruktur mit Terraform und später mit Ansible.
Redundante Anbindung und Verschlüsselung der Daten zwischen GCP und On-Premise-Systemen.
Provisionierung von MapR- und Spark-Umgebungen auf GCP.
Einrichtung der Echtzeit-Datenreplikation von On-Premise-Tabellen zu GCP.
Integration mit REWE-Diensten (ActiveDirectory, DNS, Instana etc.).
Entwicklung von REST APIs für Machine-Learning-Modelle mit Flask.
Implementierung von persistentem Storage auf MapR für Kubernetes-Cluster.
Betrieb von MapR-Clustern: Updates, Erweiterungen, Fehlerbehebung von Services und Anwendungen.
Synchronisierung eines Kafka-Clusters mit MapR Streams über Kafka Connect.
Design und Implementierung von ETL-Pipelines, Synchronisation und Integration von MapR-Clustern mit verschiedenen Datenquellen (z.B. DB2 und Teradata Data Warehouses).
Onboarding neuer interner REWE-Kunden auf MapR-Plattformen.
Beratung des Managements zu technischen Themen und Zukunftsentwicklungen im Big-Data-Bereich.
Vorschläge für Sicherheitslösungen (z.B. eingeschränkte Delegierung auf F5 oder Authentifizierung für OpenTSDB) und PoCs.
Entwicklung in Data-Science-Projekten.
Entwicklung von Modellen zur Marktkategorisierung.
Visualisierung von Daten und Vorhersagen mit Jupyter und Grafana.
Integration mit JIRA.
3rd-Level-Support.
Sept. 2016 - Mai 2018
1 Jahr 9 Monaten
München, Deutschland
Senior Big Data Architect
Allianz Technology SE
Management einer großskaligen, mandantenfähigen, sicheren und hochverfügbaren Hadoop-Infrastruktur zur schnellen Datenverarbeitung für eine Vielzahl innovativer Kunden.
Pre-Sales: Onboarding neuer Kunden.
Architekturberatung, Planung, Kapazitätsschätzung und Roadmap-Erstellung für Hadoop-Cluster-Deployments.
Design, Implementierung und Wartung von unternehmensweiten Sicherheitsumgebungen für Hadoop (Kerberos, LDAP/AD, Sentry, Verschlüsselung in Transit, Verschlüsselung at Rest).
Installation und Konfiguration von Hadoop-Mandantenumgebungen, Updates, Patches, Versions-Upgrades.
Erstellung von Runbooks für Fehlersuche, Cluster-Wiederherstellung und Routinewartung.
Fehlerbehebung bei Hadoop-Anwendungen, Komponenten und Infrastrukturproblemen in großem Maßstab.
3rd-Level-Support (DevOps) für geschäftskritische Anwendungen und Use Cases.
Evaluierung und Vorschlag neuer Tools und Technologien zur Unterstützung der globalen Allianz-Organisation.
Enge Zusammenarbeit mit Infrastruktur-, Netzwerk-, DB-, Applikations-, BI- und Data-Science-Teams.
Entwicklung in Fraud-Detection-Projekten einschließlich Machine Learning.
Design und Aufbau einer Microsoft Revolution (Microsoft R Open) Data-Science-Plattform für Modelltraining auf Microsoft Azure und On-Premise für Fraud Detection mit Docker und Terraform.
Entwicklung in Supply-Chain-Analytics-Projekten (z.B. GraphServer für Graph-Queries auf in HDFS gespeicherten Daten).
Umstellung interner Teamprozesse auf Agile/SCRUM.
Entwicklung von Kafka-basierten Use Cases.
ClickStream:
Producer: Aggregator für gestreamte URLs von Webseiten über REST API oder andere Quellen (z.B. Oracle).
Consumer: Flink-Job, der nach Pre-Processing (Sanity Check, Extraktion von Zeitinformationen) Daten als XML-Dateien in HDFS speichert.
Producer: Custom Producer, der Dokumente aus einem Shared File System liest und in Kafka schreibt.
Consumer: Spark Streaming-Job, der nach Pre-Processing Dokumente an die UIMA-Plattform zur Klassifizierung sendet. Nach der Klassifizierung werden die Daten in HDFS für weitere Batch-Verarbeitung gespeichert.