Portfolio und Projekte

Studium und Zertifikate

Weiterbildung

  • Architecting for Continuous Delivery and Zero Downtime (2 Tage)- Axel Fontaine
  • Implementing Domain Driven Design (3 Tage)- Vaughn Vernon
  • RHCSE8 - Crash Course - Sander van Vugt
  • PCI-DSS - Secure Coding
  • Scrum & Kanban

Projekterfahrung

DevOps-Engineer, Finanzdienstleistung, Frankfurt (30 Monate)

Herr Herbert betreute die Kubernetes-Cluster und befasste sich mit deren Betrieb und Weiterentwicklung sowie verschiedenen Themen im Bereich Migration und Betrieb in der Azure-Cloud

Seine Tätigkeit und Themen umfassten:

  • Konfiguration und Pflege der Kubernetes-Systeme
  • Pflege und Weiterentwicklung der Kubernetes-Konfiguration (jsonnet-basiert)
  • Sicherstellung des reibungslosen Betriebs an 2 Standorten sowie in der Azure Cloud
  • Unterstützung und Support der Entwickler von Microservices
  • Ganzheitliche Analyse, Qualifizierung und Troubleshooting der betreuten Systeme
  • Nutzung von Azure:
    • Azure AKS
    • Azure DNS
    • Azure Storage
    • Azure Container Registry
    • Azure DevOps
  • Aufbau und Pflege der Azure Container Registry (ACR)
  • Automatisierter Aufbau der Container-Images mit ACR-Tasks zusammen mit Azure Devops-Git Repositories
  • Performanceanalysen erstellen und Kennzahlen ermitteln
  • Backups mit Velero nach Azure Storage
  • GitOps mit FluxCD und Azure Devops Repo/Github
  • Logging mit fluentd nach Azure Log Analytics
  • Erstellung und Pflege der Dokumentation
  • Kontinuierliche Optimierung der Prozesse und Abläufe im eigenen Aufgabenbereich
  • Mitwirkung (Konzepterstellung, Wartung & Betrieb) an zukünftiger Cloud Strategie (Azure)
  • Betrieb und Administration von Lowcode-Anwendungen im Modus „Mendix Private Cloud“ in Kubernetes
  • Umzug von Kubernetes-Clustern von Giantswarm (onprem und Azure) nach Azure AKS
  • Aufbau und Pflege von Monitoring und Alerting
  • Pflege der HAProxy Loadbalancer für Kubernetes
  • Infrastructure as Code von u.a. AKS, DNS, Netzwerk mit Terraform in Azure-Cloud
  • Entwicklung und Pflege von Helm-Templates für Microservices
  • Entwicklung und Weiterentwicklung von Azure Functions

Technologien/Methoden

Kubernetes, Docker, rkt, Azure Container Registry, Azure DevOps, Azure Storage, Azure DNS, DevOps, Git, GitOps, Flux/FluxCD, Prometheus, Mendix, HAProxy, Nginx, Terraform, Velero, Puppet, Foreman, Helm, Zabbix, SealedSecrets, CentOS 7, IntelliJ IDEA, Go, Jenkins

Software- und DevOps-Engineer, Bank, Frankfurt (6 Monate)

Herr Herbert arbeitete als Softwareentwickler im Teilprojekt des Multiprojekts IT- Zielbild, welches die Schlussnotenverarbeitung aus der Orderverarbeitung herauslösen soll.

Ziel des Teilprojekts ist es, die alte Host-basierte Anwendung in eine moderne Microservice-basierte Architektur auf den Java-Stack zu überführen. Zu den Aufgaben zählten neben Entwurf und Programmierung des Microservices zur Schlussnotenverarbeitung auch die Pflege und Weiterentwicklung der Build- Pipeline mit GitLab CI

Seine Tätigkeit umfasste:

  • Mitarbeit im verteilten Scrum-Team (DE/HU)
  • Konzeption und Programmierung von Java-Komponenten im Spring Boot Framework
  • Umsetzung von Enterprise Integration Patterns mit Spring Integration
  • Implementierung eines Microservices zur Verarbeitung von Schlussnoten im Spring Boot-Framework
  • Kommunikation mit Host-Systemen über ESB und IBM MQ
  • Entwurf und Implementierung von Schemata zur Kommunikation mit auf dem Host-System verbleibenden Komponenten
  • Entwurf eines einheitlichen Schemas zur Repräsentation der Schlussnoteninformation, die von verschiedenen Börsen im FIX-Format geliefert wird.
  • Konzeption und Erstellung von Integrationstests der Anwendung mit IBM MQ und Oracle DB mit Docker Compose
  • Konzeption und Umsetzung der Akzeptanztests mit dem Gauge-Framework innerhalb der Gitlab-CI-Pipeline
  • Parallelisierung der Tests über verschiedene Branches
  • Erstellen von Ansible-Skripten zum Deployment der Anwendung in den Umgebungen Test, Staging und Produktion
  • Erstellung und Pflege der Build-Pipelines in GitLab

Technologien/Methoden:

Java 8, Docker, Docker Compose, Maven, Spring Boot, Spring Integration, JPA, Hibernate, Ansible, Jenkins, Git, Bitbucket, Jira, GitLab, GitLabCI, Nexus, IntelliJ Idea, IBM MQ, Oracle DB, Apache Kafka, Scrum

Software- und DevOps-Engineer, Bank, Frankfurt (9 Monate)

Herr Herbert arbeitete als Softwareentwickler im Teilprojekt des Multiprojekts IT- Zielbild, welches die Schlussnotenverarbeitung aus der Orderverarbeitung herauslösen soll. Ziel des Teilprojekts ist es, die alte Host-basierte Anwendung in eine moderne Microservice-basierte Architektur auf den Java-Stack zu überführen. Zu den Aufgaben zählten neben Entwurf und Programmierung des Microservices zur Schlussnotenverarbeitung auch der Aufbau verschiedener Proof-of-Concepts.

Seine Tätigkeit umfasste:

  • Mitarbeit im verteilten Scrum-Team (DE/HU)
  • Konzeption und Programmierung von Java-Komponenten im Spring Boot Framework
  • Implementierung eines Microservices zur Verarbeitung von Schlussnoten im Spring Boot-Framework
  • Kommunikation mit Host-Systemen über ESB und IBM MQ
  • Entwurf und Implementierung von Schemata zur Kommunikation mit auf dem Host-System verbleibenden Komponenten
  • Entwurf eines einheitlichen Schemas zur Repräsentation der Schlussnoteninformation, die von verschiedenen Börsen im FIX-Format geliefert wird.
  • Konzeption und Erstellung von Integrationstests für Kafka Streaming Pipelines mit Docker Compose
  • Konzeption und Umsetzung eines Proof-of-Concepts zur Verarbeitung von Schlussnoten in Apache Kafka
  • Aufbau von Integrationstest mit Docker Compose
  • Analyse und Erstellen von Ansible-Skripten zum Deployment der Anwendung in den Umgebungen Test, Staging und Produktion
  • Konzeption und Aufbau eines Proof-of-Concepts für Continuous-Delivery von Microservices mit Kubernetes

Technologien/Methoden:

Java 8, Docker, Docker Compose, QuickFix/J, Maven, Spring Boot, Ansible, Jenkins, Git, Bitbucket, Jira, GitLab, Nexus, IntelliJ Idea, IBM MQ, Oracle DB, Apache Kafka, Scrum, Kubernetes

DevOps Engineer - Build und Deployment - Finanzdienstleistungen (9 Monate)

Die Aufgaben umfassten:

  • die Migration von rkt-Containern zu Docker-Containern
  • die Migration von fleet-Orchestrierung zu Kubernetes
  • Aufbau und Pflege von Deployment-Pipelines für Spring-Boot basierte Software
  • Erarbeiten und Umsetzen von Continous-Delivery Pipelines
  • Erstellen von Continuous Integration Jenkins Builds
  • Inhouse-Coaching zu allen Fragen rund um Maven, Jenkins, Git
  • Aufbau, Betrieb und Pflege einer hybriden verteilten Build-Infrastruktur

Technologien/Methoden:

Linux-Container (rkt und Docker), Jenkins 2.x, Jenkins Pipeline, kubernetes / k8s, systemd, Ansible, Java, Maven, Spring Boot, Sonatype Nexus OSS, Atlassian Jira, Atlassian Bitbucket, SonarQube, Outlook

DevOps Engineer - Build und Deployment - Finanzdienstleistungen (12 Monate)

Herr Herbert arbeitete als DevOps Engineer in einem IT-Migrationsprojekt. Er war mit der Migration der Build- und Deployment-Infrastruktur auf Linux-Container betraut.

Für den Infrastrukturcode wurden Continuous Integration sowie Continuous Delivery Pipelines aufgebaut um die Anwendungen mit minimaler Downtime zu aktualisieren oder im Falle eines Failovers auf andere Lokationen zu transferieren.

Dabei galt der Hauptaugenmerk den Prinzipien Configuration as Code sowie Continuous Delivery um eine Reproduzierbarkeit der Build- und Deployment-Infrastruktur jederzeit zu gewährleisten und diese Systeme mit hoher Qualität stabil zu betreiben sowie langfristige Wartbarkeit der Konfiguration zu ermöglichen.

  • Konzeption und Umsetzung einer kontinuierlichen Build- und Deployment-Umgebung für Container-basierte Services
  • Entwicklung und Umsetzung eines Konzepts für Deployment-Pipelines für Services
  • Enge Zusammenarbeit als Schnittstelle zwischen Anwendungsentwicklung und Systemadministration
  • Umzug und Anpassung von auf VMs laufenden Diensten in Linux-Container
  • Migration von Java-basierten Anwendungen auf Container
  • Migration von Docker-Containern auf rkt
  • Implementierung einer verteilten und robusten Build-Architektur
  • Erarbeitung von einheitlichen Code-Richtlinien für die Java-Anwendungsentwicklung
  • Konzeption eines Delivery-Verfahrens für Linux-Container basierte Services
  • Verbesserung der Build-Dauer durch Optimierung der Maven-Builds
  • Optimierung der bestehenden Deployment-Verfahren
  • Automatisierung von Build und Deployment

Technologien/Methoden:

Linux-Container (rkt und Docker), Jenkins 2.x, Jenkins Pipeline, Jenkins JOB DSL, Groovy, CoreOS, fleet, Fedora, CentOS, systemd, Swarm, goss, etcd, Sonatype Nexus OSS, Git, Sonarqube, Lotus Notes

DevOps Engineer - Software-Integration - Finanzdienstleistungen (20 Monate)

Herr Herbert arbeitete im Team Integration eines Finanzdienstleisters als DevOps-Engineer an der Weiterentwicklung der Build- und Deploymentinfrastruktur und der dort verwendeten Tools und Plugins. Er war Ansprechpartner bei Fragen rund um Jenkins sowie Maven und wirkte in verschiedenen Task-Forces mit.

  • Steuerung des Releaseprozesses über verschiedene Umgebungen
  • Durchführung von Builds und komplexen Deployments
  • Verantwortung für Releasewechsel in Produktion
  • Schnittstellen zu anderen Aufgabengebieten (Anwendungsentwicklung, Entwickler von Datenbankskripten, Serveradmins, Datenbankadministratoren, Qualitätssicherung)
  • Weiterentwicklung und Optimierung der eigenen Tools (Maven-Plugins)
  • Administration der Jenkins-basierten Automatisierungs-Umgebung
  • Koordination, Betreuung und Übernahme von Upgrades (Java, Git, Tomcat etc.)

Herr Herbert setzte eine Container-basierte Build-Umgebung mit Hilfe von Docker bzw. Rocket sowie CoreOS auf und führte verteilte Builds ein, um eine schnellere Auslieferung der im Haus entwickelten Software zu ermöglichen.

Er arbeitete ein angepasstes Continuous-Integration Modell aus, was den im Haus tätigen Software-Entwicklern ein schnelles Feedback über ihre Arbeit gibt und die bessere Integration der Komponenten in die komplexe Gesamt-Sofware gewährleistet.

Technologien/Methoden:

Jenkins, Java, Sonatype Nexus, Maven, ant, Eclipse, IntelliJ IDEA, Docker, IPv6, rkt (Rocket), Fedora, CentOS, Atlassian JIRA + Confluence + Stash/Bitbucket, SonarQube, Git, Camunda BPM

Software Engineering - Tourismus (ca. 2,5 Jahre)

Als Java-Entwickler bei einem Reservierungs- und Distributionsdienstleister für die internationale Hotellerie war Herr Herbert Teil des agilen Teams.Er leitete die Entwicklung einer Hotel-Reservierungs-Software zum Einsatz in Call-Centern und war für Architektur- und Implementierungsdetails zuständig. Er war an der Planung und technischen Konzeption beteiligt und arbeitete als Teil des agilen Scrum-Teams an der Entwicklung von Frontend- und Backendsystemen.

Herr Herbert führte automatisierte Softwaretests ein und baute eine Continuous-Integration-Umgebung auf um die Softwarequalität nachhaltig zu verbessern. Er war Inhouse-Experte bei allen Fragen zu Eclipse, Maven und Jenkins und fungierte darüber hinaus als Ansprechpartner bei Fragen zum Thema Continuous-Integration und Builds.

Seine Tätigkeit umfasste:

  • Aktualisierung und Pflege bestehender Java-Softwaresysteme
  • Java-Webstart Anwendung - Rich Internet Application (Swing)
  • Webapplikationen mit JSF, Struts und JSP
  • Erstellung technischer Konzepte und Designs basierend auf fachlichen Vorgaben
  • Code-Reviews bzgl. Softwarequalität sowie PCI-Compliance
  • Planung, Aufbau und Betrieb einer Continuous-Integration Umgebung (Jenkins, Artifactory)
  • Verbesserung und Pflege der Build-Management Konfiguration sowie der Build-Skripte (Maven, ant, bash)
  • Refactoring von Legacy-Code/-Modulen um Testbarkeit und bessere Wartbarkeit zu erreichen
  • Einführung und Weiterentwicklung von automatisierten Tests (JUnit, Mockito)
  • Einführung von Qualitätsmaßen und statischer Quellcodeanalyse
  • Analyse von Java-spezifischen Problemen mit Hilfe von Betriebssystem- Mitteln
  • Release-Planung und Deployment von Java-Enterprise Anwendungen
  • Migration von Anwendungen auf Maven
  • Interaktion mit dem Produktmanagement und der Qualitätskontrolle
  • Erstellung von User Stories in Zusammenarbeit mit dem Produktmanagement
  • Analyse und Dokumentation der Softwarearchitektur
  • Durchführung interner Schulungen zu: testgetriebener Entwicklung, JUnit/Mockito, Maven, Jenkins

Technologien/Methoden:

Java SE, Java EE, JPA, Hibernate, Swing, Hessian, WebLogic, Tomcat, HTML, Velocity, Flying Saucer, iText, Jenkins/Hudson, Artifactory, Maven, ant, Eclipse, Cobertura, JUnit, Mockito, Hamcrest, PMD, Findbugs, jvisualvm, jconsole, jMeter, Betriebssystemmittel, Scrum, GIT, SVN

Forschung und Entwicklung - TU Darmstadt (04/2009 - 10/2011)

Forschungsthema: „Crosslingual Aspects in Semantic Information Retrieval“ An der TU Darmstadt arbeitete Herr Herbert am Forschungs- und Entwicklungsprojekt SIGMUND. Er koordinierte die Zusammenarbeit mit den Partnerfirmen und war maßgeblich an der Entwicklung und Planung der Software-Komponenten beteiligt. Darüber hinaus hatte er Verantwortung für die im Rahmen der Forschungs- und Entwicklungsarbeit erstellten Komponenten. Zusätzlich übernahm er Verantwortung in der IT-Administration der Arbeitsgruppe.

Im Rahmen der Forschungstätigkeit hielt er mehrere Vorträge im Bereich multilingualer Suchverfahren.

  • Forschungs- und Entwicklungsarbeit im Bereich semantischer Suchverfahren/ Information Retrieval im BMBF Forschungsprojekt SIGMUND
  • Konzeption und Implementierung von Softwarekomponenten im Apache UIMA Framework (Java, JUnit, Spring, Lucene, Groovy, Maven, Subversion)
  • Anbindung von Drittsystemen mit Webservices (SOAP, Axis2, Java)
  • Analyse der erstellten Software im Hinblick auf Funktionalität und Performanz
  • Planung, Umsetzung und Betrieb von programmatischen Schnittstellen
  • Koordination der Zusammenarbeit mit Partnerfirmen
  • Erstellung der Fachspezifikation und fachspezifischer Berichte
  • Vorträge über Forschungsergebnisse auf internationalen Konferenzen
  • Konzeption und Durchführung von Lehrveranstaltungen
  • Übung zur Vorlesung - „Natural Language Processing for the Web“
  • Programmierprojekt - „Unstructured Information Management“
  • Forschungsarbeit zu mehrsprachigen Suchverfahren auf großen Datenmengen im Intellectual Property (IP) Bereich
  • Mitarbeit im Administrationsteam am Fachgebiet (XenServer, Puppet, Linux)
  • Teilnahme an Podiumsdiskussion CLEF 2009 Intellectual Property
  • Teilnahme am Program-Committee des TIR 2011 - 8th International Workshop on Text-based Information Retrieval

Technologien/Methoden

Java, Java EE 5, Groovy, XML, Lucene, Terrier, Web services, Apache Axis, SOAP, Ubuntu Linux, Debian Linux, Subversion, Maven, Artifactory, Jenkins

Beratung/Implementierung Suchfunktion - REXVINI (08/2010 - 11/2010)

Herr Herbert arbeitete als Experte für Suchtechnologien in der Planung und Entwicklung der Suchfunktion für eine Internet-Weindatenbank.

Seine Arbeit umfasste:

  • Durchführung einer Anforderungsanalyse
  • Konzeption und Umsetzung einer Suchfunktion für eine Webapplikation (PHP, Zend Lucene, MySQL, Symfony)
  • Implementierung von UI Prototypen für die Suchmaske (HTML, CSS)

Technologien/Methoden

Symfony, PHP, HTML, CSS, Lucene, Zend, Debian Linux, MySQL, Subversion, Eclipse

Softwareentwickler - Vertragswesen (09/2007 - 05/2008)

Als Entwickler bei der Firma SealBase entwickelte Herr Herbert mehrere Module der SealBase Vertragsmanagementlösung. Seine Aufgaben waren:

  • Entwicklung, Bugfixing und Test eines Softwareprodukts für Vertragsmanagement (C#, MS SQL, Oracle, ASP.NET)
  • Implementierung von Proof-of-Concepts (ASP.NET, Oracle)

Technologien/Methoden

XHTML, CSS, JavaScript, C#, ADO.NET, ASP.NET, AJAX, Oracle XE 10g, Windows, MS SQL, SQL Developer, Subversion

Berater/Softwareentwicklung - Darmstadt (10/2005 - 03/2009)

Als Softwareentwickler war Herr Herbert für die Entwicklung und die Pflege der eines Softwareprodukts zuständig und an Planung und Umsetzung mehrerer Kundenprojekte beteiligt.

Seine Aufgaben waren:

  • Entwicklung und Pflege eines Softwareprodukts zum Risikomanagement (VB6, MS SQL)
  • Weiterentwicklung der Reports (Crystal Reports)
  • Schulung und Einarbeitung neuer Mitarbeiter
  • Code-Reviews bzgl. Einhaltung der Style-Guides und Performanz
  • Konzeption und Umsetzung verschiedener Softwareprojekte
  • Lagerverwaltungssoftware (C#, MS SQL)
  • Webanwendung zur Katalogisierung von Hard- und Software (ASP.NET)
  • Hardwaretreiber für Windows-Betriebssysteme (C/C++)
  • Konzeption und Entwicklung von Lösungen vor Ort bei div. Kunden
  • Entwicklung der Install-Shield-Skripte zur automatisierten Installation auf Windows-PCs
  • Entwicklung von Skripten zur Verarbeitung, Bereinigung und Migration von Kundendaten aus einer Excel-basierten Lösung in eine Datenbank
  • Paketierung und Testen für versch. Windowsplattformen (Installshield, VMware)

Technologien/Methoden

VB, .NET, ASP.NET, C#, MS SQL, C, C++, Installshield, VMware, Windows