Profilbild von Nenad Nikolic Software Engineer / Consultant (DevOps) aus Elmshorn

Nenad Nikolic

teilweise verfügbar

Letztes Update: 29.01.2024

Software Engineer / Consultant (DevOps)

Abschluss: nicht angegeben
Stunden-/Tagessatz: anzeigen
Sprachkenntnisse: deutsch (verhandlungssicher) | englisch (verhandlungssicher) | italienisch (gut) | russisch (Grundkenntnisse) | spanisch (verhandlungssicher) | serbisch (Muttersprache)

Schlagwörter

Dateianlagen

Nenad Nikolic - Lebenslauf [2020-05].docx

Skills

Microservices, DevOps, Java, Spring Boot, Kubernetes, Postgres, APIs, RabbitMQ, OpenAPI, Public API, GraphQL API, S3, AWS Lambda, AWS, Postman, Git, Kotlin, Application Monitoring, Kibana, Grafana, Google Analytics, Apache, MapR, Hadoop, Intranet, Hive, Analytics, Machine Learning, Scrum, Hortonworks Data Platform, Teradata Data, Python, Scala, Lucene, RocksDB, Jenkins, OpenShift, Docker, Apache Tools, Zookeeper, HDFS, HBase, Ambari, Cassandra, Docker Container, systemd, vSphere, Datenbank, DB, Play Framework, Java 8, Cloudera, Parsing, JVM, Remote Desktop, Facebook Marketing, API, Custom Audiences, E-mail, SSL, Node.js, Spring, Hibernate, ScalikeJDBC, ScalaTest, TestNG, Mockito, Continuous Delivery, Heroku, VM, SaltStack, Data Science, Stripes, Struts, WebLogic, Pair Programming, Refactoring, Java Version, Apache Commons, CXF, ELK-Stack, Android, SBT, GStreamer Framework, Typesafe, Elasticsearch, Twitter, Hystrix, Twitter Server, Finagle, Finatra, Adobe CQ5 CMS, Bootstrap, Modernizr, Apache Solr Server, AMQP, DropWizard, Solr, Berkeley DB, in-memory, Ruby, OpenSocial, Google Guice, Google Guava, OAuth, EhCache, Caucho, JavaScript, ETL, Excel, JBoss AS-based ESB, Java XML Mapping, XSLT, Liferay, Struts 2, Hibernate 3, Spring 2, Spring-WS, soapUI, JBoss ESB, SOAP, REST, Web-Service, OSGi, JMeter, RESTful, J2EE Plattform, AndroMDA, portlets, JSF, MySQL, ASP.NET, C#, XStream, NET, J2EE, Smartcard, System Design, WebSphere AS, DB2, Oracle, EJB, LDAP, DHTML, Ant, Client-Server, wxPython, GUI, RMI, ADSL, C# Client, GIS, C++, Qt, Zope, Linux Server, SOL, Tele-bet, cyberPIXIE, UML, UI, Swing, Oracle9i AS, JBoss, NDIS, Win 98/Me/NT/2k kompatibel, IPsec, 3DES, CMS, XML, server-side, PHP, tcl, HTML

Projekthistorie

01/2013 - bis jetzt
Freiberuflich
(Internet und Informationstechnologie, < 10 Mitarbeiter)


10/2019 - 05/2020
Freelance Senior Software Engineer
BASF Digital Farming GmbH (xarvio Digital Farming) (Köln, remote) (Sonstiges, 50-250 Mitarbeiter)

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.

04/2019 - 07/2019
Freelance Data Engineer
EDEKA DIGITAL GmbH (EDDI) (Konsumgüter und Handel, 50-250 Mitarbeiter)

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.

02/2018 - 01/2019
Freelance Data Engineer
EOS Technology Solutions GmbH (Sonstiges, 50-250 Mitarbeiter)

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. Verantwortlichkeiten: 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.

04/2017 - 12/2017
Freelance Scala Software Engineer
eSailors Ltd. (Internet und Informationstechnologie, 50-250 Mitarbeiter)

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).

01/2017 - 03/2017
Freelance Data Engineer
Otto GmbH & Co. KG (Konsumgüter und Handel, 500-1000 Mitarbeiter)

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.

10/2015 - 08/2016
Freelance Software Engineer & Consultant
Kreditech Holding SSL GmbH (Banken und Finanzdienstleistungen, 250-500 Mitarbeiter)

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.

10/2014 - 05/2015
Freelance Software Engineer
Vattenfall Europe Sales GmbH (Hamburg und Berlin) (Energie, Wasser und Umwelt, 500-1000 Mitarbeiter)

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. Aufgaben: 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.

01/2014 - 07/2014
Freelance Scala Software Engineer
Eppendorf Instrumente GmbH (Hamburg und Jülich) (Pharma und Medizintechnik, 250-500 Mitarbeiter)

Android-Entwicklung mit Scala. Ich habe an einem Android-basierten Framework für Labor-Instrumente
gearbeitet, wo Scala, Akka und SBT benutzt wurden. Aufgaben: Build-Prozess implementierung, inkl.
Jenkins Integration. Konzeption und Implementation der Datenbank-Migration, basiert auf der Slick
library. Integration von Video-Streaming mit GStreamer Framework.

08/2013 - 12/2013
Freelance Scala Software Engineer

Reactive App und API Entwicklung. Aufgaben: 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.

01/2013 - 07/2013
Freelance Software Engineer / Consultant
Digital District GmbH / Razorfish Healthware GmbH (Pharma und Medizintechnik, 10-50 Mitarbeiter)

Responsive Web Entwicklung mit Adobe CQ5 CMS, Java, Bootstrap/Modernizr. Projekt: Dr.BEST Website
für die London Niederlassung von GlaxoSmithKline plc. Aufgaben: 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).

07/2009 - 03/2013
Senior Software Engineer - Tech Lead, Product Manager
XING AG

* Search: Tech Lead des Search & Recommendations Teams. Aufgaben: 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. Aufgaben: 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. Technologien: Java, Google Guice, Google Guava, OAuth, EhCache, Caucho Resin. 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.

10/2004 - 07/2009
Software Consultant
NVN d.o.o. (Belgrad)

Freiberufliche Projekte: MyCityMate (Deutschland), Qualysoft (Ungarn), OptionDirect (Dänemark), Levi9
(Belgrad), Senor (Belgrad) for Pragma AS (Norwegen), Arius (Belgrad), SpamExperts (Niederlande), Universal
Telecom & LaGard (Schweden). Positionen: Software Architect, Senior Software Developer, and Project
Manager
MyCityMate: RESTful API Layer Design und Implementation, inkl. Logging und Throttling.
Qualysoft: Design und Entwicklung eines Portals basiert auf der J2EE Plattform, AndroMDA, portlets,
JSF, Hibernate/MySQL. Projekt Manager auf 2. Projekt: Anforderungsaufnahme bis Design and Planung.
OptionDirect: Entwicklung einer Web-App (ASP.NET, C#) für die Verwaltung der Aktien Optionen und
Optionsscheine um portfolio-bezogene Aufgaben deutlich zu vereinfachen. Ich habe alle App-Layers
implementiert inkl. eines JavaScript Engines für Transaction-Scripting.
Levi9: Team-Leiter auf Java Web Projekten, die auf Struts, Hibernate und XStream basiert wurden.
Recruiting (Interviews und Auswahl der Kandidaten), Coaching, Anforderungsanalyse, System-Design,
Koordination, Software-Entwicklung und -Deployment. Betreuung eines mittelgroßes .NET Projekts.
Senor und Arius: J2EE/Web App Entwicklung: Tracking von Transportmitteln mit End-User Support.
Administration von Bürgerdaten für Smartcard-IDs für das serbische Innenministerium. Aufgaben:
Anforderungsanalyse und System Design, Entwicklung (mit WebSphere AS, DB2 und Oracle) - EJB
Business-Logik) mit LDAP Layer (Authentifizierung und Zugriffskontrolle), DHTML controls (Frontend)
und Ant (Automatisierung der Build-Prozedur).
SpamExperts: Python CGI-basierte Client-Server Integration füs Speichern von Spam "Fingerabdrücken",
wxPython GUI Anpassungen, und Support während des Produkt-Rollouts.
Universal Telecom: Anpassung eines SOAP-basierten Layers und einer RMI-Test-App, für eine
programmierbare Abonnierung von ADSL-Usern. LaGard: C# Client App für Schlüssel/Schloss generierung.

08/2007 - 07/2009
Senior Enterprise Java Developer, Open-Source Contributor
Mogul (Belgrad)

Mehrere Outsourcing Projekte: 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).

10/2002 - 10/2004
IT Consultant, Senior Software Developer
RC-Data GmbH (Köln) / SOL (Belgrad)

Ich habe in für den deutschen Kunden als Berater, Software-Designer und -Entwickler gearbeitet.
Implementation eines komplexes OO Informationssystems mit einer GIS-ähnlichen GUI (C++/Qt) und der
Funktionalitäten, die für Verwaltung einer größeren Anzahl von technischen Zeichnungen und Plänen
verwendet wurden. Verbesserungen des SOL Kernel, womit schnelles Prototyping von komplexeren
Databank Apps ermöglicht war. Leitung eines Web Projekts (Websites für alle serbische Botschaften
und Konsulate) basiert auf Zope, mit Design des Prototypen und Umsetzung. Linux Server
Administration. Konzeption und Umsetzung des Firmen-Auftritts auf der CeBIT (Markt-Recherche,
strategische Planung, und Vorbereitung der Produkten).

10/2001 - 10/2002
Software Consultant
NVN d.d. (Belgrad)

Freiberufliche Projekte: SOL, Tele-bet, cyberPIXIE (verkauft an PCTEL, mittlerweile an Smith Micro)
Positionen: Software Developer, Security Solutions Developer
SOL: Portierung von C++ auf Java eines Frameworks/Kernels für schnelle Prototypisierung &
Weiterentwicklung von objektorientierten Datenbank-Apps, auf basis der UML Klassendiagramme die
bereits fürs Domain-Modellierung verwendet werden. Datenbank Performance-testing, App-Profiling.
Tele-bet: Teilnahme an der Entwicklung eines komplett verteiltes Software-Systems basiert auf J2EE.
Entwicklung von System-Modulen: UI/Drucken (Swing), Business-Logik in EJB (Oracle9i AS, JBoss).
cyberPIXIE: Entwicklung eines NDIS Netzwerk-Treibers (mit Win 98/Me/NT/2k kompatibel) für eine
transparente und zuverlässige Verschlüsselung auf den WLAN-Netzwerken. Basiert auf dem IPsec
Protokoll-Suite und Algorithmen wie 3DES und AES. Aufgaben: Treiber-Implementierung mit NuMega
DriverStudio, benutzerfreundliches Programm für stille Installation/Aktualisierung der WLAN
Software.

04/2000 - 09/2001
Application Developer
Webtomic (Belgrad), Niederlassung von R.Ø.S.A. (Zurich)

Arbeit an einem Prototypen eines CMS mit Java, XML und offenen Standards. Entwicklung mehrerer
Websites und Portale mit server-side Scripting (PHP/MySQL), CMS (Zope, Infopark NPS und PM -
angepasst mit Python und tcl/tk), HTML-JavaScript, Java-Applets. Suchmaschinen-Entwicklung,
Design/UML Dokumentation.

Reisebereitschaft

Verfügbar in den Ländern Deutschland
Derzeit bin ich nur an Projekten interessiert, die _überwiegend_ innerhalb Großraums Hamburgs bzw. remote abgewickelt werden (können). Dennoch kann ich während der Einarbeitungsphase vor Ort bei Kunden arbeiten, die auch weiter weg seien. Ich wohne mit meiner Familie in Elmshorn (30 km NW von Hamburg entfernt) und versuche das Pendeln möglichst zu meiden und den Arbeitsweg zu minimieren, damit ich mehr Zeit sowohl für die Arbeit als auch für die Familie habe und die Work-Life-Balance erhalten bleibt.
Profilbild von Nenad Nikolic Software Engineer / Consultant (DevOps) aus Elmshorn Software Engineer / Consultant (DevOps)
Registrieren