Schlagworte
Representational State Transfer (REST)
Hypertext Application Language (HAL)
Functional Reactive Programming (FRP)
Reactive Streams
Lead Software Architect
Teamcoaching
Open Source
Spring
SOAP
Java
C++
C#
.NET
Apache
XML
Event Sourcing
Active Record
apache kafka
Apache Kafka Streams
Apache Kafka Connect
Debezium
Model-Driven Architecture
Refactoring
Backend
NodeJS
Javascript
Typescript
jQuery
streaming
Domain-Driven Design (DDD)
Actor-Modell
AKKA
Envoy Proxy
Service Mesh
Docker
Kubernetes
Scala
Apache Pulsar
Skills
Projekte:
07/2019 - 03/2020: Analyse eines produktiven Bestandsystems, Konzeption einer verteilten Zielarchitektur samt Refactoring- und
Migrationsstrategien, Implementierung von Teilsystemen und technologischer Knowhow-Transfer im Team als Software Architect und Software Engineer für eine Umstellung eines monolithischen Altsystems in eine vollständig skalierbare, verteilte und reaktive Data-Science-Plattform für ein Analytics-Unternehmen in der Touristik.
Umgebung / Technologien: Java 8, Scala 2.13, Functional Programming, Actor Model, Akka, Streaming, Event Sourcing, Akka Streams, Apache Pulsar, Apache Kafka, Spark, Maven, REST, HATEOAS, HAL, HTTP/2, Hadoop, HDFS, Spring Boot, Spring WebFlux, OAuth 2.0, JWT, Python 3.6, quart, hyercorn, scikit-learn, Docker, Kubernetes.
05/2019 - 06/2019: Analyse eines produktiven Bestandsystems und Konzeption einer Zielarchitektur samt Refactoring- und Migrationsstrategie als Software Architect für die schrittweise Umstellung eines monolithischen Altsystems in klassischer Drei-Schichten-Architektur in ein vollständig horizontal skalierbares, verteiltes, reaktives System für ein Logistik-Unternehmen.
Umgebung / Technologien: Java 8, Actor Model, Event Sourcing, Domain-Driven Design, Service Mesh, Akka, Apache Pulsar, Envoy Proxy, Java Control Plane, Maven 3, gRPC, REST, HATEOAS, HAL, HTTP Caching, Netflix Zuul 2, LevelDB.
05/2019 - 05/2019: Entwurf und Implementierung einer hausinternen Generierung von PDF-Rechnungen gemäß ZUGFeRD 2 Final als Entwickler aus XRechnung-Dokumenten im UN/CEFACT Cross Industry Invoice (CII)-Syntax.
Umgebung / Technologien: XSLT, XSL-FO, Xalan-Java 2.7.2, Apache FOP 2.3, Java 8, Mustang 1.5.1
09/2018 - 05/2019: Konzeption und Implementierung einer Service Mesh-Lösung als Software Architect für ein sich dynamisch zur Laufzeit anpassendes, verteiltes Set an Microservices (Self-Healing, TLS Certificate & Key Rotation) mit Envoy Proxy für einen Hersteller von Wiege-Systemen.
Umgebung / Technologien: Java 8, Spring 4, Spring Boot, Envoy Proxy, Java Control Plane, Maven 3, gRPC, REST, HATEOAS, HAL
03/2018 - 08/2018: Konzeption und prototypische Implementierung einer Microservices-Systemlandschaft als Software Architect sowie Konzeption und Implementierung einer kontinuierlichen Live-Synchronisierung von Daten von Oracle nach MariaDB als Entwickler als Vorbereitung der Migration einer monolithischen Datenpflege-Anwendung einer öffentlich-rechtlichen Sendeanstalt von Active Record nach Event Sourcing.
Umgebung / Technologien: Java 8, Spring 4, Spring Boot, Project Reactor, Oracle 11.2g, Change Data Capture, Oracle LogMiner, MariaDB, Kafka Connect, Debezium, Apache Kafka, Event Sourcing, Kafka Streams, Maven 3, REST, HATEOAS, HAL
10/2015 - 03/2018: Grundlegendes Refactoring und Weiterentwicklung einer Microservices-Systemlandschaft als Lead Software Architect sowie Entwurf und Entwicklung von Microservices als Entwickler für ein Web-Portal eines Finanzdienstleisters im Bereich Forderungsmanagement und Factoring auf Basis von Java, Spring, Kafka, MongoDB, REST, HATEOAS und HAL mit einem Wechsel eines produktiven Bestandsystems mit ~50 Microservices auf Basis von Active Record hin zu einem besser wart- und skalierbaren Zielsystem auf Basis von Event Sourcing.
Umgebung / Technologien: Java 8, Spring 4, Spring Boot, Event Sourcing, DDD, Apache Kafka, Apache Kafka Streams, Apache Kafka Connect, Debezium, Spring Data, Spring MVC, Maven 3, OpenID Connect, OAuth 2.0, Apache PDFBox 2.0.0, JUnit 4, MongoDB 3, STS, REST, HATEOAS, HAL
07/2015 - 09/2015: Tätigkeit als System-Architekt für die Einführung eines Single-Sign-On-Systems über mehrere Portale eines deutschen Konzerns sowie Aufbau und Integration eines Self-Service-Systems innerhalb eines zentralen Portals.
Umgebung / Technologien: OpenID Connect, Java / JEE, Enterprise Architect.
12/2014 - 06/2015: Unterstützung eines Entwickler-Teams als Scrum-Master sowie Entwicklung von Server-Komponenten für ein Unternehmen im Bereich Public Security.
Umgebung / Technologien: MS Visual Studio 2013, TFS, (Managed) C++ / C, FFmpeg, RTSP, RTP, OpenCV.
01/2012 - 11/2014: Entwicklung von REST-/HATEOAS-basierten Middleware-Diensten, welche die Auflistung und Bewerbung, den Verkauf sowie die Auslieferung von Inhalten eines deutschen Video-On-Demand-Portals ermöglichen; Aufbau und Weiterentwicklung einer Continuous Integration- und Continuous Deployment-Umgebung.
Umgebung / eingesetzte Technologien: Microsoft Visual Studio 2010, C#, .NET 4, MSBuild, Apache Ant, ASP.NET MVC 3, IIS 7, NInject, NUnit, JUnit, NuGet, Subversion, TeamCity, REST / HATEOAS, XML Schema, XML, JSON
10/2011 - 12/2011: Überarbeitung und Wartung eines Silverlight-basierten Media-Players eines deutschen Video-On-Demand-Portals.
Umgebung / eingesetzte Technologien: Silverlight 3, Microsoft Visual Studio 2010, C#, MSBuild, Subversion, Jenkins, XML
10/2009 - 09/2011: Konzeption, technische Projektleitung von einem Entwickler sowie Implementierung von Komponenten eines web-gestützten Systems zur vollautomatisierten, niederschwelligen Aufzeichnung und Live-Streaming von universitären Lehrveranstaltungen unter Einsatz von Framegrabber-Hardware. Alleinstellungsmerkmale sind u.a. die Live-Konvertierung von VGA-Projektor-Signalen und Mikrofon-Ton auf Basis der libavcodec in H.264 / AAC-komprimierte Pakete, welche live per JMS auf einem Eventbus weiterverteilt und als MP4-Datei aufgezeichnet sowie per RTMP an Flash-fähige Clients gestreamt wurden.
Umsetzung / eingesetzte Technologien: HTML, CSS, REST / HATEOAS, JavaScript, jQuery, ActionScript, Flex SDK, Java, JNI, C++, V4L, FFmpeg (libavcodec), Spring, Quartz Scheduler, Jersey, Hibernate, PostgreSQL, Apache Tomcat, Apache ActiveMQ (Java-Server und native CPP-Library), Red5 Flash Streaming Server, CAS Single-Sign-On, Ubuntu Server, VirtualBox, Subversion
04/2009 - 09/2011: Konzeption, technische Projektleitung von 5 Entwicklern sowie Implementierung eines web-gestützten Systems zur Bereitstellung offener, universitärer Lehr-/Lern-Materialien via Download und Streaming einschließlich verteiltem Backend zur Konvertierung.
Umgebung / eingesetzte Technologien: HTML, CSS, JavaScript, jQuery, Java, FFmpeg (commandline), Spring, Hibernate, PostgreSQL, Apache Tomcat, Apache ActiveMQ, Apache ServiceMix, Direct Web Remoting, CAS Single-Sign-On, Jenkins, Artifactory, Apache Ant, Apache Ivy, Ubuntu Server, VMWare vSphere, Subversion
07/2004 - 09/2011: Konzeption und technische Begleitung mehrerer Projekte mit diversen Open-Source-Veröffentlichungen; zu den so umgesetzten Projekten zählen unter anderem: ein freier Java-ASN.1-Compiler mit PER-Unterstützung, welcher den erforderlichen ASN.1/PER-Sprachumfang besitzt, um bspw. das H.323-Protokoll für Videokonferenz-Anrufe in eine funktionsfähige Client-Bibliothek in Java zu übersetzen, mit welcher H.323-Anrufe getätigt werden können; Java-Bibliotheken zur Generierung von ISO9660- sowie UDF-Dateisystemabbildern für CDs und DVDs samt der Einbindung via Ant-Tasks; eine Java-Bibliothek zum Deployment von Anwendungen auf JCOP-basierten Smartcards; einer Java-Bibliothek für das native Remote Desktop Protocol (RDP) zur graphischen Fernsteuerung von Windows-Rechnern.
06/2003 - 06/2004: Konzeption und Entwicklung eines verteilten, web-gestützten Systems zur Montage- und Prüfungsunterstützung von Nutzfahrzeug-Bordcomputern bei einem deutschen Automobil-Zulieferer. Umgebung / eingesetzte Technologien: C / C++, Visual Studio, Java, Jini, RMI, JNI, Canbus, Windows
Akademischer Werdegang:
10/2017 - 03/2019: Vertretungsprofessur "Multimedia und Grundlagen der Informatik" in 50% Teilzeit am Fachbereich Informatik der Hochschule Darmstadt für die Fachgebiete Multimedia (Fokus Web, REST / HATEOAS / HAL und funktionale, reaktive Programmierung) und Grundlagen der Informatik.
07/2004 - 07/2010: Promotion zum Dr.-Ing. im Bereich Informatik an der Technischen Universität Darmstadt im Bereich der formalen, deklarativen Datenformat-Beschreibung mit Note "sehr gut"
10/1998 - 03/2003: Studium zum Diplom-Informatiker (FH) an der Fachhochschule Darmstadt mit den Schwerpunkten Systementwicklung und Graphische Datenverarbeitung, Diplom mit Note "sehr gut" (1,3)
Zertifizierungen:
11/2018: Certified Professional For Requirements Engineering - Foundation Level (IREB)
09/2014: Certified Professional for Software Architecture - Foundation Level (iSAQB)
07/2019 - 03/2020: Analyse eines produktiven Bestandsystems, Konzeption einer verteilten Zielarchitektur samt Refactoring- und
Migrationsstrategien, Implementierung von Teilsystemen und technologischer Knowhow-Transfer im Team als Software Architect und Software Engineer für eine Umstellung eines monolithischen Altsystems in eine vollständig skalierbare, verteilte und reaktive Data-Science-Plattform für ein Analytics-Unternehmen in der Touristik.
Umgebung / Technologien: Java 8, Scala 2.13, Functional Programming, Actor Model, Akka, Streaming, Event Sourcing, Akka Streams, Apache Pulsar, Apache Kafka, Spark, Maven, REST, HATEOAS, HAL, HTTP/2, Hadoop, HDFS, Spring Boot, Spring WebFlux, OAuth 2.0, JWT, Python 3.6, quart, hyercorn, scikit-learn, Docker, Kubernetes.
05/2019 - 06/2019: Analyse eines produktiven Bestandsystems und Konzeption einer Zielarchitektur samt Refactoring- und Migrationsstrategie als Software Architect für die schrittweise Umstellung eines monolithischen Altsystems in klassischer Drei-Schichten-Architektur in ein vollständig horizontal skalierbares, verteiltes, reaktives System für ein Logistik-Unternehmen.
Umgebung / Technologien: Java 8, Actor Model, Event Sourcing, Domain-Driven Design, Service Mesh, Akka, Apache Pulsar, Envoy Proxy, Java Control Plane, Maven 3, gRPC, REST, HATEOAS, HAL, HTTP Caching, Netflix Zuul 2, LevelDB.
05/2019 - 05/2019: Entwurf und Implementierung einer hausinternen Generierung von PDF-Rechnungen gemäß ZUGFeRD 2 Final als Entwickler aus XRechnung-Dokumenten im UN/CEFACT Cross Industry Invoice (CII)-Syntax.
Umgebung / Technologien: XSLT, XSL-FO, Xalan-Java 2.7.2, Apache FOP 2.3, Java 8, Mustang 1.5.1
09/2018 - 05/2019: Konzeption und Implementierung einer Service Mesh-Lösung als Software Architect für ein sich dynamisch zur Laufzeit anpassendes, verteiltes Set an Microservices (Self-Healing, TLS Certificate & Key Rotation) mit Envoy Proxy für einen Hersteller von Wiege-Systemen.
Umgebung / Technologien: Java 8, Spring 4, Spring Boot, Envoy Proxy, Java Control Plane, Maven 3, gRPC, REST, HATEOAS, HAL
03/2018 - 08/2018: Konzeption und prototypische Implementierung einer Microservices-Systemlandschaft als Software Architect sowie Konzeption und Implementierung einer kontinuierlichen Live-Synchronisierung von Daten von Oracle nach MariaDB als Entwickler als Vorbereitung der Migration einer monolithischen Datenpflege-Anwendung einer öffentlich-rechtlichen Sendeanstalt von Active Record nach Event Sourcing.
Umgebung / Technologien: Java 8, Spring 4, Spring Boot, Project Reactor, Oracle 11.2g, Change Data Capture, Oracle LogMiner, MariaDB, Kafka Connect, Debezium, Apache Kafka, Event Sourcing, Kafka Streams, Maven 3, REST, HATEOAS, HAL
10/2015 - 03/2018: Grundlegendes Refactoring und Weiterentwicklung einer Microservices-Systemlandschaft als Lead Software Architect sowie Entwurf und Entwicklung von Microservices als Entwickler für ein Web-Portal eines Finanzdienstleisters im Bereich Forderungsmanagement und Factoring auf Basis von Java, Spring, Kafka, MongoDB, REST, HATEOAS und HAL mit einem Wechsel eines produktiven Bestandsystems mit ~50 Microservices auf Basis von Active Record hin zu einem besser wart- und skalierbaren Zielsystem auf Basis von Event Sourcing.
Umgebung / Technologien: Java 8, Spring 4, Spring Boot, Event Sourcing, DDD, Apache Kafka, Apache Kafka Streams, Apache Kafka Connect, Debezium, Spring Data, Spring MVC, Maven 3, OpenID Connect, OAuth 2.0, Apache PDFBox 2.0.0, JUnit 4, MongoDB 3, STS, REST, HATEOAS, HAL
07/2015 - 09/2015: Tätigkeit als System-Architekt für die Einführung eines Single-Sign-On-Systems über mehrere Portale eines deutschen Konzerns sowie Aufbau und Integration eines Self-Service-Systems innerhalb eines zentralen Portals.
Umgebung / Technologien: OpenID Connect, Java / JEE, Enterprise Architect.
12/2014 - 06/2015: Unterstützung eines Entwickler-Teams als Scrum-Master sowie Entwicklung von Server-Komponenten für ein Unternehmen im Bereich Public Security.
Umgebung / Technologien: MS Visual Studio 2013, TFS, (Managed) C++ / C, FFmpeg, RTSP, RTP, OpenCV.
01/2012 - 11/2014: Entwicklung von REST-/HATEOAS-basierten Middleware-Diensten, welche die Auflistung und Bewerbung, den Verkauf sowie die Auslieferung von Inhalten eines deutschen Video-On-Demand-Portals ermöglichen; Aufbau und Weiterentwicklung einer Continuous Integration- und Continuous Deployment-Umgebung.
Umgebung / eingesetzte Technologien: Microsoft Visual Studio 2010, C#, .NET 4, MSBuild, Apache Ant, ASP.NET MVC 3, IIS 7, NInject, NUnit, JUnit, NuGet, Subversion, TeamCity, REST / HATEOAS, XML Schema, XML, JSON
10/2011 - 12/2011: Überarbeitung und Wartung eines Silverlight-basierten Media-Players eines deutschen Video-On-Demand-Portals.
Umgebung / eingesetzte Technologien: Silverlight 3, Microsoft Visual Studio 2010, C#, MSBuild, Subversion, Jenkins, XML
10/2009 - 09/2011: Konzeption, technische Projektleitung von einem Entwickler sowie Implementierung von Komponenten eines web-gestützten Systems zur vollautomatisierten, niederschwelligen Aufzeichnung und Live-Streaming von universitären Lehrveranstaltungen unter Einsatz von Framegrabber-Hardware. Alleinstellungsmerkmale sind u.a. die Live-Konvertierung von VGA-Projektor-Signalen und Mikrofon-Ton auf Basis der libavcodec in H.264 / AAC-komprimierte Pakete, welche live per JMS auf einem Eventbus weiterverteilt und als MP4-Datei aufgezeichnet sowie per RTMP an Flash-fähige Clients gestreamt wurden.
Umsetzung / eingesetzte Technologien: HTML, CSS, REST / HATEOAS, JavaScript, jQuery, ActionScript, Flex SDK, Java, JNI, C++, V4L, FFmpeg (libavcodec), Spring, Quartz Scheduler, Jersey, Hibernate, PostgreSQL, Apache Tomcat, Apache ActiveMQ (Java-Server und native CPP-Library), Red5 Flash Streaming Server, CAS Single-Sign-On, Ubuntu Server, VirtualBox, Subversion
04/2009 - 09/2011: Konzeption, technische Projektleitung von 5 Entwicklern sowie Implementierung eines web-gestützten Systems zur Bereitstellung offener, universitärer Lehr-/Lern-Materialien via Download und Streaming einschließlich verteiltem Backend zur Konvertierung.
Umgebung / eingesetzte Technologien: HTML, CSS, JavaScript, jQuery, Java, FFmpeg (commandline), Spring, Hibernate, PostgreSQL, Apache Tomcat, Apache ActiveMQ, Apache ServiceMix, Direct Web Remoting, CAS Single-Sign-On, Jenkins, Artifactory, Apache Ant, Apache Ivy, Ubuntu Server, VMWare vSphere, Subversion
07/2004 - 09/2011: Konzeption und technische Begleitung mehrerer Projekte mit diversen Open-Source-Veröffentlichungen; zu den so umgesetzten Projekten zählen unter anderem: ein freier Java-ASN.1-Compiler mit PER-Unterstützung, welcher den erforderlichen ASN.1/PER-Sprachumfang besitzt, um bspw. das H.323-Protokoll für Videokonferenz-Anrufe in eine funktionsfähige Client-Bibliothek in Java zu übersetzen, mit welcher H.323-Anrufe getätigt werden können; Java-Bibliotheken zur Generierung von ISO9660- sowie UDF-Dateisystemabbildern für CDs und DVDs samt der Einbindung via Ant-Tasks; eine Java-Bibliothek zum Deployment von Anwendungen auf JCOP-basierten Smartcards; einer Java-Bibliothek für das native Remote Desktop Protocol (RDP) zur graphischen Fernsteuerung von Windows-Rechnern.
06/2003 - 06/2004: Konzeption und Entwicklung eines verteilten, web-gestützten Systems zur Montage- und Prüfungsunterstützung von Nutzfahrzeug-Bordcomputern bei einem deutschen Automobil-Zulieferer. Umgebung / eingesetzte Technologien: C / C++, Visual Studio, Java, Jini, RMI, JNI, Canbus, Windows
Akademischer Werdegang:
10/2017 - 03/2019: Vertretungsprofessur "Multimedia und Grundlagen der Informatik" in 50% Teilzeit am Fachbereich Informatik der Hochschule Darmstadt für die Fachgebiete Multimedia (Fokus Web, REST / HATEOAS / HAL und funktionale, reaktive Programmierung) und Grundlagen der Informatik.
07/2004 - 07/2010: Promotion zum Dr.-Ing. im Bereich Informatik an der Technischen Universität Darmstadt im Bereich der formalen, deklarativen Datenformat-Beschreibung mit Note "sehr gut"
10/1998 - 03/2003: Studium zum Diplom-Informatiker (FH) an der Fachhochschule Darmstadt mit den Schwerpunkten Systementwicklung und Graphische Datenverarbeitung, Diplom mit Note "sehr gut" (1,3)
Zertifizierungen:
11/2018: Certified Professional For Requirements Engineering - Foundation Level (IREB)
09/2014: Certified Professional for Software Architecture - Foundation Level (iSAQB)
Projekthistorie
Finanzdienstleister
Public Security
Telekommunikationssektor
Logistikdienstleister
Automobilindustrie (Zulieferer im Bereich Nutzfahrzeuge)
universitäres Umfeld
Public Security
Telekommunikationssektor
Logistikdienstleister
Automobilindustrie (Zulieferer im Bereich Nutzfahrzeuge)
universitäres Umfeld
Reisebereitschaft
Verfügbar in den Ländern
Deutschland
Verfügbar ab dem 01. April 2020 via Remote im Home-Office, nach Abklingen der Corona-Krise auf das Rhein-Main-Gebiet beschränkt.