Software-Ingenieur und Berater
- Verfügbarkeit einsehen
- 0 Referenzen
- auf Anfrage
- 25337 Elmshorn
- Nähe des Wohnortes
- sr | de | en
- 13.11.2024
Kurzvorstellung
Schwerpunkte: Design & Entwicklung (Java-Plattform u.a.) von Data-Produkten, verteilten und skalierbaren Backend-Systemen, DevOps
Java 9+, Scala/Akka, Docker/Kubernetes, Postgres, Kafka, Hadoop u.v.m.
Qualifikationen
Projekt‐ & Berufserfahrung
8/2020 – 10/2020
TätigkeitsbeschreibungEntwicklung eines datengetriebenen verteilten Backends und Verbesserung des Loggings mit der Einführung von Alerting. Gemeinsam mit einem weiteren Scala-Backend-Entwickler bestand meine Aufgabe darin, mehrere Backend-Komponenten basierend auf Scala und Akka anzupassen und zu implementieren, während komplexe Datenabhängigkeiten vereinfacht und reduziert wurden. Dabei wurden Daten aus einer externen Oracle-Datenbank mithilfe von Spark-Jobs transformiert und in die projektinterne Cassandra-Datenbank sowie Elasticsearch-Indizes geladen. Evaluation von Databricks. Das interne Datenmodell basiert auf Event-Sourcing, und Kafka-Streams wurden für die interne Kommunikation zwischen den Backend-Komponenten verwendet. Zusätzlich habe ich die Logging-Funktion verbessert und vereinheitlicht, um eine zentrale Logging-Konfiguration zu nutzen. Außerdem habe ich Kibana Alerting eingerichtet, um Laufzeitfehler und Warnungen mit entsprechender Dringlichkeit zu erkennen und Entwickler über diese Alarme via Slack-Kanäle zu benachrichtigen. Verwendete Bibliotheken wie Cats, Cats Effect, Avro, etc.
Eingesetzte QualifikationenApache Kafka, Apache Spark, Elasticsearch, Oracle Database, Scala, Server-Monitoring
7/2020 – 11/2020
Tätigkeitsbeschreibung
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.
Aufgaben: DevOps mit Software-Entwicklung, Deployment, Troubleshooting, Koordination und Testing.
Amazon Web Services (AWS), Java (allg.), Server-Monitoring
10/2019 – 5/2020
Tätigkeitsbeschreibung
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.
Aufgaben: Software-Entwicklung mit DevOps, Code Reviews, Deployment, Koordination und Monitoring.
Postgresql, DevOps (allg.), Docker, Java (allg.), Spring Framework, Advanced Message Queuing Protocol, Kubernetes
4/2019 – 7/2019
Tätigkeitsbeschreibung
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.
Entwicklung einer Services 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.
Apache Hadoop, Java (allg.), Google Analytics
2/2018 – 1/2019
Tätigkeitsbeschreibung
Design und Entwicklung einer Analytics Plattform für Machine Learning Apps, um Build/Train/Deploy Zyklus den Data Scientists möglichst zu vereinfachen.
Aufbau der Batch Prediction Prozesses auf Basis von Apache Hadoop Tools (NiFi, HDFS, Hive, HBase, Ranger, Ambari u.a.), Aufbau und Anpassung der Container Plattform mit OpenShift Origin (Kubernetes Distribution), Entwicklung von Microservices mit Scala/Akka und Entwickung von CI/CD Pipelines.
Data Science, Apache Hadoop, Agile Methodologie, Software Design, Docker, Jenkins, Scala, Kubernetes, Openshift
4/2017 – 12/2017
TätigkeitsbeschreibungSoftware Entwicklung von diversen Microservices und einer Frontend-App mit Scala/Akka, Play, Kafka und Postgres und Cassandra als Backing Services. Automatisierung des Deployments mit Ansible und Jenkins. Evaluierung von Kubernetes für die Run-time Umgebung.
Eingesetzte QualifikationenPostgresql, Jenkins, Scala, Kubernetes
10/2015 – 8/2016
TätigkeitsbeschreibungBeratung bei der Umstellung der Infrastruktur von Heroku auf eigene Infrastruktur. Einführung von Docker und CI/CD Pipelines für einige Microservices. Beratung bei der Zerlegung eines Monolithen. Software Entwicklung mit Scala, Java und Node.js/JavaScript.
Eingesetzte QualifikationenDocker, Java (allg.), Node.Js, Scala, Cloud (allg.)
11/2014 – 6/2015
TätigkeitsbeschreibungImproving Java web app development. Worked as an external software consultant and engineer embedded into an existing Scrum team whom I helped understand what’s important tasks and focus on it; write better code more efficiently and reliably; and work on continuous improvement. The app is customer-facing (Stripes, Struts, Hibernate, WebLogic) with interfaces (WS, DB) to external systems. Tasks: code/project analysis & feedback, development, code reviews, mentoring, pair programming, refactoring/rewriting, migration to the newer Java runtime, frameworks & libraries (Guava, Apache Commons, CXF, etc), incremental architecture redesign (gradually turning monolith into services), introducing app monitoring (ELK stack), improving documentation and communication, etc.
Eingesetzte QualifikationenOracle WebLogic Server, Software Design, Objektorientierte Analyse und Design (OOAD), Java (allg.), Hibernate (Java), WSDL (Web Services Description Language), Technische Beratung
Ausbildung
Belgrad, Serbien
Über mich
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
Weitere Kenntnisse
Java: Scala, Java 8+ - excellent; Kotlin - good, Clojure - basic
Python: Zope/Plone, wxPython, PyQt – good; Ruby: shell scripts, Rails - basic
C/C++: Qt, CppUnit, MFC, Win32, Setup API, NDIS/DriverStudio - very good
C#: .NET 2.0; web (ASP.NET) and client apps (net, DB, Office) - very good
General: OOA/OOD/OOP, GoF, functional, UML - excellent
- Web and Internet
Spring 5, Spring Boot 2, Play 2 – excellent; App Engine, Grails, Liferay, Zope - good
Search engines, Dropwizard – very good; ASP.NET, PHP – good (& abandoned)
Network: TCP/IP, HTTP, sockets - excellent; POP3/SMTP/IMAP – very good
httpd, nginx, Tomcat, WebLogic - very good
clean HTML, responsive design, JavaScript (vanilla) - very good
- Databases
MySQL, PostgreSQL – excellent; Oracle, DB2, MS SQL Server, PL/SQL – good
OO information systems, ORM (Hibernate 3) – excellent
Cassandra, HBase, Hive - excellent, MongoDB, Redis - good
- Misc
API design, implementation and consumption (REST & SOAP) - excellent
GNU/Linux - excellent; Git, Subversion - excellent; ELK, Graphite, Nagios, Zabbix - good
configuration mgmt, deployment (Docker, Kubernetes, Ansible, Chef, Vagrant) - very good
Persönliche Daten
- Serbisch (Muttersprache)
- Deutsch (Fließend)
- Englisch (Fließend)
- Spanisch (Fließend)
- Kroatisch (Fließend)
- Italienisch (Gut)
- Europäische Union
Kontaktdaten
Nur registrierte PREMIUM-Mitglieder von freelance.de können Kontaktdaten einsehen.
Jetzt Mitglied werden