50% Lead Developer, 30% DevSecOps, 20% Scrum Master
Aktualisiert am 19.04.2024
Profil
Freiberufler / Selbstständiger
Remote-Arbeit
Verfügbar ab: 01.09.2024
Verfügbar zu: 80%
davon vor Ort: 25%
SE Lead
DevOps
Big Data
Go-Developer
certified scrum master
Senior Developer
Java 1.8
Spring
REST
Solution Architect
Software Architect

Einsatzorte

Einsatzorte

Frankfurt (+50km) Gießen, Lahn (+50km)
Deutschland
möglich

Projekte

Projekte

4 Jahre 6 Monate
2020-01 - heute

Automatisierter Datenaustausch

Lead Developer (80%), DevSecOps (20%) Azure Cloud Docker Postgres ...
Lead Developer (80%), DevSecOps (20%)

Fachlichkeit

  • Automatisierter Datenaustausch von Messwerten sowie Erstellung von Abrechnungen für Immobiliennebenkosten (Strom, Strom, Wasser, …) über REST-ful und file-basierte Web-Services.

Technik

  • Microservice-Architektur, Portierung von on-premise Hosting in die Azure Cloud

Organisation

Scrum, Backlog mit JIRA, Dokumentation mit Confluence

Aufgaben

  • Entwicklung + Testautomatisierung
  • Entwurf und Betrieb einer Microservice-Architektur
  • Cloud-Integration
  • Kollaboration mit Offshore-Team in Polen
Azure Cloud Docker Postgres ansible / tower Java JUnit Postman Linux Consul Netflix Zuul Elasticsearch Kibana Prometheus Grafana Gradle GitLab CI Spring Boot + HATEOAS FitNesse Liquibase
Energiewirtschaft
Deutschland
8 Monate
2019-06 - 2020-01

Migrationsprojekt (Live-Gang)

Lead Developer (50%), Operations (50%) AWS Apache Kafka AVRO ...
Lead Developer (50%), Operations (50%)

Fachlichkeit

  • Migration des Backends einer Web-Applikation zur Disposition und Auswertung von Fahrten in die "neue Welt" der RI und Ablösung des Altsystems. Allgemein: Das Ziel des Projektes RI ist, Reisende individuell, einfach und lösungsorientiert während ihrer gesamten Reise zu begleiten. Die Informationen sollen aktuell, verlässlich und konsistent verfügbar auf allen bekannten Kanälen (Anzeigetafeln, Ansagen, Websites, Mobile Apps, in den
    Fahrzeugen) sein. Natürlich wollen wir über alle bestehenden Kundenschnittstellen die Fahrgäste zuverlässig und - vor allem - widerspruchsfrei informieren. Personas spiegeln die wichtigsten Zielgruppen unter den Reisenden wider und helfen uns unsere Produkte konsequent für die Reisenden zu entwickeln.

Technik

  • Eine NoSQL-Datenbank wird für die Speicherung des Fahrtwissens (Persistent State) und die Wiederherstellung bei Systemausfällen verwendet. Herausfordernd sind die Anforderungen an das System hinsichtlich Lesegeschwindigkeit (<1 Sekunde), Robustheit (24x7) und Skalierbarkeit (365 Tage, pro Tag: 300.000 Verkehrsmittel, 20.000 Stationen, 60 Millionen Reisende). Allgemein: Verteiltes System mit Deployment in der Amazon-Cloud. Der Kern des Systems nutzt Kafka als Messaging-Plattform für die massiv verteilte Verarbeitung der Events (Streaming). Innerhalb der Komponenten gibt es NoSQL-Datenbanken für die Speicherung von Zuständen (Persistent State) und die Wiederherstellung bei Systemausfällen. Aufgrund der skalierten agilen Entwicklung gibt es auch die Herausforderung, das System automatisiert zu testen und eine hohe Testabdeckung zu erreichen

Organisation

  • Scrum-of-Scrum auf Basis von Nexus und SAFE
  • Vorgangsverwaltung mit JIRA
  • Dokumentation mit Confluence

Aufgaben

  • Ausbildung neuer Entwickler
  • Monitoring + Alerting
  • Entwurf und Entwicklung eines verteilten Systems mit Microservices
  • Entwurf und Entwicklung von Schnittstellen des Systems
  • Administrierung, Infrastruktur-Provisioning, Config-Management
AWS Apache Kafka AVRO Docker Apache Cassandra ansible Java JUnit Cucumber FitNesse Linux CentOS Kafka Streams Confluent Platform Kubernetes Rancher Helm Hashicorp Vault Elasticsearch Kibana Prometheus Grafana Gradle Jenkins GitLab CI Spring Boot Groovy
Deutsche Bahn
Deutschland
11 Monate
2018-07 - 2019-05

Migrationsprojekt (Teamaufbau)

Lead Developer (50%), Scrum Master (45%), Operations (5%) AWS Apache Kafka AVRO ...
Lead Developer (50%), Scrum Master (45%), Operations (5%)

Fachlichkeit

  • Migration des Backends einer Web-Applikation zur Disposition und Auswertung von Fahrten in die "neue Welt" der RI und Ablösung des Altsystems.

Technik

  • Eine NoSQL-Datenbank wird für die Speicherung des Fahrtwissens (Persistent State) und die Wiederherstellung bei Systemausfällen verwendet. Herausfordernd sind die Anforderungen an das System hinsichtlich Lesegeschwindigkeit (<1 Sekunde), Robustheit (24x7) und Skalierbarkeit (365 Tage, pro Tag: 300.000 Verkehrsmittel, 20.000 Stationen, 60 Millionen Reisende).

Organisation

  • Scrum-of-Scrum auf Basis von Nexus und SAFE
  • Vorgangsverwaltung mit JIRA
  • Dokumentation mit Confluence

Aufgaben

  • Organisation/ Moderation von team-internen und skalierten Scrum Events
  • agiles Coaching
  • Ausbildung neuer Entwickler
  • Monitoring + Alerting
  • Entwurf und Entwicklung eines verteilten Systems mit Microservices
  • Entwurf und Entwicklung von Schnittstellen des Systems
  • Administrierung, Infrastruktur-Provisioning, Config-Management
AWS Apache Kafka AVRO Docker Apache Cassandra ansible Java JUnit Cucumber FitNesse Linux CentOS Kafka Streams Confluent Platform Kubernetes Rancher Helm Hashicorp Vault Elasticsearch Kibana Prometheus Grafana Gradle Jenkins GitLab CI Spring Boot Groovy
Deutsche Bahn
Deutschland
6 Monate
2018-01 - 2018-06

Etablierung von Best Practices, Featureausbau

Lead Developer, Operations AWS Apache Kafka AVRO ...
Lead Developer, Operations

Fachlichkeit

  • Das Ziel des Projektes RI ist, Reisende individuell, einfach und lösungsorientiert während ihrer gesamten Reise zu begleiten. Die Informationen sollen aktuell, verlässlich und konsistent verfügbar auf allen bekannten Kanälen (Anzeigetafeln, Ansagen, Websites, Mobile Apps, in den
    Fahrzeugen) sein.

Technik

  • Als Container-Orchestrierung werden Kubernetes und Rancher eingesetzt. Allgemein: Verteiltes System mit Deployment in der Amazon-Cloud. Der Kern des Systems nutzt Kafka als Messaging-Plattform für die massiv verteilte Verarbeitung der Events (Streaming). Innerhalb der Komponenten gibt es NoSQL-Datenbanken für die Speicherung von Zuständen (Persistent State) und die Wiederherstellung bei Systemausfällen. Herausfordernd sind die Anforderungen an das System hinsichtlich Leistung (~50 Millionen Events/Tag), Robustheit (24x7) und Skalierbarkeit (300.000 Verkehrsmittel, 20.000 Stationen, 60 Millionen Reisende). Aufgrund der skalierten agilen Entwicklung gibt es auch die Herausforderung, das System automatisiert zu testen und eine hohe Testabdeckung zu erreichen

Organisation

  • Scrum-of-Scrum auf Basis von Nexus
  • Vorgangsverwaltung mit JIRA
  • Dokumentation mit Confluence un CARDS+

Aufgaben

  • Ausbildung neuer Entwickler
  • Monitoring + Alerting
  • Entwurf und Entwicklung eines verteilten Systems mit Microservices
  • Entwurf und Entwicklung von Schnittstellen des Systems
  • Administrierung, Infrastruktur-Provisioning, Config-Management
AWS Apache Kafka AVRO Docker Apache Cassandra ansible Java JUnit Cucumber FitNesse Linux CentOS RabbitMQ Kafka Streams Confluent Platform Hazelcast Kubernetes Rancher Elasticsearch Kibana Prometheus Grafana Gradle Jenkins Spring Boot Groovy
Deutsche Bahn
Deutschland
1 Jahr
2017-01 - 2017-12

DevOps, weitere produktive Infokanäle

Senior Developer, Operations AWS Apache Kafka AVRO ...
Senior Developer, Operations

Fachlichkeit

  • Das Ziel des Projektes RI ist, Reisende individuell, einfach und lösungsorientiert während ihrer gesamten Reise zu begleiten. Die Informationen sollen aktuell, verlässlich und konsistent verfügbar auf allen bekannten Kanälen (Anzeigetafeln, Ansagen, Websites, Mobile Apps, in den
    Fahrzeugen) sein.

Technik

  • Sämtliche Fachlichkeit wurde als event-basierte Microservices mit Docker (Swarm) realisiert. Tagesaktuelle Berechnungen werden mit einem verteilten Cache beschleunigt.

Organisation

  • Scrum-of-Scrum auf Basis von Nexus
  • Vorgangsverwaltung mit JIRA
  • Dokumentation mit Confluence

Aufgaben

  • Monitoring + Alerting
  • Entwurf und Entwicklung eines verteilten Systems mit Microservices
  • Entwurf und Entwicklung von Schnittstellen des Systems
  • Administrierung, Infrastruktur-Provisioning, Config-Management
AWS Apache Kafka AVRO Docker Apache Cassandra ansible Java JUnit Cucumber FitNesse Linux CentOS RabbitMQ Docker Swarm Kafka Streams Confluent Platform Hazelcast Vaadin Kafka Connect HDFS Hive Spark Elasticsearch Kibana Prometheus Grafana Gradle Jenkins Spring Boot Groovy Consul
Deutsche Bahn
Deutschland
1 Jahr
2016-01 - 2016-12

PoCs, erste Produktivnahme

Developer, Operations AWS Apache Storm Apache Kafka ...
Developer, Operations

Fachlichkeit

  • Das Ziel des Projektes RI ist, Reisende individuell, einfach und lösungsorientiert während ihrer gesamten Reise zu begleiten. Die Informationen sollen aktuell, verlässlich und konsistent verfügbar auf allen bekannten Kanälen (Anzeigetafeln, Ansagen, Websites, Mobile Apps, in den
    Fahrzeugen) sein.

Technik

  • Verteiltes System mit Deployment in der Amazon-Cloud. Informationskanäle werden als event-basierte Storm-Topologien realisiert. Adapter für Datenquellen und -senken als rein transformative Microservices mit Docker. Der Kern des Systems nutzt Kafka als Messaging-Plattform für die massiv verteilte Verarbeitung der Events (Streaming). Innerhalb der Komponenten gibt es NoSQL-Datenbanken für die Speicherung von Zuständen (Persistent State) und die Wiederherstellung bei Systemausfällen. Herausfordernd sind die Anforderungen an das System hinsichtlich Leistung (~50 Millionen Events/ Tag), Robustheit (24x7) und Skalierbarkeit (300.000 Verkehrsmittel, 20.000 Stationen, 60 Millionen Reisende). Aufgrund der skalierten agilen Entwicklung gibt es auch die Herausforderung, das System automatisiert zu testen und eine hohe Testabdeckung zu erreichen

Organisation

  • Agiles Vorgehensmodell mit Scrum
  • Vorgangsverwaltung mit JIRA
  • Dokumentation mit Confluence

Aufgaben

  • Entwurf und Entwicklung eines verteilten Systems mit Apache Storm
  • Entwurf und Entwicklung von Schnittstellen des Systems
  • Administrierung, Infrastruktur-Provisioning, Config-Management
AWS Apache Storm Apache Kafka AVRO Docker Apache Cassandra Redis ansible Java JUnit Cucumber FitNesse Linux CentOS RabbitMQ OracleDB OracleAQ Postgres Elasticsearch Kibana Gradle Jenkins Spring Boot Spring Batch Groovy Consul
Deutsche Bahn
Deutschland
1 Jahr
2015-10 - 2016-09

Raily

Product Owner
Product Owner

Fachlichkeit

  • Raily ist eine Info-App für Bahnreisende und fungiert als „Reise-Butler“. Sie wurde in Zusammenarbeit mit der TU Darmstadt innerhalb eines R+D Projekts mit Studenten realisiert. Der Prototyp umfasste eine persönliche Fahrtvisualisierung, die proaktive Versorgung nützlicher Information zu Orten des Reisewegs und Vorschlägen zur Überbrückung von Fahrtverzögerungen/ -ausfällen.

Technik

  • Raily ist eine native Android App ohne separates Backend. Die Optik orientierte sich am Material Design. Als Datenquellen wurde die Open Data-API der Deutschen Bahn und diverse Google APIs benutzt.

Aufgaben

  • Korrespondenz mit den Studenten
  • Schärfung von Anforderungen
  • Präsentation an Kunde und Arbeitgeber
Transport und Logistik
Deutschland
5 Monate
2015-08 - 2015-12

CounterFighter

(PoC-)Developer Android Java JUnit ...
(PoC-)Developer

Fachlichkeit

  • CounterFighter ist ein System zur Verpackungs-Authentifizierung. Mittels einer mobilen App soll mit Hilfe der Kamerafunktion des Smartphones ein Pharmapräparat auf Echtheit untersucht werden. Der Grundgedanke ist ein Abgleich von Merkmalsvektoren mit zwei bestehenden Datenbanken - eine mit authentischen und eine mit bekannten gefälschten Präparaten.

Technik

  • CounterFighter besteht aus vier technischen Komponenten. Eine Android-App erstellt die zu untersuchenden Fotos plus Merkmalsvektoren. Ein Cloud- Dienst nimmt über eine REST-API Anfragen Barcodes zur Ermittlung des Präparates sowie Echtheitsanfragen an. Eine Web-Anwendung in einer Microservice-Architektur mit Spring-Boot und Docker ermöglicht es einem Pharmahersteller authentische Präparate einzupflegen. Die Vergleichsdatenbanken können über ein Service-Interface angesprochen werden

Aufgaben

  • Machbarkeitsanalyse und Pilotprojektentwicklung
  • Barcode-Scanning mit zxing
  • Bildbearbeitung mit openCV (URL auf Anfrage)
  • Entwicklung der mobilen App in Android mit Retrofit REST-Client
  • Entwicklung des RESTful Webservices mit Retrofit
  • Anbindung einer SQLite-Datenbank mit EclipseLink
  • Entwicklung eines Web-Frontends mit JSF 2.2/ Primefaces
  • Backend mit Tomcat 8 und MySQL
Android Java JUnit Spring-Boot Docker openCV Retrofit zxing EclipseLink JSF Tomcat MySQL Gradle
Pharmahandel
Deutschland
3 Monate
2015-06 - 2015-08

OFA - Optimierte Fahrdatenauswertung

Developer, Maintainer JEE/EJB JBoss JSF/JavaScript/HTML ...
Developer, Maintainer

Fachlichkeit

  • OFA ist eine bundesweit genutzte Web-Anwendung der Deutschen Bahn, die die Übernahme von Fahraufzeichnungen ermöglicht. Weiterhin werden dem Benutzer umfangreiche fahraufzeichnungsbezogene Daten in konsolidierter Form zum Zweck der Analyse und Auswertung zur Verfügung stellt. Die Daten können im Rahmen eines umfangreichen Berichtswesens gesichtet werden. Grundlage für die Verarbeitung der Fahraufzeichnungen sind diverse Import- Schnittstellen, die zur Validierung und Auswertung genutzt werden.

Technik

  • OFA wird basierend auf JEE gemäß der Referenzarchitektur umgesetzt. Der Zugriff auf die Oracle Datenbank erfolgt über Hibernate. Der Web-Client arbeitet mit JSF/JavaScript/HTML, für das Berichtswesen ist Jasper Reports im Einsatz. Für die Konfiguration der Anwendung wird Spring verwendet, Sicherheitsaspekte werden mit dem Spring-Framework adressiert

Aufgaben

  • Objektorientiertes Design mit UML
  • Server-Entwicklung mit JEE/ EJB
  • Client-Entwicklung mit JSF
  • Report-Entwicklung mit Jasper Reports
  • Anbindung einer Oracle-Datenbank mit Hibernate
  • Entwicklung von API-Tests mit JUnit
  • Durchführung von Integrationstests
JEE/EJB JBoss JSF/JavaScript/HTML Jasper Hibernate OracleDB Spring Framework Spring Security Java JUnit Maven
Deutsche Bahn
Deutschland
8 Monate
2014-04 - 2014-11

WLAN-Bandbreitenaggregierung

Software-Entwickler, Netzwerktechniker Test- und Evaluationsbeau
Software-Entwickler, Netzwerktechniker Test- und Evaluationsbeau

Fachlichkeit

  • Im Rahmen meiner Masterarbeit „A Solution for Backhaul Aggregation in IEEE 802.11 Networks Using Multipath TCP" habe ich für die Deutsche Telekom AG einen Prototypen zur Bündelung von DSL-Bandbreite über das WLAN implementiert. Die Lösung hat mit Hilfe eines zweiten ad hoc-Netzwerks, welches auf einer anderen nicht-störenden Frequenz funkte, den Datenstrom auf Ebene der Transportschicht geteilt. Im Endeffekt kann auf diese Weise ein Kunde die Bandbreite seiner Nachbarn mitbenutzen und erreicht ein Vielfaches seiner üblichen Downstream-Kapazität, niemals jedoch weniger als sein aktueller Vertrag garantiert. Der implementierte Ansatz hatte einen Wirkungsgrad von etwa 95%.

Technik

  • Die physikalische Schicht baut auf dem IEEE 802.11-Standard auf. Die Netzwerkschicht wurde mit Unix-Tools (iptables, nohup) und Bash-Skripten umgesetzt. Auf der Transportschicht wurde „Multipath TCP" verwendet. Die Messung der Bandbreite erfolgte mit „iperf".

Aufgaben

  • Forschungsarbeit zur Machbarkeitsanalyse
  • Planung und Realisierung einer Netzwerkinfrastruktur
  • Messung und Auswertung mit „iperf“
Deutsche Telekom
Deutschland
6 Monate
2013-10 - 2014-03

Development

Developer
Developer

Fachlichkeit

  • Im Rahmen einer Vorlesung „Middleware" sollte ein vereinfachter Amazon-Klon implementiert werden. Zu den Features gehörten bspw. das Management von Produkten, Kunden und deren Bestellungen. Zusätzlich wird die Möglichkeit zur Verfolgung von Lieferungen und die Benachrichtigung von Ausnahmen (z.B. LKW-Unfall, Stau) bereitgestellt. Abschließend sollten Konsistenzgarantien zwischen Clients (Omazan-Admins) gelten.

Technik

  • Omazan wurde basierend auf Java EE und einem Glassfish Application Server umgesetzt. Der Zugriff auf die in-Memory Datenbank (HSQLDB) erfolgte über die JPA. Der Web-Client arbeitet mit JavaScript/ HTML, der native Client nur mit Java. Der Informationsaustausch zwischen Client und Server erfolgte RESTful über JSON-Serialisierung. Benachrichtigungen wurden mit JMS abgehandelt.

Aufgaben

  • Projektmanagement
  • Objektorientiertes Design mit UML
  • Client-Entwicklung mit Java
  • Server-Entwicklung mit JEE/ EJB/ JPA/ JMS
  • Entwicklung von REST-Webservices mit JAX-RS
  • Anbindung einer in-Memory-Datenbank (HSQLDB)
  • Entwicklung von API-Tests mit JUnit
  • Durchführung von Integrationstests
Omazan Inc.
Deutschland
6 Monate
2013-10 - 2014-03

BubbleStorm mit Aktoren

Developer
Developer

Fachlichkeit

  • BubbleStorm ist ein an der TU Darmstadt entwickelter Ansatz um P2PSysteme aufzubauen und die Topologie der Netzknoten so zu verwalten, dass ein resultierender Graph sowohl zuverlässig verbunden und skalierbar ist, als auch Lasten in geeigneter Form zu verteilen weiß

Technik

  • Das Projekt wurde vollständig in Java umgesetzt. Die Simulation der teilnehmenden Netzwerkknoten wurde mit dem Aktorenmodell als Auspägung des Prinzips „message passing". Als Aktorenbibliothek kam „actorom" zum Einsatz.

Aufgaben

  • Auf- und Abbau des Netzwerks
  • Nebenläufige Programmierung mit actorom
  • Entwicklung der Multicast-Funktionalität
  • Entwicklung von API-Tests mit JUnit
  • Durchführung von Integrationstests
Deutschland
6 Monate
2013-04 - 2013-09

The ACM DEBS 2013 Grand Challenge

Developer
Developer

Fachlichkeit

  • Im Rahmen der Vorlesung „Event Processing" wurde die o.g. Challenge als begleitendes Praktikum gelöst. Drahtlose Sensoren übermitteln während eines Fußballspiels einigen Tsd. Events/Sekunde. Diese sollten in Echtzeit verarbeitet und für diverse Stakeholder (Trainer, Manager) ausgewertet
    werden. Die Auswertung beinhaltete u.a. folgende Queries: den Anteil an Ballbesitz, Anzahl Torschüsse, Laufverhalten und Positionsveteilung der Spieler auf dem Feld.

Technik

  • Die auf Java basierende Lösung stützte sich im Rahmen der komplexen Eventverarbeitung auf die „Esper"-Engine. Die Verteilung der Spielerpositionen auf dem Feld wurde als Heatmap in einem Swing-Client dargestellt. Die Lösung war effizient genug um alle 4 Queries parallel auf einem Mittelklasse-Notebook auszuführen.

Aufgaben

  • Objektorientiertes Design mit UML
  • Client-Entwicklung mit Swing
  • Anbindung einer Event-Datenmenge
  • Verarbeitung der Events mit Esper
  • Durchführung von Integrationstests
Deutschland
6 Monate
2013-04 - 2013-09

Bean Definition Language

Developer
Developer

Fachlichkeit

  • Im Rahmen der Vorlesung „Modellgetriebene Entwicklung" wurde das Projekt BDL ins Leben gerufen. Für Java EE-Entwickler sind JavaBeans das absolute Alltagsgeschäft. Immer wieder müssen Objekt in die spezifizierte Bean-Struktur überführt werden. Der damit verbundene Boilerplate-Code kostet Zeit und damit Geld. Der hier gewählte Ansatz dieses Problem zu adressieren ist zum einen die Definition einer Grammatik für die „Bean Definition
    Language" (BDL), zum anderen die Implementierung eines
    JavaCodegenerators. In BDL können bequem und kompakt alle notwendigen Eigenschaften (Name, Primärschlüssel, Attribute, Operationen, etc.) beschrieben werden. Der Codegenerator übernimmt die Erzeugung entsprechender java-Dateien in Echtzeit und stellt überdies die Einhaltung der JavaBeans-Spezifikation sicher. Eine Code-Ersparnis von 80% oder mehr ist der Regelfall.

Technik

  • Die technologische Basis stellt die Bibliothek „Xtext" in Verbindung mit „Xtend" dar. Die Realisierung der BDL mit allen Funktionalitäten ist als Eclipse-Plugin verfügbar und kann konventionell über eine Update-Site bezogen werden.

Aufgaben

  • Modellgetriebene Entwicklung mit Xtext/ Xtend
  • Entwicklung von Eclipse-Plugins
  • Entwicklung von API-Tests mit JUnit
  • Durchführung von Integrationstests
Deutschland
3 Monate
2013-05 - 2013-07

Smart Wardrobe

Developer
Developer

Fachlichkeit

  • Im Rahmen der Vorlesung „TK3 – Ubiquitous Computing" sollte der intelligente Kleiderschrank „Smart Wardrobe" eine computergestützte Auswahl von Kleidungsstücken ermöglichen. Es sollten Faktoren wie Kalendertermine, Wärmegrad, Regenbeständigkeit und Stil berücksichtigt werden. In die Kleidung eingearbeitete RFID-Tags sollten diese Informationen beinhalten. Je nach Bedarf wird dann ein „best effort"-Vorschlag für eine mögliche Kleiderkombination erstellt.

Technik

  • Das Einlesen der RFID-Chips sowie die Wettersensorik wurde mit Hilfe des Gadgeteer-Frameworks und der zugehörigen Hardware realisiert. Die Verbindung zwischen dem Client und der Gadgeteer-Hardware wurde mit einem ad hoc Netzwerk umgesetzt. Der Client verblieb als Android App mit SQLite-Datenbank.

Aufgaben

  • Programmierung mit C#/.NET
Deutschland

Aus- und Weiterbildung

Aus- und Weiterbildung

Studium - Distributed Software Systems

TU Darmstadt

Abschluss. Master of Science

Studium - Informatik

TU Darmstadt

Abschluss: Bachelor of Science 

Position

Position

  • Junior/ Senior/ Lead Developer
  • DevOps
  • Scrum Master

Kompetenzen

Kompetenzen

Top-Skills

SE Lead DevOps Big Data Go-Developer certified scrum master Senior Developer Java 1.8 Spring REST Solution Architect Software Architect

Schwerpunkte

Entwicklung und Konzeption

  • Microservices, Verteilte Softwaresysteme
  • Objektorientierung, Serviceorientierung
  • Messaging-/ Streaming-Systeme
  • relationale und NoSQL-Datenbanken
  • Mobile Apps
  • Cloud Computing
  • Big Data
  • Application-Server

DevOps

  • Continuous Integration/ Delivery/ Deployment
  • Middleware-Automatisierung (Setup + Migrationen)
  • Loganalyse, Monitoring, Alerting
  • Scripting + Linux

Scrum Master

  • Coaching von PO von DEVs
  • Organisation/ Moderation von Scrum Events
  • Arbeit im skalierten Kontext
  • Management 3.0

Produkte / Standards / Erfahrungen / Methoden

Entwicklungsprozesse

  • Scrum
  • Nexus
  • Kanban
  • CARDS+
  • SAFE

Entwicklungswerkzeuge

  • IntelliJ
  • Visual Studio
  • Eclipse
  • Netbeans
  • Android Studio
  • SQL Developer
  • Visio
  • UMLet
  • SVN
  • GIT
  • Jira
  • Confluence
  • Kunagi
  • Trello
  • Gerrit

Infrastruktur

  • JBoss
  • Tomcat
  • Glassfish
  • AWS
  • JEE
  • Docker
  • Kubernetes
  • Rancher
  • Kafka
  • Grafana
  • Kibana
  • RabbitMQ
  • OracleAQ
  • Zookeeper
  • Confluent Platform

Frameworks/ APIs

  • Spring (Core, Boot, Security, Integration, Batch, Web, HATEOAS)
  • JUnit
  • EJB
  • JMS
  • CXF
  • JAXB
  • JAXP
  • JAX-WS
  • JAX-RS
  • JPA
  • JDBC
  • JSP
  • JSF
  • JSTL
  • JSON/ GSON
  • REST
  • openCV (Bildbearbeitung)
  • zxing (Barcode)
  • Retrofit
  • EclipseLink
  • Hibernate
  • Vaadin
  • Jasper Reports (Business Intelligence)
  • VueJS
  • Kafka Streams
  • Kafka Connect
  • Avro
  • LDAP

Qualitätssicherung

  • JUnit
  • FitNesse
  • Cucumber
  • Selenium
  • Postman

Automatisierung

  • Ant
  • Maven
  • Gradle
  • Jenkins
  • Ansible
  • GitLab CI
  • Helm

Beruflicher Werdegang

04/2011 ? 03/2012

Position: Wissenschaftliche Hilfskraft als Tutor mehrerer Fachgebiete


10/2012 ? 09/2013

Position: Developer ?Software Engineering Project?

Firma: TU Darmstadt


10/2013 ? 02/2014

Position: Wissenschaftliche Hilfskraft am Fachgebiet DVS

Firma: TU Darmstadt


04/2014 ? 10/2014

Position: Masterand

Firma: Deutschen Telekom AG


06/2015 ? heute

Position: Projektarbeit als Senior Software-Ingenieur

Betriebssysteme

Android
Jelly Bean, Kitkat, Lollipop
Linux
Debian, Ubuntu, Fedora, CentOS
Windows
95/ 98/ NT 4.0/ 2000/ VISTA/ 7/ 10

Programmiersprachen

C#/.NET
Go
Groovy
Java
JavaScript
Kotlin
PL/SQL
Python
Scheme
SQL

Datenbanken

Cassandra
Elasticsearch
Hazelcast
HDFS
MySQL
Oracle
Postgres
Prometheus
Redis
SQLite

Datenkommunikation

IEEE 802.11 (WLAN)
IEEE 802.3 (Ethernet LAN)

Einsatzorte

Einsatzorte

Frankfurt (+50km) Gießen, Lahn (+50km)
Deutschland
möglich

Projekte

Projekte

4 Jahre 6 Monate
2020-01 - heute

Automatisierter Datenaustausch

Lead Developer (80%), DevSecOps (20%) Azure Cloud Docker Postgres ...
Lead Developer (80%), DevSecOps (20%)

Fachlichkeit

  • Automatisierter Datenaustausch von Messwerten sowie Erstellung von Abrechnungen für Immobiliennebenkosten (Strom, Strom, Wasser, …) über REST-ful und file-basierte Web-Services.

Technik

  • Microservice-Architektur, Portierung von on-premise Hosting in die Azure Cloud

Organisation

Scrum, Backlog mit JIRA, Dokumentation mit Confluence

Aufgaben

  • Entwicklung + Testautomatisierung
  • Entwurf und Betrieb einer Microservice-Architektur
  • Cloud-Integration
  • Kollaboration mit Offshore-Team in Polen
Azure Cloud Docker Postgres ansible / tower Java JUnit Postman Linux Consul Netflix Zuul Elasticsearch Kibana Prometheus Grafana Gradle GitLab CI Spring Boot + HATEOAS FitNesse Liquibase
Energiewirtschaft
Deutschland
8 Monate
2019-06 - 2020-01

Migrationsprojekt (Live-Gang)

Lead Developer (50%), Operations (50%) AWS Apache Kafka AVRO ...
Lead Developer (50%), Operations (50%)

Fachlichkeit

  • Migration des Backends einer Web-Applikation zur Disposition und Auswertung von Fahrten in die "neue Welt" der RI und Ablösung des Altsystems. Allgemein: Das Ziel des Projektes RI ist, Reisende individuell, einfach und lösungsorientiert während ihrer gesamten Reise zu begleiten. Die Informationen sollen aktuell, verlässlich und konsistent verfügbar auf allen bekannten Kanälen (Anzeigetafeln, Ansagen, Websites, Mobile Apps, in den
    Fahrzeugen) sein. Natürlich wollen wir über alle bestehenden Kundenschnittstellen die Fahrgäste zuverlässig und - vor allem - widerspruchsfrei informieren. Personas spiegeln die wichtigsten Zielgruppen unter den Reisenden wider und helfen uns unsere Produkte konsequent für die Reisenden zu entwickeln.

Technik

  • Eine NoSQL-Datenbank wird für die Speicherung des Fahrtwissens (Persistent State) und die Wiederherstellung bei Systemausfällen verwendet. Herausfordernd sind die Anforderungen an das System hinsichtlich Lesegeschwindigkeit (<1 Sekunde), Robustheit (24x7) und Skalierbarkeit (365 Tage, pro Tag: 300.000 Verkehrsmittel, 20.000 Stationen, 60 Millionen Reisende). Allgemein: Verteiltes System mit Deployment in der Amazon-Cloud. Der Kern des Systems nutzt Kafka als Messaging-Plattform für die massiv verteilte Verarbeitung der Events (Streaming). Innerhalb der Komponenten gibt es NoSQL-Datenbanken für die Speicherung von Zuständen (Persistent State) und die Wiederherstellung bei Systemausfällen. Aufgrund der skalierten agilen Entwicklung gibt es auch die Herausforderung, das System automatisiert zu testen und eine hohe Testabdeckung zu erreichen

Organisation

  • Scrum-of-Scrum auf Basis von Nexus und SAFE
  • Vorgangsverwaltung mit JIRA
  • Dokumentation mit Confluence

Aufgaben

  • Ausbildung neuer Entwickler
  • Monitoring + Alerting
  • Entwurf und Entwicklung eines verteilten Systems mit Microservices
  • Entwurf und Entwicklung von Schnittstellen des Systems
  • Administrierung, Infrastruktur-Provisioning, Config-Management
AWS Apache Kafka AVRO Docker Apache Cassandra ansible Java JUnit Cucumber FitNesse Linux CentOS Kafka Streams Confluent Platform Kubernetes Rancher Helm Hashicorp Vault Elasticsearch Kibana Prometheus Grafana Gradle Jenkins GitLab CI Spring Boot Groovy
Deutsche Bahn
Deutschland
11 Monate
2018-07 - 2019-05

Migrationsprojekt (Teamaufbau)

Lead Developer (50%), Scrum Master (45%), Operations (5%) AWS Apache Kafka AVRO ...
Lead Developer (50%), Scrum Master (45%), Operations (5%)

Fachlichkeit

  • Migration des Backends einer Web-Applikation zur Disposition und Auswertung von Fahrten in die "neue Welt" der RI und Ablösung des Altsystems.

Technik

  • Eine NoSQL-Datenbank wird für die Speicherung des Fahrtwissens (Persistent State) und die Wiederherstellung bei Systemausfällen verwendet. Herausfordernd sind die Anforderungen an das System hinsichtlich Lesegeschwindigkeit (<1 Sekunde), Robustheit (24x7) und Skalierbarkeit (365 Tage, pro Tag: 300.000 Verkehrsmittel, 20.000 Stationen, 60 Millionen Reisende).

Organisation

  • Scrum-of-Scrum auf Basis von Nexus und SAFE
  • Vorgangsverwaltung mit JIRA
  • Dokumentation mit Confluence

Aufgaben

  • Organisation/ Moderation von team-internen und skalierten Scrum Events
  • agiles Coaching
  • Ausbildung neuer Entwickler
  • Monitoring + Alerting
  • Entwurf und Entwicklung eines verteilten Systems mit Microservices
  • Entwurf und Entwicklung von Schnittstellen des Systems
  • Administrierung, Infrastruktur-Provisioning, Config-Management
AWS Apache Kafka AVRO Docker Apache Cassandra ansible Java JUnit Cucumber FitNesse Linux CentOS Kafka Streams Confluent Platform Kubernetes Rancher Helm Hashicorp Vault Elasticsearch Kibana Prometheus Grafana Gradle Jenkins GitLab CI Spring Boot Groovy
Deutsche Bahn
Deutschland
6 Monate
2018-01 - 2018-06

Etablierung von Best Practices, Featureausbau

Lead Developer, Operations AWS Apache Kafka AVRO ...
Lead Developer, Operations

Fachlichkeit

  • Das Ziel des Projektes RI ist, Reisende individuell, einfach und lösungsorientiert während ihrer gesamten Reise zu begleiten. Die Informationen sollen aktuell, verlässlich und konsistent verfügbar auf allen bekannten Kanälen (Anzeigetafeln, Ansagen, Websites, Mobile Apps, in den
    Fahrzeugen) sein.

Technik

  • Als Container-Orchestrierung werden Kubernetes und Rancher eingesetzt. Allgemein: Verteiltes System mit Deployment in der Amazon-Cloud. Der Kern des Systems nutzt Kafka als Messaging-Plattform für die massiv verteilte Verarbeitung der Events (Streaming). Innerhalb der Komponenten gibt es NoSQL-Datenbanken für die Speicherung von Zuständen (Persistent State) und die Wiederherstellung bei Systemausfällen. Herausfordernd sind die Anforderungen an das System hinsichtlich Leistung (~50 Millionen Events/Tag), Robustheit (24x7) und Skalierbarkeit (300.000 Verkehrsmittel, 20.000 Stationen, 60 Millionen Reisende). Aufgrund der skalierten agilen Entwicklung gibt es auch die Herausforderung, das System automatisiert zu testen und eine hohe Testabdeckung zu erreichen

Organisation

  • Scrum-of-Scrum auf Basis von Nexus
  • Vorgangsverwaltung mit JIRA
  • Dokumentation mit Confluence un CARDS+

Aufgaben

  • Ausbildung neuer Entwickler
  • Monitoring + Alerting
  • Entwurf und Entwicklung eines verteilten Systems mit Microservices
  • Entwurf und Entwicklung von Schnittstellen des Systems
  • Administrierung, Infrastruktur-Provisioning, Config-Management
AWS Apache Kafka AVRO Docker Apache Cassandra ansible Java JUnit Cucumber FitNesse Linux CentOS RabbitMQ Kafka Streams Confluent Platform Hazelcast Kubernetes Rancher Elasticsearch Kibana Prometheus Grafana Gradle Jenkins Spring Boot Groovy
Deutsche Bahn
Deutschland
1 Jahr
2017-01 - 2017-12

DevOps, weitere produktive Infokanäle

Senior Developer, Operations AWS Apache Kafka AVRO ...
Senior Developer, Operations

Fachlichkeit

  • Das Ziel des Projektes RI ist, Reisende individuell, einfach und lösungsorientiert während ihrer gesamten Reise zu begleiten. Die Informationen sollen aktuell, verlässlich und konsistent verfügbar auf allen bekannten Kanälen (Anzeigetafeln, Ansagen, Websites, Mobile Apps, in den
    Fahrzeugen) sein.

Technik

  • Sämtliche Fachlichkeit wurde als event-basierte Microservices mit Docker (Swarm) realisiert. Tagesaktuelle Berechnungen werden mit einem verteilten Cache beschleunigt.

Organisation

  • Scrum-of-Scrum auf Basis von Nexus
  • Vorgangsverwaltung mit JIRA
  • Dokumentation mit Confluence

Aufgaben

  • Monitoring + Alerting
  • Entwurf und Entwicklung eines verteilten Systems mit Microservices
  • Entwurf und Entwicklung von Schnittstellen des Systems
  • Administrierung, Infrastruktur-Provisioning, Config-Management
AWS Apache Kafka AVRO Docker Apache Cassandra ansible Java JUnit Cucumber FitNesse Linux CentOS RabbitMQ Docker Swarm Kafka Streams Confluent Platform Hazelcast Vaadin Kafka Connect HDFS Hive Spark Elasticsearch Kibana Prometheus Grafana Gradle Jenkins Spring Boot Groovy Consul
Deutsche Bahn
Deutschland
1 Jahr
2016-01 - 2016-12

PoCs, erste Produktivnahme

Developer, Operations AWS Apache Storm Apache Kafka ...
Developer, Operations

Fachlichkeit

  • Das Ziel des Projektes RI ist, Reisende individuell, einfach und lösungsorientiert während ihrer gesamten Reise zu begleiten. Die Informationen sollen aktuell, verlässlich und konsistent verfügbar auf allen bekannten Kanälen (Anzeigetafeln, Ansagen, Websites, Mobile Apps, in den
    Fahrzeugen) sein.

Technik

  • Verteiltes System mit Deployment in der Amazon-Cloud. Informationskanäle werden als event-basierte Storm-Topologien realisiert. Adapter für Datenquellen und -senken als rein transformative Microservices mit Docker. Der Kern des Systems nutzt Kafka als Messaging-Plattform für die massiv verteilte Verarbeitung der Events (Streaming). Innerhalb der Komponenten gibt es NoSQL-Datenbanken für die Speicherung von Zuständen (Persistent State) und die Wiederherstellung bei Systemausfällen. Herausfordernd sind die Anforderungen an das System hinsichtlich Leistung (~50 Millionen Events/ Tag), Robustheit (24x7) und Skalierbarkeit (300.000 Verkehrsmittel, 20.000 Stationen, 60 Millionen Reisende). Aufgrund der skalierten agilen Entwicklung gibt es auch die Herausforderung, das System automatisiert zu testen und eine hohe Testabdeckung zu erreichen

Organisation

  • Agiles Vorgehensmodell mit Scrum
  • Vorgangsverwaltung mit JIRA
  • Dokumentation mit Confluence

Aufgaben

  • Entwurf und Entwicklung eines verteilten Systems mit Apache Storm
  • Entwurf und Entwicklung von Schnittstellen des Systems
  • Administrierung, Infrastruktur-Provisioning, Config-Management
AWS Apache Storm Apache Kafka AVRO Docker Apache Cassandra Redis ansible Java JUnit Cucumber FitNesse Linux CentOS RabbitMQ OracleDB OracleAQ Postgres Elasticsearch Kibana Gradle Jenkins Spring Boot Spring Batch Groovy Consul
Deutsche Bahn
Deutschland
1 Jahr
2015-10 - 2016-09

Raily

Product Owner
Product Owner

Fachlichkeit

  • Raily ist eine Info-App für Bahnreisende und fungiert als „Reise-Butler“. Sie wurde in Zusammenarbeit mit der TU Darmstadt innerhalb eines R+D Projekts mit Studenten realisiert. Der Prototyp umfasste eine persönliche Fahrtvisualisierung, die proaktive Versorgung nützlicher Information zu Orten des Reisewegs und Vorschlägen zur Überbrückung von Fahrtverzögerungen/ -ausfällen.

Technik

  • Raily ist eine native Android App ohne separates Backend. Die Optik orientierte sich am Material Design. Als Datenquellen wurde die Open Data-API der Deutschen Bahn und diverse Google APIs benutzt.

Aufgaben

  • Korrespondenz mit den Studenten
  • Schärfung von Anforderungen
  • Präsentation an Kunde und Arbeitgeber
Transport und Logistik
Deutschland
5 Monate
2015-08 - 2015-12

CounterFighter

(PoC-)Developer Android Java JUnit ...
(PoC-)Developer

Fachlichkeit

  • CounterFighter ist ein System zur Verpackungs-Authentifizierung. Mittels einer mobilen App soll mit Hilfe der Kamerafunktion des Smartphones ein Pharmapräparat auf Echtheit untersucht werden. Der Grundgedanke ist ein Abgleich von Merkmalsvektoren mit zwei bestehenden Datenbanken - eine mit authentischen und eine mit bekannten gefälschten Präparaten.

Technik

  • CounterFighter besteht aus vier technischen Komponenten. Eine Android-App erstellt die zu untersuchenden Fotos plus Merkmalsvektoren. Ein Cloud- Dienst nimmt über eine REST-API Anfragen Barcodes zur Ermittlung des Präparates sowie Echtheitsanfragen an. Eine Web-Anwendung in einer Microservice-Architektur mit Spring-Boot und Docker ermöglicht es einem Pharmahersteller authentische Präparate einzupflegen. Die Vergleichsdatenbanken können über ein Service-Interface angesprochen werden

Aufgaben

  • Machbarkeitsanalyse und Pilotprojektentwicklung
  • Barcode-Scanning mit zxing
  • Bildbearbeitung mit openCV (URL auf Anfrage)
  • Entwicklung der mobilen App in Android mit Retrofit REST-Client
  • Entwicklung des RESTful Webservices mit Retrofit
  • Anbindung einer SQLite-Datenbank mit EclipseLink
  • Entwicklung eines Web-Frontends mit JSF 2.2/ Primefaces
  • Backend mit Tomcat 8 und MySQL
Android Java JUnit Spring-Boot Docker openCV Retrofit zxing EclipseLink JSF Tomcat MySQL Gradle
Pharmahandel
Deutschland
3 Monate
2015-06 - 2015-08

OFA - Optimierte Fahrdatenauswertung

Developer, Maintainer JEE/EJB JBoss JSF/JavaScript/HTML ...
Developer, Maintainer

Fachlichkeit

  • OFA ist eine bundesweit genutzte Web-Anwendung der Deutschen Bahn, die die Übernahme von Fahraufzeichnungen ermöglicht. Weiterhin werden dem Benutzer umfangreiche fahraufzeichnungsbezogene Daten in konsolidierter Form zum Zweck der Analyse und Auswertung zur Verfügung stellt. Die Daten können im Rahmen eines umfangreichen Berichtswesens gesichtet werden. Grundlage für die Verarbeitung der Fahraufzeichnungen sind diverse Import- Schnittstellen, die zur Validierung und Auswertung genutzt werden.

Technik

  • OFA wird basierend auf JEE gemäß der Referenzarchitektur umgesetzt. Der Zugriff auf die Oracle Datenbank erfolgt über Hibernate. Der Web-Client arbeitet mit JSF/JavaScript/HTML, für das Berichtswesen ist Jasper Reports im Einsatz. Für die Konfiguration der Anwendung wird Spring verwendet, Sicherheitsaspekte werden mit dem Spring-Framework adressiert

Aufgaben

  • Objektorientiertes Design mit UML
  • Server-Entwicklung mit JEE/ EJB
  • Client-Entwicklung mit JSF
  • Report-Entwicklung mit Jasper Reports
  • Anbindung einer Oracle-Datenbank mit Hibernate
  • Entwicklung von API-Tests mit JUnit
  • Durchführung von Integrationstests
JEE/EJB JBoss JSF/JavaScript/HTML Jasper Hibernate OracleDB Spring Framework Spring Security Java JUnit Maven
Deutsche Bahn
Deutschland
8 Monate
2014-04 - 2014-11

WLAN-Bandbreitenaggregierung

Software-Entwickler, Netzwerktechniker Test- und Evaluationsbeau
Software-Entwickler, Netzwerktechniker Test- und Evaluationsbeau

Fachlichkeit

  • Im Rahmen meiner Masterarbeit „A Solution for Backhaul Aggregation in IEEE 802.11 Networks Using Multipath TCP" habe ich für die Deutsche Telekom AG einen Prototypen zur Bündelung von DSL-Bandbreite über das WLAN implementiert. Die Lösung hat mit Hilfe eines zweiten ad hoc-Netzwerks, welches auf einer anderen nicht-störenden Frequenz funkte, den Datenstrom auf Ebene der Transportschicht geteilt. Im Endeffekt kann auf diese Weise ein Kunde die Bandbreite seiner Nachbarn mitbenutzen und erreicht ein Vielfaches seiner üblichen Downstream-Kapazität, niemals jedoch weniger als sein aktueller Vertrag garantiert. Der implementierte Ansatz hatte einen Wirkungsgrad von etwa 95%.

Technik

  • Die physikalische Schicht baut auf dem IEEE 802.11-Standard auf. Die Netzwerkschicht wurde mit Unix-Tools (iptables, nohup) und Bash-Skripten umgesetzt. Auf der Transportschicht wurde „Multipath TCP" verwendet. Die Messung der Bandbreite erfolgte mit „iperf".

Aufgaben

  • Forschungsarbeit zur Machbarkeitsanalyse
  • Planung und Realisierung einer Netzwerkinfrastruktur
  • Messung und Auswertung mit „iperf“
Deutsche Telekom
Deutschland
6 Monate
2013-10 - 2014-03

Development

Developer
Developer

Fachlichkeit

  • Im Rahmen einer Vorlesung „Middleware" sollte ein vereinfachter Amazon-Klon implementiert werden. Zu den Features gehörten bspw. das Management von Produkten, Kunden und deren Bestellungen. Zusätzlich wird die Möglichkeit zur Verfolgung von Lieferungen und die Benachrichtigung von Ausnahmen (z.B. LKW-Unfall, Stau) bereitgestellt. Abschließend sollten Konsistenzgarantien zwischen Clients (Omazan-Admins) gelten.

Technik

  • Omazan wurde basierend auf Java EE und einem Glassfish Application Server umgesetzt. Der Zugriff auf die in-Memory Datenbank (HSQLDB) erfolgte über die JPA. Der Web-Client arbeitet mit JavaScript/ HTML, der native Client nur mit Java. Der Informationsaustausch zwischen Client und Server erfolgte RESTful über JSON-Serialisierung. Benachrichtigungen wurden mit JMS abgehandelt.

Aufgaben

  • Projektmanagement
  • Objektorientiertes Design mit UML
  • Client-Entwicklung mit Java
  • Server-Entwicklung mit JEE/ EJB/ JPA/ JMS
  • Entwicklung von REST-Webservices mit JAX-RS
  • Anbindung einer in-Memory-Datenbank (HSQLDB)
  • Entwicklung von API-Tests mit JUnit
  • Durchführung von Integrationstests
Omazan Inc.
Deutschland
6 Monate
2013-10 - 2014-03

BubbleStorm mit Aktoren

Developer
Developer

Fachlichkeit

  • BubbleStorm ist ein an der TU Darmstadt entwickelter Ansatz um P2PSysteme aufzubauen und die Topologie der Netzknoten so zu verwalten, dass ein resultierender Graph sowohl zuverlässig verbunden und skalierbar ist, als auch Lasten in geeigneter Form zu verteilen weiß

Technik

  • Das Projekt wurde vollständig in Java umgesetzt. Die Simulation der teilnehmenden Netzwerkknoten wurde mit dem Aktorenmodell als Auspägung des Prinzips „message passing". Als Aktorenbibliothek kam „actorom" zum Einsatz.

Aufgaben

  • Auf- und Abbau des Netzwerks
  • Nebenläufige Programmierung mit actorom
  • Entwicklung der Multicast-Funktionalität
  • Entwicklung von API-Tests mit JUnit
  • Durchführung von Integrationstests
Deutschland
6 Monate
2013-04 - 2013-09

The ACM DEBS 2013 Grand Challenge

Developer
Developer

Fachlichkeit

  • Im Rahmen der Vorlesung „Event Processing" wurde die o.g. Challenge als begleitendes Praktikum gelöst. Drahtlose Sensoren übermitteln während eines Fußballspiels einigen Tsd. Events/Sekunde. Diese sollten in Echtzeit verarbeitet und für diverse Stakeholder (Trainer, Manager) ausgewertet
    werden. Die Auswertung beinhaltete u.a. folgende Queries: den Anteil an Ballbesitz, Anzahl Torschüsse, Laufverhalten und Positionsveteilung der Spieler auf dem Feld.

Technik

  • Die auf Java basierende Lösung stützte sich im Rahmen der komplexen Eventverarbeitung auf die „Esper"-Engine. Die Verteilung der Spielerpositionen auf dem Feld wurde als Heatmap in einem Swing-Client dargestellt. Die Lösung war effizient genug um alle 4 Queries parallel auf einem Mittelklasse-Notebook auszuführen.

Aufgaben

  • Objektorientiertes Design mit UML
  • Client-Entwicklung mit Swing
  • Anbindung einer Event-Datenmenge
  • Verarbeitung der Events mit Esper
  • Durchführung von Integrationstests
Deutschland
6 Monate
2013-04 - 2013-09

Bean Definition Language

Developer
Developer

Fachlichkeit

  • Im Rahmen der Vorlesung „Modellgetriebene Entwicklung" wurde das Projekt BDL ins Leben gerufen. Für Java EE-Entwickler sind JavaBeans das absolute Alltagsgeschäft. Immer wieder müssen Objekt in die spezifizierte Bean-Struktur überführt werden. Der damit verbundene Boilerplate-Code kostet Zeit und damit Geld. Der hier gewählte Ansatz dieses Problem zu adressieren ist zum einen die Definition einer Grammatik für die „Bean Definition
    Language" (BDL), zum anderen die Implementierung eines
    JavaCodegenerators. In BDL können bequem und kompakt alle notwendigen Eigenschaften (Name, Primärschlüssel, Attribute, Operationen, etc.) beschrieben werden. Der Codegenerator übernimmt die Erzeugung entsprechender java-Dateien in Echtzeit und stellt überdies die Einhaltung der JavaBeans-Spezifikation sicher. Eine Code-Ersparnis von 80% oder mehr ist der Regelfall.

Technik

  • Die technologische Basis stellt die Bibliothek „Xtext" in Verbindung mit „Xtend" dar. Die Realisierung der BDL mit allen Funktionalitäten ist als Eclipse-Plugin verfügbar und kann konventionell über eine Update-Site bezogen werden.

Aufgaben

  • Modellgetriebene Entwicklung mit Xtext/ Xtend
  • Entwicklung von Eclipse-Plugins
  • Entwicklung von API-Tests mit JUnit
  • Durchführung von Integrationstests
Deutschland
3 Monate
2013-05 - 2013-07

Smart Wardrobe

Developer
Developer

Fachlichkeit

  • Im Rahmen der Vorlesung „TK3 – Ubiquitous Computing" sollte der intelligente Kleiderschrank „Smart Wardrobe" eine computergestützte Auswahl von Kleidungsstücken ermöglichen. Es sollten Faktoren wie Kalendertermine, Wärmegrad, Regenbeständigkeit und Stil berücksichtigt werden. In die Kleidung eingearbeitete RFID-Tags sollten diese Informationen beinhalten. Je nach Bedarf wird dann ein „best effort"-Vorschlag für eine mögliche Kleiderkombination erstellt.

Technik

  • Das Einlesen der RFID-Chips sowie die Wettersensorik wurde mit Hilfe des Gadgeteer-Frameworks und der zugehörigen Hardware realisiert. Die Verbindung zwischen dem Client und der Gadgeteer-Hardware wurde mit einem ad hoc Netzwerk umgesetzt. Der Client verblieb als Android App mit SQLite-Datenbank.

Aufgaben

  • Programmierung mit C#/.NET
Deutschland

Aus- und Weiterbildung

Aus- und Weiterbildung

Studium - Distributed Software Systems

TU Darmstadt

Abschluss. Master of Science

Studium - Informatik

TU Darmstadt

Abschluss: Bachelor of Science 

Position

Position

  • Junior/ Senior/ Lead Developer
  • DevOps
  • Scrum Master

Kompetenzen

Kompetenzen

Top-Skills

SE Lead DevOps Big Data Go-Developer certified scrum master Senior Developer Java 1.8 Spring REST Solution Architect Software Architect

Schwerpunkte

Entwicklung und Konzeption

  • Microservices, Verteilte Softwaresysteme
  • Objektorientierung, Serviceorientierung
  • Messaging-/ Streaming-Systeme
  • relationale und NoSQL-Datenbanken
  • Mobile Apps
  • Cloud Computing
  • Big Data
  • Application-Server

DevOps

  • Continuous Integration/ Delivery/ Deployment
  • Middleware-Automatisierung (Setup + Migrationen)
  • Loganalyse, Monitoring, Alerting
  • Scripting + Linux

Scrum Master

  • Coaching von PO von DEVs
  • Organisation/ Moderation von Scrum Events
  • Arbeit im skalierten Kontext
  • Management 3.0

Produkte / Standards / Erfahrungen / Methoden

Entwicklungsprozesse

  • Scrum
  • Nexus
  • Kanban
  • CARDS+
  • SAFE

Entwicklungswerkzeuge

  • IntelliJ
  • Visual Studio
  • Eclipse
  • Netbeans
  • Android Studio
  • SQL Developer
  • Visio
  • UMLet
  • SVN
  • GIT
  • Jira
  • Confluence
  • Kunagi
  • Trello
  • Gerrit

Infrastruktur

  • JBoss
  • Tomcat
  • Glassfish
  • AWS
  • JEE
  • Docker
  • Kubernetes
  • Rancher
  • Kafka
  • Grafana
  • Kibana
  • RabbitMQ
  • OracleAQ
  • Zookeeper
  • Confluent Platform

Frameworks/ APIs

  • Spring (Core, Boot, Security, Integration, Batch, Web, HATEOAS)
  • JUnit
  • EJB
  • JMS
  • CXF
  • JAXB
  • JAXP
  • JAX-WS
  • JAX-RS
  • JPA
  • JDBC
  • JSP
  • JSF
  • JSTL
  • JSON/ GSON
  • REST
  • openCV (Bildbearbeitung)
  • zxing (Barcode)
  • Retrofit
  • EclipseLink
  • Hibernate
  • Vaadin
  • Jasper Reports (Business Intelligence)
  • VueJS
  • Kafka Streams
  • Kafka Connect
  • Avro
  • LDAP

Qualitätssicherung

  • JUnit
  • FitNesse
  • Cucumber
  • Selenium
  • Postman

Automatisierung

  • Ant
  • Maven
  • Gradle
  • Jenkins
  • Ansible
  • GitLab CI
  • Helm

Beruflicher Werdegang

04/2011 ? 03/2012

Position: Wissenschaftliche Hilfskraft als Tutor mehrerer Fachgebiete


10/2012 ? 09/2013

Position: Developer ?Software Engineering Project?

Firma: TU Darmstadt


10/2013 ? 02/2014

Position: Wissenschaftliche Hilfskraft am Fachgebiet DVS

Firma: TU Darmstadt


04/2014 ? 10/2014

Position: Masterand

Firma: Deutschen Telekom AG


06/2015 ? heute

Position: Projektarbeit als Senior Software-Ingenieur

Betriebssysteme

Android
Jelly Bean, Kitkat, Lollipop
Linux
Debian, Ubuntu, Fedora, CentOS
Windows
95/ 98/ NT 4.0/ 2000/ VISTA/ 7/ 10

Programmiersprachen

C#/.NET
Go
Groovy
Java
JavaScript
Kotlin
PL/SQL
Python
Scheme
SQL

Datenbanken

Cassandra
Elasticsearch
Hazelcast
HDFS
MySQL
Oracle
Postgres
Prometheus
Redis
SQLite

Datenkommunikation

IEEE 802.11 (WLAN)
IEEE 802.3 (Ethernet LAN)

Vertrauen Sie auf Randstad

Im Bereich Freelancing
Im Bereich Arbeitnehmerüberlassung / Personalvermittlung

Fragen?

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

Das Freelancer-Portal

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