Profil: Dirk Ehms

Fachlicher Schwerpunkt

Software-Architektur, Cloud-Engineering, Qualitätsmanagment, Build-Management

Ausbildung / Weiterbildung

Studium
- Grundstudium der Informatik mit Nebenfach BWL (FU-Berlin)
- Hauptstudium mit Abschluss Diplom-Informatiker (TU-Berlin)
- Schwerpunkte: Softwaretechnik, Projektmanagement, Qualitätssicherung

Zertifizierungen
- AWS Certified Solutions Architect (Associate)
- Oracle Certified Master, Java EE 5 Enterprise Architect / Sun Certified Enterprise Architect (OCMJEA/SCEA)
- iSAQB Certified Professional for Software Architecture (Foundation Level)
- Pivotal/VMware Certified Spring Professional
- ISTQB Certified Tester (CTFL)
- OMG-Certified UML Professional Fundamental (OCUP Fundamental)
- OMG-Certified UML Professional Intermediate (OCUP Intermediate)
- Sun Certified Programmer for Java (SCJP)

Weiterbildung, Seminare & Konferenzen
- AWS re:invent 2016: Las Vegas (2016)
- Java SE 8 MOOC: Lambdas and Streams (2015)
- JAX-RS 2.0 für Fortgeschrittene, Thilo Frotscher (2015)
- Advanced JBoss AS7/EAP6, akquinet tech@spree GmbH, Berlin (2013)
- Core Spring, SpringSource GmbH (2009)

Berufsausbildung
- Nachrichtentechniker

Programmiersprachen / Frameworks / Datenbanken / Cloud Technologien

Java Spring Boot, Java EE (JEE, J2EE), EJB, JPA, CDI, JAX-RS, JMS, JSF, JSP
Weitere Python, NodeJS, JavaScript, TypeScript, Kotlin, Go, Angular, Ionic, Cordova/Phonegap, Bash
Datenbank MongoDB, Oracle (incl. PL/SQL), Postgres, MySql, SQL Server, DB2, DynamoDB
AWS CDK, AWS-Lambda, CloudFormation, S3, IAM, ECS, Fargate, Cloudwatch, Athena, Amplify, Cognito, DynamoDB, CloudFront, API Gateway, SNS, SQS, EC2, CodeBuild, CodeCommit, CodePipline, QuickSight

Erfahrungen / Standards / Methodik

Prozess-Erfahrungen
- Architektur und Design Patterns,
- Continuous Integration (CI), Continuous Delivery (CD)
- Unified Modelling Language (UML),
- Objektorientierte Analyse and Design (OOAD)
- Agile SW-Entwicklung, Scrum, Pair Programming, Clean Code Development, TDD
- XML, SOAP, WSDL, XSD, XSL(T), (X)HTML, CSS, JSON

Referent auf Konferenzen
- microXchg 2018, Berlin
- Continuous Lifecycle (2015, 2017), Mannheim
- DOAG-2015, Nürnberg
- Berlin Expert Days (BED-Con) 2015, Berlin
- JAX-2015, Mainz

Veröffentlichungen
- Heise-Verlag: Und täglich grüßt das Murmeltier (iX Special 1/2017, S. 136, Online-Artikel)
- JAXenter: Operation am offenen Herzen (Online-Artikel)

Programme / Tools

SparxSystems Enterprise Architect (EA), Maven (incl. Plugin-Entwicklung), Jenkins (incl. Plugin-Entwicklung), Eclipse (incl. Plugin-Entwicklung / OSGI), IntelliJ IDEA, Liquibase, JMeter, Sonatype Nexus, Archiva, Jira, SVN, GIT, Sonar/SonarQube, SoapUI, PMD, Checkstyle, Findbugs, Cobertura, JaCoCo, Terraform, BitBucket, Serverless Framework

Sprachkenntnisse

Deutsch Muttersprache
Englisch Gute Kenntnisse, B2 Level GERS/CEFR (Wort und Schrift)

Projekte

Zeitraum11/2021 – 12/2022
BrancheE-Commerce
ProjektMigration einer zentralistischen Plattform zum offenen Marktplatz (Aftersales)
Teamgröße12, Kanban (> 500 Mitarbeiter für die gesamte Plattform)
PositionSW-Developer, Cloud Engineer
ProzessePair Programming, Continuous Delivery, Reactive Programming
AufgabenModernisierung der vorhandenen Infrastruktur mit verschiedenen AWS Services, Migration von Jenkins Piplines nach Github Workflows, Erweiterung reaktiver und event-basierter Webanwendungen (Self-Contained-Systems)
ToolsSpring Boot, Java17, Gradle, Docker, Thymeleaf, WebFlux, Lombok, Typescript, NodeJS, Kotlin, Atlas Mongo, Mockito, WireMock, ArchUnit, Python, Terraform, Github Workflow, KeyCloak, Jira, Confluence, IntelliJ, Jenkins
TechnologienMicroservices, Container, Serverless
PlattformenAWS, Linux

Zeitraum04/2021 - 09/2021
BrancheÖffentliche Verwaltung
ProjektModernisierung Fachverfahren Kindertagespflege
Teamgröße14, Scrum Prozess
PositionSolution Architekt
ProzesseDomain Driven Design, Clean Architecture / Hexagonal Architecture
AufgabenKonzeption und Umsetzung einer verteilten container-basierten Microservice-Architektur zur Modernisierung verschiedener Fachverfahrens mit cross-funktionalen internationalen Teams
ToolsSpring Boot, Java11, OpenShift, Docker, Lombok, UML, PlantUML, Maven, React, Typescript, NodeJS, Postgres, Hibernate, Swagger, MapStruct, WireMock, Mockito, ArchUnit, Liquibase, Cypress, SonarQube, Kibana, Kafka, ElasticSearch, GitLab, Jira, Confluence
TechnologienMicroservices, Container, PaaS
PlattformenWindows, Linux

Zeitraum07/2020 – 03/2021
BrancheBankwirtschaft, Finanzwirtschaft
ProjektFRTB – Fundamental Review of the Trading Book
Teamgröße7, agiler Prozess, Scrum
PositionSenior-Java-Developer, Build-Management
ProzesseClean Code Development
AufgabenImplementierung des Standardansatzes der FRTB-Spec, Ermittlung des Kapitalbedarfs unter Anwendung der Sensitivities-based Method (SbM), Default Risk Charge (DRC) und Residual Risk Add-On (RRAO)
ToolsJava11, Spring Boot, Javascript, Gitlab, Maven, Highcharts, WebSphere (WAS), JEE, CDI, DB2, MS Teams, IntelliJ, HP Quality Center
PlattformenWindows, Murex, Front Arena

Zeitraum01/2020 – 06/2020
BrancheEvent- und Kulturwirtschaft
ProjektTanzkalender - Dance Guide
Teamgröße2, agiler Prozess, Kanban
PositionSoftware-Architekt, Cloud Engineer, Konfigurations- und Build-Management
AufgabenZusammenführen und Transformation verschiedener Datenquellen (Web Scraping) zu einem konsolidierten Datenbestand als Datenbasis für den Tanzkalender in einem mehrstufigen ETL-Prozess. Entwicklung einer mobilen hybriden App (iOS, Android), Einrichten von Monitoring- und Analyse-Tools auf der Basis von ElasticSearch, Kibana, AWS QuickSight, AWS Cloudwatch.
ToolsJava13, Python3, Docker, Spring Boot, Ionic4, Angular, Typescript, AWS Fargate, Amplify, Lambda, Cognito, DynamoDB, Athena, CloudFormation, CloudFront, Serverless Framework, Git, Protobuf
TechnologienMicroservices, Container, Serverless Cloud Computing
PlattformenAWS, iOS, Android

Zeitraum12/2017 – 12/2019
BrancheTransport, Logistik & Verkehr
ProjektReisendeninformation der Zukunft, Iris+
Teamgröße40+, Scrum Prozess
PositionQualitätssicherung, Build-Management, SW-Entwicklung
AufgabenTestautomatisierung der höheren Stufen in der Testpyramide, Erweiterung der CI Pipelines für Gitlab und Jenkins zur Verbesserung der SW-Qualität, (Weiter-)Entwicklung von Microservices und Monitoring-Tools in Python und Java (Spring Boot), Unterstützung der Fehler-Analyse bei Produktionsproblemen.
ToolsJava8/11, Kubernetes, Docker, Helm, Spring Boot, Hibernate, Gradle, RabbitMQ, Postgres, Jenkins, GitLab, Jira, ElasticSearch, Kibana, Swagger, Selenium, JMeter, WireMock, Cucumber, Flyway, Kafka
TechnologienMicroservices, Container, AMQP
PlattformenWindows, Linux, AWS

Zeitraum04/2017 – 11/2017
BrancheEvent- und Kulturwirtschaft
ProjektOpen Class Tickets
Teamgröße3, agiler Prozess, Kanban
PositionSoftware-Architekt, Cloud Engineer
AufgabenEntwurf und Entwicklung einer Serverless SaaS Plattform auf Basis von AWS Lambda und weiterer AWS Services (DynamoDB, S3, Cognito, SNS, SES, KMS, CloudFormation) zur Verwaltung offener Tanzkurse von Tanzstudios. Die Teilnehmer erhalten ein elektronisches Ticket (Apple Wallet/Passbook), welches über eine mobile Ionic-App (iOS, Android) eingelesen und entwertet wird. Weiterhin gibt es eine Management-Konsole für die Studio-Konfiguration und Auswertungen (Boostrap, Angular).
ToolsServerless Framework, Visual Studio Code, Xcode, NodeJS, AWS CLI, Atom, Git
TechnologienServerless Cloud Computing, Ionic3, Angular, Cordova, Bootstrap, HTML5, CSS
PlattformenAWS, macOS, iOS, Android

Zeitraum06/2016 – 03/2017
BrancheEvent- und Kulturwirtschaft
ProjektErweiterung, Fehlerbehebung und Optimierung des Online Service Centers (OSC)
Teamgröße6, agiler Prozess, Kanban
PositionJava-Developer, Build-Management
AufgabenKundenspezifische Erweiterungen und Fehlerbehebung an der Plattform, Generische Lösung zur Erzeugung von E-Tickets auf der Basis von iOS Passbook, Umstellung des Buildprozesses nach Maven unter Berücksichtigung der unterschiedlichen Produktlinie, Prototypische Implementierung eines Log-Monitoring mit ELK-Stack (ElasticSearch, Logstash, Kibana)
TechnologienJava8, Spring-Boot, Oracle (incl. PL/SQL), REST, Angular, Jenkins, Maven, SonarQube
PlattformWindows, Linux

Zeitraum12/2015 – 05/2016
BrancheGaming Industry
ProjektErweiterung und Optimierung der Test- und Entwicklungsumgebung
Teamgröße3, agiler Prozess, Scrum
PositionSoftware-Architekt, DevOps
AufgabenPrototypen-Entwicklung zur Evaluierung von Container-basierter Entwicklung, Bereitstellung einer Cloud-basierten Cloudera Testumgebung (AWS) zur Datenanalyse, Erweiterung der Release Pipeline für die Umstellung auf Java8, Code-Reviews zur Qualitätssicherung
ProzesseContinuous Delivery (CD)
ToolsGlassfish, Jenkins, SonarQube, Docker, Terraform, Maven, Cloudera, Python
PlattformenLinux, AWS (EC2, ECS, S3, EMR)

Zeitraum03/2015 – 11/2015
BrancheGaming Industry
ProjektGeneric Gaming-Platform on AWS
Teamgröße10, agiler Prozess, Scrum
PositionSoftware-Architekt, Java-Developer
AufgabenBereitstellen der Infrastruktur zum Betrieb einer generischen Spiele-Plattform in der Amazon Cloud (AWS). Implementierung einer Zookeeper-basierten Lösung zur Generierung von weltweit eindeutigen inkrementellen IDs. Durchführung von Lasttests zur Ermittlung der Systemskalierbarkeit.
ProzesseContinuous Delivery (CD)
ToolsGlassfish, EclipseLink, Liquibase, Zookeeper, Jenkins, JMeter, Subversion, IntelliJ, MySQL/MariaDB, Maven, Redis, Archiva
PlattformenLinux, AWS (EC2, S3)

Zeitraum05/2014 – 02/2015
BrancheGaming Industry
ProjektGlassfish Migration, mehr als 300 Maven Module
Teamgröße5, agiler Prozess, Scrum
PositionSoftware-Architekt, Build-Management, DevOps
AufgabenMigration einer Gaming-Plattform von JEE6 nach JEE7. Dies beinhaltete verschiedene JEE-Applikationen bestehend aus mehr als 300 Maven Modulen. Anpassung der Build-Umgebung zur temporären parallelen Unterstützung von JEE6 und JEE7. Der Rollout der migrierten Applikationen erfolgte auf einer hochverfügbaren Plattform bestehend aus 100 Glassfish-Servern bei Zero Downtime unter Beibehaltung von Continuous Delivery.
ProzesseContinuous Delivery (CD)
ToolsGlassfish, EclipseLink, JAX-RS, Liquibase, Embedded GF, Jenkins, WebDriver, Selenium, Subversion, IntelliJ IDEA, Postgres, JSF, Maven, LDAP, Archiva
PlattformenLinux

Zeitraum01/2014 – 04/2014
BrancheEvent- und Kulturwirtschaft
ProjektEvent-Kalender zur Datenpflege von Veranstaltungen mit Anbindung mobiler Endgeräte (Smartphones, Tablets) als Clients
Teamgröße2, agiler Prozess
PositionSystem-Architekt, Java-Developer
AufgabenEntwurf und Entwicklung eines JEE-basierten Prototypen (EJB, CDI, JSF) unter Verwendung von Domain-Driven Design (DDD). Erstellung einer pseudo-nativen Android-App mit Cordova/PhoneGap als Wrapper einer HTML5-Anwendung. Datenaustausch über RESTful Webservice.
ProzesseTest-Driven Development (TDD)
ToolsSparx EA, Maven, JBoss AS, JPA, Hibernate, MySQL, Liquibase, JSF, Git, Mockito, Spring, Arquillian, Jenkins, Cordova, JavaScript, jQuery Mobile, AngularJS, Cucumber
AllgemeinesUML, JEE, RESTful Resources, HTML5
PlattformenWindows, Android

Zeitraum10/2013 – 12/2013
BrancheBankwirtschaft, Finanzwirtschaft
ProjektSpezifikation von Vorgehensmodellen, Entwicklungswerkzeugen und Qualitäts- metriken als Grundlage für SW-Projekte im Java-Umfeld.
Teamgröße7, auf Scrum basierender agiler Prozess
PositionConsultant, Konfigurationsmanagement
AufgabenDefinition von Vorgaben für die Datenmodellierung incl. OR-Mapping, Spezifikation von Maßnahmen und Metriken zur Qualitätssicherung, Spezifikation von Werkzeugen für firmeninterne Entwicklungsprojekte, Einrichten einer Repository-Vorlage zur Dokumentation der Systemarchitektur, WebSphere Profile Management und Migration, Aufbau einer Eclipse P2 Update-Site
ProzesseDomain-Driven Design (DDD), Clean Code Development
ToolsEclipse, Maven, Jenkins, SonarQube, Sonatype Nexus, Sparx EA, WebSphere AS (WAS), Cobertura, PMD, Checkstyle, Findbugs, JPA, Hibernate, Spring, MS-SQL Server
AllgemeinesBanking Industry Architecture Network (BIAN), UML
PlattformenWindows

Zeitraum02/2013 – 08/2013
BrancheBankwirtschaft, Finanzwirtschaft
ProjektAufbau einer Build- und Testumgebung.
Teamgröße6, agiler Entwicklungsprozess und Clean Code Development
PositionBuildmanagement, Testautomatisierung
AufgabenAufbau und Pflege einer Maven-basierten Buildumgebung, Continuous Integration (CI), Continuous Delivery (CD) incl. automatischen Integrationstests, Test Coverage Analyse
TechnologienJava JEE, EJB, Oracle, Subversion (SVN).
ToolsMaven, Jenkins, Sonar, JaCoCo, Cobertura, Sonatype Nexus, Tomcat, Netbeans, TestNG, Needle, JUnit
AllgemeinesUML, SQL, XML
PlattformenWindows, Unix.

Zeitraum02/2012 – 01/2013
BrancheBankwirtschaft, Finanzwirtschaft
ProjektRisikosteuerung und Bewertung von Zinsprodukten (Wertpapierhandel).
Teamgröße4, agiler Entwicklungsprozess
PositionJava-Senior-Developer, System-Architekt
AufgabenKonzeption und Entwicklung einer Plattform zur Risikosteuerung und Bewertung von Zinsprodukten für Einzelgeschäfte und Portfolien auf Basis von verschiedenen Filtern und weiteren Parametern, Integration an die bestehende Systemlandschaft über eine SOA basierten Architektur incl. ETL-Prozess von Murex-Daten. Die Bewertung erfolgt unter Verwendung von JMS auf einer massiv parallelen Architektur (Cluster mit 120 Rechenknoten).
TechnologienJava JEE, EJB, CDI, MDB, HornetQ, JBoss7, Oracle (incl. PL/SQL), JPA, EclipseLink.
ToolsEnterprise Architect (EA), Eclipse, Tortoise SVN, Clear Case.
AllgemeinesUML, SQL, XML
PlattformenWindows, Unix, Murex.

Zeitraum10/2011 – 12/2011
BrancheID-Hochsicherheitstechnologie
ProjektErrichtung einer Testumgebung für die Durchführung von Lasttests des eID-Services für Diensteanbieter (Serviceportal zur Nutzung der eID-Anwendung des neuen Personalausweis). Die Umgebung basiert auf einem Cluster von 10 Knoten mit mehreren parallel betriebenen Ausweis-Simulationen und einer Kontrollinstanz zur Steuerung der Lasttreiber.
Teamgröße4, auf Scrum basierender Entwicklungsprozess
PositionSenior-Developer, Test-Engineer, Systemintegration, Buildmanagement
AufgabenKonzeption, Modellierung und Dokumentation der Lasttestumgebung (UML, Word) JMeter-Plugin-Entwicklung, Integration verschiedener Komponenten zur Simulation der eID-Anwendung, Durchführung der Lasttests und Auswertung der statistischen Ergebnisse, Automatisierung zum Starten und Beenden von verteilten Prozessen, Erweiterung vorhandener Eclipse-Plugins mit PDE (Plug-in Development Environment)
TechnologienJMeter mit domain-spezifischen Erweiterungen
ToolsEnterprise Architect (EA), Eclipse, ANT, Subversion, Tortoise SVN, JIRA.
PlattformenSolaris, Suse Linux SLES 11, Windows, VMware.

Zeitraum03/2011 – 09/2011
BrancheID-Hochsicherheitstechnologie
ProjektTestautomatisierung der integrierten Systemumgebung zur Bestellung und Produktion des elektronischen Aufenthaltstitels (eAT) für Ausländer in Deutschland. Die Testdurchführung erfolgt anhand von automatisch generierten und vordefinierten Systemprüffällen (mehr als 25.000 Testfälle).
Teamgröße6, auf Scrum basierender agiler Entwicklungsprozess
PositionSoftware Architekt, Senior-Developer, Buildmanagement
AufgabenModellierung, Redesign, Implementierung und Deployment der Testinfrastruktur zur Optimierung der automatischen Testläufe und der zugehörigen Testauswertung.
TechnologienUML, Java JEE, EJB, JBoss, JMeter mit domain-spezifischen Erweiterungen, MySQL, JPA, Groovy, XStream, Hibernate, BIRT.
ToolsEnterprise Architect (EA), Eclipse, ANT, Subversion, Tortoise SVN, JIRA.
AllgemeinesSQL, XML, XPath, OSCI (Online Services Computer Interface), SSL/TLS mit X.509.
PlattformenSuse Linux SLES 11, Windows, VMware.

Zeitraum11/2010 – 02/2011
BrancheGroß- und Einzelhandel
ProjektErweiterung und Neuentwicklung von Anwendungen für die Einführung der Bestandskontigentierung für einen Multi-Channel-Vertrieb auf Basis einer service-orientierten System-Architektur (SOA).
Teamgröße4
PositionTechnischer Projektleiter, Senior-Developer, Systemintegration, Buildmanagement
TechnologienJava JEE, JMS, EJB, MS-SQL-Server, GWT, JPA, Hibernate, iBatis, JAX-WS, JAXB, CXF.
ToolsEnterprise Architect (EA), Eclipse, Maven, Glassfish, Subversion, Biztalk Tortoise SVN, Subclipse, Checkstyle, Findbugs, PMD.
TestsJUnit, Glassfish (In-Container), Cobertura, SoapUI, HermesJMS, JMeter.
UmgebungHudson (Continuous Integration), Confluence (Wiki), Sonar, JIRA.
AllgemeinesXML, WSDL, XSD, SQL, UML.
PlattformenWindows Server.

Zeitraum04/2010 - 11/2010
BrancheID-Hochsicherheitstechnologie, Wertpapierdruck
ProjektManagement System zur zentralen Verwaltungen von Änderungsterminals und Leseterminals für den elektronischen Personalausweis in den deutschen Meldebehörden. Das System kommuniziert über Webservice-Schnittstellen mit den Geräten über eine client-authentifizierte https-Verbindung. Als Datenbank kommt ein MS-SQL-Server zum Einsatz.
Teamgröße5
PositionTechnischer Projektleiter, System-Architekt, Build- & Konfigurationsmanagement
TechnologienUML, Java JEE, CXF Webservices, Spring, Spring Web MVC, JSP, MS-SQL-Server, JPA, Hibernate.
ToolsEnterprise Architect (EA), Eclipse, Maven, Apache, Tomcat, Subversion, Tortoise SVN, Subclipse, Checkstyle, Findbugs, PMD.
TestsJUnit, Cobertura, JMeter, SoapUI (incl. Groovy Scripting), Testautomatisierung auf der Integrationsplattform.
UmgebungBamboo (Continuous Integration), Confluence (Wiki), JIRA, inStep.
AllgemeinesHTML, CSS, Javascript, XML, WSDL, XSD, SQL, SSL/TLS mit X.509.
PlattformenSuse Linux SLES 11, Windows.

Zeitraum03/2009 - 03/2010
BrancheID-Hochsicherheitstechnologie, Wertpapierdruck
ProjektSystemumgebung für den elektronischen Personalausweis (ePA)
Teamgröße200++, (ca. 30 Personen im Teilprojekt)
PositionSystem-Architekt im Teilprojekt: Änderungsterminals und Leseterminals für den ePA.
AufgabenModellierung in UML der Anforderungen und Abläufe mit OOA und OOD, Unterstützung bei der Requirement Analyse, Organisation und Durchführung von Dokumenten- Reviews, Unterstützung bei der Erstellung der Systemdokumentation nach Common Criteria (CC), Schnittstellen-Definition (WSDL) für angrenzende Systeme des Gesamtprojekts.
ToolsEnterprise Architect (EA), inStep, Oxygen, Subversion.

Zeitraum06/2008 - 02/2009
BrancheID-Hochsicherheitstechnologie, Wertpapierdruck
ProjektWorkflowbasierte automatische Passkontrolle für Grenzübergänge an Flughäfen o.ä.
Teamgröße8
PositionSystem-Architekt, Entwickler, Build- & Konfigurationsmangement.
TechnologienUML, Java JEE, EJB3, JMS, MDB, SOA, Bea Aqualogic, PostgreSQL, BioAPI, JPA, Hibernate, jBPM, Drools, RichFaces, Ajax.
ToolsEnterprise Architect (EA), Eclipse, IntelliJ IDEA, Maven, jBoss AS, Subversion, Subclipse, Tortoise SVN, Checkstyle, Findbugs, PMD.
TestsJUnit, JMeter, Cobertura, EasyMock.
UmgebungBamboo (Continuous Integration), JIRA, inStep.
AllgemeinesHTML, CSS, SQL.
PlattformenSuse Linux SLES 11, Windows.