Profilbild von David Rihm IT Berater Anwendungsentwicklung Java und Architektur aus Frankfurt

David Rihm

nicht verfügbar bis 01.06.2024

Letztes Update: 10.01.2024

IT Berater Anwendungsentwicklung Java und Architektur

Firma: Herr
Abschluss: Master of Science (M.Sc.) Informatik
Stunden-/Tagessatz: anzeigen
Sprachkenntnisse: deutsch (Muttersprache) | englisch (verhandlungssicher) | russisch (Grundkenntnisse)

Skills

Fachlicher Schwerpunkt
  • Software Design und Architektur
  • Software-Entwicklung (Java/JEE/Spring)
Zertifizierungen
  • iSAQB Certified Professional for Software Architecture – Foundation Level (CPSA-F)
  • SAFe® 4 Practitioner
  • SCJP Sun Certified Programmer for Java 6
Technikschwerpunkte:
Programmierung
  • Architektur
  • JEE / Java Entwicklung
  • Software Engineering
  • Technische Konzeption
  • Machine Learning
Projektvorgehensmodelle
  • SCRUM
  • Scaled Agile Framework (SAFe)
  • Kanban
  • VModell XT
  • Wasserfallmodell (Royce/Boehm)
Branchen
  • Dienstleistung: Informationstechnologie
  • Finanzen
  • Information & Medien: Informationstechn. & Internet; Medien und Unterhaltung
  • Telekommunikation
  • Öffentlicher Sektor: Transport

Projekthistorie

11/2022 - bis jetzt
Senior Software Developer
(Banken und Finanzdienstleistungen, 500-1000 Mitarbeiter)

Eigene Tätigkeiten
  • Konzeption, Erweiterung und Umsetzung der Schnittstellen (REST, GraphQL, Kafka)
  • Konzeption und Implementierung von Microservices im Kubernetes Cluster mittels des Frameworks Quarkus
  • Konzeption und Umsetzung von Fehlerhandling Strategien (Event getrieben, Kafka) zur Sicherstellung der Hochverfügbarkeit und Resilienz
  • Konzeption und Realisierung der Klassifikation von Stammdaten mithilfe Machine Learning Algorithmen (Library Weka, Spotify Voyager). Algorithmen Naive Bayes, für Text Klassifikation bzw. k-Nearest-Neighbor, Approximate Nearest Neighbors
  • Konzeption und Umsetzung eines Service Mesh Ansatzes (Sidecars in Kubernetes)
  • Datenbankentwicklung (JPA (Hibernate), SQL, MS SQL Server)
  • Kontinuierliche Verbesserung der Testabdeckung des bestehenden Systems (JUnit, Mockito, mock-server, Quarkus Tests mit Kafka, SonarQube)
  • Dokumentation der Ergebnisse (Confluence)
Technologien & Tools
Java 17, Quarkus, Kafka, Docker, Kubernetes, Microsoft Azure, REST, GraphQL, OAuth 2, OpenID Connect, Machine Learning Weka, Naïve Bayes Text classification, KNN Algorithmus, Spotify Voyager ANN,Apache Avro, Apicurio Schema Registry, Xsd Validierung Microsoft SQL Server, Flyway DB migration, Mockito, GraalVM, JWT, mock-server, Eclipse Vert.x, Maven, SonarQube, IntelliJ IDEA

09/2021 - 12/2022
Senior Software Developer
- (Pharma und Medizintechnik, 250-500 Mitarbeiter)

Projektumfeld
Infrastrukturkomponente deren Fokus auf dem Schutz von Webanwendungen und Services liegt.
Schwerpunkte sind u.a. die Themen:
• Authentisierung
• Autorisierung
Hierzu kommen verschiedene Standards wie OAuth2, OpenId Connect und SAML zum Einsatz

Vorgehensmodell: Kanban

Übernommene Rollen
• Senior Software Developer

Eigene Tätigkeiten
• Konzeption, Erweiterung und Umsetzung der Schnittstellen (REST) inkl. Authentisierung und Autorisierung
• Anbindung an einen RabbitMQ Broker (AMQP Protokoll)
• Migration bestehender Anwendungen nach Kubernetes (Docker, Helm, Kubernetes)
• Datenbankentwicklung (JPA, SQL, Oracle DB)
• Kontinuierliche Verbesserung der Testabdeckung des bestehenden Systems (JUnit, Mockito, Selenium, WireMock)
• Dokumentation der Ergebnisse (Confluence)

Technologien & Tools
Java 11, Spring 5, Spring Boot 2, Kubernetes, Docker, Helm, RabbitMQ/AMQP, OAuth 2, OpenID Connect, JWT, SAML, Flyway DB Migration, WireMock, Selenium, Junit 5, Mockito

04/2019 - 09/2021
Senior Software Developer
- (Transport und Logistik, >10.000 Mitarbeiter)

Projektumfeld

Die RIS Communicator App wird von ca. 30.000 Anwendern genutzt, ist in jedem Personenzug der Deutschen Bahn an Bord und versorgt die Mitarbeiter mit Reisendeninformation und erleichtert betriebliche Prozesse.

Ziel des Projektes ist es weitere fachliche Funktionen bereitzustellen. Hierzu muss das Backend (Microservice Architektur) kontinuierlich um neue Services erweitert werden.

Diese müssen unter anderem den folgenden Anforderungen genügen:

  • Skalierbarkeit
  • Performance
  • Sicherheit
  • Zukunftsfähigkeit

Vorgehensmodell: SCRUM/Kanban

Eigene Tätigkeiten

  • Konzeption, Erweiterung und Umsetzung der Schnittstellen (REST)
  • Konzeption und Implementierung von Microservices im Kubernetes Cluster
  • Datenbankentwicklung (JPA, MariaDB, SQL)
  • Verbesserung der Testabdeckung des bestehenden Systems (JUnit, Mockito, SOAP-UI)
  • Erstellen von Lasttests (SOAP-UI, JMeter)
  • Aufbau einer CI/CD Pipeline (Jenkins Pipeline Plugin)
  • Dokumentation der Ergebnisse (Confluence)

Technologien & Tools

Spring Boot 2, Spring 5, Spring Security OAuth2, Java 8, JSF 2, JoinFaces, Docker, Kubernetes, Ingress, Rancher 2, MariaDB, Mysql,
Hibernate, MQTT, IBM Watson IOT, Oracle AQ, Gradle, Maven, Jenkins Pipeline, Swagger, Prometheus Monitoring, JMeter, Logback, Flyway DB Migration, AWS Cloud, SOAP-UI, JFrog Artifactory, Grafana


11/2018 - 04/2019
Senior Software Developer
- (Banken und Finanzdienstleistungen, 500-1000 Mitarbeiter)

Projektumfeld

Ziel: Die „Onlinebestellstrecke“ bietet dem Kunden schon heute die Annehmlichkeit, jederzeit und unabhängig von der Bankfiliale, von Zuhause einen Kredit zu beantragen.

Das Projekt „Omnikanalekundenreise“ möchte diesen zukunftsfähigen Vertriebskanal um zwei zusätzliche Features erweitern, die es sowohl dem Kunden, als auch dem Bankberater einfacher machen sollen, zwischen den Kanälen „online“ und „persönlich“ zu wechseln. 

Vorgehensmodell: SCRUM

Eigene Tätigkeiten

  • Implementierung fachlicher Features
  • Konzeption, Erweiterung und Umsetzung der Schnittstellen (inkl. Schnittstellenbeschreibung)
  • Erweiterung der GUI (JSF, AngularJS)
  • Datenbankanpassungen (JDBC, JPA)
  • Verbesserung der Testabdeckung des bestehenden Systems (JUnit, Mockito)
  • Dokumentation der Ergebnisse (Confluence)

Technologien & Tools

JEE 6, JSF, AngularJS 1.6, NodeJS 6, Chai 4, Karma Bootstrap 4.1,  HTML5, Swagger, Apache JMeter, Matomo, PrimeFaces, EJB 3, JPA, JMS, SOAP/Rest WebServices, XSD, XML, Ivy, Ant,  JFrog Artifactory, Mockito, Jira, Confluence, SVN, Oracle Weblogic Application Server 12, Oracle 12 DB, HTML, CSS, SonarQube


04/2018 - 11/2018
Senior Software Developer
- (Banken und Finanzdienstleistungen, 500-1000 Mitarbeiter)

Projektumfeld

Ziel: Erweiterung des Produktes zur Innovativen Objektfinanzierung (Fachlich und Technisch) bis 750.000€.

Durchführung eines technischen Refactorings, um die Zukunftsfähigkeit der Anwendung zu gewährleisten.

Vorgehensmodell: SCRUM

Eigene Tätigkeiten

  • Implementierung von Berechnungsformeln und Algorithmen für die Objektfinanzierung und Leasinggeschäfte
  • Erweiterung der GUI (JSF)
  • Datenbankanpassungen (JDBC, JPA)
  • Verbesserung der Testabdeckung des bestehenden Systems (JUnit, Mockito)
  • Dokumentation der Ergebnisse (Confluence)
  • Planung und Durchführung eines größeren Refactorings

 

Technologien & Tools

JEE 6, JSF, JavaScript, RichFaces, EJB 2 & 3, JPA, JMS, SOAP WebServices, XSD, XML, Ivy, Ant,  JFrog Artifactory, JUnit, Mockito, Jira, Confluence, SVN, Oracle Weblogic Application Server 12, Oracle 12 DB, HTML, CSS, SonarQube, Jenkins


06/2016 - 03/2018
Senior Software Developer und Technical Lead
- (Transport und Logistik, >10.000 Mitarbeiter)

Projektumfeld

Ziel: Technische und fachliche Entwicklung eines Systems zur Anbindung eines Kapazitäts-Buchungs-Systems

Als Projektvorgehensmodell wurde SCRUM und SAFe (Scaled Agile Framework) erfolgreich eingesetzt und die Entwicklung der fachlichen Features erfolgte mittels Test-Driven-Development. Um eine sehr hohe Code-Qualität zu erreichen und diese über den gesamten Entwicklungszyklus sicherstellen zu können, wurde eine Continuos-Integration-Strategie (CI) eingesetzt. Diese Strategie bestand u.a. in der Nutzung eines Jenkins-CI-Servers. Die fachlichen Prozesse wurden mittels der Camunda BPMN modelliert. Lieferartefakte wurden per Docker gepackt und ausgeliefert um eine gleichbleibende Qualität der Lieferartefakte gewährleisten zu können. Um eine hohe Skalierbarkeit der verwendeten Umgebungen zu gewährleisten wurden die verschiedenen Umgebungen durch Einsatz von Amazon AWS virtualisiert (Cloud).

Eigene Tätigkeiten

  • Definition der fachlichen Anforderungen (Use Case Diagramme)
  • Architekturdokumentation (Enterprise Architect)
  • Definition und Anpassung der Prozessmodelle (BPMN Modelle, Camunda)
  • Implementierung der BPMN-Prozesse (Java 8, Camunda)
  • Test der entwickelten Features in UnitTests (Mockito) und Integration Tests (Arquillian)
  • Analyse der fachlichen Anforderungen
  • Entwicklung der fachlichen Anforderungen im SCRUM-Team (SAFe Kontext)
  • Dokumentation der entwickelten fachlichen Features und weiterer Projektergebnisse (Confluence, Jira)
  • Entwicklung von Docker Containern für die Anwendung und Testkomponenten
  • Erarbeitung und Umsetzung einer Datenbankmigrationsstrategie (Flyway DB Migration)
 

Technologien & Tools

Java 8, JEE 6, Camunda BPMN, Docker, AWS Amazon Cloud, Jenkins 2, Mockito, Arquillian, JDBC, JPA, H2 DB, Oracle 12, Git, Confluence, Jira, SCRUM, SAFe (Scaled Agile Framework), Eclipse IDE, JBoss EAP 6, Maven, Suse Linux Enterprise Server 12, Flyway DB Migration

01/2016 - 06/2016
Senior Software Developer
- (Transport und Logistik, >10.000 Mitarbeiter)

Projektumfeld

Ziel: Fachliche und technische Weiterentwicklung des vorhandenen Systems für die Kommunikation einzelner Systeme im Zug.

Das bestehende System wurde kontinuierlich fachlich und technisch weiterentwickelt.

Eigene Tätigkeiten

  • Definition der fachlichen Anforderungen (Use Case Diagramme)
  • Definition der technischen Anforderungen in Form von TKSP´s und Schnittstellenbeschreibung (u.a. Enterprise Architect)
  • Analyse der fachlichen Anforderungen
  • Entwicklung der fachlichen Anforderungen
  • Erstellen eines Konzeptes zur Migration von Eclipse Equinox nach Apache Karaf
  • Durchführen der Migration
  • Entwickeln eines Buildsystems mit Maven
  • Dokumentation der entwickelten fachlichen Features und weiterer Projektergebnisse

Technologien & Tools

OSGi R4.2 (Equinox), Apache Karaf, Suse Linux Enterprise Server 11/12, Java 6, 7 und 8, Spring 3, Apache Tomcat 7 und 8 Applikationsserver, UML 2.0, JUnit, Mockito, Powermock, JDBC, JPA, MySQL, Oracle 11/12, Eclipse IDE, Jira, TortoiseSVN, Enterprise Architect, Hudson


10/2012 - 01/2016
Senior Software Developer
- (Transport und Logistik, >10.000 Mitarbeiter)

Projektumfeld

Ziel: Durchführung eines technischen Releases um die fachliche Weiterentwicklung zu ermöglichen.

Das bestehende System eignete sich nicht für eine effiziente Weiterentwicklung mit einem großen Entwicklerteam, das auf viele kleine SCRUM-Teams verteilt werden sollte. Im Rahmen des Projekts wurde deshalb zunächst ein technisches Release durchgeführt, um die Komponenten entsprechend der fachlichen Schwerpunkte zu schneiden. Vor dem Start der fachlichen Entwicklung wurde ein Last- und PerformanceTest (LuP) durchgeführt. Dieser hatte zum Ziel die Tragfähigkeit des bestehenden Systems bezüglich der fachlichen Anforderungen zu untersuchen. Anschließend konnten die vom Kunden definierten Anforderungen erfolgreich in mehreren SCRUM-Teams parallel durchgeführt werden. Als Projektvorgehensmodell wurde SCRUM erfolgreich eingesetzt und die Entwicklung der fachlichen Features erfolgte mittels Test-Driven-Development. Um eine sehr hohe Code-Qualität zu erreichen und diese über den gesamten Entwicklungszyklus sicherstellen zu können, wurde eine Continuos-Integration-Strategie (CI) eingesetzt. Diese Strategie bestand u.a. in der Nutzung eines Jenkins-CI-Servers und von Werkzeugen für teamübergreifende Code Reviews (Atlassian FishEye und Crucible).
 

Eigene Tätigkeiten

Technisches Release:

  • Definition der technischen Anforderungen (UML)
  • Analyse und Evaluation der bestehenden Systemarchitektur hinsichtlich der Tragfähigkeit für kommende fachliche Anforderungen
  • Verbesserung der Testabdeckung des bestehenden Systems (JUnit, Mockito)
  • Vorbereitung, Durchführung und Dokumentation des fachlichen Komponentenschnitts
  • Konzeption eines Last und Performance Tests (LuP) für das bestehende System
  • Entwicklung von Werkzeugen für den LuP
  • Durchführung, Auswertung und Analyse sowie Dokumentation des LuP
  • Vorbereitung, Durchführung und Dokumentation des Technischen Abnahmetest (TAT)
  • Fortwährende Dokumentation der Projektergebnisse (Confluence)

 

Fachliche Releases:

  • Definition der fachlichen Anforderungen (Use Case Diagramme)
  • Analyse der fachlichen Anforderungen
  • Entwicklung der fachlichen Anforderungen im SCRUM-Team
  • Dokumentation der entwickelten fachlichen Features und weiterer Projektergebnisse

 

Technologien & Tools

JBoss EAP 5/6 Applikationsserver, Apache Tomcat 6/7 Applikationsserver, JavaEE EJB 2.1/EJB 3, Spring 3, UML 2.0, JUnit, JMockit, JDBC, Oracle 11, Eclipse IDE, Confluence, Jira, SCRUM, TortoiseSVN, Git, Enterprise Architect, Java Swing, MVC, Jenkins, JPA, FishEye, Crucible


Reisebereitschaft

Weltweit verfügbar
Reisebereitschaft Großraum Frankfurt bzw. Rhein-Main Gebiet
Räumlich flexibel
Remote gerne auch National/International
Profilbild von David Rihm IT Berater Anwendungsentwicklung Java und Architektur aus Frankfurt IT Berater Anwendungsentwicklung Java und Architektur
Registrieren