Erfahrener Fullstack-Entwickler (Java / Angular / Android)
Aktualisiert am 05.01.2024
Profil
Referenzen (1)
Freiberufler / Selbstständiger
Verfügbar ab: 01.01.2025
Verfügbar zu: 100%
davon vor Ort: 100%
Deutsch
Muttersprache
Englisch
fliessend
Russisch
8 Jahre

Einsatzorte

Einsatzorte

Frankfurt am Main (+50km) Darmstadt (+75km) Homburg (Saar) (+50km)

ausschliesslich Rhein-Main-Gebiet

nicht möglich

Projekte

Projekte

6 Jahre 3 Monate
2018-01 - heute

Neu-Entwicklung von www.bahn.de

Fullstack-Entwickler Scrum
Fullstack-Entwickler

Als Fullstack-Entwickler habe ich die Neu-Entwicklung von -Hyperlink entfernt- mit vollständig responsivem Design gestaltet. Das beinhaltete die Entwicklung von Frontend-Komponenten auf Basis von Vue.js und Angular sowie Middleware-Komponenten auf Basis von Koa.js und Nest.js. Die Implementierung erfolgte in TypeScript. Weil das Layout exakt vorgegeben wurde, konnte kein CSS-Framenwork verwendet werden, d.h. sämtlich Controls wurden auf Basis von HTML und CSS selbst entwickelt. Die Kommunikation zwischen Frontend und Middleware sowie zwischen Middleware und Backend erfolgte über REST-Schnittstellen.
Die Builds wurden mit GitLab CI/CD-Pipelines als Docker-Images erstellt und in AWS-Clustern deployt. Die Entwicklung erfolgte mit IntelliJ/WebStorm unter Linux. Unit-Tests wurden mit Jest erstellt. e2e-Tests auf Basis von Protractor und Cucumber wurden zum Testen der Web-Anwendung erstellt, wobei gleichzeitig das Layout durch Visual Regression Tests getestet wurde. Alle Schichten des Software-Stacks wurden isoliert und integrativ automatisiert getestet, wobei die Testabdeckung überwacht und kontinuierlich erhöht wurde. Das Projekt war aufgrund der Größe (> 400 Personen) nach SAFe organisiert, um eine Vielzahl von SCRUM-Teams zu synchronisieren. Ich gehörte zu einem von drei SCRUM-Teams, die für die Entwicklung im Bereich Web-Frontend/Middleware verantwortlich waren. Die Stories, Tasks und Bugs wurden von uns in Jira verwaltet. Die Dokumentation erfolgte in Confluence.

Angular Atlassian Confluence Docker Git Gitlab CI/CD HTML5 CSS Atlassian JIRA Jest JSON Koa.js Nest.js Kubernates OpenShift Protractor REST TypeScript Vue.js AWS Linux
Scrum
Deutsche Bahn
Frankfurt am Main
8 Jahre 5 Monate
2015-11 - heute

Smart-Home-Anwendung

Fullstack-Entwickler
Fullstack-Entwickler

Konzeption und Entwicklung einer Applikation ("Smart Appliance Enabler") zur Integration beliebiger Geräte (Wärmepumpe, Waschmaschine, Wallbox für Elektroautos, ...) in eine Smart-Home-Steuerung. Für die Kommunikation mit der Steuerung habe ich das SEMP-Protokoll des Wechselrichtergestellers SMA implementiert, eine Kombination aus UDDI und REST. Als Laufzeitumgebung habe ich Spring Boot gewählt, das auf einem Raspberry Pi läuft. Dessen digitale Schnittstellen werden über Pi4J angesprochen, um digitale Schalter zu schalten und Impulse von digitalen Stromzählern auszuwerten. Ferner wurden Adapter für HTTP und Modbus implementiert, damit entsprechende Schalter/Stromzähler ebenfalls gesteuert bzw. ausgewertet werden können.
Das Frontend wurde als Webanwendung mit Angular und TypeScript entwickelt, wobei als UI-Framework Angular Material zum Einsatz kam. Über Spring Boot werden REST-Services bereitgestellt.
Unit-Tests habe ich mit Jest erstellt. Für die Durchführung der Builds und Tests - auch des Web-Fontends - wird Maven verwendet. Dabei wird das Artefakt als war-Datei und auch als Docker-Image bereitgestellt. Das Docker-Image wird auch in AWS deployt, umd mit Testcafe und Browserstack e2e-Tests auszuführen.
Für die Entwicklung werden die IDEs IntelliJ (für den Spring Boot-Teil) und Webstorm (für Angular) verwendet.
Das Projekt habe ich als Open-Source-Projekt initiiert, das bei Github unter dem Namen "SmartApplianceEnabler" gehostet wird. Es wird von SMA als Referenzimplementierung empfohlen und der Anwender-Support läuft dementsprechend in einem Forum des Herstellers.

GitHub Git Java Spring Boot Angular IntelliJ WebStorm Docker Angular Material Browserstack Testcafe JAXB HTML5 CSS Jest JUnit Pi4J TypeScript Maven Mockito
Open-Source-Projekt
Altenstadt
4 Jahre 4 Monate
2013-09 - 2017-12

Mobiles Terminal für Zugbegleiter der Deutschen Bahn

Android-Entwickler
Android-Entwickler

Bei 12.000 Zugbegleitern der Deutschen Bahn dient das "Mobile Terminal (MT)" zur Kontrolle von Fahrkarten und eTickets, zum Verkaufen und Drucken von Tickets etc.. Die aktuelle Generation mobiler Terminals basiert auf Android 4.2. Die einzelnen fachlichen Funktionen sind dabei in Form separater Apps implementiert, die individuell aktualisiert werden können. Meine Aufgabe bestand zunächst im Konzipieren einer geeigneten Enwicklungsumgebung, wobei die Wahl auf ein virtualisiertes Linux mit Eclipse und Maven fiel. Im Rahmen der Software-Entwicklung war ich verantwortlich für die Implementierung der Apps "Fahrpreisnacherhebung" und "Druck" sowie teilweise auch "Verkauf". Jede App besteht aus entsprechenden Activities, Fragmenten und Services, wobei die Parametrisierung sowohl über App-spezifische SQLite-Datenbanken als auch über eingebundene Native-Bibliotheken erfolgte.
Für die Kommunikation der Apps untereinander war eine projektspezifische IPC-Implementierung vorgegeben. Auch für technische Transaktionen sowie fachliche (langlaufende) Transaktionen gab es projektspezfische APIs, die von den Apps genutzt wurden.
Parallel zur Implementierung der Apps bestand meine Aufgabe in der Erstellung eines Frameworks zur Testautomatisierung, welches wiederum auf UIAutomator basiert. Dieses wird inzwischen nicht nur im Rahmen der Entwicklung eingesetzt, sondern aufgrund der Vielzahl der Testfälle auch durch den Systemtest. Zugriffe auf die Hardware (Drucker, Belegscanner, Barcodeleser, Magnetkartenleser, NFC) erfolgten über einen Hardware-Abstraction-Layer, für den ich zwecks automatisierter Testdurchführung eine durch das Testframework steuerbare Mock-Implementierung entwickelt habe. Das Bauen der Software und die automatisierte Ausführung der Tests erfolgen mit Jenkins, der auf einer AWS-Cloud läuft. UI-Tests, die auf der Android-Hardware ausgeführt werden sollen, werden an Jenkins-Slaves delegiert, die auf einer Linux-Maschine laufen, an der mehrere MT angeschlossen sind.

Android Apache Subversion Eclipse Java Maven Android SQLite Oracle SQL Developer Atlassian JIRA Jenkins Atlassian Confluence HP QualityCenter VirtualBox
Deutsche Bahn
Frankfurt am Main
7 Jahre 2 Monate
2010-01 - 2017-02

Android-basierte Navigation für Hängegleiter

Android-Entwickler
Android-Entwickler

AndroFlight - die von mir entwickelte Android-Applikation für Gleitschirm-/Drachenpiloten bietet alle Funktionen eines Variometers mit Log-Funktion, ermöglicht aber durch den Zugriff auf Online-Resourcen wertvolle Informationen, die ein Offline-Variometer nicht bieten kann.
Die Benutzeroberfläche besteht aus diversen Activities, wobei die zentrale Activity Karten von Google Maps und OpenStreetMap unterstützt. Die umfangreiche Analyse und Aggregation der Flugdaten (Sensoren: GPS, Druck, Beschleunigung) sowie die Kommunikation mit Online-Resourcen sind als Service implementiert. Luftraumdaten werden nach dem automatischen Download in die SQL-Datenbank importiert und für performante Selektion im Rahmen des Renders aufbereitet. Für den Upload der Flugaufzeichnung in eine Flugdatenbank wurde ein SyncAdapter implementiert. Die Art und Weise der anzuzeigenden Informationen kann sehr flexibel über Preferences konfiguriert werden, die – wie die Anwendung insgesamt – lokalisiert (Englisch und Deutsch) angezeigt werden. Die Verwendung von Google Guice zur Dependency Injection erlaubt eine sehr gute Testbarkeit und klare Trennung der fachlichen Funktionen. Neben dem Emulator verwende ich zum Testen verschiedene Handies sowie ein Tablett. Die App ist über den Android Play Store verfübar und hat bisher ca. 25.000 Downloads.

Eclipse Android Studio Android Apache Subversion Git
eigenes Projekt
Altenstadt, Hessen
2 Jahre 11 Monate
2010-10 - 2013-08

Komplettsystem für touristische Prozesse

Backend-Entwickler
Backend-Entwickler

Als Reaktion auf starke Veränderungen der Strukturen und Wertschöpfungsketten der Reiseindustrie durch das Internet entwickelt das DER ein neues System zur Abbildung der gesamten touristischen Prozesse. Die Umsetzung erfolgt durch verschiedene Teams, welche jeweils für einen Teilprozess verantwortlich waren. Ich war zunächst ein Jahr im Team Booking tätig, dessen Aufgabe im Management (CRUD) von Reservierungen für eigene Produkte und auch Produkte aus Fremdsystemen bestand. Über Schnittstellen wurden die Reservierungen für nachgelagtere Prozesse (Dokumentendruck, Payment, …) verfügbar gemacht. Durch meinem Wechsel in das Team Product verlagerte sich der fachliche Fokus auf die Definition und den Lebenszyklus von touristischen Produkten und den mit ihnen assoziierten Regeln für deren Abbildung immerhin ca. 400 Entitäten erforderlich sind.
Die Entwicklung erfolgt modellgetrieben auf Basis von openArchitectureWare. Während im Bereich Booking die technische Modellierung mit UML unter Verwendung von MagicDraw erfolgt, werden im Bereich Product textuelle Modelle (XText) erstellt. Generiert wurden große Teile der Hibernate-basierten Persistenzschicht (JPA), das Grundgerüst für die EJB-basierten Services sowie der RCP-Client.
Im Rahmen der Umsetzung neuer Anforderungen und Fehlerbehebungen erstreckte sich meine Tätigkeitsbereich vom RCP-Client bis zur Datenbank. Dazu erfolgte in der Regel zunächst die Anpassung der Modelle und die Erstellung/Änderung der Geschäftslogik in den Services. Obwohl der Persitenz-Code in großen Teilen generierte wurde, waren auch hier Anpassungen vorzunehmen (z.B. Validatoren) und natürlich SQL-Scripts zur Migration der vorhandenen Daten zu erstellen und das Datenbankänderungstool Liquibase zu integrieren. Die Anpassung des RCP-Clients bestand vor allem in der Anpassung des Layouts sowie der Anbindung von Service-Aufrufen, wenn die Generierung nicht leistungsfähig genug für das gewünschte Verhalten war. Neben der Erfassung von Produkren durch den RCP-Client wurden Produkte auch aus anderen System importiert. An der Entwicklung der dafür notwendigen WebService- und Datei-basierten Schnittstellen war ich ebenfalls maßgeblich beteiligt. Die Erstellung von JUnit-Test war obligatorisch, teilweise unter Verwendung von Mocks (Mockito). Als Development- und Deploymentplatform wurde JBoss 4.3 eingesetzt. Weil die Entwicklung auf eigener Hardware erfolgte, konnte ich Linux als Betriebssystem einsetzen. Auch auf den Deploymentservern in den diversen Testumgebungen wurde Linux eingesetzt. Das zentrale Tool für Anforderungen und Fehlermeldungen und zur Abstimmung zwischen Entwicklern, Fachdesignern und Testern war Jira.

Oracle JBoss Apache Subversion Eclipse Java JUnit XML JMS Magicdraw openArchitectureWare Oracle SQL Developer Liquibase SmartSVN JPA JMX Dozer Hibernate Mockito log4j XML
DER Deutsches Reisebüro
Frankfurt am Main
9 Monate
2010-01 - 2010-09

Modernisierung der Warenwirtschaft

Backend-Entwickler
Backend-Entwickler

Host-basierte Programme des Warenwirtschschaftssystem eines großen Handelskonzerns sollten durch Web-Anwendungen ersetzt werden. Dazu wurden zunächst Prototypen auf Basis verschiedener Technologien (u.a. auch „Host-like“ im Browser) entwickelt, um die Akzeptanz bei den Host-gewöhnten Nutzern zu ermitteln. Letztlich erfolgte die Umsetzung auf Basis von Spring MVC. Auch die Services und die Datenbank-Zugriffe wurden mit Spring realisiert. Meine Aufgabe bestand in der Umsetzung fachlicher Teile der Anwendungen – von der Web-UI bis zum Datenbankzugriff.
Daneben habe ich Teile eines Frameworks zur Steuerung von Batch-Verarbeitungen auf dem Host entwickelt. Darauf aufbauend habe ich größere Batch-Programme von COBOL nach Java portiert. Weil die Tests auch auf dem Host ausgeführt wurden, habe ich mir entsprechendes Host-Know-How angeeignet.
Aufgrund meiner Erfahrungen aus vorangegangenen Projekten habe ich eine Continuous-Integration-Umgebung auf Basis von CruiseControl, Maven und Archiva unter Linux aufgebaut.

Eclipse Apache Subversion Apache Tomcat Cruise Control Maven Archiva JavaScript Spring
Rewe
Bad Soden am Taunus
4 Monate
2009-09 - 2009-12

Portierung von COBOL-Programmen nach Java

Backend-Entwickler
Backend-Entwickler

Das Host-basierte Warenwirtschschaftssystem eines großen Handelskonzerns sollte von COBOL nach Java portiert werden. Die
Umsetzung erfolgt auf Basis einer service-orientierten Architektur, welche den Einsatz der Services in verschiedenen Umgebungen (Host, Java SE/EE) erlaubt. Meine Aufgabe bestand in der Entwicklung von Framework-Komponenten und der Portierung von COBOL-Unterprogrammen. Die Datenbank-Zugriff wurde über Spring JDBC realisiert.

Eclipse Apache Subversion Spring z/OS Java
Rewe
4 Jahre 5 Monate
2005-05 - 2009-09

Optimierung der Bargeld-Logistik

Backend-Entwickler
Backend-Entwickler

Das Produkt dient der mandantenfähigen Verwaltung der physischen Bargeldströme und damit zusammenhängender Kosten zwischen Tresoren verschiedener Organisationen (Banken, Wertpapiertransportunternehmen, Bundesbank) und Geldautomaten. Das Ziel besteht in der Optimierung von Zeitpunkt und Geldmenge, um eine Minimierung der Kosten zu erreichen. Ein umfangreiches Reporting bietet allen Beteiligten ein hohes Maß an Transparenz.
Das Produkt-Team bestand im Maximum aus 15 Entwicklern und 5 Testern.
Die Anwendung ist Teil einer Produktlinie, wobei jedes Produkt als eine Kombination von SOA-Services und Platform/Infrastruktur-Services realisiert ist, die auf Basis von J2EE entwickelt wurden.
Neben der Entwicklung von Teilen des Produktes war ich auch für die Neu- und Weiterentwicklung von Platform-Diensten verantwortlich und habe die Entwicklungsinfrastruktur maßgeblich mitgestaltet:

Infrastruktur
- Konzeption und Realisierung einer produktlinienkonformen, betriebssystem-unabhängigen "Continous-Integration" (CI) Entwicklungsumgebung auf Basis von CruiseControl, Maven und Rational Application Developer (RAD), wobei für die Integration diverse Anpassungen an Maven-Plugins vorgenommen werden mussten
- Konzeption und Bereitstellung einer produktlinienkonformen Test-Infrastruktur auf Basis von JUnit, Cactus und EasyMock, die besondere Unterstützung für Aspekte wie Service-Mocking, Mandantenfähigkeit oder Concurrency-Test bietet und dadurch Entwickler zur Erstellung von Tests ermutigt. Die Testabdeckung wird kontinuierlich durch Cobertura überwacht und von der Projektleitung verfolgt.
- Einrichtung eines Projekt-Wiki (SnipSnap) zum Austausch von technischen Informationen unter Entwicklern (Probleme und Lösungen, Best Practices, ...)
Unterstützung von anderen Produkt-Teams bei der Nutzung der Entwicklungs-infrastruktur

Platform
- Konzeption eines Service zur Verwaltung von Benutzern und Mandanten, wobei durch eine Realisierung von Aspekten wie Authentifizierung und Autorisierung in JAAS-konformer Weise eine Integration in WebSphere ("Custom User Registry") und JBoss ("Login-Module") ermöglicht wird. Auch die Mandantenfähigkeit wird dabei sichergestellt. Flexible Password-Policies erlauben das Erzwingen der Einhaltung von Sicherheitsrichtlinien.
- Konzeption und Realisierung eines Service zum Propagieren von Geschäftsereignissen, sowie von weiteren Services, welche diese Geschäftsereignisse journalisieren oder sie als Report an "Stakeholder" weiterleiten (z.B. per Email).
- Für die Aufbereitung und Lokalisierung wurde ein weiterer Service konzipiert und realisiert, der ebenfalls zur Anzeige von Geschäftsereignissen im User Interface verwendet wird.
- Konzeption und Realisierung eines Service sowie zusätzlicher Tools zur Erzeugung und Verwaltung von Lizenzen sowie zur Sicherstellung der in den Lizenzen vorgegebenen Nutzungsbestimmungen
- Konzeption und Realsierung eines JCA Resource Adapters (CCI-Interface) zur Einbindung von Logik auf externen Systemen über RMI
- Konzeption und Realsierung eines Report-Service auf Basis von Jasper-Reports zur Erstellung von Reports in verschiedenen Formaten (TEXT, PDF, XML, CSV, ...) einschließlich Anpassungen der Build-Infrastruktur zum Sammeln, Compilieren und Bereitstellen der Reports von verschiedenen Services.
- Umstellung eines Produktes von J2EE 1.4 auf Java EE 5 (inkl. JPA) mit Glassfish
Konzeption und Realisierung eines MDSD-Ansatzes auf Basis von openArchitectureWare um J2EE 1.4 und Java EE 5 innerhalb der Produktlinie parallel zu unterstützen sowie eine Steigerung der Effizienz von Entwicklern durch Wegfall von Routine-Tätigkeiten zu erreichen. Die dabei erstellte textuelle DSL basiert auf der Produktlinienarchitektur und stärkt diese damit.
- Bereitstellung sämtlicher Services über RMI und als Web Service
Unterstützung von anderen Produkt-Teams bei der Nutzung von Platform-Diensten

Anwendung
- Erstellung von Analyse-Dokumenten und Dokumentation von Use-Cases inkl. Abstimmung mit Kunden Konzeption und Realisierung eines Service zur Verwaltung von Dienstleistern und deren erbringbaren und zu erbringenden Dienstleistungen
- Konzeption und Realisierung eines Service zur Verwaltung von zeitlich variablen Kosten für Dienstleistungen, Zinsen, Gebühren
- Bereitstellung sämtlicher Services über RMI und als Web Service
- Vorbereitung, Durchführung und Nachbereitung eines Lasttests im Benchmark Center von Sun Microsystem (Langen). Im Rahmen der Vorbereitung wurden parametrisierbare JMeter-Scripte sowie weitere Tools/Scripts erstellt, um die Performance der wesentlichen Geschäftstransaktionen unter Last in verschiedenen Cluster-Konfigurationen unter WebSphere und JBoss zu testen
- Unterstützung von Kunden bzw. der QA betreffend der von mir erstellten Services

DB2 Oracle PostgreSQL WebSphere JBoss Eclipse Java JUnit XML JMS SOAP DOM XSLT openArchitectureWare Glassfish Maven Cruise Control Cobertura SoapUI Apache JMeter EJB JCA JMS RMI Velocity EasyMock DBUnit log4j JMX XSLT dom4j Dozer Cryptix Jasper Reports
Wincor-Nixdorf
Neu-Isenburg
7 Monate
2009-02 - 2009-08

Android Live Tracker

Android-Entwickler
Android-Entwickler

Das Android-Programm erlaubt dem Nutzer, daß Personen seines Vertrauens seine Position live (real-time) auf einem beliebigen Internet-Gerät mit Browser verfolgen können. Das Android-Programm besteht aus mehreren Activities und einem Service, der im Hintergrund die Positionsdaten vom GPS-Sensor empfängt. Die Benutzung des Programms gestaltet sich äußerst einfach, weil sich der Programm-Benutzer nirgendwo anmelden muß, da er über eine ihm zeitlich zugewiesende, generierte ID identifiziert wird. Das Android-Programm kontaktiert zunächst eine von mir entwickelte und betriebene Java-Server-Anwendung, um von dort die ID und Konfigurationsdaten zu laden. Zusätzlich kann der Benutzer einige Parameter über Preferences konfigurieren. Die Java-Server-Anwendung stellt auch das Browser-Userinterface zum Verfolgen der Position des Android-Gerätes bereit. Über den GPS-Sensor bestimmt das Android-Programm fortlaufend die aktuelle Position und übermittelt diese an die Server-Anwendung. Die Server-Anwendung übermittelt auch die Anzahl der Anzahl der momentan mit ihrem Browser "zuschauenden" Personen an das Android Programm. Die Benutzeroberfläche der Android-Anwendung ist komplett lokalisiert – derzeit deutsch und englisch.

Eclipse Jetty Apache Subversion log4j JavaScript JSP Servlet Java Server Pages
eigenes Projekt
Altenstadt, Hessen
5 Monate
2004-11 - 2005-03

Integration und Erweiterung einer RFID-Software-Platform

Backend-Entwickler
Backend-Entwickler

Die von IBM als Produkt neu entwickelte RFID-Software-Platform soll zuerst in einem Projekt bei Metro eingeführt werden. Bei der RFID-Software-Platform handelt es sich um einen Micro-Broker (Pub-Sub-Engine) zur Steuerung von RFID-Readern, Signalen und Signalgebern, sowie um einer J2EE-Applikation zur Aggregation und Kanalisierung dieser Informationen, zur Software-Verteilung sowie zur Anbindung externer Backends.
Zunächst wurde von mir eine Build-/Testumgebung auf Basis von Apache Maven konzipiert. Dabei musste CMVC eingesetzt für Versionsverwaltung, Release-Management und Bug-Tracking verwendet werden.
Im Rahmen der Realisierung habe ich sowohl Micro-Broker-Agenten designed und implementiert, als auch Komponenten im Bereich der Geschäftslogik auf Basis von EJB. Außerdem habe ich den Web Service eines Backends in eine Komponente integriert.
Den von mir im Vorprojekt entwickelten RFID-Reader-Simulator habe ich erweitert, um variable Testszeanrien auch in Lasttests abbilden zu können.

DB2 WebSphere TogetherJ EJB Java JUnit RFID
IBM Deutschland
Walldorf (Baden)
6 Monate
2004-05 - 2004-10

Einführung von RFID bei einem Handelskonzern

Backend-Entwickler
Backend-Entwickler

Metro sieht sich als Vorreiter bei der großflächigen Einführung von RFID im Handel. Die Integration der RFID-Hardware in die vorhandenen Software-Systeme der einzelnen Vertriebslinien wird durch IBM realisiert. Nach einer Einarbeitung in die Spezifikationen und Technologien im RFID-Umfeld habe ich zur Sicherung der Software-Qualität zunächst eine Unittest-Umgebung für OSGI-Dienste konzipiert und aufgebaut.
Für das RFID Innovation Center der Metro in Neuss habe ich für eine bestehende, OSGI-basierte Applikation aus dem Metro Future Store die Anbindung an neue Hardware realisiert. Die Anbindung der Reader-Control-Applikation an Bewegungsmelder und Signallampen erfolgte mit einer Sealevel Digital I/O-Karte, für die eine entsprechende OSGI-basierte Schnittstelle implementiert wurde. Für neue Reader-Generationen von Intermec und Samsys habe ich Anpassungen der Implementierung der jeweiligen Protokolle vorgenommen. Die Entwicklungsaktivitäten erfolgten in enger Abstimmung mit Metro und den beteiligten Hardware-Lieferanten.
Zur effizienten Durchführung und Dokumentation der Tests von RFID-Hardware habe ich eine Reader-Control-Appikation entwickelt. Dazu lassen sich Hardware-Setups und Testfälle mit Variablen und zugehörigen Wertebereichen bzw. –ausprägungen definieren. Die Ergebnisse der Testdurchführung werden durch Servlet-/JSP-basierte Reports einzeln und zueinander korreliert dargestellet.
Im Rahmen des Systemtests habe ich einen RFID-Reader-Simulator entwickelt, mit dem der parallele Betrieb einer großen Anzahl von RFID-Readern vollautomatisch getestet werden kann. Das Verhalten des Simulators kann dabei an den zu testenden Geschäftsprozess angepasst werden. Während dieser Tests wurde mehrere kritische Fehler in der zu testenden Anwendung erkannt und behoben. Auch die Performance konnte durch diese Tests gezielt optimiert werden (z.B. MQe-basiertes Messaging), was zu einer signifikanten Steigerung des Gesamtperformance führte.
Die „Going life“-Phase habe ich als technischer Kundenkontakt aktiv begleitet.

WebSphere Java JUnit VMware CVS Oracle MySQL Ant
IBM Deutschland
Einführung von RFID bei einem Handelskonzern
4 Monate
2004-01 - 2004-04

Supplier Quality Control System

Fullstack-Entwickler
Fullstack-Entwickler

Im Auftrag der eigenen Wafer-Fabriken wurde ein System zur Überwachung der Lieferantenqualität (SQUIT) entwickelt. Jeder Lieferant muss Dateien mit parametrischen Daten der zur Lieferung vorgesehenen Produkte übermitteln. Diese Daten werden mit Spezifikationen verglichen bevor eine Freigabe zur Lieferung erfolgt. SQUIT besteht aus einem Web-Frontend und einem Backend. Der Schwerpunkt meiner Tätigkeit bestand in der Entwicklung der gesamten Spezifikationsprüfung. Im Zuge dieser Entwicklung habe ich das Persistenz-Framework Apache ObjectRelationalBridge eingeführt, um den Aufwand für Persistenz-Programmierung zu verringern (wird inzwischen projektweit eingesetzt). Weiterhin habe ich eine Umgebung für Continuous Integration mit CruiseControl / JUnit aufgebaut und den Unittest-Gedanken in das Team getragen. Auch an der Entwicklung einiger Bereiche des Web-GUIs mit Struts war ich beteiligt. In diesem Zusammenhang habe ich auch StrutsTestCase eingeführt, um Dialog-Sequenzen automatisiert zu testen.

WebSphere DB2 Tomcat CVS Cruise Control Ant JUnit Struts Java
IBM Deutschland
Mainz
1 Monat
2003-11 - 2003-11

Evaluierung eines Persistenz-Frameworks

Berater
Berater

Ziel dieses Beratungsprojektes war die Identifikation von Risiken und möglichen Maßnahmen aus dem Einsatz eines eigen-entwickelten Persistenz-Frameworks. Bestandteil der Untersuchung waren Anwender-Interviews, Code- und Dokumentationsreviews und der Vergleich mit anderen kommerziellen und nicht-kommerziellen Persistenz-Frameworks. Die Ergebnisse wurden dem IT Management als Grundlage einer Entscheidung über die Fortführung der Entwicklungs des Persistenz-Frameworks präsentiert.

TogetherJ Hibernate Oracle TopLink
Otto-Versand
Hamburg
2 Jahre 1 Monat
2001-10 - 2003-10

MidOffice-Applikation im Börsen-/Stromumfeld

Entwickler / Team-Leiter
Entwickler / Team-Leiter

Bei diesem Projekt handelte es sich um ein Kundenprojekt im Rahmen dessen einige Entwickler des Produktes MeX (Midoffice for electronic Exchanges) J2EE-Know-How aufbauen sollten. Dies war Voraussetzung für die für MeX angestrebte Technologiemigration von einer datenbank-zentrischen Client-Server-Applikation hin zu einer komponentenbasierten Anwendung auf Basis von J2EE. Die technische Führungsverantwortung für dieses Projekt mit insgesamt 6 Entwicklern lag bei mir.
Auf Basis der Analyse der existierenden Applikation und der Projektanforderungen des Kunden wurde von mir eine workflow-orientierte, mehrschichtige Architektur entworfen. Design und Implementierung erfolgte im Team, wobei zwei Entwickler von mir gecoached wurden, da sie keine Erfahrung in objektorientiertem Design und der Entwicklung mit Java/J2EE hatten. Signifikanten Aufwand erforderte die Entwicklung des Domain-Modells, da dieses in der bestehenden Anwendung nicht existierte. Für das Design der einzelnen Komponenten wurde TogetherJ verwendet, als IDE kam NetBeans zum Einsatz. Als Applikationsserver wurde zunächst WebLogic 7.0 verwendet, auf Kundenwunsch wurde jedoch auf JBoss 3.0 gewechselt. Als Workflow-Engine wurde OSWorkflow (Open Source; Teil des OpenSymphony Frameworks) verwendet, für die mehrere Ebenen von Workflows konzipiert wurden. Durch die Kopplung des (nicht von mir entwickelten) GUI mit den Workflows wurde eine hohe Parametrisierbarkeit der Anwendung erreicht. Die Workflows selbst konnten über ein von mir entwickeltes JMX-Interface beeinflusst werden. Produkt-Preise bzw. Kurse sollten von den Homepages der Kurslieferanten abgegriffen werden. Dazu habe ich die Schnittstellen so designed, dass HTML zunächst nach XHTML konvertiert wird, sodass auf die Kurse über XPath zugegriffen werden kann. Der XPath und weitere Parameter jeder Schnittstelle habe ich wiederum über JMX administrierbar gemacht. Wegen des Parallelbetriebs mit der Altapplikation mussten bestehende Datenbank-Strukturen bestehen bleiben. Die dadurch notwendige Entkopplung von Domain-Modell und Persistenz-Modell habe ich durch eine XML/XPath-basierte Abstraktion erreicht. Die Persistenz selbst wurde über CMP und CMR (EJB 2.0) gelöst, nachdem wir die Tauglichkeit dieses Ansatzes verifiziert hatten.

Oracle Apache Tomcat JBoss WebLogic TogetherJ CVS EJB Java NetBeans XML JSP XPath
GBS Consulting AG
Zürich
11 Monate
2000-12 - 2001-10

Erweiterung/Performance-Optimierung des Price-Quote-Server

Backend-Entwickler
Backend-Entwickler

Die Funktionalität des Price Quote Server sollte in einem weiteren Release erweitert und die Performance optimiert werden. Meine Aufgabe zum einen in der Implementierung der CORBA-Schnittstelle zum Backend-System auf Basis von VisiBroker als Ersatz für die JNI-Schnittstelle. Schwerpunkt meiner Arbeit war jedoch die Optimierung der Performance einschliesslich der Schaffung der dafür notwendigen Umgebung und Tools. Dazu wurden von mir Plugins für das freie Last-Tool Grinder entwickelt, über die mehr als 1000 concurrent User simuliert wurden. Im Rahmen des von mir durchgeführten Profilings wurden Performance-Engpässe identifiziert und von den betreffenden Entwicklern beseitigt. Ich selbst habe Verarbeitung der Digitalen Signaturen (Key-Algorithmus, Key-Länge, Hash-Algorithmus) und die Verwendung des XML-Parsers optimiert. Weiterhin habe ich viel Zeit auf das Optimieren von Betriebssystem-, JavaVM- und WebLogic-Parametern verwendet. Alternativ wurde auch der Betrieb der Anwendung in einem WebLogic-Cluster, auf dem Borland Application Server und auch auf dem Oracle Application Server getestet. Bei allen Tests war auch der Support der jeweiligen Server-Anbieter involviert. Im Ergebnis konnte der Durchsatz der Gesamtanwendung unter WebLogic 5.1 auf das 60-fache gesteigert werden. Abschliessend konnte ich im Sun Benchmark Zentrum einen Performance-Test des Price Quote Servers auf einer Sun Enterprise 10000 mit 64 CPUs durchführen.

Solaris WebLogic Borland Application Server Oracle Appliaction Server OptimizeIt CVS Bugzilla Oracle Grinder EJB Java Corba
Vodafone Telecommerce
Ratingen
5 Monate
2000-05 - 2000-09

Entwicklung eines Price-Quote-Server

Backend-Entwickler
Backend-Entwickler

Der Price Quote Server dient der performanten Beantwortung von Preis-Anfragen von Web-Shops. Die XML-Anfragen über HTTP(S) wurden zunächst gegen einen LDAP-Server authentifiziert und autorisiert. Anschliessend mussten sie in eine proprietäre Darstellung (M2F2) umgewandelt werden, bevor sie an das Backend-System weitergereicht werden. Die von dort erhaltenen Preis-Angebote mussten invers dazu wieder zurück nach XML konvertiert werden.
Als Applikationsserver kam WebLogic 5.1 zum Einsatz mit Oracle 8i als Datenbank.
Das Frontend-Interface zur Annahme der Price Quote Requests inklusive Authentifizierung/Autorisierung wurde von mir designt und implementiert. Ebenso die Schnittstelle zum Backend-System, welche als JNI-Interface implementiert wurde. Weiterhin habe ich die Generierung und Überprüfung der Digitalen Signaturen in Preis-Anfragen und Bestellungen implementiert. Dazu wurde die freie JCE-Implementierung Cryptix verwendet.

WebLogic CVS Bugzilla Oracle EJB JSP Java Servlet LDAP Java
Vodafone Telecommerce
Ratingen
2 Monate
2000-03 - 2000-04

Prototyp für Web Order Entry

Fullstack-Entwickler
Fullstack-Entwickler

Der Prototyp sollte die Auftragserfassung für die komplexen Produkte der Telekommunikationsbranche ermöglichen, wobei das Datenbank-Design vom Kunden vorgegeben war. Anforderungsgemäss wurde der Prototyp mit denselben Technologien realisiert, wie die spätere Applikation. Durch die Verwendung von XML zur Datenstrukturierung konnten HTML-GUIs dynamisch durch einen XSLT-Prozessor erzeugt werden. Meine Aufgabe bestand in der Implementierung von Authentifizierung und der XSL-Transformation.

WebLogic CVS Oracle EJB Xerces Xalan XPath
Mannesmann Arcor
Eschborn, Taunus

Aus- und Weiterbildung

Aus- und Weiterbildung

9/93-2/98 Fachhochschule Offenburg: Technische Betriebswirtschaft (Schwerpunkt: Rechnungswesen, Controlling, Steuern)
Abschluss: Diplom-Betriebswirt (FH) mit Note 2,0
9/91-7/93 Berufsakademie Stuttgart: Technische Informatik
Abschluss: keiner

Kompetenzen

Kompetenzen

Produkte / Standards / Erfahrungen / Methoden

Android Studio
Angular
Angular Material
Ant
Apache JMeter
Apache Subversion
Apache Tomcat
Atlassian Confluence
Atlassian JIRA
AWS
Borland Application Server
Browserstack
Bugzilla
Cobertura
Cruise Control
Cryptix
CSS
CVS
DBUnit
Docker
DOM
dom4j
Dozer
EasyMock
Eclipse
EJB
Git
GitHub
Gitlab CI/CD
Glassfish
Grinder
Hibernate
HP QualityCenter
HTML5
IntelliJ
Jasper Reports
Java Servlet
JAXB
JBoss
JCA
Jenkins
Jest
Jetty
JMS
JMX
JPA
JSP
JUnit
Koa.js
Kubernates
LDAP
Liquibase
log4j
Magicdraw
Maven
Mockito
Nest.js
NetBeans
openArchitectureWare
OpenShift
OptimizeIt
Oracle Appliaction Server
Oracle TopLink
Pi4J
Protractor
REST
RFID
RMI
Scrum
Servlet
SmartSVN
SOAP
SoapUI
Spring
Spring Boot
Struts
Testcafe
TogetherJ
Tomcat
Velocity
VirtualBox
VMware
Vue.js
WebLogic
WebSphere
WebStorm
Xerces
XML
XPath
XSLT

Betriebssysteme

Android
Linux
Windows
z/OS

Programmiersprachen

Java
JavaScript
TypeScript

Datenbanken

Android SQLite
DB2
MySQL
Oracle
Oracle SQL Developer
PostgreSQL
SQL

Datenkommunikation

CORBA
Visibroker
Ethernet
Internet, Intranet
TCP/IP

Hardware

PC
Raspberry Pi

Design / Entwicklung / Konstruktion

MagicDraw

TogetherJ

Branchen

Branchen

Erfahrungen in folgenden Branchen:
- Logistik (Deutsche Bahn)
- Reisen (Deutsches Reisebüro)
- Handel (Logistik)
- Banken (Wertpapiere / Derivate / Bargeld)
- Telekommunikation (Schwerpunkte: Mobile, Billing)
Bin offen für neue Branchen!

Einsatzorte

Einsatzorte

Frankfurt am Main (+50km) Darmstadt (+75km) Homburg (Saar) (+50km)

ausschliesslich Rhein-Main-Gebiet

nicht möglich

Projekte

Projekte

6 Jahre 3 Monate
2018-01 - heute

Neu-Entwicklung von www.bahn.de

Fullstack-Entwickler Scrum
Fullstack-Entwickler

Als Fullstack-Entwickler habe ich die Neu-Entwicklung von -Hyperlink entfernt- mit vollständig responsivem Design gestaltet. Das beinhaltete die Entwicklung von Frontend-Komponenten auf Basis von Vue.js und Angular sowie Middleware-Komponenten auf Basis von Koa.js und Nest.js. Die Implementierung erfolgte in TypeScript. Weil das Layout exakt vorgegeben wurde, konnte kein CSS-Framenwork verwendet werden, d.h. sämtlich Controls wurden auf Basis von HTML und CSS selbst entwickelt. Die Kommunikation zwischen Frontend und Middleware sowie zwischen Middleware und Backend erfolgte über REST-Schnittstellen.
Die Builds wurden mit GitLab CI/CD-Pipelines als Docker-Images erstellt und in AWS-Clustern deployt. Die Entwicklung erfolgte mit IntelliJ/WebStorm unter Linux. Unit-Tests wurden mit Jest erstellt. e2e-Tests auf Basis von Protractor und Cucumber wurden zum Testen der Web-Anwendung erstellt, wobei gleichzeitig das Layout durch Visual Regression Tests getestet wurde. Alle Schichten des Software-Stacks wurden isoliert und integrativ automatisiert getestet, wobei die Testabdeckung überwacht und kontinuierlich erhöht wurde. Das Projekt war aufgrund der Größe (> 400 Personen) nach SAFe organisiert, um eine Vielzahl von SCRUM-Teams zu synchronisieren. Ich gehörte zu einem von drei SCRUM-Teams, die für die Entwicklung im Bereich Web-Frontend/Middleware verantwortlich waren. Die Stories, Tasks und Bugs wurden von uns in Jira verwaltet. Die Dokumentation erfolgte in Confluence.

Angular Atlassian Confluence Docker Git Gitlab CI/CD HTML5 CSS Atlassian JIRA Jest JSON Koa.js Nest.js Kubernates OpenShift Protractor REST TypeScript Vue.js AWS Linux
Scrum
Deutsche Bahn
Frankfurt am Main
8 Jahre 5 Monate
2015-11 - heute

Smart-Home-Anwendung

Fullstack-Entwickler
Fullstack-Entwickler

Konzeption und Entwicklung einer Applikation ("Smart Appliance Enabler") zur Integration beliebiger Geräte (Wärmepumpe, Waschmaschine, Wallbox für Elektroautos, ...) in eine Smart-Home-Steuerung. Für die Kommunikation mit der Steuerung habe ich das SEMP-Protokoll des Wechselrichtergestellers SMA implementiert, eine Kombination aus UDDI und REST. Als Laufzeitumgebung habe ich Spring Boot gewählt, das auf einem Raspberry Pi läuft. Dessen digitale Schnittstellen werden über Pi4J angesprochen, um digitale Schalter zu schalten und Impulse von digitalen Stromzählern auszuwerten. Ferner wurden Adapter für HTTP und Modbus implementiert, damit entsprechende Schalter/Stromzähler ebenfalls gesteuert bzw. ausgewertet werden können.
Das Frontend wurde als Webanwendung mit Angular und TypeScript entwickelt, wobei als UI-Framework Angular Material zum Einsatz kam. Über Spring Boot werden REST-Services bereitgestellt.
Unit-Tests habe ich mit Jest erstellt. Für die Durchführung der Builds und Tests - auch des Web-Fontends - wird Maven verwendet. Dabei wird das Artefakt als war-Datei und auch als Docker-Image bereitgestellt. Das Docker-Image wird auch in AWS deployt, umd mit Testcafe und Browserstack e2e-Tests auszuführen.
Für die Entwicklung werden die IDEs IntelliJ (für den Spring Boot-Teil) und Webstorm (für Angular) verwendet.
Das Projekt habe ich als Open-Source-Projekt initiiert, das bei Github unter dem Namen "SmartApplianceEnabler" gehostet wird. Es wird von SMA als Referenzimplementierung empfohlen und der Anwender-Support läuft dementsprechend in einem Forum des Herstellers.

GitHub Git Java Spring Boot Angular IntelliJ WebStorm Docker Angular Material Browserstack Testcafe JAXB HTML5 CSS Jest JUnit Pi4J TypeScript Maven Mockito
Open-Source-Projekt
Altenstadt
4 Jahre 4 Monate
2013-09 - 2017-12

Mobiles Terminal für Zugbegleiter der Deutschen Bahn

Android-Entwickler
Android-Entwickler

Bei 12.000 Zugbegleitern der Deutschen Bahn dient das "Mobile Terminal (MT)" zur Kontrolle von Fahrkarten und eTickets, zum Verkaufen und Drucken von Tickets etc.. Die aktuelle Generation mobiler Terminals basiert auf Android 4.2. Die einzelnen fachlichen Funktionen sind dabei in Form separater Apps implementiert, die individuell aktualisiert werden können. Meine Aufgabe bestand zunächst im Konzipieren einer geeigneten Enwicklungsumgebung, wobei die Wahl auf ein virtualisiertes Linux mit Eclipse und Maven fiel. Im Rahmen der Software-Entwicklung war ich verantwortlich für die Implementierung der Apps "Fahrpreisnacherhebung" und "Druck" sowie teilweise auch "Verkauf". Jede App besteht aus entsprechenden Activities, Fragmenten und Services, wobei die Parametrisierung sowohl über App-spezifische SQLite-Datenbanken als auch über eingebundene Native-Bibliotheken erfolgte.
Für die Kommunikation der Apps untereinander war eine projektspezifische IPC-Implementierung vorgegeben. Auch für technische Transaktionen sowie fachliche (langlaufende) Transaktionen gab es projektspezfische APIs, die von den Apps genutzt wurden.
Parallel zur Implementierung der Apps bestand meine Aufgabe in der Erstellung eines Frameworks zur Testautomatisierung, welches wiederum auf UIAutomator basiert. Dieses wird inzwischen nicht nur im Rahmen der Entwicklung eingesetzt, sondern aufgrund der Vielzahl der Testfälle auch durch den Systemtest. Zugriffe auf die Hardware (Drucker, Belegscanner, Barcodeleser, Magnetkartenleser, NFC) erfolgten über einen Hardware-Abstraction-Layer, für den ich zwecks automatisierter Testdurchführung eine durch das Testframework steuerbare Mock-Implementierung entwickelt habe. Das Bauen der Software und die automatisierte Ausführung der Tests erfolgen mit Jenkins, der auf einer AWS-Cloud läuft. UI-Tests, die auf der Android-Hardware ausgeführt werden sollen, werden an Jenkins-Slaves delegiert, die auf einer Linux-Maschine laufen, an der mehrere MT angeschlossen sind.

Android Apache Subversion Eclipse Java Maven Android SQLite Oracle SQL Developer Atlassian JIRA Jenkins Atlassian Confluence HP QualityCenter VirtualBox
Deutsche Bahn
Frankfurt am Main
7 Jahre 2 Monate
2010-01 - 2017-02

Android-basierte Navigation für Hängegleiter

Android-Entwickler
Android-Entwickler

AndroFlight - die von mir entwickelte Android-Applikation für Gleitschirm-/Drachenpiloten bietet alle Funktionen eines Variometers mit Log-Funktion, ermöglicht aber durch den Zugriff auf Online-Resourcen wertvolle Informationen, die ein Offline-Variometer nicht bieten kann.
Die Benutzeroberfläche besteht aus diversen Activities, wobei die zentrale Activity Karten von Google Maps und OpenStreetMap unterstützt. Die umfangreiche Analyse und Aggregation der Flugdaten (Sensoren: GPS, Druck, Beschleunigung) sowie die Kommunikation mit Online-Resourcen sind als Service implementiert. Luftraumdaten werden nach dem automatischen Download in die SQL-Datenbank importiert und für performante Selektion im Rahmen des Renders aufbereitet. Für den Upload der Flugaufzeichnung in eine Flugdatenbank wurde ein SyncAdapter implementiert. Die Art und Weise der anzuzeigenden Informationen kann sehr flexibel über Preferences konfiguriert werden, die – wie die Anwendung insgesamt – lokalisiert (Englisch und Deutsch) angezeigt werden. Die Verwendung von Google Guice zur Dependency Injection erlaubt eine sehr gute Testbarkeit und klare Trennung der fachlichen Funktionen. Neben dem Emulator verwende ich zum Testen verschiedene Handies sowie ein Tablett. Die App ist über den Android Play Store verfübar und hat bisher ca. 25.000 Downloads.

Eclipse Android Studio Android Apache Subversion Git
eigenes Projekt
Altenstadt, Hessen
2 Jahre 11 Monate
2010-10 - 2013-08

Komplettsystem für touristische Prozesse

Backend-Entwickler
Backend-Entwickler

Als Reaktion auf starke Veränderungen der Strukturen und Wertschöpfungsketten der Reiseindustrie durch das Internet entwickelt das DER ein neues System zur Abbildung der gesamten touristischen Prozesse. Die Umsetzung erfolgt durch verschiedene Teams, welche jeweils für einen Teilprozess verantwortlich waren. Ich war zunächst ein Jahr im Team Booking tätig, dessen Aufgabe im Management (CRUD) von Reservierungen für eigene Produkte und auch Produkte aus Fremdsystemen bestand. Über Schnittstellen wurden die Reservierungen für nachgelagtere Prozesse (Dokumentendruck, Payment, …) verfügbar gemacht. Durch meinem Wechsel in das Team Product verlagerte sich der fachliche Fokus auf die Definition und den Lebenszyklus von touristischen Produkten und den mit ihnen assoziierten Regeln für deren Abbildung immerhin ca. 400 Entitäten erforderlich sind.
Die Entwicklung erfolgt modellgetrieben auf Basis von openArchitectureWare. Während im Bereich Booking die technische Modellierung mit UML unter Verwendung von MagicDraw erfolgt, werden im Bereich Product textuelle Modelle (XText) erstellt. Generiert wurden große Teile der Hibernate-basierten Persistenzschicht (JPA), das Grundgerüst für die EJB-basierten Services sowie der RCP-Client.
Im Rahmen der Umsetzung neuer Anforderungen und Fehlerbehebungen erstreckte sich meine Tätigkeitsbereich vom RCP-Client bis zur Datenbank. Dazu erfolgte in der Regel zunächst die Anpassung der Modelle und die Erstellung/Änderung der Geschäftslogik in den Services. Obwohl der Persitenz-Code in großen Teilen generierte wurde, waren auch hier Anpassungen vorzunehmen (z.B. Validatoren) und natürlich SQL-Scripts zur Migration der vorhandenen Daten zu erstellen und das Datenbankänderungstool Liquibase zu integrieren. Die Anpassung des RCP-Clients bestand vor allem in der Anpassung des Layouts sowie der Anbindung von Service-Aufrufen, wenn die Generierung nicht leistungsfähig genug für das gewünschte Verhalten war. Neben der Erfassung von Produkren durch den RCP-Client wurden Produkte auch aus anderen System importiert. An der Entwicklung der dafür notwendigen WebService- und Datei-basierten Schnittstellen war ich ebenfalls maßgeblich beteiligt. Die Erstellung von JUnit-Test war obligatorisch, teilweise unter Verwendung von Mocks (Mockito). Als Development- und Deploymentplatform wurde JBoss 4.3 eingesetzt. Weil die Entwicklung auf eigener Hardware erfolgte, konnte ich Linux als Betriebssystem einsetzen. Auch auf den Deploymentservern in den diversen Testumgebungen wurde Linux eingesetzt. Das zentrale Tool für Anforderungen und Fehlermeldungen und zur Abstimmung zwischen Entwicklern, Fachdesignern und Testern war Jira.

Oracle JBoss Apache Subversion Eclipse Java JUnit XML JMS Magicdraw openArchitectureWare Oracle SQL Developer Liquibase SmartSVN JPA JMX Dozer Hibernate Mockito log4j XML
DER Deutsches Reisebüro
Frankfurt am Main
9 Monate
2010-01 - 2010-09

Modernisierung der Warenwirtschaft

Backend-Entwickler
Backend-Entwickler

Host-basierte Programme des Warenwirtschschaftssystem eines großen Handelskonzerns sollten durch Web-Anwendungen ersetzt werden. Dazu wurden zunächst Prototypen auf Basis verschiedener Technologien (u.a. auch „Host-like“ im Browser) entwickelt, um die Akzeptanz bei den Host-gewöhnten Nutzern zu ermitteln. Letztlich erfolgte die Umsetzung auf Basis von Spring MVC. Auch die Services und die Datenbank-Zugriffe wurden mit Spring realisiert. Meine Aufgabe bestand in der Umsetzung fachlicher Teile der Anwendungen – von der Web-UI bis zum Datenbankzugriff.
Daneben habe ich Teile eines Frameworks zur Steuerung von Batch-Verarbeitungen auf dem Host entwickelt. Darauf aufbauend habe ich größere Batch-Programme von COBOL nach Java portiert. Weil die Tests auch auf dem Host ausgeführt wurden, habe ich mir entsprechendes Host-Know-How angeeignet.
Aufgrund meiner Erfahrungen aus vorangegangenen Projekten habe ich eine Continuous-Integration-Umgebung auf Basis von CruiseControl, Maven und Archiva unter Linux aufgebaut.

Eclipse Apache Subversion Apache Tomcat Cruise Control Maven Archiva JavaScript Spring
Rewe
Bad Soden am Taunus
4 Monate
2009-09 - 2009-12

Portierung von COBOL-Programmen nach Java

Backend-Entwickler
Backend-Entwickler

Das Host-basierte Warenwirtschschaftssystem eines großen Handelskonzerns sollte von COBOL nach Java portiert werden. Die
Umsetzung erfolgt auf Basis einer service-orientierten Architektur, welche den Einsatz der Services in verschiedenen Umgebungen (Host, Java SE/EE) erlaubt. Meine Aufgabe bestand in der Entwicklung von Framework-Komponenten und der Portierung von COBOL-Unterprogrammen. Die Datenbank-Zugriff wurde über Spring JDBC realisiert.

Eclipse Apache Subversion Spring z/OS Java
Rewe
4 Jahre 5 Monate
2005-05 - 2009-09

Optimierung der Bargeld-Logistik

Backend-Entwickler
Backend-Entwickler

Das Produkt dient der mandantenfähigen Verwaltung der physischen Bargeldströme und damit zusammenhängender Kosten zwischen Tresoren verschiedener Organisationen (Banken, Wertpapiertransportunternehmen, Bundesbank) und Geldautomaten. Das Ziel besteht in der Optimierung von Zeitpunkt und Geldmenge, um eine Minimierung der Kosten zu erreichen. Ein umfangreiches Reporting bietet allen Beteiligten ein hohes Maß an Transparenz.
Das Produkt-Team bestand im Maximum aus 15 Entwicklern und 5 Testern.
Die Anwendung ist Teil einer Produktlinie, wobei jedes Produkt als eine Kombination von SOA-Services und Platform/Infrastruktur-Services realisiert ist, die auf Basis von J2EE entwickelt wurden.
Neben der Entwicklung von Teilen des Produktes war ich auch für die Neu- und Weiterentwicklung von Platform-Diensten verantwortlich und habe die Entwicklungsinfrastruktur maßgeblich mitgestaltet:

Infrastruktur
- Konzeption und Realisierung einer produktlinienkonformen, betriebssystem-unabhängigen "Continous-Integration" (CI) Entwicklungsumgebung auf Basis von CruiseControl, Maven und Rational Application Developer (RAD), wobei für die Integration diverse Anpassungen an Maven-Plugins vorgenommen werden mussten
- Konzeption und Bereitstellung einer produktlinienkonformen Test-Infrastruktur auf Basis von JUnit, Cactus und EasyMock, die besondere Unterstützung für Aspekte wie Service-Mocking, Mandantenfähigkeit oder Concurrency-Test bietet und dadurch Entwickler zur Erstellung von Tests ermutigt. Die Testabdeckung wird kontinuierlich durch Cobertura überwacht und von der Projektleitung verfolgt.
- Einrichtung eines Projekt-Wiki (SnipSnap) zum Austausch von technischen Informationen unter Entwicklern (Probleme und Lösungen, Best Practices, ...)
Unterstützung von anderen Produkt-Teams bei der Nutzung der Entwicklungs-infrastruktur

Platform
- Konzeption eines Service zur Verwaltung von Benutzern und Mandanten, wobei durch eine Realisierung von Aspekten wie Authentifizierung und Autorisierung in JAAS-konformer Weise eine Integration in WebSphere ("Custom User Registry") und JBoss ("Login-Module") ermöglicht wird. Auch die Mandantenfähigkeit wird dabei sichergestellt. Flexible Password-Policies erlauben das Erzwingen der Einhaltung von Sicherheitsrichtlinien.
- Konzeption und Realisierung eines Service zum Propagieren von Geschäftsereignissen, sowie von weiteren Services, welche diese Geschäftsereignisse journalisieren oder sie als Report an "Stakeholder" weiterleiten (z.B. per Email).
- Für die Aufbereitung und Lokalisierung wurde ein weiterer Service konzipiert und realisiert, der ebenfalls zur Anzeige von Geschäftsereignissen im User Interface verwendet wird.
- Konzeption und Realisierung eines Service sowie zusätzlicher Tools zur Erzeugung und Verwaltung von Lizenzen sowie zur Sicherstellung der in den Lizenzen vorgegebenen Nutzungsbestimmungen
- Konzeption und Realsierung eines JCA Resource Adapters (CCI-Interface) zur Einbindung von Logik auf externen Systemen über RMI
- Konzeption und Realsierung eines Report-Service auf Basis von Jasper-Reports zur Erstellung von Reports in verschiedenen Formaten (TEXT, PDF, XML, CSV, ...) einschließlich Anpassungen der Build-Infrastruktur zum Sammeln, Compilieren und Bereitstellen der Reports von verschiedenen Services.
- Umstellung eines Produktes von J2EE 1.4 auf Java EE 5 (inkl. JPA) mit Glassfish
Konzeption und Realisierung eines MDSD-Ansatzes auf Basis von openArchitectureWare um J2EE 1.4 und Java EE 5 innerhalb der Produktlinie parallel zu unterstützen sowie eine Steigerung der Effizienz von Entwicklern durch Wegfall von Routine-Tätigkeiten zu erreichen. Die dabei erstellte textuelle DSL basiert auf der Produktlinienarchitektur und stärkt diese damit.
- Bereitstellung sämtlicher Services über RMI und als Web Service
Unterstützung von anderen Produkt-Teams bei der Nutzung von Platform-Diensten

Anwendung
- Erstellung von Analyse-Dokumenten und Dokumentation von Use-Cases inkl. Abstimmung mit Kunden Konzeption und Realisierung eines Service zur Verwaltung von Dienstleistern und deren erbringbaren und zu erbringenden Dienstleistungen
- Konzeption und Realisierung eines Service zur Verwaltung von zeitlich variablen Kosten für Dienstleistungen, Zinsen, Gebühren
- Bereitstellung sämtlicher Services über RMI und als Web Service
- Vorbereitung, Durchführung und Nachbereitung eines Lasttests im Benchmark Center von Sun Microsystem (Langen). Im Rahmen der Vorbereitung wurden parametrisierbare JMeter-Scripte sowie weitere Tools/Scripts erstellt, um die Performance der wesentlichen Geschäftstransaktionen unter Last in verschiedenen Cluster-Konfigurationen unter WebSphere und JBoss zu testen
- Unterstützung von Kunden bzw. der QA betreffend der von mir erstellten Services

DB2 Oracle PostgreSQL WebSphere JBoss Eclipse Java JUnit XML JMS SOAP DOM XSLT openArchitectureWare Glassfish Maven Cruise Control Cobertura SoapUI Apache JMeter EJB JCA JMS RMI Velocity EasyMock DBUnit log4j JMX XSLT dom4j Dozer Cryptix Jasper Reports
Wincor-Nixdorf
Neu-Isenburg
7 Monate
2009-02 - 2009-08

Android Live Tracker

Android-Entwickler
Android-Entwickler

Das Android-Programm erlaubt dem Nutzer, daß Personen seines Vertrauens seine Position live (real-time) auf einem beliebigen Internet-Gerät mit Browser verfolgen können. Das Android-Programm besteht aus mehreren Activities und einem Service, der im Hintergrund die Positionsdaten vom GPS-Sensor empfängt. Die Benutzung des Programms gestaltet sich äußerst einfach, weil sich der Programm-Benutzer nirgendwo anmelden muß, da er über eine ihm zeitlich zugewiesende, generierte ID identifiziert wird. Das Android-Programm kontaktiert zunächst eine von mir entwickelte und betriebene Java-Server-Anwendung, um von dort die ID und Konfigurationsdaten zu laden. Zusätzlich kann der Benutzer einige Parameter über Preferences konfigurieren. Die Java-Server-Anwendung stellt auch das Browser-Userinterface zum Verfolgen der Position des Android-Gerätes bereit. Über den GPS-Sensor bestimmt das Android-Programm fortlaufend die aktuelle Position und übermittelt diese an die Server-Anwendung. Die Server-Anwendung übermittelt auch die Anzahl der Anzahl der momentan mit ihrem Browser "zuschauenden" Personen an das Android Programm. Die Benutzeroberfläche der Android-Anwendung ist komplett lokalisiert – derzeit deutsch und englisch.

Eclipse Jetty Apache Subversion log4j JavaScript JSP Servlet Java Server Pages
eigenes Projekt
Altenstadt, Hessen
5 Monate
2004-11 - 2005-03

Integration und Erweiterung einer RFID-Software-Platform

Backend-Entwickler
Backend-Entwickler

Die von IBM als Produkt neu entwickelte RFID-Software-Platform soll zuerst in einem Projekt bei Metro eingeführt werden. Bei der RFID-Software-Platform handelt es sich um einen Micro-Broker (Pub-Sub-Engine) zur Steuerung von RFID-Readern, Signalen und Signalgebern, sowie um einer J2EE-Applikation zur Aggregation und Kanalisierung dieser Informationen, zur Software-Verteilung sowie zur Anbindung externer Backends.
Zunächst wurde von mir eine Build-/Testumgebung auf Basis von Apache Maven konzipiert. Dabei musste CMVC eingesetzt für Versionsverwaltung, Release-Management und Bug-Tracking verwendet werden.
Im Rahmen der Realisierung habe ich sowohl Micro-Broker-Agenten designed und implementiert, als auch Komponenten im Bereich der Geschäftslogik auf Basis von EJB. Außerdem habe ich den Web Service eines Backends in eine Komponente integriert.
Den von mir im Vorprojekt entwickelten RFID-Reader-Simulator habe ich erweitert, um variable Testszeanrien auch in Lasttests abbilden zu können.

DB2 WebSphere TogetherJ EJB Java JUnit RFID
IBM Deutschland
Walldorf (Baden)
6 Monate
2004-05 - 2004-10

Einführung von RFID bei einem Handelskonzern

Backend-Entwickler
Backend-Entwickler

Metro sieht sich als Vorreiter bei der großflächigen Einführung von RFID im Handel. Die Integration der RFID-Hardware in die vorhandenen Software-Systeme der einzelnen Vertriebslinien wird durch IBM realisiert. Nach einer Einarbeitung in die Spezifikationen und Technologien im RFID-Umfeld habe ich zur Sicherung der Software-Qualität zunächst eine Unittest-Umgebung für OSGI-Dienste konzipiert und aufgebaut.
Für das RFID Innovation Center der Metro in Neuss habe ich für eine bestehende, OSGI-basierte Applikation aus dem Metro Future Store die Anbindung an neue Hardware realisiert. Die Anbindung der Reader-Control-Applikation an Bewegungsmelder und Signallampen erfolgte mit einer Sealevel Digital I/O-Karte, für die eine entsprechende OSGI-basierte Schnittstelle implementiert wurde. Für neue Reader-Generationen von Intermec und Samsys habe ich Anpassungen der Implementierung der jeweiligen Protokolle vorgenommen. Die Entwicklungsaktivitäten erfolgten in enger Abstimmung mit Metro und den beteiligten Hardware-Lieferanten.
Zur effizienten Durchführung und Dokumentation der Tests von RFID-Hardware habe ich eine Reader-Control-Appikation entwickelt. Dazu lassen sich Hardware-Setups und Testfälle mit Variablen und zugehörigen Wertebereichen bzw. –ausprägungen definieren. Die Ergebnisse der Testdurchführung werden durch Servlet-/JSP-basierte Reports einzeln und zueinander korreliert dargestellet.
Im Rahmen des Systemtests habe ich einen RFID-Reader-Simulator entwickelt, mit dem der parallele Betrieb einer großen Anzahl von RFID-Readern vollautomatisch getestet werden kann. Das Verhalten des Simulators kann dabei an den zu testenden Geschäftsprozess angepasst werden. Während dieser Tests wurde mehrere kritische Fehler in der zu testenden Anwendung erkannt und behoben. Auch die Performance konnte durch diese Tests gezielt optimiert werden (z.B. MQe-basiertes Messaging), was zu einer signifikanten Steigerung des Gesamtperformance führte.
Die „Going life“-Phase habe ich als technischer Kundenkontakt aktiv begleitet.

WebSphere Java JUnit VMware CVS Oracle MySQL Ant
IBM Deutschland
Einführung von RFID bei einem Handelskonzern
4 Monate
2004-01 - 2004-04

Supplier Quality Control System

Fullstack-Entwickler
Fullstack-Entwickler

Im Auftrag der eigenen Wafer-Fabriken wurde ein System zur Überwachung der Lieferantenqualität (SQUIT) entwickelt. Jeder Lieferant muss Dateien mit parametrischen Daten der zur Lieferung vorgesehenen Produkte übermitteln. Diese Daten werden mit Spezifikationen verglichen bevor eine Freigabe zur Lieferung erfolgt. SQUIT besteht aus einem Web-Frontend und einem Backend. Der Schwerpunkt meiner Tätigkeit bestand in der Entwicklung der gesamten Spezifikationsprüfung. Im Zuge dieser Entwicklung habe ich das Persistenz-Framework Apache ObjectRelationalBridge eingeführt, um den Aufwand für Persistenz-Programmierung zu verringern (wird inzwischen projektweit eingesetzt). Weiterhin habe ich eine Umgebung für Continuous Integration mit CruiseControl / JUnit aufgebaut und den Unittest-Gedanken in das Team getragen. Auch an der Entwicklung einiger Bereiche des Web-GUIs mit Struts war ich beteiligt. In diesem Zusammenhang habe ich auch StrutsTestCase eingeführt, um Dialog-Sequenzen automatisiert zu testen.

WebSphere DB2 Tomcat CVS Cruise Control Ant JUnit Struts Java
IBM Deutschland
Mainz
1 Monat
2003-11 - 2003-11

Evaluierung eines Persistenz-Frameworks

Berater
Berater

Ziel dieses Beratungsprojektes war die Identifikation von Risiken und möglichen Maßnahmen aus dem Einsatz eines eigen-entwickelten Persistenz-Frameworks. Bestandteil der Untersuchung waren Anwender-Interviews, Code- und Dokumentationsreviews und der Vergleich mit anderen kommerziellen und nicht-kommerziellen Persistenz-Frameworks. Die Ergebnisse wurden dem IT Management als Grundlage einer Entscheidung über die Fortführung der Entwicklungs des Persistenz-Frameworks präsentiert.

TogetherJ Hibernate Oracle TopLink
Otto-Versand
Hamburg
2 Jahre 1 Monat
2001-10 - 2003-10

MidOffice-Applikation im Börsen-/Stromumfeld

Entwickler / Team-Leiter
Entwickler / Team-Leiter

Bei diesem Projekt handelte es sich um ein Kundenprojekt im Rahmen dessen einige Entwickler des Produktes MeX (Midoffice for electronic Exchanges) J2EE-Know-How aufbauen sollten. Dies war Voraussetzung für die für MeX angestrebte Technologiemigration von einer datenbank-zentrischen Client-Server-Applikation hin zu einer komponentenbasierten Anwendung auf Basis von J2EE. Die technische Führungsverantwortung für dieses Projekt mit insgesamt 6 Entwicklern lag bei mir.
Auf Basis der Analyse der existierenden Applikation und der Projektanforderungen des Kunden wurde von mir eine workflow-orientierte, mehrschichtige Architektur entworfen. Design und Implementierung erfolgte im Team, wobei zwei Entwickler von mir gecoached wurden, da sie keine Erfahrung in objektorientiertem Design und der Entwicklung mit Java/J2EE hatten. Signifikanten Aufwand erforderte die Entwicklung des Domain-Modells, da dieses in der bestehenden Anwendung nicht existierte. Für das Design der einzelnen Komponenten wurde TogetherJ verwendet, als IDE kam NetBeans zum Einsatz. Als Applikationsserver wurde zunächst WebLogic 7.0 verwendet, auf Kundenwunsch wurde jedoch auf JBoss 3.0 gewechselt. Als Workflow-Engine wurde OSWorkflow (Open Source; Teil des OpenSymphony Frameworks) verwendet, für die mehrere Ebenen von Workflows konzipiert wurden. Durch die Kopplung des (nicht von mir entwickelten) GUI mit den Workflows wurde eine hohe Parametrisierbarkeit der Anwendung erreicht. Die Workflows selbst konnten über ein von mir entwickeltes JMX-Interface beeinflusst werden. Produkt-Preise bzw. Kurse sollten von den Homepages der Kurslieferanten abgegriffen werden. Dazu habe ich die Schnittstellen so designed, dass HTML zunächst nach XHTML konvertiert wird, sodass auf die Kurse über XPath zugegriffen werden kann. Der XPath und weitere Parameter jeder Schnittstelle habe ich wiederum über JMX administrierbar gemacht. Wegen des Parallelbetriebs mit der Altapplikation mussten bestehende Datenbank-Strukturen bestehen bleiben. Die dadurch notwendige Entkopplung von Domain-Modell und Persistenz-Modell habe ich durch eine XML/XPath-basierte Abstraktion erreicht. Die Persistenz selbst wurde über CMP und CMR (EJB 2.0) gelöst, nachdem wir die Tauglichkeit dieses Ansatzes verifiziert hatten.

Oracle Apache Tomcat JBoss WebLogic TogetherJ CVS EJB Java NetBeans XML JSP XPath
GBS Consulting AG
Zürich
11 Monate
2000-12 - 2001-10

Erweiterung/Performance-Optimierung des Price-Quote-Server

Backend-Entwickler
Backend-Entwickler

Die Funktionalität des Price Quote Server sollte in einem weiteren Release erweitert und die Performance optimiert werden. Meine Aufgabe zum einen in der Implementierung der CORBA-Schnittstelle zum Backend-System auf Basis von VisiBroker als Ersatz für die JNI-Schnittstelle. Schwerpunkt meiner Arbeit war jedoch die Optimierung der Performance einschliesslich der Schaffung der dafür notwendigen Umgebung und Tools. Dazu wurden von mir Plugins für das freie Last-Tool Grinder entwickelt, über die mehr als 1000 concurrent User simuliert wurden. Im Rahmen des von mir durchgeführten Profilings wurden Performance-Engpässe identifiziert und von den betreffenden Entwicklern beseitigt. Ich selbst habe Verarbeitung der Digitalen Signaturen (Key-Algorithmus, Key-Länge, Hash-Algorithmus) und die Verwendung des XML-Parsers optimiert. Weiterhin habe ich viel Zeit auf das Optimieren von Betriebssystem-, JavaVM- und WebLogic-Parametern verwendet. Alternativ wurde auch der Betrieb der Anwendung in einem WebLogic-Cluster, auf dem Borland Application Server und auch auf dem Oracle Application Server getestet. Bei allen Tests war auch der Support der jeweiligen Server-Anbieter involviert. Im Ergebnis konnte der Durchsatz der Gesamtanwendung unter WebLogic 5.1 auf das 60-fache gesteigert werden. Abschliessend konnte ich im Sun Benchmark Zentrum einen Performance-Test des Price Quote Servers auf einer Sun Enterprise 10000 mit 64 CPUs durchführen.

Solaris WebLogic Borland Application Server Oracle Appliaction Server OptimizeIt CVS Bugzilla Oracle Grinder EJB Java Corba
Vodafone Telecommerce
Ratingen
5 Monate
2000-05 - 2000-09

Entwicklung eines Price-Quote-Server

Backend-Entwickler
Backend-Entwickler

Der Price Quote Server dient der performanten Beantwortung von Preis-Anfragen von Web-Shops. Die XML-Anfragen über HTTP(S) wurden zunächst gegen einen LDAP-Server authentifiziert und autorisiert. Anschliessend mussten sie in eine proprietäre Darstellung (M2F2) umgewandelt werden, bevor sie an das Backend-System weitergereicht werden. Die von dort erhaltenen Preis-Angebote mussten invers dazu wieder zurück nach XML konvertiert werden.
Als Applikationsserver kam WebLogic 5.1 zum Einsatz mit Oracle 8i als Datenbank.
Das Frontend-Interface zur Annahme der Price Quote Requests inklusive Authentifizierung/Autorisierung wurde von mir designt und implementiert. Ebenso die Schnittstelle zum Backend-System, welche als JNI-Interface implementiert wurde. Weiterhin habe ich die Generierung und Überprüfung der Digitalen Signaturen in Preis-Anfragen und Bestellungen implementiert. Dazu wurde die freie JCE-Implementierung Cryptix verwendet.

WebLogic CVS Bugzilla Oracle EJB JSP Java Servlet LDAP Java
Vodafone Telecommerce
Ratingen
2 Monate
2000-03 - 2000-04

Prototyp für Web Order Entry

Fullstack-Entwickler
Fullstack-Entwickler

Der Prototyp sollte die Auftragserfassung für die komplexen Produkte der Telekommunikationsbranche ermöglichen, wobei das Datenbank-Design vom Kunden vorgegeben war. Anforderungsgemäss wurde der Prototyp mit denselben Technologien realisiert, wie die spätere Applikation. Durch die Verwendung von XML zur Datenstrukturierung konnten HTML-GUIs dynamisch durch einen XSLT-Prozessor erzeugt werden. Meine Aufgabe bestand in der Implementierung von Authentifizierung und der XSL-Transformation.

WebLogic CVS Oracle EJB Xerces Xalan XPath
Mannesmann Arcor
Eschborn, Taunus

Aus- und Weiterbildung

Aus- und Weiterbildung

9/93-2/98 Fachhochschule Offenburg: Technische Betriebswirtschaft (Schwerpunkt: Rechnungswesen, Controlling, Steuern)
Abschluss: Diplom-Betriebswirt (FH) mit Note 2,0
9/91-7/93 Berufsakademie Stuttgart: Technische Informatik
Abschluss: keiner

Kompetenzen

Kompetenzen

Produkte / Standards / Erfahrungen / Methoden

Android Studio
Angular
Angular Material
Ant
Apache JMeter
Apache Subversion
Apache Tomcat
Atlassian Confluence
Atlassian JIRA
AWS
Borland Application Server
Browserstack
Bugzilla
Cobertura
Cruise Control
Cryptix
CSS
CVS
DBUnit
Docker
DOM
dom4j
Dozer
EasyMock
Eclipse
EJB
Git
GitHub
Gitlab CI/CD
Glassfish
Grinder
Hibernate
HP QualityCenter
HTML5
IntelliJ
Jasper Reports
Java Servlet
JAXB
JBoss
JCA
Jenkins
Jest
Jetty
JMS
JMX
JPA
JSP
JUnit
Koa.js
Kubernates
LDAP
Liquibase
log4j
Magicdraw
Maven
Mockito
Nest.js
NetBeans
openArchitectureWare
OpenShift
OptimizeIt
Oracle Appliaction Server
Oracle TopLink
Pi4J
Protractor
REST
RFID
RMI
Scrum
Servlet
SmartSVN
SOAP
SoapUI
Spring
Spring Boot
Struts
Testcafe
TogetherJ
Tomcat
Velocity
VirtualBox
VMware
Vue.js
WebLogic
WebSphere
WebStorm
Xerces
XML
XPath
XSLT

Betriebssysteme

Android
Linux
Windows
z/OS

Programmiersprachen

Java
JavaScript
TypeScript

Datenbanken

Android SQLite
DB2
MySQL
Oracle
Oracle SQL Developer
PostgreSQL
SQL

Datenkommunikation

CORBA
Visibroker
Ethernet
Internet, Intranet
TCP/IP

Hardware

PC
Raspberry Pi

Design / Entwicklung / Konstruktion

MagicDraw

TogetherJ

Branchen

Branchen

Erfahrungen in folgenden Branchen:
- Logistik (Deutsche Bahn)
- Reisen (Deutsches Reisebüro)
- Handel (Logistik)
- Banken (Wertpapiere / Derivate / Bargeld)
- Telekommunikation (Schwerpunkte: Mobile, Billing)
Bin offen für neue Branchen!

Vertrauen Sie auf GULP

Im Bereich Freelancing
Im Bereich Arbeitnehmerüberlassung / Personalvermittlung

Fragen?

Rufen Sie uns an +49 89 500316-300 oder schreiben Sie uns:

Das GULP Freelancer-Portal

Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.