Fachlicher Schwerpunkt dieses Freiberuflers

Lead Developer / Architekt Java & JEE

verfügbar ab
01.05.2020
verfügbar zu
100 %
davon vor Ort
100 %
PLZ-Gebiet, Land

Österreich

Schweiz

D7

D8

D9

Kontaktwunsch

Ich möchte bevorzugt für Projekte in diesen Einsatzorten kontaktiert werden.

Position

Kommentar

Senior Software-Entwickler, Lead Developer, Architekt

Projekte

07/2019 - 11/2019

5 Monate

Teleservices Backend

Rolle
DevOps Engineer
Kunde
ConSol GmbH für BMW AG
Einsatzort
München
Projektinhalte

Ab Juli 2019 hat BMW den Software Provider für das unten genannte Teleservices Projekt von Sulzer zu ConSol gewechselt. Dabei wurden einige Kollegen, darunter auch ich, aus dem bestehenden Team übernommen, um einen reibungslosen Übergang zu gewährleisten.


Gemäß dem DevOps Gedanken, dem sich BMW verpflichtet hat, war ich als Brücke zwischen dem Entwicklungs- und dem Operations-Team tätig. In dieser neuen Rolle stand ich als Ansprechpartner für beide Teams zur Verfügung, dazu gehörten die Unterstützung des Betriebs bei schwerwiegenden Problemen und Incidents, Steuerung und Vorbereitung der Releases, Code-Reviews, Unterstützung von Kollegen aus der Entwicklung, etc.

Kenntnisse

DevOps

Scrum

Microservices

Java 8

Java EE 7

REST

Produkte

Glassfish

Oracle 12c

PostgreSQL

Swagger

JPA

IBM WebSphere Message Broker

EJB3

Jenkins

Maven

JIRA

04/2018 - 06/2019

1 Jahr 3 Monate

Teleservices Backend

Rolle
Senior Architect, Requirement Manager
Einsatzort
München
Projektinhalte

Als Fortzsetzung meines Einsatzes im immer noch gleichen Projekt war ich als IT-Architekt und Anforderungsmanager für die Klärung und Spezifizierung der kommenden neuen Anforderungen verantwortlich. Dafür war ich in ständig engem Kontakt mit den zuständigen Personen aus IT und Fachbereich bei BMW, mit denen wir in regelmäßigen Meetings die geplanten neuen Features und Umbauten analysiert und konzipiert haben.


Eine wichtige Rolle spielten dabei naturgemäß Fragen zur Architektur der Microsevice-Landschaft, Definition der Schnittstellen, sowie das Design der verschiedenen Datenbanken. Teil dieser Tätigkeit war auch die Anfertigung von UML-Diagrammen, welche die entworfene Architektur beschreiben und dokumentieren.


Intern zum Team hin war ich zuständig für die Aufnahme der neuen Anforderungen ins Jira Backlog, wo sie in einer deutlich technischeren und konkreteren Sprache formuliert werden müssen, damit sie durch die Entwickler einfach und schnell in Java-Code umgesetzt werden können. Falls im Laufe der Entwicklung Unklarheiten oder Lücken festgestellt
wurden, hab ich sie zeitnah mit dem Kunden geklärt.


Darüber hinaus war ich gegenüber dem Projekmanagement insbesondere für das Review und Kontrolle der Schätzungen der Stories verwantwortlich, die letztendlich Grundlage für die Beauftragungen mit dem Kunden waren.

Kenntnisse

Scrum

Microservices

IT-Architektur

Anforderungsmanagement

UML

Produkte

Java 8

Java EE 7

Glassfish

JIRA

HP ALM

Git

Maven

Jenkins

01/2017 - 03/2018

1 Jahr 3 Monate

Teleservices Backend

Rolle
Lead Developer / Chefentwickler
Einsatzort
München
Projektinhalte

Im sonst unveränderten Projekt habe ich nach und nach die Rolle eines technical Leads übernommen. Neben der eigentlichen Entwicklung, die ich nach wie vor in reduziertem Umfang gemacht habe, bestand meine Tätigkeit primär darin, die Tasks/Stories auf die Entwickler in den Teams geeignet zu verteilen, bei Rückfragen und Unklarheiten als Ansprechpartner für die Kollegen in den Teams zur Verfügung zu stehen, Code Reviews durchzuführen, als technischer und fachlicher
Ansprechpartner für den Kunden (BMW) zur Verfügung zu stehen, und insgesamt die Qualität und den reibunslosen Ablauf des Entwicklungsprozesses sicherzustellen.


Zu dieser Zeit bestand eine der Haupttätigkeiten im Projekt darin, die bestehenden Microservices in eine Private Cloud Umgebung zu migrieren und dort zu verwalten. Als Cloud Plattform kam OpenShift zum Einsatz, die wiederum auf Technologien wie OpenStack, Docker, Kubernetes, etc. aufbaut.

Kenntnisse

Scrum

Code Review

Microservices

Cloud

IT-Koordination

Produkte

Java 8

Java EE 7

JPA

EJB3

OpenShift

Docker

Jenkins

Maven

JIRA

01/2015 - 12/2016

2 Jahre

Teleservices Backend

Rolle
Software-Entwicker JEE
Einsatzort
München
Projektinhalte

Im Projekt Teleservices geht es um die Anbindung der Fahrzeuge an die Backend-Systeme der BMW AG, so dass ein bedarfsorientierter Datenaustausch ermöglicht wird – sowohl vom Fahrzeug zum Backend, als auch umgekehrt. Dadurch wird eine Vielzahl Dienste für den Kunden ermöglicht, z.B. automatischer Notruf (inzwischen gesetztlich vorgeschrieben), Pannen-/Unfallhilfe, elektronisches Fahrtenbuch (steuerlich vom Finanzamt anerkannt), elektronische Wartungshistorie („Scheckheft“), etc.


Die Backend-Landschaft von BMW ist extrem verteilt und umfangreich. Das Teleservices Backend bestand ursprünglich aus 6 Applikationen, die im Laufe der Zeit in kleinere Microservices aufgeteilt wurden. Inzwischen verteilt sich die Logik auf 15-20 Microservices, die in komplexer Art und
Weise miteinander verwoben sind. Somit besteht ein Großteil der
Herausforderungen im Projekt darin, den richtigen „Schnitt“ in der
Architektur zu finden, damit das Gesamtsystem stabil und langfristig wartbar bleibt.


Meine Aufgaben:
Zum Zeitpunkt meines Einstiegs befand sich das Projekt mitten in einer Migration von IBM WebSphere als Applikationsserver nach Glassfish 3. Nachdem die Migration abgeschlossen war, wurden neben der Umsetzung einer Vielzahl neuer fachlicher Features die einzelnen eher monolithischen Applikationen immer mehr in Microservices aufgeteilt. Bei diesem Schritt wurde gleichzeitig noch eine Migration von Glassfish 3 auf
Glassfish 4, bzw. von JEE 6 auf JEE 7 durchgeführt. Eventuell
vorhandene ältere SOAP-Webservices wurden auf REST und dem Framework Swagger umgestellt.

Neben REST kommunizieren die einzelnen Applikationen/Services miteinander auch asynchron über Message Queues (JMS) – als MQ Broker wurde IBM WebSphereMQ verwendet. Darüber hinaus kamen Standard-Technologien aus dem Java Backend-Bereich zum Einsatz, wie EJB 3, JPA (mit EclipseLink als Default JPA-Provider in Glassfish), Jenkins, Maven,
Git/Bitbucket, etc. Als Datenbanken kommen Oracle 12c und Postgres 9 zum Einsatz.

Kenntnisse

Scrum

Microservices

Produkte

Java 6

Java 7

Java EE 6

Java EE 7

Glassfish 3

Glassfish 4

IBM WebSphere Message Broker

JMS

SOAP

SoapUI

Swagger

REST

Oracle 12c

PostgreSQL

JPA

EJB3

Maven

Jenkins

Git

JIRA

09/2014 - 12/2014

4 Monate

System zur Verwaltung von Ausweisdokumenten und Führerscheinen

Rolle
Software-Entwicker Java/JEE
Einsatzort
Rostock (Deutschland)
Projektinhalte

Zum Kunden:
Die Mühlbauer AG ist mit ihrer Tochter Mühlbauer ID Services GmbH ein weltweiter Anbieter von Systemen zur Erfassung, Verwaltung und Herstellung von Ausweisdokumenten (Personalausweise, Reisepässe), Führerscheinen, Fahrzeuganmeldungen, u.ä. Die Software ist naturgemäß
sehr eng an die Gesetzgebung des jeweiligen Staates gebunden, in dessen Auftrag das System entwickelt wird, und umfasst je nach Anforderung auch Aspekte wie Fingerabdruck-Erfassung und -Abgleich, Aufnahme von Iris-Bildern, und andere Biometrie-Komponenten. Da es sich hierbei um hochsensible personenbezogene Daten jedes einzelnen Bürgers ganzer Staaten handelt, unterliegt das System sehr strengen
Sicherheits- und zugleich Performance-Anforderungen.


Zum Projekt:
Das System besteht aus mehreren Modulen, von denen einige
geographisch verteilt (in den einzelnen Ämtern vor Ort) laufen, und andere wiederum zentral im Rechenzentrum. Je nach gesetzlicher Vorgabe entfallen verschiedene Teile des gesamten Workflows auf die dezentralen und zentralen Komponenten. Auf die Daten kann mittels einer Reihe von Clients zugegriffen werden, die jeweils für unterschiedliche Beamte (Rollen) vorgesehen sind und daher auch nur bestimmte Aktionen
ausführen können.

Zu meinen Aufgaben gehörte zunächst die Entwicklung eines dieser Clients unter Verwendung von JSF 2 und PrimeFaces als Frontend-Technologien, sowie JEE 6, EJB 3 und JPA/Hibernate als Backend. Später war ich auch in der reinen Backend-Entwicklung tätig und habe die vorhandene Workflow-Logik an die Anforderungen des Kunden angepasst.

Das Technologie-Stack wird von JBoss 7, Oracle 11g als Datenbank, Eclipse, Maven, Jenkins, Subversion und Redmine abgerundet. Die Entwicklung fand unter einem angepassten Scrum-Modell statt.

Kenntnisse

Scrum

Produkte

Java EE 6

JBoss 7

JSF

PrimeFaces

EJB3

JPA

Hibernate

Oracle 11g

Maven

Subversion

Jenkins

Projekthistorie

08/2012 – 03/2014 Media-Saturn IT-Services GmbH, Ingolstadt

Branche:

Handel

Rolle:

Softwareentwickler Java/JEE

Aufgaben:

Als konzerninterner IT-Dienstleister der Media-Saturn Holding ist die MSITS mit der Entwicklung und Wartung sämtlicher Software und IT-Infrastruktur aller Saturn- und Media-Märkte weltweit beauftragt. Bedingt dadurch ist eine extrem heterogene Systemlandschaft, die sehr verschiedene und teilweise auch widersprüchliche Anforderungen gerecht werden muss – angefangen bei rechtlichen Aspekten bis hin zu kulturellen Gegebenheiten bei der Kundschaft, wie auch beim Personal.


Im Projekt ging es um das Warenwirtschaftssystem, welches in jedem einzelnen Markt die Bestände, Preise, Bestellungen, Rechnungen, Warenein- und -abgängen und vieles mehr verwaltet. Die Entwicklung geht dabei parallel in verschiedenen Richtungen: Einerseits wird alter Legacy-Code nach JEE portiert, andererseits werden dabei auch weite Teile der Architektur überarbeitet und vieles von Grund auf neu entwickelt. Da dies zeitlich auch mit dem „Online-Gang“ der Media-Saturn zusammenfällt, wird die Gelegenheit genutzt, die bisher ausschließlich auf das traditionelle Ladengeschäft ausgerichteten Systeme den Anforderungen des Online-Marktes entsprechend zu gestalten. Als dritte Säule des Entwicklungsprozesses wurden teilweise vorhandene J2EE/EJB2-basierte Module, die auf JBoss 4 laufen, auf zeitgemäße Technologien wie EJB3, JPA und JBoss 7 portiert.

Produkte:

Java, J2EE, EJB2, Axis, JBoss 4, JEE6, EJB3, JPA, Hibernate, JBoss 7, SolidDB, WebServices, SOAP, SoapUI, Maven, Jenkins


 

09/2011 – 07/2012 arvato systems technologies GmbH, Rostock

Branche:

Verlagswesen

Rolle:

Softwareentwickler Java/JEE

Aufgaben:

Die arvato systems technologies GmbH als IT-Tochter der Bertelsmann AG hatte in diesem Projekt die Aufgabe, eine jahrzehntealte Software des Verlagshauses, mit der der recht komplexe Produktionsweg eines Verlagserzeugnisses vom weißen Blatt Papier durch eine Vielzahl an Druckereimaschinen bis zum fertig verpackten und palettierten Buch abgebildet wird, komplett neu zu entwickeln. Die neue Software muss den modernen Entwicklungen und Methoden im Druck- und Verlagswesen Rechnung tragen. Mehrere Module sind für verschiedene Bereiche des Geschäftsprozesses verantwortlich, wie z.B. die Beschreibung der Anforderungen des Druckauftrags; die Erstellung (Konstruktion) möglicher Produktionswege für einen Auftrag unter Berücksichtigung des Funktionsumfangs der einzelnen Maschinen; die zeitliche Planung der Druckaufträge auf den konkreten Maschinen unter Berücksichtigung von Kapazitäten, Wartungsausfällen, Schichten/Feiertage und natürlich des Fertigstellungstermins des Auftrags. Weitere Module übernehmen den Import von bestehenden Kundendaten aus der alten Software in die neue, die Preisberechnung und Abrechnung der Aufträge, usw.

 

Jedes dieser Module existiert mehr oder weniger eigenständig und hat eine eigene grafische Oberfläche (meist Web-Frontend), sie greifen aber alle auf eine gemeinsame Datenbank zu. Sie ist somit ein zentraler Punkt für die Kommunikation zwischen den Modulen und muss daher auch den Anforderungen aller Module gerecht werden.

In meine Zuständigkeit fiel die Gestaltung des Datenbankmodells in Absprache mit den Fachabteilungen und dessen Abbildung sowohl in Java-Code mittels JPA 2.0, als auch DB-seitig als nativer SQL-Skripte. Im Mittelpunkt stand dabei stets eine geeignete Architektur, die Wiederverwendbarkeit über alle Module hinweg gewährleistet, aber auch eine möglichst einfache Migration des DB-Modells bei Updates der einzelnen Module (die jeweils soweit wie möglich unabhängig voneinander mussten aktualisiert werden können). Die Entwicklung erfolgte ausgesprochen agil nach SCRUM.

Produkte:

Java, JEE, JPA 2.0, EclipseLink, IBM DB2 für Windows, IBM DB2 für AS/400, Apache Ivy, Atlassian JIRA/Bamboo/Confluence, Scrum


 

Branchen

Ich bringe Erfarung aus den Branchen Versicherungs-/Finanzdienstleistung, Handel/Logistik, Verlagswesen, Automotive mit.

Kompetenzen

Programmiersprachen
C
gute Kenntnisse
C++
sehr gute Kenntnisse
Java
sehr gute Kenntnisse, langjährige Erfahrung, insb. JEE, JPA, JSF, Swing
Java 6
Java 7
Java 8
Java EE 6
Java EE 7
JavaScript
gute Kenntnisse
Perl
Grundkenntnisse
PHP
Grundkenntnisse

Betriebssysteme
SUN OS, Solaris
Grundkenntnisse
Unix
Linux (hauptsächlich Debian und -Derivate)
Windows

Datenbanken
DB2
AS/400 sowie auch Windows-Version
JDBC
MySQL
ODBC
Oracle
Oracle 11g
Oracle 12c
Postgres
PostgreSQL

Darüber hinaus: IBM SolidDB


Sprachkenntnisse
Bulgarisch
Muttersprache
Deutsch
Muttersprachler-Niveau
Englisch
sehr gut

Produkte / Standards / Erfahrungen
Cloud
DevOps
Docker
EJB3
Git
Glassfish
Glassfish 3
Glassfish 4
Hibernate
HP ALM
IBM WebSphere Message Broker
JBoss 7
Jenkins
JIRA
JMS
JPA
JSF
Maven
OpenShift
PrimeFaces
Scrum
SOAP
SoapUI
Subversion
Swagger

Schwerpunkte
Cloud
DevOps
Java Backend
Microservices
Verteilte Systeme

Design / Entwicklung / Konstruktion
UML

Aufgabenbereiche
Anforderungsmanagement
Code Review
IT-Architektur
IT-Koordination
Software-Entwicklung

Aus- und Weiterbildung

03/2006 - 04/2009

3 Jahre 2 Monate

Informatik

Abschluss
Bachelor
Institution, Ort
Fachhochschule München
Schwerpunkt

Abschlussnote 1,8 - innerhalb der ersten 6% des Jahrgangs

10/2002 - 11/2005

3 Jahre 2 Monate

Informatik

Abschluss
Diplom
Institution, Ort
TU München