Profil: Dirk Ehms

Fachlicher Schwerpunkt

Software-Architektur, Build-Management, Senior Developer (Java, JEE)

Ausbildung

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

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

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

Veröffentlichungen:
- Heise-Verlag: Und täglich grüßt das Murmeltier (Online-Artikel, Print-Artikel in Vorbereitung)
- JAXenter: Operation am offenen Herzen (Online-Artikel)

Weiterbildung, Seminare & Konferenzen:
- 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)
- OOP: SIGS DATACOM, München (2012, 2007, 2005, 2004)
- JavaOne 2011, San Francisco (2011)
- Core Spring, SpringSource GmbH (2009)

Berufsausbildung:
- Nachrichtentechniker

Programmiersprachen/Frameworks

Java: sehr gute Kenntnisse, Java EE (JEE, J2EE), EJB, JPA, CDI, JAX-RS, JMS, JSF, JSP, JAX-WS, JAXB, Servlets
Weitere: JavaScript, Cordova/Phonegap, AngularJS, Ionic, Python, Bash

Erfahrungen/Standards/Methodik

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

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

Datenbanken

- JDBC: Datenzugriff auf alle nachfolgend genannten Datenbanken
- Oracle: incl. PL/SQL
- MySQL/MariaDB
- Postgres
- DB2
- SQL

langjährige Erfahrung im DB-Design relationaler Datenbanken

Fremdsprachen

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

Projekte

Zeitraum:     12/2015 – 04/2016
Branche:      Gaming Industry
Projekt:      Erweiterung und Optimierung der Test- und Entwicklungsumgebung
Teamgröße:    3, agiler Prozess
Position:     Software-Architekt, DevOps

Aufgaben:     Prototypen-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 als Qualitätssicherung
Prozesse:     Continuous Delivery (CD)
Tools:        Glassfish, Jenkins, SonarQube, Subversion, IntelliJ, Maven, Cloudera, Python
Plattform:    Linux


Zeitraum:     03/2015 – 11/2015
Branche:      Gaming Industry
Projekt:      Generic Gaming-Platform on AWS
Teamgröße:    10, Scrum
Position:     Software-Architekt, Java-Developer

Aufgaben:     Bereitstellen der Infrastruktur zum Betrieb einer generischen Spiele-Plattform
              in der Amazon Cloud (AWS). Implementierung einer Zookeeper-basierten Lösung zur
              Generierung von weltweit eindeutigen incrementellen IDs. Durchführung von
              Lasttests zur Ermittlung der Systemskalierbarkeit.
Prozesse:     Continuous Delivery (CD)
Tools:        Glassfish, EclipseLink, Liquibase, Zookeeper, Jenkins, JMeter, Subversion,
              IntelliJ, MySQL/MariaDB, JSF, Maven, Archiva
Plattform:    Linux


Zeitraum:     05/2014 – 02/2015
Branche:      Gaming Industry
Projekt:      Glassfish Migration, mehr als 300 Maven Module
Teamgröße:    5, agiler Prozess, Scrum
Position:     Software-Architekt, Build-Management, DevOps

Aufgaben:     Migration 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.
Prozesse:     Continuous Delivery (CD)
Tools:        Glassfish, EclipseLink, JAX-RS, Liquibase, Embedded GF, Jenkins, WebDriver,
              Selenium, Subversion, IntelliJ IDEA, Postgres, JSF, Maven, LDAP, Archiva
Plattform:    Linux


Zeitraum:     01/2014 – 03/2014
Branche:      Event- und Kulturwirtschaft
Projekt:      Veranstaltungskalender zur Datenpflege von Veranstaltungen mit Anbindung
              mobiler Endgeräte (Smartphones) als Clients
Teamgröße:    2, agiler Prozess
Position:     System-Architekt, Java-Developer

Aufgaben:     Entwurf und Entwicklung eines JEE-basierten Prototypen (EJB, CDI, JSF) unter
              Verwendung des Domain-Driven Designs (DDD). Erstellung einer pseudo-nativen
              Android-App mit PhoneGap als Wrapper einer HTML5-Anwendung. Datenaustausch über
              RESTful Webservice.
Prozesse:     Test-Driven Development (TDD), Behaviour-Driven Development (BDD)
Tools:        Sparx EA, Maven, JBoss AS, JPA, Hibernate, MySQL, MongoDB, Liquibase, JSF, Git,
              Mockito, Axon Framework, Spring, Arquillian, Jenkins, PhoneGap, JavaScript,
              jQuery Mobile, AngularJS, Cucumber
Allgemeines:  UML, JEE, RESTful, HTML5, NoSQL
Plattform:    Windows, Android


Zeitraum:     10/2013 – 12/2013
Branche:      Bankwirtschaft, Finanzwirtschaft
Projekt:      Spezifikation von Vorgehensmodellen, Entwicklungswerkzeugen und Qualitäts-
              metriken als Grundlage für SW-Projekte im Java-Umfeld.
Teamgröße:    7, auf Scrum basierender agiler Prozess
Position:     Consultant, Konfigurationsmanagement

Aufgaben:     Definition 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
Prozesse:     Domain Driven Design (DDD), Clean Code Development
Tools:        Eclipse, Maven, Jenkins, SonarQube, Sonatype Nexus, Sparx EA, WebSphere AS (WAS),
              Cobertura, PMD, Checkstyle, Findbugs, JPA, Hibernate, Spring, MS-SQL Server
Allgemeines:  Banking Industry Architecture Network (BIAN), UML
Plattform:    Windows


Zeitraum:     02/2013 – 08/2013
Branche:      Bankwirtschaft, Finanzwirtschaft
Projekt:      Aufbau einer Build- und Testumgebung.
Teamgröße:    6, agiler Entwicklungsprozess und Clean Code Development
Position:     Buildmanagement, Testautomatisierung

Aufgaben:     Aufbau und Pflege einer Maven-basierten Buildumgebung, Continuous Integration
              (CI), Continuous Delivery (CD) incl. automatischen Integrationstests,
              Test Coverage Analyse
Technologien: Java JEE, EJB, Oracle, Subversion (SVN).
Tools:        Maven, Jenkins, Sonar, JaCoCo, Cobertura, Sonatype Nexus, Tomcat, Netbeans,
              TestNG, Needle, JUnit
Allgemeines:  UML, SQL, XML
Plattform:    Windows, Unix.


Zeitraum:     02/2012 – 01/2013
Branche:      Bankwirtschaft, Finanzwirtschaft
Projekt:      Risikosteuerung und Bewertung von Zinsprodukten (Wertpapierhandel).
Teamgröße:    4, agiler Entwicklungsprozess
Position:     Java-Senior-Developer, System-Architekt

Aufgabe:      Konzeption 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).
Technologien: Java JEE, EJB, CDI, MDB, JBoss7, Oracle (incl. PL/SQL), JPA, EclipseLink.
Tools:        Enterprise Architect (EA), Eclipse, Tortoise SVN, Clear Case.
Allgemeines:  UML, SQL, XML
Plattform:    Windows, Unix, Murex.


Zeitraum:     10/2011 – 12/2011
Branche:      ID-Hochsicherheitstechnologie
Projekt:      Errichtung 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öße:    4, auf Scrum basierender Entwicklungsprozess
Position:     Senior-Developer, Test-Engineer, Systemintegration, Buildmanagement

Aufgabe:      Konzeption, 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)
Technologien: JMeter mit domain-spezifischen Erweiterungen
Tools:        Enterprise Architect (EA), Eclipse, ANT, Subversion, Tortoise SVN, JIRA.
Plattform:    Solaris, Suse Linux SLES 11, Windows, VMware.


Zeitraum:     03/2011 – 09/2011
Branche:      ID-Hochsicherheitstechnologie
Projekt:      Testautomatisierung 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öße:    6, auf Scrum basierender agiler Entwicklungsprozess
Position:     Software Architekt, Senior-Developer, Buildmanagement

Aufgabe:      Modellierung, Redesign, Implementierung und Deployment der Testinfrastruktur zur
              Optimierung der automatischen Testläufe und der zugehörigen Testauswertung.
Technologien: UML, Java JEE, EJB, JBoss, JMeter mit domain-spezifischen Erweiterungen, MySQL,
              JPA, Groovy, XStream, Hibernate, BIRT.
Tools:        Enterprise Architect (EA), Eclipse, ANT, Subversion, Tortoise SVN, JIRA.
Allgemeines:  SQL, XML, XPath, OSCI (Online Services Computer Interface), SSL/TLS mit X.509.
Plattform:    Suse Linux SLES 11, Windows, VMware.


Zeitraum:     11/2010 – 02/2011
Branche:      Groß- und Einzelhandel
Projekt:      Erweiterung 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öße:    4
Position:     Senior-Developer, Systemintegration, Buildmanagement

Technologien: Java JEE, JMS, EJB, MS-SQL-Server, GWT, JPA, Hibernate, iBatis, Metro-WS, JAXB.
Tools:        Enterprise Architect (EA), Eclipse, Maven, Glassfish, Subversion, Biztalk
              Tortoise SVN, Subclipse, Checkstyle, Findbugs, PMD.
Tests:        JUnit, Glassfish (In-Container), Cobertura, SoapUI, HermesJMS, JMeter.
Umgebung:     Hudson (Continuous Integration), Confluence (Wiki), Sonar, JIRA.
Allgemeines:  XML, WSDL, XSD, SQL, UML.
Plattform:    Windows Server.


Zeitraum:     04/2010 - 11/2010
Branche:      ID-Hochsicherheitstechnologie, Wertpapierdruck
Projekt:      Management 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öße:    5
Position:     Technischer Projektleiter, System-Architekt, Build- & Konfigurationsmanagement

Technologien: UML, Java JEE, Axis2-Webservices, Spring, Spring Web MVC, JSP, MS-SQL-Server,
              JPA, Hibernate.
Tools:        Enterprise Architect (EA), Eclipse, Maven, Apache, Tomcat, Subversion,
              Tortoise SVN, Subclipse, Checkstyle, Findbugs, PMD.
Tests:        JUnit, Cobertura, JMeter, SoapUI (incl. Groovy Scripting), Testautomatisierung
              auf der Integrationsplattform.
Umgebung:     Bamboo (Continuous Integration), Confluence (Wiki), JIRA, inStep.

Allgemeines:  HTML, CSS, Javascript, XML, WSDL, XSD, SQL, SSL/TLS mit X.509.
Plattform:    Suse Linux SLES 11, Windows.


Zeitraum:     03/2009 - 03/2010
Branche:      ID-Hochsicherheitstechnologie, Wertpapierdruck
Projekt:      Systemumgebung für den elektronischen Personalausweis (ePA)
Teamgröße:    200++, (ca. 30 Personen im Teilprojekt)
Position:     System-Architekt im Teilprojekt: Änderungsterminals und Leseterminals
              für den ePA.

Aufgabe:      Modellierung 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.
Tools:        Enterprise Architect (EA), inStep, Oxygen, Subversion.


Zeitraum:     06/2008 - 02/2009
Branche:      ID-Hochsicherheitstechnologie, Wertpapierdruck
Projekt:      Workflowbasierte automatische Passkontrolle für Grenzübergänge an Flughäfen o.ä.
Teamgröße:    8
Position:     System-Architekt, Entwickler, Build- & Konfigurationsmangement.

Technologien: UML, Java JEE, EJB3, JMS, MDB, SOA, Bea Aqualogic, PostgreSQL, BioAPI, JPA,
              Hibernate, jBPM, Drools, RichFaces, Ajax.
Tools:        Enterprise Architect (EA), Eclipse, IntelliJ IDEA, Maven, jBoss AS, Subversion,
              Subclipse, Tortoise SVN, Checkstyle, Findbugs, PMD.
Tests:        JUnit, JMeter, Cobertura, EasyMock.
Umgebung:     Bamboo (Continuous Integration), JIRA, inStep.
Allgemeines:  HTML, CSS, SQL.
Plattform:    Suse Linux SLES 11, Windows.


Zeitraum:     06/2006 - 05/2008
Branche:      ID-Hochsicherheitstechnologie, Wertpapierdruck
Projekt:      Generisches System für die Personalisierung von RFID-Chips in ID-Dokumenten.
Teamgröße:    7
Position:     Build-, Release- & Konfigurationsmanagement, WebGUI-Entwickler.

Technologien: Java J2EE, EJB, JMS, MDB, JDBC, Oracle, Webservices, Hibernate, MyFaces,
              Facelets, AOP, AspectJ.
Tools:        Enterprise Architect (EA), Eclipse, IntelliJ IDEA, Maven, Bea Weblogic, Axis2,
              XMLSpy, Subversion, Tortoise SVN, Subclipse, Checkstyle, Findbugs, PMD.
Tests:        JUnit, JMeter, Cobertura, SoapUI, EasyMock.
Umgebung:     Continuum (Continuous Integration), JIRA.
Allgemeines:  HTML, CSS, Javascript, XML, WSDL, XSD, SQL.
Plattform:    Windows Platform.