Schlagwörter
Skills
meine Name ist Roman und wir können gerne du zu uns sagen.
Ich arbeite gerne gewissenhaft, mit Clean-Code Praktiken in mind, um nachhaltigen Projektfortschritt zu erzielen. Bei frisch gestarteten Projekten zeige ich mit einem Minimum Viable Product (MVP) neue Lösungsansätze mit denen wir gemeinsam effektive die Richtung bestimmen können. Das frühe Feedback kann eine große Hilfe sein und uns vor allem bei vagen Projektvorstellungen in der Prioritätensetzung helfen. Mit meiner vielseitigen Projekterfahrung entwickele ich passende Lösung zu bestehenden Herausforderung. Das ganze am liebsten in einem kleinen und agilen Team oder auch selbstständig in Abstimmung mit den jeweiligen Ansprechpartnern. Feedback nehme und gebe ich am liebsten konstruktiv, da ich davon überzeugt bin, dass eine gute und abgestimmte Kommunikation einen großen Vorteil hat.
Projekthistorie
Weiterentwicklung der Testinfrastruktur mit Simulator- und Mockservices für lokale Minikube und Cloud Kubernetes Umgebungen. Zudem Definition und Implementierung von Testspezifikationen.
Mit über 14 Microservices wird die Landschaft für die zu testende Applikation nachempfunden. Das System-Under-Test ist eine Neuentwicklung für einen landesweiten Einsatz mit dem sogut wie jeder indrekt in Kontakt kommen wird.
Konfiguration und spezifische Scripte der GitLab CI/CD Pipelines und Kubernetes. Verschlüsselung und Code Obfuscation. PKI, Zertifikate
Beratung und Optimierung von bestehender Software und Entwicklungsprozessen.
Mein Beitrag zur Verbesserung des Portal Produkts von Beta Systems lagen in fundierten Analyse und Messungen mit unterschiedlich komplexen Daten. Mein Ziel lag bei der Performance- Optimierung der SQL-Abfragen und der Schnittstelle zwischen Backend und der Datenbank sowie der Beantwortung von offener Fragen zur Architektur, Bibliotheken und die Lösung komplexer Herausforderungen. Zudem galten einige meiner Ratschläge dem Entwicklungsprozess, Organisation und der Zusammenarbeit mit Kunden.
Branche: Management
Team: 6 Personen
Aufgaben: Refactoring, Mentoring, Wissenstransfer, Unterstützung, Beratung
Erfolge: Im Team Performance Probleme gelöst. Es war nur mit tiefen Fachwissen möglich, sich für die richtige Optimierung zu entscheiden
Angewandte Technologien: Spring Boot, PostgreSQL, Hibernate, Liquibase, Maven, Gradle, HTTPS, GitLab, git, Microsoft SQL, Scala, Java, Flutter, Dart, SSL, TLS, REST, Jira, KISS, SOLID, Scrum
Neuentwicklung mobiler und Desktop Apps sowie der Backend-Systeme und der gesamten Architektur. Zudem umfangreicher Wissenstransfer an die Mitarbeiter.
Zu Beginn meiner Tätigkeit bei der Stromnetz Hamburg unterstützte ich den Projektabschluss der Schachtbegehungs-App in Flutter für iOS-Geräte und des Spring Boot Backends in Kubernetes-Umgebung.
Anschließend folgte die Flutter Plugin-Entwicklung namens SecureClient für eine einheitliche und sichere Kommunikation aller Flutter Apps bei der Stromnetz. Das Ziel war unnötig zeitintensive und individuelle Lösungen je Projekt zu vermeiden und eine gemeinsame Integration mit der SNH IT-Sicherheit zu gewährleisten. Das Flutter Plugin ist in jedes Flutter Projekt bei der Stromnetz leicht integrierbar. Wir pflegen und entwickeln dies stetig weiter. Dieses Plugin wird bereits in mehreren Projekten (Schapp, Elvis, ZuGabe) verwendet.
Darauf folgte der Beginn der Neuentwicklung der Archivmanagement-App Elvis und des Backends in derselben Teamaufstellung, zu zweit. Für die Neuentwicklung ist im aller ersten Schritt die Migration des bisherigen Datenbestandes aus der Microsoft SQL Datenbank zur PostgreSQL wichtig gewesen. Diesen Prozess haben wir mit Liquibase automatisiert und mit Tests abgedeckt, somit sind wir zu jeder Zeit in der Lage den aktuellen produktiv Datenbestand zu migrieren und können basierend auf dem neuen Datenbankmodell, Feature für Feature, agil nach Scrum entwickeln. Wir arbeiteten im engen Kontakt mit dem Fachbereich zusammen und lieferten regelmäßig Updates auf die Kubernetes Integrationsumgebung. Damit der Fachbereich testen und die den Stand für die Produktion abnehmen konnte. Die regelmäßigen neuen Versionen des gesamten Systems wurde auf IPhone, IPad und im Browser zur Verfügung gestellt. Auch die Anbindung von Hand-Scannern über Bluetooth für das scannen von Barcodes und QR-Codes war Bestandteil des Projekts, somit können archivierte Güter gescannt, eingelagert sowie neue kassiert werden.
Nach Livegang der Archivmanagement-App Elvis habe ich mit einem neuem Projekt, der ZuGabe begonnen. Hier handelt es sich um eine Flutter App auf iOS-Geräten die verschiedene Dokumente für die Facharbeiter im Einsatz bereitstellt. Die Koordinaten auf der Karte anzeigt und den Datenbestand von mehreren Gigabyte auf dem Smartphone aktuell hält. Hierbei werden die Daten im Hintergrund automatisch synchronisiert. Für einen effizienten Prozess wird über die App eine Datenbank aufgebaut, welche die Aktualisierungen vermerkt und den Nutzer über veraltete Daten informiert. Veraltete Informationen können zu Fehlern führen und deshalb wird der Nutzer darüber informiert und um besseren Netzwerkempfang für eine Synchronisation aufgefordert. Die Daten für den Facharbeiter werden vom Backend aus verschiedenen Bereich des SNH-Netzwerkes bereitgestellt. Hierfür muss sich der Nutzer nur authentifizieren.
Demnächst soll die Weiterentwicklung von der Archivmanagement-App Elvis als Version 2.0 geplant und durchgeführt werden. Die Pflege bestehender Apps, wie z.b. des SecureClients erfolgt regelmäßig und weitere neue Projekte warten bereits auf Ihre Umsetzung.
Branche: Energie, öffentliche Hand
Team: 2 Personen
Schlüsselskills: Refactoring, JUnit Test, Neuentwicklung, Mentoring, Wissenstransfer, Unter- stützung
Aufgaben: Refactoring, Neuentwicklung, Architektur designen und implementieren, JUnit-Tests, Mentoring, Wissenstransfer, Unterstützung
Erfolge: Verbesserungen in verschiedenen Projekten implementiert und eine zwei Applikation im Zweierteam und eine Applikation selbstständig fertig entwickelt. Die Fähigkeiten des Mitarbeiters stark gefördert.
Angewandte Technologien: Spring Boot, PostgreSQL, Hibernate, Liquibase, Maven, Gradle, HTTPS, GitLab, git, Microsoft-ADFS, OAuth2, Microsoft SQL, Kotlin, Java, JUnit Tests, Docker, Kubernetes, nginx, Flutter, Dart, iOS-App, Swift, Xcode, Unix, Mac, Linux, SSL, TLS, REST, Jira, KISS, SOLID, Redux, Bluetooth, Scanner, SQLite, Scrum, , Grafana, Prometheus
Neuentwicklung der Krankenkassen Gesundheits-App sowie der Backend-Systeme und der gesamten Architektur.
Zu meinem Beitritt in das Plattform-Projekt befand sich die App-Entwicklung bei einer externen Firma, welche auch Kundendaten von der Krankenkasse importieren wollte. Ich überzeugte die verantwortlichen davon eine eigene API-Schnittstelle mit Zugriffsberechtigungen aufzubauen, welche ich anschließend umsetzte. Für die Zugriffsberechtigungen hatte die Krankenkasse bereits eine Kooperation mit einem Hersteller einer Identity and Access Management (IAM)-Lösung, welche auch in der App verwendet werden sollte. Es stellte sich heraus, dass dieses IAM keine vollständige OAuth2 Implementierung besaß und nur bedingt konfigurierbar war. Als Alternative brachte ich die Open Source Software Keycloak, die sich bereits in der Industrie bewiesen hat, ein. Keycloak ersetzte das IAM und seinen Hersteller zügig. Aufgrund zäher und langsamer Kommunikation mit beiden externen Dienstleistern, überzeugte ich die Verantwortlichen die App-Entwicklung selbst in die Hand zunehmen. Der Strategiewechsel erfolgte zur Vorweihnachtszeit und ich entwickelte in einem Scrum-Sprint eine App für beide populären mobilen Plattformen iOS und Android. Noch vor Weihnachten rollten wir die erste Testversion mit dem Apple-Testflight für Mitarbeiter aus. Bis zum öffentlichen Start in die App-Stores sollten noch einige Features entwickelt werden, die den Kunden einen Mehrwert bringen. Wie bereits bei der API-Schnittstelle mussten die internen Legacy-Systeme angebunden werden, um Nachrichten und Dateien aus der App in einem bestimmten Format empfangen und automatisch verarbeiten zu können. Aufgrund der Corona-Pandemie und des Lockdowns im März haben wir die App für beide Plattformen vorzeitig veröffentlicht. Die von uns entwickelte Software und Backend-Systeme laufen ohne Ausfälle und bei steigender Nutzerzahl stabil. Meine Konzeptionen und Umsetzung umfassen die App-Architektur, diverse App-Feature und den App-Postausgang. Zudem legte ich Wert auf Code-Qualität, Stabilität des Backends und Lasttests. Um die Legacy-Systeme vor einer unberechenbaren Datenflut zu schützten erfolgte auch eine Konzeption und Basisimplementierung des Cachings (mittels Kafka) eingehender Nachrichten, verarbeiten der Rohdaten in die Zielformate und den App-Nutzern zur Verfügungsstellung der kommunizierten Daten. Außerdem entwarf und entwickelte ich für die Registerzug und Login maßgeschneiderte Keycloak- Module, um die Integration mit dem Legacy-System zu ermöglichen. Die Fort- und Weiterbildung der Mitarbeiter mit genannten Technologien und Konzepten war ebenfalls Bestandteil unserer Zusammenarbeit.
Branche: Gesundheitswesen, Versicherungen, öffentliche Hand
Team: 6 Personen
Schlüsselskills: Refactoring, JUnit Test, Neuentwicklung, Mentoring, Wissenstransfer, Unter- stützung
Aufgaben: Refactoring, Neuentwicklung, Architektur designen und implementieren, JUnit-Tests, Mentoring, Wissenstransfer, Unterstützung
Erfolge: Fast alleine ein Minimum Viable Product (MVP) mit mehreren Applikationen erstellt, das Team aufgegleist und im Team weiterentwickelt. Zudem viel Wissen mit dem Team ausgetauscht.
Angewandte Technologien: Amazon Web Services, AWS, Vert.x, Kotlin, JUnit Tests, PostgreSQL, jOOQ, Flyway, Gradle, Maven, HTTPS, Jenkins, GitLab, git, Keycloak, OAuth2, MySQL, Python, Hibernate, JavaEE, Docker, Kubernetes, nginx, cert-manager, ELK, Elasticsearch, Filebeat, Kibana, Prometheus, Grafana, Flutter, iOS-App, Android-App, ETL, Kafka, Zookeeper, Schema Registry, Avro, Node.js, JavaScript, AWS, Scanbot.io, Linux, SSL, TLS, Jira, Miro, Scrum, Microservice
Beratung und Entwicklung einer Schüler-Lern-App für das kleine Einmaleins mit zufälligen Multiplikationsaufgaben und einer grafischen Auswertung der vergangenen 14 Tage, um seinen eigenen Fortschritt zu überblicken.
Branche: Bildung
Team: 1 Person
Aufgaben: Projektberatung, Entwicklung der App Erfolge: Projektberatung, Fertigstellung der App
Angewandte Technologien: Flutter, Dart, Android
Unterstützung für ein Startup in der Mobilitätsbranche. Ihr Ziel ist es, die aktuelle Mobilität zu einer kunden- und umweltfreundlicheren Lösung weiterzuentwickeln. Mit mehr detaillierteren Benutze Informationen wird das Verhalten der verschiedenen Mobilitätsdienste und Transportvarianten veranschaulicht. Diese Daten könnten verwendet werden, um die Stadtplanung zu verbessern und Lösungen für weniger bekannte Anwendungsfälle zu erstellen sowie bereits bestehende verbessern.
Branche: Mobilität
Team: 1 Person
Erfolge: Projektberatung, Einrichtung diverser Tools für den Unternehmer
Angewandte Technologien: Google Cloud, JUnit Tests, MongoDB, MySQL, Payara 5, Linux, SSH, RStudio, ReactNative, Nodejs, Mobility Choices Project, Microservice
Ich evaluierte Open Source Software, welche in die Entwicklung der neuen Infrastruktur für das Unternehmen, flossen. Dieses neue System in der Google Cloud kann im Gegensatz zu den alten Systemen, mit mehr als tausend IoT-Geräten kommunizieren. Der Systemkern ist Kafka, ein Nachrichtenbroker, der ideal zum Anbinden von Microservices ist. Zudem ist es möglich Daten aus diversen Quellen anzubinden, miteinander zu verknüpfen und für neue Produkte die entsprechenden Datenströme (bekannt als "Extract, Transform, Load" - ETL) zu erzeugen. Dazu implementierte ich mehrere Microservices-Prototypen für neue Produkte. Überdies plante ich die Migration der alten Systeme in mehreren Schritten, um das produktive System unterbrechungsfrei umzuschalten. Außerdem habe ich Spinnaker für die Verwaltung und Überwachung der gesamten Deployments über Pipelines in verschiedenen Stages eingerichtet, die von Entwicklern und Projektmanagern mit unterschiedlichen Rollenrechten einfach und schnell verwendet werden können. Dies hatte zum Ziel die Einführung von DevOps Principles zu ermöglichen und eine strukturierte und agile Organisation sowie Entwicklung zu erreichen. Zudem war ich an den Interviewprozessen neuer Kandidaten für das Unternehmen beteiligt.
Branche: Hotellerie, IoT-Geräte
Team: 1-5 Person
Aufgaben: Neuentwicklung, Architektur designen und implementieren, JUnit
Erfolge: Fast alleine ein Minimum Viable Product (MVP) fertiggestellt und das Team aufgegleist
Angewandte Technologien: Amazon Web Services, AWS, ETL, Kafka, Confluent Kafka, KSQL, Avro, Schema Registry, Kafka connect, Java 8, Kotlin, Prometheus, Gradle 5+, Vert.x, Zookeeper, Spinnaker, Google Cloud (GKE, multiple Kubernetes Clusters, VPN, Virtual Private Cloud (VPC), Azure, Stackdriver, Cloud SQL, Shell, Cloud Build), cert-manager, Docker, PostgreSQL, MySQL, git, GitLab, JUnit Tests, DevOps Principles, YAML, Bash, Microservice, Kanban
Verbesserung und Weiterentwicklung der Testinfrastruktur und -anwendungen für eines der größten Logistikunternehmen weltweit. Zudem Arbeit an einem Orchestrierungsprojekt mit Kubernetes. Später ein Wechsel er zu einem anderen Team, um die Entwicklung von Anwendungen für einen der größten Automobilhersteller der Welt zu unterstützen. Hinzufügen eines anpassbaren Datenexporters und Entwicklung einer neuen Web-App für die eigenen Autohändler des Automobilherstellers. Engagierte Mitarbeit an den Unternehmenszielen, die Gründung und Organisation der Tech Gilde und der Qualitätsarbeitsgruppe.
Branche: Automotive, Logistik
Team: 10-20 Personen
Schlüsselskills: Refactoring, JUnit Test, Neuentwicklung
Aufgaben: Refactoring, Neuentwicklung, Architektur designen und implementieren, JUnit Erfolge: Verbesserungen in verschiedenen Projekten implementiert und eine neue Applikation im Zweierteam fertig entwickelt
Angewandte Technologien: Kubernetes, Docker, AngularJS, Angular 6+, Java, Spring- Boot, TypeScript, Javascript, git, reactjs, React, JUnit Tests, Prometheus, Grafana, ELK-Stack, Ansible, PostgresSQL, Scrum, Microservice
Umfangreiche Weiterentwicklung einer intern eingesetzten Software, welche für die Überwachung von Projektbudgets und Erstellung von Leistungsnachweisen genutzt wird. Migration der Softwarearchitektur und eingesetzten Technologien. Darüber hinaus verantwortlich in der Qualitätssicherung und Weiterentwicklung eines schnell wachsenden Kundenprojekts.
Branche: E-Mobilität, Management
Team: 2-7 Person
Schlüsselskills: Refactoring, Neuentwicklung, Architektur designen und implementieren Aufgaben: Refactoring, Neuentwicklung, Architektur designen und implementieren, JUnit und manuelle Tests, Bibliotheken ausgetauscht
Erfolge: Eine instabile und langsame Applikation neu aufgebaut und flott gemacht
Angewandte Technologien: Akka, Play Framework, Java, Docker, PostgresSQL, JooQ, Spring Boot, SBT, ELK-Stack, Flyway, git, JUnit Tests, Angular, Prometheus, Grafana, OCPP 1.6, OCPP 2.0, Scrum, Microservice
Die für Volunteer Computing entwickelte Software VoluntLib ist eine Möglichkeit anspruchsvolle Berechnungen wie die Kryptoanalyse mit geringen Hardware- und Stromkosten zu realisieren. Für die Vermeidung von verfälschten Teilergebnissen von Teilnehmern in einem unstrukturierten und dezentralen Netzwerk, musste ein Konzept für die Kontrolle entwickelt und integriert werden.
Branche: Forschung
Team: 1 Person
Schlüsselskills: wissenschaftliches Schreiben, Entwicklung, Auswertung Aufgaben: Entwicklung, wissenschaftliches Schreiben
Erfolge: Bachelor of Science-Abschluss
Angewandte Technologien: C-Sharp, .NET, VoluntLib, Microservice
Analyse historischer Leistungsdaten von Photovoltaik- und Windkraftanlagen auf Plausibilität. Beachtung verschiedener Einflüsse wie Schneefall, Fledermäuse, Schatten und Wartungen. Dadurch konnten genauere Optimierungen für das Training des spezifischen Parks im neuronalen Netzwerk vorgenommen und die Prognosen verbessert werden. Auch die generierten Reports aus dem Training erforderten eine Sichtprüfung, um Festzustellen, ob die Qualität den Anforderungen entspricht und je nach Datenbestand nachvollziehbar sein kann. Zudem Entwicklung von Unterstützungswerkzeugen.
Branche: Erneuerbare Energie, Big Data
Team: 3-6 Personen
Schlüsselskills: Excel, Datenanalyse, Reporterstellung und Überwachung des neuronale Netzwerk-Training auf Plausibilität
Aufgaben: Entwicklung, Datenanalyse
Erfolge: Entwicklung, Datenanalyse, Beitrag zum Unternehmen
Angewandte Technologien: Java, Spring, JUnit Tests, Kanban, Scrum, Grafana, Prometheus
Weiterentwicklung der WideNoise+ App für Android Geräte, zudem Reimplementierungen bereits vorhandener Features, wie der Ortungsfunktion. Zudem wurde eine Empfehlungs-Feature hinzugefügt, um die erfassten Daten durch den Nutzer besser zu beschreiben. Auf einer globalen Karte werden die Daten angezeigt.
Branche: Forschung
Team: 1 Person
Schlüsselskills: Android, Java, Transferleistung, Lernen
Aufgaben: Entwicklung, Integration von Social Media
Erfolge: Entwicklungsabschluss, neue Features, Lösen von Herausforderungen, die bereits vor meiner Zeit bestanden
Angewandte Technologien: Java, Android, Facebook SDK, Twitter SDK, JUnit Tests
Entwicklung und Support eines firmeninternen Frameworks, sowie Entwicklungswerkzeugen. Unter anderem die nahtlose Integration von C und C-Sharp Applikationen für Datenaustausch mit Verschlüsselungsbibliotheken des Unternehmens.
Branche: Erneuerbare Energie
Team: 1 Person
Schlüsselskills: C, C#, Transferleistung
Aufgaben: Entwicklung der Framework, Entlastung der Entwickler Erfolge: Herausforderungen gelöst, die der Entwickler nicht lösen konnte
Angewandte Technologien: C-Sharp, C, .NET. Marshalling, Scrum
Verantwortlich für die gesamte Entwicklung und Betrieb des Webshops sowie des Wordpress-Blogs. Zudem Blogger für Gesundheitsthemen dieser Plattform und Suchmaschinenoptimierung für ein besseres Ranking in populären Suchmaschinen.
Branche: ecommerce
Team: 1 Person
Schlüsselskills: SEO, UI/UX, PHP
Aufgaben: Betrieb, Integration mit Wordpress, Blogartikel schreiben, Produktpflege, Kooperatio- nen, Werbung
Erfolge: Integration mit Wordpress, positiver Gewinn
Angewandte Technologien: PHP, xt:commerce, Wordpress, Google Keywords, SEO, HTML, CSS