Software Entwickler/Berater/Architect Java-Plattform; Scala, Java, Clojure; Backend, Data Engineering, Microservices, DevOps; distributed, reactive
Aktualisiert am 27.09.2024
Profil
Freiberufler / Selbstständiger
Remote-Arbeit
Verfügbar ab: 01.10.2024
Verfügbar zu: 100%
davon vor Ort: 80%
Scala
Kubernetes
DevOps
Java Virtual Machine
Kotlin
Clojure
Haskell
Scalability
Apache Cassandra
Apache Hadoop
Apache Spark
Apache NiFi
HBase
Spring Boot
Amazon Web Services
Linux
Java 17
Java 11
Continuous Integration
Big Data
Deutsch
fließend in Wort und Schrift
Englisch
fließend in Wort und Schrift
Italienisch
Grundkentnisse, Autodidakt, Kommunikation möglich
Russisch
Grundkentnisse
Serbokroatisch
Muttersprache
Spanisch
fließend in Wort und Schrift

Einsatzorte

Einsatzorte

Hamburg (+50km) Elmshorn (+50km) Stade (+150km)
möglich

Projekte

Projekte

11 Jahre 10 Monate
2013-01 - heute

Freiberuflich

Software Ingenieur und Berater
Software Ingenieur und Berater
Freiberuflich
Hamburg
5 Monate
2020-07 - 2020-11

Entwicklung und Betrieb mehrerer AWS Cluster für das DyCA Team

DevOps Engineer
DevOps Engineer

Entwicklung und Betrieb mehrerer AWS Cluster für das DyCA Team (Dynamic Campaign Advertising) um auf otto.de Homepage eine effiziente und stabile Performance bei der Ausspielung von personalisierten Banners und Teasers gewährleisten zu können. Ich habe ein kleines Team unterstützt, eine fremde closed-source Software (HCL Unica Interact) für die real-time Personalisierung der Werbungen auf der otto.de Homepage möglichst stabil und performant aufzusetzen und zu betreiben. Dafür war es notwendig, die sehr manuelle und fehleranfällige technische und fachliche Deployments möglichst zu vermeiden, genauso die Beobachtbarkeit (Observability) der Run-time Performance einer closed-source Software zu ermöglichen, damit iterativ die Performance und Stabilität der Marketing-Plattform ermöglicht und technisch erklärbar wird. Abgesehen von der intensiven Arbeit mit den AWS Services und Features (EC2 mit Auto Scaling Groups und optimierten AMIs, RDS for Oracle, Lambda, CloudWatch, ELB), HAProxy und mehreren Komponenten aus dem Unica Interact Marketing Suite, habe ich mich um die Sammlung und technische Auswertung der Metriken (auch über JMX Exporter) von allen relevanten Komponenten in ein zentrales Monitoring (mit Prometheus und Grafana) gekümmert, dass von mir eingerichtet wurde. Außerdem konnte ich die entscheidende Performance-Optimierung erreichen mit der Feststellung, dass sog. External Callouts (Plugin System in der Unica Interact) entwickelt werden müssen, damit eine zufriedenstellende Performance (über 99,5% der technisch und fachlich korrekten Interact API Request) und Stabilität erreicht wird. Diese habe ich entwickelt und zusammen mit Kollegen getestet.

  • DevOps mit Software-Entwicklung
  • Deployment, Troubleshooting, Koordination und Testing
OTTO Group
remote
8 Monate
2019-10 - 2020-05

Entwicklung der Digital Farming Plattform

Entwicklung der Digital Farming Plattform und diversen Microservices für Produkte xarvio™ Field Manager und Healthy Fields. In einem größerem Backend-Team (über 30 Software- und DevOps-Ingenieure) habe ich an der Entwicklung mit Java (9 und 11) und Spring Boot, Deployment in Kubernetes und Instandhaltung von über 50 Microservices gearbeitet, die eigene Daten überwiegend in Postgres speichern und miteinander über eigene REST APIs und RabbitMQ kommunizieren. Die REST APIs waren sowohl public als auch privat, die jeweils in OpenAPI spezifiziert wurden. Public API Dokumentation wurde über ReDoc generiert und statische Inhalte über Vuepress.js vervollständigt. Ich habe auch an der GraphQL API gearbeitet, die von xarvio™ mobilen Apps benutzt wurde. Einige Microservices haben S3 fürs speichern von größeren Dateien oder haben mit eigenen AWS Lambda Funktionen und externen Services (z.B. von John Deere oder Arable) kommuniziert. Die Microservices wurden in AWS deployed und mit Kubernetes orchestriert, wobei Deployments von einzelnen Microservices über Helm Charts definiert wurden. Das Testing mit Unit Tests, Integrationstests und Contract Tests über OpenAPI Dokumente und Postman (für die REST APIs) wurden kontinuierlich verbessert. Die CI/CD Pipelines wurden in Git, TeamCIty und Kotlin-basierten Skripten definiert und die Infrastruktur (in Dev und QA Umgebungen) mit ArgoCD deklarativ definiert und deployed. Application Monitoring wurde überwiegend mit in AWS laufenden ELK/Kibana und Grafana gemacht. Kommunikation mit anderen Teams (Mobile, Web, Support und Produktentwicklung) war Teil der Arbeit.

  • Software-Entwicklung mit DevOps, Code Reviews, Deployment, Koordination und Monitoring
BASF Digital Farming GmbH (xarvio? Digital Farming)
Köln, remote
4 Monate
2019-04 - 2019-07

Entwicklung eines Services für die Übertragung von Google Analytics Daten in Apache Hive

  • Entwicklung eines Services für die Übertragung von Google Analytics Daten in Apache Hive und Betreuung der bestehenden Data Pipelines für an den Kassen erhobenen Transaktionsdaten sowie DeutschlandCard Kunden-Ids
  • In einem kleinen Team habe ich zuerst die Betreuung der Data Pipelines übernommen, die diverse Quell-Dateien nach mehreren Stufen der Bearbeitung in den MapR Hadoop Cluster abgelegt wurden, um eine reibungslose Funktionalität sicherzustellen
  • Zusätzlich habe ein Service entwickelt, zuerst als Proof-Of-Concept, der aus dem gesicherten Intranet Google Analytics Daten von allen Web Properties des Kunden in Hive innerhalb eines MapR Clusters überträgt und Daten-Analysten zur Verfügung stellt
EDEKA DIGITAL GmbH (EDDI)
Hamburg
1 Jahr 1 Monat
2018-02 - 2019-02

Entwicklung einer Analytics Platform für die Entwicklung von Machine Learning Apps

Entwicklung einer Analytics Platform für die Entwicklung von Machine Learning Apps, die zusammen mit Data Scientists gebaut werden, um eine nächstbeste Entscheidung in Inkasso-Prozessen zu treffen. Ich habe in einem Scrum Team in der Data Engineer Rolle zusammen mit Software- und Infrastruktur-Ingenieuren zzgl. 2 Data Scientist Teams gearbeitet.

  • Design & Entwicklung der Analytics Platform inkl. effiziente Data Pipelines für Batch Prediction und Real-time Predictions mithilfe diverser Apache Hadoop Tools aus den Hortonworks Data Platform und Hortonworks DataFlow Produkt-Suiten, die Entwicklung der notwendigen Microservices mit Custom Funktionalität
  • Data Pipelines waren eine Schnittstelle zwischen Teradata Data Warehouse und Teams von Data Scientists (Python) bzw. Software Entwickler (Java) der Apps für Inkasso Abwicklung
  • Microservices waren auf Scala/Akka mit Embedded Lucene und RocksDB basiert, mit CI/CD Pipelines in Jenkins und Orchestrierung in OpenShift Origin (basiert auf Kubernetes und Docker)
  • Die Data Pipelines und Datenverarbeitung (in Batch und Real-time Prozessen) waren auf folgende Apache Tools basiert: NiFi, Kafka und Strimzi (Kafka for Kubernetes/OpenShift), Zookeeper, HDFS, Hive, HBase, Ranger, Ambari, Schema Registry u.v.m
EOS Technology Solutions GmbH
Hamburg
9 Monate
2017-04 - 2017-12

Entwicklung einer Plattform für zuverlässige Bearbeitung von Lotterie-Tickets

Entwicklung einer Plattform für zuverlässige Bearbeitung von Lotterie-Tickets, Berechnung von Gewinnern und Quoten für mehrere Märkte. Ich habe in einem Scrum Team erfahrener Software-Entwickler gearbeitet, wo ich an folgenden Aufgaben beteiligt war:

  • Software-Design und Entwicklung mit Scala, Code Reviews, Umsetzung von CI/CD Pipeline für Software Komponenten (mit Jenkins und Ansible)
  • Sowohl Microservices (alle in Scala und Akka implementiert) als auch Backing Services (Kafka, Postgres und Cassandra) wurden als Docker Container deployed und systemd Services gemanaged
  • Kommunikation unter denen wurde über Kafka kommuniziert, mit REST APIs um auf die Daten anzunehmen und Ergebnisse bereitzustellen und sie liefen auf einer custom Infrastruktur basierten vSphere VMs
  • Größere Datenmengen (Millionen von Ticketkäufen am Tag) wurden in einer Cassandra Datenbank gespeichert, wobei für das Speichern von berechneten Gewinnern und Quoten eine Postgres DB benutzt wurde
  • Eine Web-App für Verwaltung wurde mit Play Framework und Scala entwickelt
  • Nach einer initialen Überlegung und Recherche, Orchestrierung von Microservices mit Kubernetes zu machen, wurde entschieden, VMs und aus den Codebase generierte Docker Container Images zu benutzen, die mit Jenkins und Ansible gebaut und deployed wurden, ohne Bedarf die Microservices zu skalieren

Ich habe folgende Ergebnisse erzielt:

  • akribische Code Reviews (die zu verbesserten Code-Qualität und Zusammenhalt im Team geführt hat)
  • Stateless Services, auf einer Reproducible Infrastruktur (VMs) und Umgebung (wo Microservices Und Backing Services liefen)
eSailors Ltd.
Hamburg
3 Monate
2017-01 - 2017-03

Design und Entwicklung einer Komponente für das User-Tracking

  • Design und Entwicklung einer Komponente für das User-Tracking über mehrere Geräte, die von mehreren Web-Shops der Otto Group einzusetzen angedacht wurde
  • Domain- und Anforderungsanalyse, Software-Entwicklung der Komponente (mit Java 8), die mit Cloudera Hadoop und Kafka Clustern interagierte
  • Ungefähr 200 Dateien (je 500MB) wurden aus einem Hadoop Cluster HDFS nach einem Parsing in Datenstrukturen innerhalb des JVM-Speichers importiert
  • Aus dem Kafka Cluster wurde ein Stream von relevanten Events mit anonymisierten Daten konsumiert, die aus den Web-Shops stammten
  • Ich habe einen lokalen Entwicklungszyklus mit Docker images für Kafka Und Hadoop clusters verbessert, womit lokal eine iterative und effizientere Entwicklung ermöglicht worden ist, womit man auf langsame Testzyklen in einer (Pre-Production) Umgebung (ausschließlich über Remote Desktop) verzichten konnte
  • Ich habe zusätzlich ein Facebook Marketing API Client gebaut, womit Custom Audiences mit gehashten E-mail-Adressen erstellt wurden, um Ad-Targeting für Firmen/Shops der Otto Group zu verbessern
Otto GmbH & Co. KG
Hamburg
11 Monate
2015-10 - 2016-08

Verbesserung der Infrastruktur, Architektur und der Software-Entwicklung

Scala and node.js Software Engineering Consultant
Scala and node.js Software Engineering Consultant
  • Verbesserung der Infrastruktur, Architektur und der Software-Entwicklung von der Kreditech Fintech Plattform
  • Software-Entwicklung und Code Reviewing (Scala/Java, Node.js). Ich habe eine Docker-basierte Entwicklung und Produktion (für einige Komponenten) eingeführt
  • Ich habe zur Verteilung einiger Komponenten aus der Plattform beigetragen, die eine schlecht entworfene monolithische App war (Scala/Java, Spring, Hibernate, ScalikeJDBC, Finagle, Finatra, ScalaTest, TestNG, Mockito,…)
  • Umsetzung der Containerization einiger Komponenten mit Docker und 12-Factor App Prinzipien folgend, Continuous Delivery für ausgewählte Komponenten
  • Migration der Heroku-basierter Produktion auf eine eigene Infrastruktur, die auf Docker Container basiert ist, die auf VM Hosts liefen
  • Ich habe überwiegend mit Engineering- und Infrastruktur-Teams zusammengearbeitet (und SaltStack benutzt), aber auch mit Data Science und BI
Kreditech Holding SSL GmbH
Hamburg
8 Monate
2014-10 - 2015-05

Verbesserung der Entwicklung einer Java Web-App

Java Software Engineer and Consultant
Java Software Engineer and Consultant

Verbesserung der Entwicklung einer Java Web-App für Customer Self-service. Ich habe in einem Scrum Team gearbeitet, dem ich geholfen habe, wesentliche Tasks zu identifizieren und sich auf sie zu fokussieren; einen besseren Code effizienter und zuverlässiger zu schreiben; und an der kontinuierlicher Verbesserung gearbeitet. Die Web-App wurde auf Stripes, Struts, Hibernate, und WebLogic basiert, mit Schnittstellen (WS, DB) zu externen Systemen.

  • Code/Projekt-Analyse
  • Feedback
  • Entwicklung
  • Code Reviews
  • Mentoring
  • Pair Programming
  • Refactoring
  • Migration auf einer neuere Java Version, Frameworks & Libraries (Guava, Apache Commons, CXF, etc)
  • inkrementelles Architektur-Redesign (Monolithen in Schritten in Services umzuwandelt)
  • Einführiung des ELK-Stack App-Monitorings
  • Verbesserung der Dokumentation und Kommunikation, usw.
Vattenfall Europe Sales GmbH
Hamburg and Berlin
7 Monate
2014-01 - 2014-07

Android-Entwicklung mit Scala

Scala/Android Software Engineer
Scala/Android Software Engineer

Android-Entwicklung mit Scala. Ich habe an einem Android-basierten Framework für Labor-Instrumente gearbeitet, wo Scala, Akka und SBT benutzt wurden.

  • Build-Prozess implementierung, inkl. Jenkins Integration
  • Konzeption und Implementation der Datenbank-Migration, basiert auf der Slick library
  • Integration von Video-Streaming mit GStreamer Framework
Eppendorf Instrumente GmbH
Hamburg und Jülich
5 Monate
2013-08 - 2013-12

Reactive App und API Entwicklung

Reactive App und API Entwicklung.

  • Prototyping, Entwicklung & Beratung
  • Ich habe Typesafe Stack (Scala, Play, Akka), elastische Infrastruktur (AWS, Docker, Elasticsearch), und ausgewählte Libraries (Netflix and Twitter; Hystrix, Twitter Server, Finagle, Finatra, usw) verwendet um ein resiliente Web-App zu bauen
Anonymer Auftraggeber
1 Jahr
2013-01 - 2013-12

Freiberufliche Projekte

  • Website-Entwicklung mit Adobe CQ5 und Java; Play Framework und Scala
  • Koordinination zwischen Kunden, Delivery Team und Frontend Entwicklern
  • Anforderungsanalyse, Planung und Entwicklung des Backends
7 Monate
2013-01 - 2013-07

Dr.BEST Website

Responsive Web Entwicklung mit Adobe CQ5 CMS, Java, Bootstrap/Modernizr

  • Projekt: Dr.BEST Website für die London Niederlassung von GlaxoSmithKline plc
  • Frontend Prototyping
  • Frontend und Backend Implementation
  • Team Lead und technisches Projekt-Management (inkl. Täglichen Austausch mit Delivery Management auf der Seite des Kunden und des Project-Managements der Marketing-Agentur)
Digital District GmbH / Razorfish Healthware GmbH
Düsseldorf
3 Jahre 9 Monate
2009-07 - 2013-03

Mehrere Projekte

Senior Software Engineer - Tech Lead, Product Manager
Senior Software Engineer - Tech Lead, Product Manager

Search: Tech Lead des Search & Recommendations Teams 

  • Feature Priorisierung, Service Entwicklung, Semi-automatisches Deployment, Operation Monitoring während der Migration von den Legacy Search Systemen auf ein neues, konsistentes Search System, das per Search Domain konfigurierbar war
  • Das Search System (Apache Solr Server) konsumierte Daten (über AMQP/RabbitMQ) und war über eine interne Search & Admin APIs verfügbar (Scala und DropWizard; Search Administration, Query Validation, Logging, Query Routing an Solr Servers/Cores)
  • Das Search System wurde später auf ElasticSearch wegen
    seines Real-time Features migriert
  • Ich habe einen Intersection Service (Java, Berkeley DB) verbessert, mit einer REST API für in-memory Bearbeitung von größeren Id-Sätzen und Service Deployment vereinfacht

API: Als Product Manager habe ich ein Team von 4-5 Entwicklern geleitet, das api.xing.com und begleitendes Dev Portal dev.xing.com (in Ruby) gebaut hat

  • Produkt-Vision, Produkt-Entwicklung, Roadmap, Priorisierung und Spezifikation der Features (inkl. Akzeptanzkriterien)
  • War auch das Customer Proxy (für das XING Mobile Team und externe Entwickler)

OpenSocial: Ich habe den OpenSocial Container für das XING Social Network mit Apache Shindig implementiert

  • Ich habe mit 3 weiteren Java und JavaScript Entwickler in der Tech Lead Rolle gearbeitet
  • Tägliche Kommunikation mit Teammitgliedern auf Deutsch, Englisch und Spanisch
Java Google Guice Google Guava OAuth EhCache Caucho Resin
XING AG
Hamburg
2 Jahre
2007-08 - 2009-07

Mehrere Outsourcing Projekte

Senior Enterprise Java Developer, Open-Source Contributor
Senior Enterprise Java Developer, Open-Source Contributor
  • System Integration und automatisiertes ETL (aus DB, Excel-Dateien in DB und Apache Lucene) mit JBoss AS-based ESB, Java XML Mapping und XSLT
  • Anpassungen des Firmen-Portals (Liferay)
  • Tech Lead für ein Web-Projekt (Struts 2, Hibernate 3, Spring 2; XSLT, Spring-WS; soapUI, JBoss ESB)
  • Teilnahme an Open-source Projekten: soapUI (SOAP/REST Web-Service und HTTP Testingtool; Entwicklung, Bugfixing, Support), loadUI (Tool für Lasttests; Prototypisierung; OSGi, JMeter)
Mogul
Belgrad
9 Jahre 3 Monate
2000-04 - 2009-06

Software Entwickler

Java C++/Qt Python ...
Java C++/Qt Python C# Libraries Frameworks ORM Objekt-Relationalen Mapper
Diverse Firmen
Serbien, ein Deutschland, Kunden in West-EU und USA

Aus- und Weiterbildung

Aus- und Weiterbildung

  • Diplom-Ingenieur, Hochschule für Fachstudien der Elektro- und Rechnertechnik, Uni Belgrad

Zertifikate, Kurse und Schulung:

  • Mehrere Kurse auf Coursera und Udacity abeschlossen, hauptsächlich in der Software Entwicklung
  • SCRUM Product Owner (CSPO)
  • "iterative Produktentwicklung mit SCRUM"
  • "Professionelles führen"

Kompetenzen

Kompetenzen

Top-Skills

Scala Kubernetes DevOps Java Virtual Machine Kotlin Clojure Haskell Scalability Apache Cassandra Apache Hadoop Apache Spark Apache NiFi HBase Spring Boot Amazon Web Services Linux Java 17 Java 11 Continuous Integration Big Data

Schwerpunkte

Software Design
Experte
Software Engineering
Experte
DevOps
Experte
API Design
Experte
Software Architecture
Experte
  • Entwicklung und Prototypisierung von Backend-Systemen und Web-Apps auf der Java-Plattform (Scala, Java, Kotlin, Clojure, Groovy)
  • (Micro)Service-basierte Architekturen (SOA) mit REST APIs, RPC, Message Queues (wie RabbitMQ) und Distributed Event Logs (z.B. Apache Kafka)
  • Einführung und kontinuierliche Verbesserung von Software-Entwicklungsprozessen und Deployment-Pipelines die auf CI/CD Tools (GitLab CI, GitHub Actions, Jenkins, Bamboo, TeamCity, u.a.), Software-Management Tools (Ansible, SaltStack, Chef) und Containers (Kubernetes/Rancher/OpenShift, Docker, Helm) basiert sind.
  • Nutzung der modernen open-source Libraries und Frameworks
  • Projekterfahrung mit Python, C++, C# und Ruby, wovon ich immer noch nebenbei ab und zu Python benutze.

Produkte / Standards / Erfahrungen / Methoden

Resümee:

  • Leidenschaftlicher Software-Ingenieur und -Berater; neugieriger Lehrling
  • Software-Design und -Entwicklung von komplexen/verteilten Backends, (Big) Data Produkten vorrangig auf der JVM (Scala, Kotlin, Java 8+, Clojure) mit DevOps-Ansatz
  • Systematisch, pragmatisch, praxis-orientierter Problemlöser

Programmiersprachen

Java
Erfahrung mit vielen Java-Bibliotheken inkl. Spring Boot und Spring Framework; Groovy
JavaScript
TypeScript, Angular, React, jQuery
Scala
Akka, Play! Framework, Scalatra, Dropwizard, Twitter Bibliotheken (Util, Finagle, Finatra, Twitter Server)
Python
Meine bevorzugte dynamische Skriptsprache
C++
Qt GUI und Cross-Plattform Entwicklung, NDIS Netzwerk-Treiber Entwicklung

Datenkommunikation

HTTP
Ich habe im Verlauf der Nutzung und Entwicklung der (REST bzw. RESTful) APIs viel über HTTP gelernt.
Internet, Intranet
Design und Entwicklung von APIs, Web Service Entwicklung (REST, SOAP, RPC)
TCP/IP
solide Kenntnisse inkl. IPSec (IP Security Suite)
RPC / Data serialization
JSON, Protobuf, Apache Avro, Apache Parquet, EDN
Message Queuing
RabbitMQ, AMQP
OSI model
Fortgeschritten

Hardware

PC
Linux (Slackware, Ubuntu, RedHat, Debian), macOS (seit Version 10.5 a.k.a. Mac OS X Leopard), Windows (seit Version 3.1)
Raspberry Pi
Fortgeschritten
CPUs & Mikrocontroller
Intel 8051, Motorola 68xxx

Branchen

Branchen

  • Software-Entwicklung in verschienen Branchen
  • Ich bin relativ offen in neuen Branchen Software agil und zu konzipieren, entwicklen und liefern

Einsatzorte

Einsatzorte

Hamburg (+50km) Elmshorn (+50km) Stade (+150km)
möglich

Projekte

Projekte

11 Jahre 10 Monate
2013-01 - heute

Freiberuflich

Software Ingenieur und Berater
Software Ingenieur und Berater
Freiberuflich
Hamburg
5 Monate
2020-07 - 2020-11

Entwicklung und Betrieb mehrerer AWS Cluster für das DyCA Team

DevOps Engineer
DevOps Engineer

Entwicklung und Betrieb mehrerer AWS Cluster für das DyCA Team (Dynamic Campaign Advertising) um auf otto.de Homepage eine effiziente und stabile Performance bei der Ausspielung von personalisierten Banners und Teasers gewährleisten zu können. Ich habe ein kleines Team unterstützt, eine fremde closed-source Software (HCL Unica Interact) für die real-time Personalisierung der Werbungen auf der otto.de Homepage möglichst stabil und performant aufzusetzen und zu betreiben. Dafür war es notwendig, die sehr manuelle und fehleranfällige technische und fachliche Deployments möglichst zu vermeiden, genauso die Beobachtbarkeit (Observability) der Run-time Performance einer closed-source Software zu ermöglichen, damit iterativ die Performance und Stabilität der Marketing-Plattform ermöglicht und technisch erklärbar wird. Abgesehen von der intensiven Arbeit mit den AWS Services und Features (EC2 mit Auto Scaling Groups und optimierten AMIs, RDS for Oracle, Lambda, CloudWatch, ELB), HAProxy und mehreren Komponenten aus dem Unica Interact Marketing Suite, habe ich mich um die Sammlung und technische Auswertung der Metriken (auch über JMX Exporter) von allen relevanten Komponenten in ein zentrales Monitoring (mit Prometheus und Grafana) gekümmert, dass von mir eingerichtet wurde. Außerdem konnte ich die entscheidende Performance-Optimierung erreichen mit der Feststellung, dass sog. External Callouts (Plugin System in der Unica Interact) entwickelt werden müssen, damit eine zufriedenstellende Performance (über 99,5% der technisch und fachlich korrekten Interact API Request) und Stabilität erreicht wird. Diese habe ich entwickelt und zusammen mit Kollegen getestet.

  • DevOps mit Software-Entwicklung
  • Deployment, Troubleshooting, Koordination und Testing
OTTO Group
remote
8 Monate
2019-10 - 2020-05

Entwicklung der Digital Farming Plattform

Entwicklung der Digital Farming Plattform und diversen Microservices für Produkte xarvio™ Field Manager und Healthy Fields. In einem größerem Backend-Team (über 30 Software- und DevOps-Ingenieure) habe ich an der Entwicklung mit Java (9 und 11) und Spring Boot, Deployment in Kubernetes und Instandhaltung von über 50 Microservices gearbeitet, die eigene Daten überwiegend in Postgres speichern und miteinander über eigene REST APIs und RabbitMQ kommunizieren. Die REST APIs waren sowohl public als auch privat, die jeweils in OpenAPI spezifiziert wurden. Public API Dokumentation wurde über ReDoc generiert und statische Inhalte über Vuepress.js vervollständigt. Ich habe auch an der GraphQL API gearbeitet, die von xarvio™ mobilen Apps benutzt wurde. Einige Microservices haben S3 fürs speichern von größeren Dateien oder haben mit eigenen AWS Lambda Funktionen und externen Services (z.B. von John Deere oder Arable) kommuniziert. Die Microservices wurden in AWS deployed und mit Kubernetes orchestriert, wobei Deployments von einzelnen Microservices über Helm Charts definiert wurden. Das Testing mit Unit Tests, Integrationstests und Contract Tests über OpenAPI Dokumente und Postman (für die REST APIs) wurden kontinuierlich verbessert. Die CI/CD Pipelines wurden in Git, TeamCIty und Kotlin-basierten Skripten definiert und die Infrastruktur (in Dev und QA Umgebungen) mit ArgoCD deklarativ definiert und deployed. Application Monitoring wurde überwiegend mit in AWS laufenden ELK/Kibana und Grafana gemacht. Kommunikation mit anderen Teams (Mobile, Web, Support und Produktentwicklung) war Teil der Arbeit.

  • Software-Entwicklung mit DevOps, Code Reviews, Deployment, Koordination und Monitoring
BASF Digital Farming GmbH (xarvio? Digital Farming)
Köln, remote
4 Monate
2019-04 - 2019-07

Entwicklung eines Services für die Übertragung von Google Analytics Daten in Apache Hive

  • Entwicklung eines Services für die Übertragung von Google Analytics Daten in Apache Hive und Betreuung der bestehenden Data Pipelines für an den Kassen erhobenen Transaktionsdaten sowie DeutschlandCard Kunden-Ids
  • In einem kleinen Team habe ich zuerst die Betreuung der Data Pipelines übernommen, die diverse Quell-Dateien nach mehreren Stufen der Bearbeitung in den MapR Hadoop Cluster abgelegt wurden, um eine reibungslose Funktionalität sicherzustellen
  • Zusätzlich habe ein Service entwickelt, zuerst als Proof-Of-Concept, der aus dem gesicherten Intranet Google Analytics Daten von allen Web Properties des Kunden in Hive innerhalb eines MapR Clusters überträgt und Daten-Analysten zur Verfügung stellt
EDEKA DIGITAL GmbH (EDDI)
Hamburg
1 Jahr 1 Monat
2018-02 - 2019-02

Entwicklung einer Analytics Platform für die Entwicklung von Machine Learning Apps

Entwicklung einer Analytics Platform für die Entwicklung von Machine Learning Apps, die zusammen mit Data Scientists gebaut werden, um eine nächstbeste Entscheidung in Inkasso-Prozessen zu treffen. Ich habe in einem Scrum Team in der Data Engineer Rolle zusammen mit Software- und Infrastruktur-Ingenieuren zzgl. 2 Data Scientist Teams gearbeitet.

  • Design & Entwicklung der Analytics Platform inkl. effiziente Data Pipelines für Batch Prediction und Real-time Predictions mithilfe diverser Apache Hadoop Tools aus den Hortonworks Data Platform und Hortonworks DataFlow Produkt-Suiten, die Entwicklung der notwendigen Microservices mit Custom Funktionalität
  • Data Pipelines waren eine Schnittstelle zwischen Teradata Data Warehouse und Teams von Data Scientists (Python) bzw. Software Entwickler (Java) der Apps für Inkasso Abwicklung
  • Microservices waren auf Scala/Akka mit Embedded Lucene und RocksDB basiert, mit CI/CD Pipelines in Jenkins und Orchestrierung in OpenShift Origin (basiert auf Kubernetes und Docker)
  • Die Data Pipelines und Datenverarbeitung (in Batch und Real-time Prozessen) waren auf folgende Apache Tools basiert: NiFi, Kafka und Strimzi (Kafka for Kubernetes/OpenShift), Zookeeper, HDFS, Hive, HBase, Ranger, Ambari, Schema Registry u.v.m
EOS Technology Solutions GmbH
Hamburg
9 Monate
2017-04 - 2017-12

Entwicklung einer Plattform für zuverlässige Bearbeitung von Lotterie-Tickets

Entwicklung einer Plattform für zuverlässige Bearbeitung von Lotterie-Tickets, Berechnung von Gewinnern und Quoten für mehrere Märkte. Ich habe in einem Scrum Team erfahrener Software-Entwickler gearbeitet, wo ich an folgenden Aufgaben beteiligt war:

  • Software-Design und Entwicklung mit Scala, Code Reviews, Umsetzung von CI/CD Pipeline für Software Komponenten (mit Jenkins und Ansible)
  • Sowohl Microservices (alle in Scala und Akka implementiert) als auch Backing Services (Kafka, Postgres und Cassandra) wurden als Docker Container deployed und systemd Services gemanaged
  • Kommunikation unter denen wurde über Kafka kommuniziert, mit REST APIs um auf die Daten anzunehmen und Ergebnisse bereitzustellen und sie liefen auf einer custom Infrastruktur basierten vSphere VMs
  • Größere Datenmengen (Millionen von Ticketkäufen am Tag) wurden in einer Cassandra Datenbank gespeichert, wobei für das Speichern von berechneten Gewinnern und Quoten eine Postgres DB benutzt wurde
  • Eine Web-App für Verwaltung wurde mit Play Framework und Scala entwickelt
  • Nach einer initialen Überlegung und Recherche, Orchestrierung von Microservices mit Kubernetes zu machen, wurde entschieden, VMs und aus den Codebase generierte Docker Container Images zu benutzen, die mit Jenkins und Ansible gebaut und deployed wurden, ohne Bedarf die Microservices zu skalieren

Ich habe folgende Ergebnisse erzielt:

  • akribische Code Reviews (die zu verbesserten Code-Qualität und Zusammenhalt im Team geführt hat)
  • Stateless Services, auf einer Reproducible Infrastruktur (VMs) und Umgebung (wo Microservices Und Backing Services liefen)
eSailors Ltd.
Hamburg
3 Monate
2017-01 - 2017-03

Design und Entwicklung einer Komponente für das User-Tracking

  • Design und Entwicklung einer Komponente für das User-Tracking über mehrere Geräte, die von mehreren Web-Shops der Otto Group einzusetzen angedacht wurde
  • Domain- und Anforderungsanalyse, Software-Entwicklung der Komponente (mit Java 8), die mit Cloudera Hadoop und Kafka Clustern interagierte
  • Ungefähr 200 Dateien (je 500MB) wurden aus einem Hadoop Cluster HDFS nach einem Parsing in Datenstrukturen innerhalb des JVM-Speichers importiert
  • Aus dem Kafka Cluster wurde ein Stream von relevanten Events mit anonymisierten Daten konsumiert, die aus den Web-Shops stammten
  • Ich habe einen lokalen Entwicklungszyklus mit Docker images für Kafka Und Hadoop clusters verbessert, womit lokal eine iterative und effizientere Entwicklung ermöglicht worden ist, womit man auf langsame Testzyklen in einer (Pre-Production) Umgebung (ausschließlich über Remote Desktop) verzichten konnte
  • Ich habe zusätzlich ein Facebook Marketing API Client gebaut, womit Custom Audiences mit gehashten E-mail-Adressen erstellt wurden, um Ad-Targeting für Firmen/Shops der Otto Group zu verbessern
Otto GmbH & Co. KG
Hamburg
11 Monate
2015-10 - 2016-08

Verbesserung der Infrastruktur, Architektur und der Software-Entwicklung

Scala and node.js Software Engineering Consultant
Scala and node.js Software Engineering Consultant
  • Verbesserung der Infrastruktur, Architektur und der Software-Entwicklung von der Kreditech Fintech Plattform
  • Software-Entwicklung und Code Reviewing (Scala/Java, Node.js). Ich habe eine Docker-basierte Entwicklung und Produktion (für einige Komponenten) eingeführt
  • Ich habe zur Verteilung einiger Komponenten aus der Plattform beigetragen, die eine schlecht entworfene monolithische App war (Scala/Java, Spring, Hibernate, ScalikeJDBC, Finagle, Finatra, ScalaTest, TestNG, Mockito,…)
  • Umsetzung der Containerization einiger Komponenten mit Docker und 12-Factor App Prinzipien folgend, Continuous Delivery für ausgewählte Komponenten
  • Migration der Heroku-basierter Produktion auf eine eigene Infrastruktur, die auf Docker Container basiert ist, die auf VM Hosts liefen
  • Ich habe überwiegend mit Engineering- und Infrastruktur-Teams zusammengearbeitet (und SaltStack benutzt), aber auch mit Data Science und BI
Kreditech Holding SSL GmbH
Hamburg
8 Monate
2014-10 - 2015-05

Verbesserung der Entwicklung einer Java Web-App

Java Software Engineer and Consultant
Java Software Engineer and Consultant

Verbesserung der Entwicklung einer Java Web-App für Customer Self-service. Ich habe in einem Scrum Team gearbeitet, dem ich geholfen habe, wesentliche Tasks zu identifizieren und sich auf sie zu fokussieren; einen besseren Code effizienter und zuverlässiger zu schreiben; und an der kontinuierlicher Verbesserung gearbeitet. Die Web-App wurde auf Stripes, Struts, Hibernate, und WebLogic basiert, mit Schnittstellen (WS, DB) zu externen Systemen.

  • Code/Projekt-Analyse
  • Feedback
  • Entwicklung
  • Code Reviews
  • Mentoring
  • Pair Programming
  • Refactoring
  • Migration auf einer neuere Java Version, Frameworks & Libraries (Guava, Apache Commons, CXF, etc)
  • inkrementelles Architektur-Redesign (Monolithen in Schritten in Services umzuwandelt)
  • Einführiung des ELK-Stack App-Monitorings
  • Verbesserung der Dokumentation und Kommunikation, usw.
Vattenfall Europe Sales GmbH
Hamburg and Berlin
7 Monate
2014-01 - 2014-07

Android-Entwicklung mit Scala

Scala/Android Software Engineer
Scala/Android Software Engineer

Android-Entwicklung mit Scala. Ich habe an einem Android-basierten Framework für Labor-Instrumente gearbeitet, wo Scala, Akka und SBT benutzt wurden.

  • Build-Prozess implementierung, inkl. Jenkins Integration
  • Konzeption und Implementation der Datenbank-Migration, basiert auf der Slick library
  • Integration von Video-Streaming mit GStreamer Framework
Eppendorf Instrumente GmbH
Hamburg und Jülich
5 Monate
2013-08 - 2013-12

Reactive App und API Entwicklung

Reactive App und API Entwicklung.

  • Prototyping, Entwicklung & Beratung
  • Ich habe Typesafe Stack (Scala, Play, Akka), elastische Infrastruktur (AWS, Docker, Elasticsearch), und ausgewählte Libraries (Netflix and Twitter; Hystrix, Twitter Server, Finagle, Finatra, usw) verwendet um ein resiliente Web-App zu bauen
Anonymer Auftraggeber
1 Jahr
2013-01 - 2013-12

Freiberufliche Projekte

  • Website-Entwicklung mit Adobe CQ5 und Java; Play Framework und Scala
  • Koordinination zwischen Kunden, Delivery Team und Frontend Entwicklern
  • Anforderungsanalyse, Planung und Entwicklung des Backends
7 Monate
2013-01 - 2013-07

Dr.BEST Website

Responsive Web Entwicklung mit Adobe CQ5 CMS, Java, Bootstrap/Modernizr

  • Projekt: Dr.BEST Website für die London Niederlassung von GlaxoSmithKline plc
  • Frontend Prototyping
  • Frontend und Backend Implementation
  • Team Lead und technisches Projekt-Management (inkl. Täglichen Austausch mit Delivery Management auf der Seite des Kunden und des Project-Managements der Marketing-Agentur)
Digital District GmbH / Razorfish Healthware GmbH
Düsseldorf
3 Jahre 9 Monate
2009-07 - 2013-03

Mehrere Projekte

Senior Software Engineer - Tech Lead, Product Manager
Senior Software Engineer - Tech Lead, Product Manager

Search: Tech Lead des Search & Recommendations Teams 

  • Feature Priorisierung, Service Entwicklung, Semi-automatisches Deployment, Operation Monitoring während der Migration von den Legacy Search Systemen auf ein neues, konsistentes Search System, das per Search Domain konfigurierbar war
  • Das Search System (Apache Solr Server) konsumierte Daten (über AMQP/RabbitMQ) und war über eine interne Search & Admin APIs verfügbar (Scala und DropWizard; Search Administration, Query Validation, Logging, Query Routing an Solr Servers/Cores)
  • Das Search System wurde später auf ElasticSearch wegen
    seines Real-time Features migriert
  • Ich habe einen Intersection Service (Java, Berkeley DB) verbessert, mit einer REST API für in-memory Bearbeitung von größeren Id-Sätzen und Service Deployment vereinfacht

API: Als Product Manager habe ich ein Team von 4-5 Entwicklern geleitet, das api.xing.com und begleitendes Dev Portal dev.xing.com (in Ruby) gebaut hat

  • Produkt-Vision, Produkt-Entwicklung, Roadmap, Priorisierung und Spezifikation der Features (inkl. Akzeptanzkriterien)
  • War auch das Customer Proxy (für das XING Mobile Team und externe Entwickler)

OpenSocial: Ich habe den OpenSocial Container für das XING Social Network mit Apache Shindig implementiert

  • Ich habe mit 3 weiteren Java und JavaScript Entwickler in der Tech Lead Rolle gearbeitet
  • Tägliche Kommunikation mit Teammitgliedern auf Deutsch, Englisch und Spanisch
Java Google Guice Google Guava OAuth EhCache Caucho Resin
XING AG
Hamburg
2 Jahre
2007-08 - 2009-07

Mehrere Outsourcing Projekte

Senior Enterprise Java Developer, Open-Source Contributor
Senior Enterprise Java Developer, Open-Source Contributor
  • System Integration und automatisiertes ETL (aus DB, Excel-Dateien in DB und Apache Lucene) mit JBoss AS-based ESB, Java XML Mapping und XSLT
  • Anpassungen des Firmen-Portals (Liferay)
  • Tech Lead für ein Web-Projekt (Struts 2, Hibernate 3, Spring 2; XSLT, Spring-WS; soapUI, JBoss ESB)
  • Teilnahme an Open-source Projekten: soapUI (SOAP/REST Web-Service und HTTP Testingtool; Entwicklung, Bugfixing, Support), loadUI (Tool für Lasttests; Prototypisierung; OSGi, JMeter)
Mogul
Belgrad
9 Jahre 3 Monate
2000-04 - 2009-06

Software Entwickler

Java C++/Qt Python ...
Java C++/Qt Python C# Libraries Frameworks ORM Objekt-Relationalen Mapper
Diverse Firmen
Serbien, ein Deutschland, Kunden in West-EU und USA

Aus- und Weiterbildung

Aus- und Weiterbildung

  • Diplom-Ingenieur, Hochschule für Fachstudien der Elektro- und Rechnertechnik, Uni Belgrad

Zertifikate, Kurse und Schulung:

  • Mehrere Kurse auf Coursera und Udacity abeschlossen, hauptsächlich in der Software Entwicklung
  • SCRUM Product Owner (CSPO)
  • "iterative Produktentwicklung mit SCRUM"
  • "Professionelles führen"

Kompetenzen

Kompetenzen

Top-Skills

Scala Kubernetes DevOps Java Virtual Machine Kotlin Clojure Haskell Scalability Apache Cassandra Apache Hadoop Apache Spark Apache NiFi HBase Spring Boot Amazon Web Services Linux Java 17 Java 11 Continuous Integration Big Data

Schwerpunkte

Software Design
Experte
Software Engineering
Experte
DevOps
Experte
API Design
Experte
Software Architecture
Experte
  • Entwicklung und Prototypisierung von Backend-Systemen und Web-Apps auf der Java-Plattform (Scala, Java, Kotlin, Clojure, Groovy)
  • (Micro)Service-basierte Architekturen (SOA) mit REST APIs, RPC, Message Queues (wie RabbitMQ) und Distributed Event Logs (z.B. Apache Kafka)
  • Einführung und kontinuierliche Verbesserung von Software-Entwicklungsprozessen und Deployment-Pipelines die auf CI/CD Tools (GitLab CI, GitHub Actions, Jenkins, Bamboo, TeamCity, u.a.), Software-Management Tools (Ansible, SaltStack, Chef) und Containers (Kubernetes/Rancher/OpenShift, Docker, Helm) basiert sind.
  • Nutzung der modernen open-source Libraries und Frameworks
  • Projekterfahrung mit Python, C++, C# und Ruby, wovon ich immer noch nebenbei ab und zu Python benutze.

Produkte / Standards / Erfahrungen / Methoden

Resümee:

  • Leidenschaftlicher Software-Ingenieur und -Berater; neugieriger Lehrling
  • Software-Design und -Entwicklung von komplexen/verteilten Backends, (Big) Data Produkten vorrangig auf der JVM (Scala, Kotlin, Java 8+, Clojure) mit DevOps-Ansatz
  • Systematisch, pragmatisch, praxis-orientierter Problemlöser

Programmiersprachen

Java
Erfahrung mit vielen Java-Bibliotheken inkl. Spring Boot und Spring Framework; Groovy
JavaScript
TypeScript, Angular, React, jQuery
Scala
Akka, Play! Framework, Scalatra, Dropwizard, Twitter Bibliotheken (Util, Finagle, Finatra, Twitter Server)
Python
Meine bevorzugte dynamische Skriptsprache
C++
Qt GUI und Cross-Plattform Entwicklung, NDIS Netzwerk-Treiber Entwicklung

Datenkommunikation

HTTP
Ich habe im Verlauf der Nutzung und Entwicklung der (REST bzw. RESTful) APIs viel über HTTP gelernt.
Internet, Intranet
Design und Entwicklung von APIs, Web Service Entwicklung (REST, SOAP, RPC)
TCP/IP
solide Kenntnisse inkl. IPSec (IP Security Suite)
RPC / Data serialization
JSON, Protobuf, Apache Avro, Apache Parquet, EDN
Message Queuing
RabbitMQ, AMQP
OSI model
Fortgeschritten

Hardware

PC
Linux (Slackware, Ubuntu, RedHat, Debian), macOS (seit Version 10.5 a.k.a. Mac OS X Leopard), Windows (seit Version 3.1)
Raspberry Pi
Fortgeschritten
CPUs & Mikrocontroller
Intel 8051, Motorola 68xxx

Branchen

Branchen

  • Software-Entwicklung in verschienen Branchen
  • Ich bin relativ offen in neuen Branchen Software agil und zu konzipieren, entwicklen und liefern

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.