04/09/2026 updated

**** ******** ****
verified
Premium member
100 % available

DevOps und Cloud Engineer mit Entwicklerbackground

București, Romania
Worldwide
IHK Fachinformatiker für Anwendungsentwicklung (FIAE)
București, Romania
Worldwide
IHK Fachinformatiker für Anwendungsentwicklung (FIAE)

Profile attachments

Vorstellung Pascal Giannakakis DevOps und Cloud Engineer.pdf
Pascal Giannakakis 2026-03-10 Profil.pdf
Pascal Giannakakis 2026-03-10 Profil.docx

Kenntnisse

Für eine detaillierte Beschreibung meiner Kenntnisse und Projekte nutzen Sie bitte die Projekthistorie.

A
#Ansible
#Apache
#APM
#ArgoCD
#Artifactory
#Automation
#AWS
#AWX
#Azure
B
#Bamboo
#Bash
#Bitbucket
#Buildmanagement
C
#C
#CD
#CentOS
#CI
#CloudComputing
#ConcourseCI
#Confluence
#CoreMedia
D
#DevOps
#DependencyTrack
#Docker
#DockerCompose
E
#ElasticAPM
#Elasticsearch
#ElasticStack
F
#Flyway
G
#GCP
#Gerrit
#Git
#GitHubEnterprise
#GitLab
#GoCD
#Gradle
#Grafana
#Graylog
#Groovy
#Grunt
H
#Hibernate
I
#InfrastructureAsCode
J
#Jaeger
#Java
#JavaEE
#JavaScript
#JBossEAP
#Jenkins
#Jest
#Jira
#JMeter
#JMS
#JMX
#JPA
#JSF
K
#kaniko
#Kibana
#Kubernetes
L
#Linux
M
#Maven
#MongoDB
#Monitoring
#MSDefender
#MySQL
N
#Nexus
#nginx
#NodeJS
O
#Observability
#OpenStack
#OpenTelemetry
P
#PHP
#Podman
#PolarionALM
#PostgreSQL
#PowerShell
#Prometheus
#Protractor
#Python
R
#RationalChange
#RationalSynergy
#RHEL
S
#SCA
#Selenium
#SLES
#SonarQube
#Spring
#SpringBoot
#SQL
#SRE
#Subversion
T
#Tekton
#Testing
#TypeScript
U
#Ubuntu
W
#WSL
Z
#ZephyrForJira
   

Languages

GermanNative speakerEnglishFluent

Project history

Eigene Projekte

#Ansible, #AWS, #Azure, #Docker, #GCP, #GitLab, #JavaScript, #Jest, #Kubernetes, #NodeJS,
#TypeScript


Zwischen den Aufträgen bilde ich mich aktiv fort und schreibe Software für meine eigene Verwaltung von Rechnungen und Projektangeboten, vorzugsweise mit AWS.

Auf AWS nutze ich bspw. Lambda für Serverless Apps als Grundlade für die Rechnungsverwaltung.

Diese Apps, welche auf einer Node.js Runtime mit mit JavaScript und TypeScript laufen, dienen zur Automatisierung von wiederkehrende Arbeitsschritten, wie eingehende Rechnungen an den Steuerberater zu versenden und PDF-Rechnungen nach einem vorgegeben Schema zu benennen.

Zum Einsatz kommen u. A. die AWS-Dienste SNS (Notificatons) und SQS (Queues), SES (Mail-Empfang und Versand), S3 (Object Storage), API Gateway (REST APIs) und PostgreSQL in einer Serverless-Konfiguration (Datenbank).

Das Deployment dieser Apps basiert auf CloudFormation Templates mit SAM (Serverless Application Model), CDK und Ansible. Tests werden über Jest ausgeführt. Das Logging und Monitoring erfolgt mit CloudWatch, bei dem die Apps strukturierte Logs erzeugen.

Außerdem nutze ich in anderen Projekten u. A. Docker, Kubernetes (auch mit AWS EKS, ECS und Fargate), GitLab CI/CD und TerraForm. Grundkenntnisse in Azure und GCP sind ebenfalls durch kleinere Projekte vorhanden.

DevOps Experte

IHK GfI

Other

5000-10.000 team member

#Ansible, #CoreMedia, #DependencyTrack, #Docker, #kaniko, #Kubernetes, #Maven, #MSDefender, #Podman, #Tekton

Bei der IHK GfI habe ich als DevOps Experte Aufgaben bei der Migration von CoreMedia 9 auf 10 mit Aufbau einer Tekton Build Pipeline und Kubernetes übernommen.

Während der ersten Phase war die Anforderung kurzfristig ein Uptime Monitoring zu etablieren, um Fehler im Docker Swarm Setup zeitnah zu erkennen. Dies habe ich durch eine statping-ng Installation bereitgestellt, welche in der ersten Version als ad-hoc Deployment ausgerollt wurde. Im Nachgang habe ich Ansible Playbooks geschrieben, welche diese Installation reproduzierbar machen.

Das bestehende Maven OWASP Plugin zum Finden von Vulnerabilities habe ich durch eine Dependency Track Installation ersetzt, welche aktiv täglich neue sicherheitskritische Findings über MS Teams berichtet. Damit entfällt die Notwendigkeit des manuellen Ausführens eines Vulnerability Scanners zum Prüfen auf neue Schwachstellen.

Weitere Ansible Playbooks wurden von mir geschrieben, welche MS Defender ausrollen, die iptables Firewall für Docker konfigurieren, und Ansible Semaphore installieren. Diese wurden modifiziert, um auf Podman, d. h. ohne Root Rechte, lauffähig zu sein.

In der zweiten Phase habe ich nach Vorgabe der IHK GfI eine Build Pipeline in Tekton und Kubernetes aufgebaut, welche das CoreMedia 10 Projekt per Maven und Docker Images per kaniko baut. Die Build Pipeline wird über Argo CD ausgerollt und baut das CoreMedia Projekt mit zahlreichen von mir eingebauten Modifikationen, welche die Dauer des Builds signifikant verkürzen.

Für alle Aufgaben habe ich eine Dokumentation in Markdown angefertigt und zum Projektende die Übergabe vor Ort durchgeführt.

DevOps Engineer

BSH Hausgeräte

Goods & Retail

>10.000 team member

#Ansible, #Artifactory, #Automation, #Bamboo, #Bash, #Bitbucket, #Confluence, #DevOps, #Git, #GitHubEnterprise, #Gradle, #Jira, #PolarionALM, #PowerShell, #RHEL, #Subversion

Im Operations Team habe ich als DevOps Engineer Builds mit Gradle für Polarion ALM eingerichtet, welche über Bamboo und Ansible ausgerollt wurden.

Polarion wurde als internes Tool in zahlreichen Projekten weltweit mit mehreren tausend Benutzern eingesetzt und nutzt SVN (Subversion) als Backend. Als Teil des Operations Teams habe ich die bereits vorhandenen Ansible Playbooks erweitert, um den Grad der Automatisierung zu erhöhen. Weiterhin war das Ziel, die Playbooks auf die Anforderungen für aktuelle Versionen von RHEL (Red Hat Enterprise Linux) und Polarion zu aktualisieren.

Für eines der Polarion Projekte, welches bisher manuell in Eclipse gebaut wurde, sollte es ermöglicht werden, diesen Build lokal sowie auf dem Bamboo Server zu bauen. Dafür habe ich einen Gradle Build auf der zu dem Zeitpunkt aktuellen Version 7.4 eingerichtet.

Da Polarions Dependency Management auf OSGi mit lokalen Dateien basiert, wurden mittels eines selbstgeschriebenen PowerShell Skripts die Dependencies der Polarion Distribution analysiert und auf Maven Artefakte abgebildet. Diese können somit von Gradle aus einem internen Artifactory Repository geladen werden.

Durch das programmatische Auslesen der Dependencies war es mir möglich, nur die Dependencies zu laden, welche tatsächlich im Java Code genutzt werden. Als Ergebnis kann Polarion lokal und auf Bamboo gebaut werden, ohne dass dabei die gesamte Polarion Distribution mit allen Dateien vorgehalten werden muss; dies resultiert in schlanken und schnellen Builds.

Für dieses Projekt war es ebenfalls notwendig, Code von GitHub Enterprise auf Bitbucket zu migrieren. Dafür habe ich ebenfalls programmatisch mittels eines Bash Skripts ein Multi-Module Repository zu einem einzelnen Git Repository zusammengeführt, ohne dass dabei die Historie verloren geht.

Im Laufe des Auftrags habe ich weiterhin zahlreiche Server von RHEL 7 auf 8 aktualisiert.
Die Arbeit wurde auf Englisch in Confluence oder mittels Markdown dokumentiert.

Site Reliability Engineer

GLS IT Services

Transport & Logistics

>10.000 team member

#Ansible, #APM, #Bitbucket, #CentOS, #Confluence, #Docker, #DockerCompose, #ElasticAPM, #Elasticsearch, #ElasticStack, #Grafana, #Jaeger, #Java, #Jira, #Kibana, #Monitoring, #nginx, #Observability, #OpenTelemetry, #Prometheus, #SQL, #SRE

Als Site Reliability Engineer habe ich diverse APM (Application Performance Monitoring) Lösungen evaluiert und anschließend Elastic APM per Ansible eingebunden.

Das Ziel des Projekts bei der GLS (General Logistics Systems) war eine APM-Lösung zu finden, die es ermöglicht, das Verhalten von Java Applikationen und deren Datenbankabfragen sichtbar zu machen. Die SRE- und Entwickler-Teams sollten befähigt werden, jederzeit die aktuelle und historische Performance einsehen zu können.

Features wie End-to-End Tracing, Auswertungen von Laufzeiten, JVM-Metriken und die Anzeige von SQL Statements wurden als Kernanforderung genannt. Ebenfalls war gewünscht, dass die Lösung sich in bestehende Applikationen ohne großen Aufwand einbinden lässt.

Nach einer Evaluation von diversen Observability Tools, unter anderem Elastic APM und Kibana (aufbauend auf Elastic Stack bzw. ehemals ELK Stack), Grafana, Prometheus, Jaeger und OpenTelemetry – jeweils mit funktionierenden Prototypen – habe ich mit Zustimmung von GLS die Integration von Elastic APM durchgeführt.

Da Elastic APM on-premises gehostet werden sollte, habe ich die Orchestrierung über Docker Compose realisiert, welches ein Elasticsearch Cluster, das APM Backend und einen nginx Reverse Proxy einrichtet.

Das gesamte Setup von Elastic APM wurde über Ansible Playbooks ausgerollt, die ich während der Integration geschrieben habe. Es ist somit nach meinem Austritt möglich, dass die serverseitigen Komponenten jederzeit neu ausgerollt werden, als auch die Konfiguration der zu überwachenden Applikationen. Letztere bindet sich mittels Instrumentation als Java Agent ausschließlich per Modifikation der Startskripte ein.

Somit habe ich für GLS ermöglicht, dutzende Applikationen in das Monitoring einzubinden, ohne dass die zahlreichen Entwickler Teams dafür ihre Applikationen anpassen müssen.

Zum Projektende habe ich dem SRE Team eine ausführliche schriftliche Dokumentation übergeben.

Workbench Architect

Thales Deutschland

Industry & Mechanical Engineering

1000-5000 team member

#Ansible, #Automation, #AWS, #AWX, #Bitbucket, #CD, #CentOS, #CI, #CloudComputing, #Confluence, #Docker, #Gerrit, #Git, #InfrastructureAsCode, #Jenkins, #Jira, #Maven, #Nexus, #nginx, #OpenStack, #Python, #SonarQube, #Subversion, #Ubuntu, #WSL

Als Workbench Architect Infrastructure-as-Code und Workbench Architect Continuous Integration habe ich Prozesse mit Ansible automatisiert, Build Pipelines mit Jenkins, Docker und AWS betreut, und Beratung in diesen und angrenzenden Themen geleistet.

Im E2 Support (Engineering Environment Support) Team war unsere Aufgabe die projekt- und länderübergreifende Bereitstellung von CI/CD Systemen, die Konfiguration von VMs (CentOS, Ubuntu) und Workstations (WSL mit Ubuntu), sowie das Automatisieren von Aufgaben in diesen Bereichen.

Die CI/CD Systeme basierten auf Jenkins mit Pipelines, AWS, Docker, Ansible und AWX [die OSS Variante von Red Hat’s Ansible Tower], Git, Bitbucket, SonarQube und Sonatype Nexus.

Während meines Auftrags war ich beteiligt am Refactoring und der Vereinheitlichung zahlreicher Build Pipelines, so dass Projekte eine Library mit wiederverwertbaren Komponenten nutzen. Die Pipelines mit Jenkinsfiles waren Maven-basiert und verfügbar für Java und C Projekte; wobei C Projekte ebenfalls mit Maven und dem NAR-Plugin (“Native Archive Plugin") gebaut wurden.

Die Builds wurden dockerisiert soweit möglich, um die Pipelines cloud-ready und skalierbar zu machen. Diese laufen je nach Projekt in einem On-Premises Datacenter oder einer AWS Private Cloud.

Bestehende CI/CD Installationen wurden zu dieser einheitlichen Lösung migriert, und ich habe Teams und Mitarbeiter eingewiesen in der Nutzung und Migration.

Für Projekte außerhalb der Standardlösung habe ich mit Python, Gerrit und dem OpenStack SDK gearbeitet, um Builds zu automatisieren.

Im E2 Support Team war ich regelmäßig als 2nd Level Support Engineer aktiv, um Troubleshooting bei Maven Builds und Jenkins zu leisten, oder Performance Probleme in der AWS Cloud durch Monitoring zu identifizieren. Einem Team habe ich bei der Migration von SVN (Subversion) zu Git und Bitbucket eine Einführung gegeben.

Im Rahmen des Supports stand ich auch dem Maintainer des Artifact Repositorys (Nexus) zur Seite, und habe die Konfiguration für nginx als Reverse Proxy und die passende Konvention für das Image Tagging des internen Docker Repositorys erarbeitet.

Außerdem habe ich zahlreiche Ansible Playbooks geschrieben, so dass wiederkehrende Aufgaben wie VMs einrichten automatisiert ablaufen können. Die Playbooks haben u. A. die firmeninternen Proxy-Regeln eingespielt, den Docker Daemon eingerichtet, oder Docker Images gebaut. Die Playbooks habe ich in AWX eingebunden und für das Team zugänglich gemacht. In einigen Präsentationen wurden meine Kollegen in diese Themen eingeführt.

Im Oktober habe ich einen Know-How Transfer an meinen Nachfolger (angestellt) und weitere externe Mitarbeiter durchgeführt, vor allem zu den Themen Docker, Ansible und AWX.

Meine Arbeit habe ich regelmäßig und ausführlich in Jira, Confluence und Bitbucket (als README.md mit Markdown) dokumentiert. Einige Themen wie z. B. AWX und Docker sind als Handbuch geschrieben, so dass meine Ergebnisse nach der Beauftragung weiter gepflegt werden können. Die Dokumentationssprache, wie auch die Sprache der Schulungen, war Deutsch und Englisch.

Senior DevOps Engineer

Informatik Service Center des Eidgenössischen Justiz- und Polizeidepartements

Government and Public Services

250-500 team member

#CD, #CI, #ConcourseCI, #GoCD, #Jenkins, #Kubernetes

Für eine bestehende Jenkins Build Pipeline habe ich als Senior DevOps Engineer mögliche Alternativen aufgezeigt, um die Übersichtlichkeit des Build-Status zu verbessern.

Dafür habe ich einen möglichen Einsatz von verschiedenen CI/CD-Tools, sowie die Erweiterung durch Dashboards evaluiert. Das ISC-EJPD nutzt Microservices mit Kubernetes, weshalb zahlreiche verkettete Build-Jobs in Jenkins Pipelines existieren. Diese hatten im bestehenden Zustand keine Gesamtübersicht pro Projekt.

Um aufzuzeigen, wie eine komplexe Build Pipeline visualisiert werden kann, habe ich nach einer Vorauswahl zahlreicher CI/CD-Tools Mockups erstellt. Diese waren Concourse CI, GoCD und Jenkins Blue Ocean.

Das ISC-EJPD hat sich entschieden, bei der aktuellen Lösung mit Jenkins zu bleiben. Aufgrund dieser Tatsache habe ich im zweiten Schritt den möglichen Einsatz von Hygieia evaluiert, welches Daten aus Jenkins und Jira aggregiert, und aufbereitet samt Historie auf einem Dashboard darstellt.

Buildmanager

Bayerisches Landesamt für Steuern

Government and Public Services

>10.000 team member

#Buildmanagement, #Git, #Jenkins, #Maven, #RationalSynergy

In einem Folgeauftrag des BayLfSt habe ich als Buildmanager das Kern-Team unterstützt und Beratung während eines Major Releases geleistet, das ebenfalls die Einführung von Git beinhaltet.

Das BayLfSt hat entschieden, dass die Zusammenarbeit mit dem Standort Hannover neu organisiert werden soll. Statt wie bisher von Hannover, soll nun die Quellcodeverwaltung und der Build basierend auf Maven und Jenkins ab dem neuen Major Release innerhalb der eigenen Organisation geschehen.

Während der Phase vor dem Major Release habe ich dem neuen internen Buildmanager und dem Entwickler-Team geholfen, sowohl bei der Migration von Synergy zu Git, als auch bei der Wahl des passenden Git Branching Models. Der neue Build ist eine Weiterentwicklung des zuvor von Hannover gestalteten Builds und nutzt nun Jenkins Pipelines. Hierfür habe ich dem neuen Buildmanager ebenfalls eine Einführung gegeben.

Berater

Hessische Zentrale für Datenverarbeitung

Government and Public Services

500-1000 team member

#Git, #GitHubEnterprise, #Jira, #RationalSynergy

Zwischenzeitlich war ich als Berater bei der HZD beauftragt. Dort habe ich der geplanten Umstellung von Synergy zu Git meine Erfahrungen aus dem vorherigen Auftrag beim Bayerischen Landesamt für Steuern geteilt.

Nach der Migration sollte GitHub Enterprise als Git Repository genutzt werden. Wichtige Aspekte waren die Nutzung von Pull Requests und Verknüpfung zu Jira.

Interim Test Engineer

Belimo

Energy, Water & Environment

1000-5000 team member

#Confluence, #Docker, #Java, #Jenkins, #Jira, #JMeter, #Testing, #ZephyrForJira

Als Interim Test Engineer habe ich die Fortführung der Tests während einer personellen Lücke gesichert. Das automatisierte und manuelle Testing für eine Java Applikation in Docker lief jeweils am Ende der dreiwöchigen Sprints und diente zur Entscheidung, ob die Software ausgerollt werden soll.

Diese Java Applikation, genannt Core Cloud, wird von der Firma Ergon AG im Auftrag der Belimo AG geschrieben. Meine Arbeit umfasste einen Tag vor Ort bei der Ergon AG zum direkten Austausch mit dem Projektleiter und den Entwicklern.

Zu Beginn habe ich eine zweiwöchige Einarbeitung von dem ausscheidenden Mitarbeiter erhalten. Anschließend habe ich seine Aufgabe übernommen und jedes Release mit den Tests geprüft, die von meinen Vorgängern konzipiert und erstellt wurden.

Bei manuellen Tests kam überwiegend ein Browser zum Einsatz, um Use Cases durchzuspielen. Automatisierte Tests wurden mittels Jenkins und JMeter realisiert. Das Testing des jeweiligen Releases wurde als Test Cycle in Zephyr for Jira abgebildet.

Hierbei war die Herausforderung nicht nur die kurze Einarbeitungszeit für die Core Cloud und deren Tests, vielmehr musste das Konzept zum Testing angepasst werden. Aufgrund des hohen Anteils manueller Tests und Arbeitsschritte dauerte das Testing regelmäßig länger als Zeit zwischen Milestone des Sprints zur Verfügung gestellt wurde.

Daher habe ich mit Tabellen und Grafiken einfache Auswertungen in Confluence erstellt und anhand dieser nach Rücksprache mit dem Auftraggeber Anpassungen und Kürzungen vorgenommen.

Zwischen den Test Cycles habe ich ein Handbuch für das Testing in Confluence geschrieben, mit dem Ziel, meinem Nachfolger einen Arbeitsablauf zu beschreiben, der möglichst bei jedem Test Cycle gleich ist. Dabei geht das Handbuch auf bekannte Probleme mit konkreten Lösungen ein. Es basiert zu gleichen Teilen auf der mündlichen Übergabe und der schriftlichen Dokumentation meiner Vorgänger.

Für das letzte Drittel meiner Beauftragung habe ich ausschließlich meinen Nachfolger eingearbeitet.
Projektsprachen waren Deutsch sowie Englisch für einige Teile der Dokumentation.

Buildmanager

Bayerisches Landesamt für Steuern

Government and Public Services

>10.000 team member

#Buildmanagement, #Bash, #Java, #JavaEE, #JBossEAP, #Jenkins, #Maven, #Nexus, #RationalChange, #RationalSynergy, #SLES

Für das Projekt BIENE habe ich als Buildmanager den täglichen Build der Java Software in Jenkins betreut. Während anfangs der Fokus auf der Reparatur, Stabilisierung und dem Tagesgeschäft des Builds lag, habe ich zum Ende der Beauftragung die technische Dokumentation für die Buildumgebung geschrieben, sowie Projektleiter und Entwickler beraten.

Das Projekt BIENE stellt die Software für das Erhebungsverfahren bereit, welches bundesweit in den Finanzämtern genutzt wird. BIENE ist Teil des vom Bundesministerium für Finanzen gestarteten Vorhabens KONSENS.

Bei der BIENE-Software handelt es sich um Java EE Anwendungen, die auf JBoss EAP Servern betrieben werden.

Die gesamte BIENE-Software wurde mit Maven auf Jenkins gebaut. Sie ist aufgeteilt in buildrelevante Maven-Module, sowie in fachliche Unterprojekte. Je nach Projektplan und Grad der fertigstellung wandern die einzelnen Unterprojekte in unterschiedliche Build-Schichten. Dadurch verändert sich der Build und die Paketierung häufig und erfordert manuelle Anpassungen von mir und der anderen Buildmanager.

Die Versionierung wurde mit IBM Rational Synergy durchgeführt, welches von IBM nicht mehr weitergeführt wird. Hierfür habe ich bei fehlenden Plugins für Jenkins die übliche Funktionalität per Bash nachprogrammiert. Der Issue-Tracker für dieses Projekt ist IBM Rational Change.

Das Build-Team ist länderübergreifend aufgestellt und wird federführend im Landesamt für Steuern in Niedersachsen bearbeitet. Für Nürnberg stand ich als Ansprechpartner vor Ort für die Entwickler und Projektleiter zur Verfügung. In meiner Rolle als Buildmanager habe ich auch regelmäßig zwischen Niedersachsen und Nürnberg vermittelt.

Neben dem eigentlichen Build in Niedersachsen war meine Aufgabe auch, einen Schatten-Build in Nürnberg zu betreuen, damit Entwickler bei Problemen mit dem Haupt-Build weiterarbeiten können.

Zudem gibt es diverse Build-Jobs in Nürnberg, die Auswertungen erzeugen über die Build-Struktur.

Zu meinem Eintritt war der Build in einem reparaturbedürftigen Zustand. Tägliche Builds konnten ohne manuelle Korrekturen nicht gebaut werden. Durch Analyse, Korrekturen und Erweiterungen haben meine Kollegen und ich den Build in der Zeit darauf weitestgehend stabilisiert. RPM-Pakete für SLES 12 (SUSE Linux Enterprise Server) wurden regelmäßig erzeugt und in Nexus abgelegt.

Die vorherigen Buildmanager haben die Buildumgebung nicht oder nur unzureichend dokumentiert. Es gab viele Personalwechsel ohne Übergabe. Auch unfertige Umsetzungen hatten Einfluss auf die Nutzbarkeit. Aus diesem Grund habe ich die Aufgabe bekommen, eine technische Nachdokumentation der Buildumgebung anzufertigen.

Die Dokumentation beschreibt den Ist-Zustand und bestand zum Austritt aus ca. 100 Seiten. Zusätzlich zum Ist-Zustand enthält die Dokumentation Handlungsempfehlungen für zukünftige Buildmanager, als auch Prozessbeschreibungen. Projekt- und Dokumentationssprache ist Deutsch. Die Dokumentation wurde mit MS Office erstellt.

Senior DevOps Engineer

myToys Group

Goods & Retail

1000-5000 team member

#Ansible, #Apache, #Bash, #CentOS, #Confluence, #DevOps, #Docker, #Elasticsearch, #Grafana, #Graylog, #Jenkins, #Jira, #MongoDB, #Monitoring, #nginx, #PHP, #Python, #SpringBoot

In einem Team mit anderen Freelancern habe ich als Senior DevOps Engineer die Migration zu einer per Ansible gemanagten Systemlandschaft fortgeführt. Ich habe des Weiteren im Tagesgeschäft Operations ausgeholfen und Graylog für zentralisiertes Logging im Development Team eingeführt.

Damit das Bestands-Team virtuelle Server (CentOS) automatisiert erstellen und konfigurieren kann, habe ich im Team entsprechende Ansible Rollen geschrieben oder erweitert. Dies umfasst die Installation mit umgebungsspezifischer Konfiguration u. A. von Apache, nginx, Elasticsearch, MongoDB, sowie der myToys-eigenen Software.

Im Tagesgeschäft habe ich ausgeholfen und Tickets abgearbeitet. Diese Tickets sind typischerweise eine Fehleranalyse mit anschließender Anpassung der Ansible Rollen. Das Beheben der Fehler erfolgt dann auf allen Cluster-Instanzen per Ansible.

Hierunter fallen auch diverse Themen wie länderspezifische Erweiterungen für das russische myToys Department (Kommunikation erfolgt in Englisch), Anpassungen der Konfiguration für neue Features in Ansible und Integration neuer Metriken für das Monitoring mit Grafana.

Nach Möglichkeit habe ich Aufgaben als Jenkins Jobs angelegt, die den Entwicklern eigenständiges Handeln erlauben. Je nach Anforderung wurden Jenkins Jobs mit Bash oder Python geschrieben.

myToys nutzt für seinen Online-Shop verschiedene Komponenten in diversen Programmiersprachen. Damit im Fehlerfall eine Analyse möglich ist, wurde mir die Aufgabe zugeteilt, Graylog für zentralisiertes Logging zu etablieren. Ich habe entsprechende Graylog-Rollen in Ansible geschrieben und ausgerollt.

Für die Kollegen aus den PHP- und Java-Teams habe ich eine Dokumentation geschrieben und bei der Implementation des Loggings geholfen.

Weiterhin war das Analysieren und Beheben von Problemen mit teilweise undokumentierter Legacy-Software Teil meiner Aufgaben.

Zuletzt habe ich für das Java-Team Docker per Ansible eingerichtet und Spring Boot Anwendungen als Docker-Images verfügbar gemacht.

Senior DevOps Engineer

(ProfitBricks) Cloud Hoster

Internet & IT

50-250 team member

#C, #CD, #CI, #Flyway, #Git, #Java, #JavaScript, #Jenkins, #Maven, #Nexus, #PostgreSQL, #Python, #SCA, #SonarQube, #Testing

Ich war als Senior DevOps Engineer verantwortlich für die Entwicklung und Administration des Build Services (Continuous Delivery), den ich als In-House Dienstleistung für Entwickler-Teams bereitgestellt habe.

Die eigene Software wurde bei jeder Änderung auf einer Jenkins Installation gebaut. Dabei wurde die Codequalität überprüft sowie mit automatisierten Tests die korrekte Funktion sichergestellt. Projekte in Java, C, Python und JavaScript durchliefen eine einheitliche Build Pipeline. Jeder Schritt der Build Pipeline erzeugte Metriken, die im Intranet bereitgestellt wurden.

Seit meiner Einstellung habe ich Defizite im täglichen Handeln der Entwickler gesehen, da viele Prozesse wie Releases, Rollouts und Feature Integration manuell durchgeführt wurden und somit sehr fehleranfällig waren. Der Fokus lag oft auf Personen und nicht auf reproduzierbaren und automatisierten Prozessen. Jedes Release wurde unterschiedlich gehandhabt. Es gab eine hohe Quote an Fehlern und Rollbacks. Development, QA und Operations haben kaum eine Schnittmenge gehabt.

Mit dem neuen Build Service habe ich die tägliche Arbeit der Entwickler unterstützt, der nach DevOps Mantra einen fließenden Übergang zwischen Development, QA und Operations schafft. Die QA System Tests, zuvor ebenfalls manuell ausgeführt, habe ich per Software Adapter vereinheitlicht und als ein Quality Gate in die Build Pipeline integriert.

Aus einem früher zähen, personenabhängigen Prozess ist ein schneller automatischer Lauf geworden, der Releases im Hintergrund erstellt; die Teams konnten sich fortan auf ihre Kernkompetenz konzentrieren, wie beispielsweise das Schreiben von Features und Tests.

Continuous Integration war ein elementarer Bestandteil des Build Services. Neue Features und Bugfixes wurden von den Entwicklern stetig parallel eingepflegt und sollten automatisch im nächsten Release verfügbar sein. Unfertige Features wurden dabei mit Feature Toggles versehen und konnten zur Laufzeit scharf geschaltet werden.

Ebenfalls wurde das Konzept von Continuous Testing angewendet. Dazu wurden die Änderungen zuerst in einer Sandbox isoliert getestet. Ein Private Build testet die Änderungen im Code, bevor sie für alle zugänglich gemacht werden. Wenn im Testing keine Fehler gefunden wurden, erfolgte ein Merge durch einen weiteren Release Build. Damit bleibt die Stabilität der Mainline gewährleistet.

Alle verfügbaren Tests liefen für jeden einzelnen Commit. Für Integration- und System-Tests aus Maven wurden PostgreSQL-Datenbanken dynamisch befüllt mit Flyway. Entwickler konnten alle Tests lokal ausführen; hierfür wurde eine embedded HSQLDB oder Derby Datenbank vor dem Test In-Memory gestartet.

Die Entscheidung, ob der Code den gewünschten Qualitätsstandard erfüllt, beruhte weiterhin auf den Ergebnissen der SCA (Static Code Analysis) von SonarQube.

Schließlich wurde in der Build-Pipeline ein Deployable erzeugt und in einem Nexus-Repository abgelegt.
Seit der Einführung des neuen Build Services, welche vollautomatisch und im Hintergrund arbeiten, konnte ich die Build Time für die Java Software von 2 Stunden auf 15 Minuten reduzieren (8 mal schneller).

Über eine frei zugängliche Übersicht des Build Zustands und der Code Metriken, z. B. mit Information Radiators in den Räumen der Entwickler, konnten sich Entwickler-Teams jederzeit über den Zustand des Builds informieren.

In Schulungen von Gruppen und Einzelpersonen zum Thema Continuous Integration und Tools, welche je nach Team in Deutsch oder Englisch gehalten wurden, habe ich den Entwicklern die Einführung eines einfacheren Git Branching Modells erklärt. Dies hat sie befähigt, gleichzeitig an mehreren Features, Bugfixes und Hotfixes arbeiten zu können.

Test Automation Engineer

Ehemaliger Kollege

Other

< 10 team member

#Grunt, #JavaScript, #Protractor

Für einen ehemaligen Kollegen aus meiner vorherigen Anstellung habe ich in einem kurzen Projekt als Test Automation Engineer gearbeitet.

Die interaktive Consumer-Website, die auf AngularJS basiert, habe ich mit Protractor und JavaScript getestet und in den Build-Mechanismus (via Grunt) integriert.

Ebenfalls seit Februar 2016 habe ich mich auf den Wechsel in die Selbständigkeit als Freelancer vorbereitet.

Java-Entwickler

ATLAS Interactive (Mobile Payment Provider)

Banking & Financial Services

50-250 team member

#Hibernate, #Java, #JavaEE, #Jenkins, #JMS, #JMX, #JPA, #JSF, #Linux, #Maven, #MySQL, #Nexus, #SCA, #Selenium, #SonarQube, #Spring, #Subversion

Bei ATLAS Interactive (heute: InternetQ) habe ich als Java-Entwickler am Mobile Payment System kanzaloo (heute: kanzaroo) gearbeitet.

Als Java-Entwickler habe ich für kanzaloo maßgeblich Code und Infrastruktur beigetragen. Diese Software basiert auf einem Mix von Java EE, Spring, Hibernate, JPA, JSF, RichFaces, JMS, sowie Web-Services mit REST und JSON. kanzaloo ist für den internationalen Markt konzipiert und beherrscht i18n und l10n in allen Layern.

Für das Monitoring von kanzaloo habe ich einen JMX Adapter eingeführt, sowie verteilte transaktionale Sicherheit und automatische Retry-Handler für ein robustes System, das eine hohe Fault Tolerance gegenüber Ausfällen aufweist. Das gesamte Consumer Front-End war durch asynchrones Messaging und Polling entkoppelt vom Backend. Dadurch wird die Stabilität und schnelles Feedback im User Interface gewährleistet.

Als Datenbank Administrator (MySQL) habe ich eine Live-Mirror eingerichtet, auf dem Entwickler Queries mit Live-Daten ausprobieren können, ohne das Produktiv-System zu gefährden. Zusätzlich habe ich für die Entwickler diverse Linux-Server betreut und Installationsroutinen für häufig genutzte Software geschrieben, so dass eine einheitliche Systemlandschaft gegeben war.

Des Weiteren habe ich selbständig das Build-Management mit Maven und Jenkins realisiert. Dazu gehörten ein CI Server (Jenkins), ein Artefakt-Repository (Nexus) sowie ein VCS-Repository mit SVN (Subversion). Ich habe das Konzept von Libraries eingeführt, die häufig benötigte Funktionen für andere Systeme bereitstellen.

Ferner erzeugte die SCA mittels SonarQube Berichte über die Code-Qualität. Legacy Projekte habe ich bereinigt in das neue Build-Management überführt. kanzaloo habe ich mit Unit-, Integration- und System-Tests versehen. Unter anderem haben wir das JSF Frontend mit Selenium getestet. Um Selenium auch in legacy Projekten zu nutzen, habe ich ein Framework für unsere Infrastruktur erstellt, welches die Integration von Selenium per Modul erlaubt.

Die Projektsprache war grundsätzlich Englisch, ebenfalls für die Kunden-Dokumentation.

Software-Entwickler

serie-a (Logistics Solutions Anbieter)

Transport & Logistics

10-50 team member

#Groovy, #JavaScript, #Spring

Für unseren Kunden Hermes Logistik Gruppe habe ich als Software-Entwickler in der Frontend-Entwicklung UIs mit JavaScript für Speditions-Agenten erstellt. Die Front-Ends basierten auf ExtJS und RESTful Services. Im Backend, einer Spring Anwendung mit Groovy Code, habe ich ebenfalls mitgearbeitet.

Software-Entwickler

aziza (Full Service E-Commerce Agentur)

Marketing, PR and design

10-50 team member

#Java, #JavaEE

Bei aziza haben wir für unsere Kunden mit der eigenen Full Service E-Commerce Platform Yuma personalisierte Web-Shops erstellt, u. A. für die Parfümerie Douglas. Als Software-Entwickler habe ich diverse Features umgesetzt, unter anderem die Payment-Anbindung für Kreditkarten. Yuma, später umbenannt zu Yula, war eine Java EE Applikation.

Diverse

Diverse
Aushilfskraft bei einem IT Systemhaus mit Vor-Ort-Service. Online-Redakteur im Marketing. Praktikant in dem IT-Service Unternehmen, bei dem ich später meine Ausbildung erfolgreich absolviert habe.
exali-logo

exali Professional Liability badge

The exali Professional Liability badge is a trusted mark for freelancers and service providers. It confirms that the freelancer carries professional liability insurance meeting exali's high standards — a symbol of reliability and professionalism.

Valid until: 12/01/2027


Contact form

Log in to get in touch

You need to be logged in to use the contact form.

Sign upLog in