Projekte


Entwicklung eines Services zur Aggregation und Bereitstellung von Geodaten

08/2022 - 09/2023 (1 Jahr, 2 Monate) - Teamgröße: 8

Backend Entwickler

Für einen weltweit agierenden Anbieter von E-Scootern, Fahrrädern und anderen Micro-Mobility Dienstleistungen entwickelte ich einen hoch skalierbaren Backend Service, der regelmäßig Geodaten von 3rd-Party-APIs abholt und diese in optimierter Form als API für eine Mobile App bereit stellt.

  • Konzeption und Entwicklung eines hoch skalierbaren Services zur regelmäßigen Datenaggregation und -bereitstellung über eine API
  • Entwicklung von Unit-, Integrations- und End-to-End-Tests mit 100% Code Coverage
  • Erstellung einer umfangreichen API-Dokumentation in OpenAPI/Swagger
  • Erstellung von System- und Code-Dokumentation
  • Einrichtung einer Continuous Integration Pipeline in GitLab CI
  • Einrichtung einer Continuous Integration und Deployment Pipeline für eine iOS/Android Kotlin Multiplatform Mobile App in CircleCI
  • Setup und Inbetriebnahme des Node.js Services auf einem Linux Server
  • Aufnahme und Formulierung von Anforderungen

Technologien: TypeScript, Express, Fastify, Redis, Kafka, TypeBox, Jest, Kotlin Multiplatform, OpenAPI/Swagger, GeoJSON

Tools: AWS, GitLab, CircleCI, JIRA, Confluence, npm, Webpack, Docker, Linux

Methoden: Scrum, REST, Testgetriebene Entwicklung, Statische Code-Analyse, Continuous Integration


Weiterentwicklung diverser REST-Backends im Bereich Bahn- und Schieneninfrastruktur

11/2021 - 12/2022 (1 Jahr, 2 Monate) - Teamgröße: 7

Backend Entwickler

Für einen großen deutschen Anbieter von Bahn- und Schieneninfrastrukturlösungen betreute ich drei auf Spring Boot basierende REST-Backends und setzte neu hinzugekommene Anforderungen um. Eine Anwendung war ein System, welches Sensordaten von Weichen Umschaltvorgängen analysierte und aufbereitete. Bei der zweiten Anwendung ging es um die optische Analyse von hoch aufgelösten Fotos, die ein Instandhaltungszug von Schienen gemacht hat, um Risse und Deformierungen zu erkennen. Die dritte Anwendung war das Backend einer Mobile App, die zur Navigation und Führung eines Instandhaltungsmitarbeiters am Gleisbett genutzt wurde. Alle drei Backends wurden in AWS betrieben und hatten ein angebundenes Angular Frontend.

  • Weiterentwicklung von REST APIs und Backend Anwendungen in Kotlin und Java
  • Implementierung von Backend-seitigem Rendering von PDF Reports
  • Entwicklung automatisierter Unit-, Integrations- und End-to-End-Tests
  • Umfangreiche Refactorings und Clean-Ups von Legacy Code
  • Portierung von Legacy Java Code zu Kotlin
  • Portierung von Maven Build Konfigurationen zu Gradle
  • Erhöhung der Testabdeckung von Legacy Code
  • Erstellung einer umfangreichen API-Dokumentation in OpenAPI/Swagger
  • Verbesserung der vorhandenen System-, Code- und API-Dokumentation
  • Einrichtung einer Continuous Integration Pipeline in GitLab CI
  • Unterstützung beim Betrieb und Deployment auf AWS
  • Unterstützung der Projektleitung bei der Aufnahme und Formulierung von Anforderungen

Technologien: Kotlin, Java, Spring Boot, Spring Cloud, PostgreSQL, PostGIS, Hibernate ORM, Flyway, OpenAPI/Swagger, AssertJ, JUnit, TypeScript, Angular, AWS EC2, AWS S3, AWS SQS, AWS Lambda

Tools: AWS, GitLab, JIRA, Confluence, Jenkins, Gradle, Maven, npm, Yarn, Docker, Windows, Linux

Methoden: Kanban, REST, Testgetriebene Entwicklung, Continuous Integration


Entwicklung einer Webanwendung zum Management von Tank- und Ladekarten

06/2020 - 03/2021 (10 Monate) - Teamgröße: 3-7

Lead Developer und Architekt

Ein großer deutscher Automobilhersteller wollte das Tank- und Ladekarten-Management seiner Dienstwagenflotte effizienter machen. Verschiedene Excel-Tabellen sollten durch eine Webanwendung mit SAP-Anbindung abgelöst werden. Ich war hauptverantwortlich für die technische Umsetzung innerhalb des vorgegebenen Zeit- und Budgetrahmens.

  • Konzeption und Entwicklung einer Webanwendung mit integrierter Business Rule Engine
  • Entwicklung und Dokumentation einer JSON-basierten Web API
  • Entwicklung automatisierter Tests (Unit-, Integrations- und End-to-End-Tests)
  • Konzeption, Umsetzung und Dokumentation einer passenden Software Architektur
  • Evaluation und Auswahl von Web Frameworks und Bibliotheken
  • Konzeption und Erstellung eines klickbaren Prototypen
  • Onboarding, Schulung und Betreuung von Entwicklern
  • Inbetriebnahme und Unterstützung beim Betrieb der Anwendung
  • Unterstützung des Fachbereichs bei der Aufnahme und Formulierung von Anforderungen
  • Unterstützung des Projektmanagements

Technologien: Kotlin Multiplatform, TypeScript, Vue.js, Javalin, Quarkus, SQL Server, Ktorm, Flyway, OpenAPI/Swagger, Test Containers, JUnit, Jest, Selenium

Tools: GitLab, Balsamiq, JIRA, Confluence, Jenkins, Gradle, npm, Webpack, Docker, Windows

Methoden: Scrum, Domain-Driven Design, Testgetriebene Entwicklung, Property-based Testing, Continuous Integration


Weiterentwicklung eines Legacy Systems für Fuhrparkmanagement und Dienstfahrten

02/2020 - 05/2020 (4 Monate) - Teamgröße: 10

Full Stack Web Entwickler

Ein mittelständisches Unternehmen produziert und vertreibt elektronische Sicherheitslösungen und Schließschränke. Das zugehörige Web Portal wird beim Endkunden on-premise betrieben und wurde seit 2005 stetig weiter entwickelt und an spezifische Kundenwünsche angepasst. Für einen industriellen Großkunden unterstützte ich das auf zwei Standorte verteilte agile Entwicklungsteam bei der Anpassung und Erweiterung der Bestandssoftware.

  • Unterstützung bei Pflege und Weiterentwicklung eines Legacy Systems in einem Microservice Umfeld
  • Unterstützung bei der Neuentwicklung einer mobilen Webapp
  • Beratung zur Software Architektur
  • Unterstützung des Projektmanagements

Technologien: PHP, Kotlin, TypeScript, JavaScript, SQL Server, Vue.js, Jooby, IIS Web Server, Ebean ORM, Flyway, jQuery

Tools: GitLab, Maven, Jenkins, Redmine, JIRA, Confluence, Windows

Methoden: Scrum, REST, Microservices


Entwicklung einer Open Source Webanwendung zur Planung eines Bahnschienennetzes

11/2019 - 01/2020 (3 Monate) - Teamgröße: 1

Full Stack Web Entwickler

Zur persönlichen Weiterbildung baute ich eine einfache Applikation mit der ein ungerichteter Graph aus Schienen und Bahnhöfen angelegt werden kann.

  • Konzeption und Entwicklung einer simplen Webanwendung
  • Entwicklung automatisierter Tests (Unit-, Integrations- und End-to-End-Tests)
  • Einrichtung von Qualitätssicherungsmaßnahmen (Continuous Integration Pipeline und statische Code-Analyse)
  • Testweiser Betrieb in AWS
  • Öffentlich einsehbar unter https://github.com/ralfhenze/railplan

Technologien: Java, Spring Boot, MongoDB, JUnit, Cucumber, Selenium

Tools: GitHub, SonarQube, Codacy, Maven, Docker, Linux, AWS

Methoden: Domain-Driven Design, REST, Behavior Driven Development, Testgetriebene Entwicklung, Continuous Integration


Aufbau eines B2B-Startups im Bereich Ersatzteilmanagement, Industrie, Instandhaltung

01/2018 - 07/2019 (1 Jahr, 7 Monate) - Teamgröße: 2-8

Full Stack Web Entwickler und Architekt

Ein Bekannter hatte die Idee, mit Datenqualität das Management von Maschinenersatzteilen effizienter zu machen. Er engagierte mich, einen Prototypen zu entwickeln. Diesen stellten wir gemeinsam diversen Industriekunden vor. Wir zogen ein paar Pilotprojekte an Land, das Team wurde aufgestockt und Investoren ins Boot geholt.

  • Konzeption, Entwicklung und Gestaltung eines Onlineportals für Ersatzteilmanagement
  • Konzeption und Entwicklung eines hoch skalierbaren Fuzzy-String-Matching-Algorithmus mit zugehörigem User Interface
  • Konzeption und Entwicklung einer flexibel konfigurierbaren Rule Engine zur Datenextraktion, -bereinigung und -normalisierung
  • Entwicklung und Dokumentation der Software Architektur und des Datenverarbeitungsprozesses
  • Einrichtung einer Continuous Integration Pipeline, sowie von Test- und Production-Servern
  • Onboarding und Betreuung von Entwicklern
  • Unterstützung des Managements bei der Formulierung von Anforderungen, bei Vorstellungsgesprächen und im Vertrieb

Technologien: Kotlin, Java, TypeScript, JavaScript, ktor, Spring Boot, React, MySQL, MongoDB, Elasticsearch, Redis, RabbitMQ, WebSockets, Kotest

Tools: GitHub, CircleCI, Gradle, Ansible, Docker, Linux

Methoden: Scrum, Domain-Driven Design, REST, Continuous Integration, Testautomatisierung


Weiterentwicklung eines globalen Bike Sharing Systems

11/2014 - 12/2018 (4 Jahre, 2 Monate) - Teamgröße: 10-18

Full Stack Web Entwickler

Ein mittelständischer, weltweiter Betreiber von Bike Sharing Systemen hat ein komplexes Software System im Hintergrund laufen, mit dem Fahrräder, Kunden- und In-House-Apps kommunizieren. Ich unterstützte das Entwicklungsteam bei der Wartung und Weiterentwicklung und konnte zusätzlich ein paar kleinere Greenfield-Projekte umsetzen.

  • Pflege und Weiterentwicklung des Legacy Backoffice Systems und der Web API
  • Konzeption, Entwicklung und Gestaltung eines Reporting Dashboards für Werbekunden
  • Konzeption und Entwicklung eines SLA Monitoring Systems zur Überwachung und Einhaltung von vertraglich festgelegten Kennzahlen
  • Verbesserung von Performance, Usability und Dokumentation
  • Aufspüren und Schließen von Sicherheitslücken
  • Einführung der Business-Intelligence-Software Metabase zur Optimierung des Betriebs
  • Einführung von GitLab für Versionskontrolle und Code Reviews
  • Unterstützung der Server-Administratoren im Deployment Prozess, bei Wartungsarbeiten und bei Störfällen im Betrieb
  • Unterstützung von Geschäftspartnern und Mitarbeitern bei der Aufnahme und Formulierung von Anforderungen

Technologien: PHP, JavaScript, MySQL, PostgreSQL, Redis, Apache Web Server, AngularJS, Twig, PHPUnit, Kahlan, jQuery, D3, OpenStreetMap

Tools: GitLab, JIRA, Confluence, Ansible, Nagios, Metabase, Kibana, Docker, Linux

Methoden: Kanban, Testautomatisierung, Continuous Integration


Aufbau eines Startups im Bereich Sportvereine, Tennis

04/2010 - 11/2011 (1 Jahr, 8 Monate) - Teamgröße: 2-4

Lead Developer und Architekt

Mit einem befreundeten Tennistrainer bauten wir eine Plattform, die Tennisspieler und -vereine zusammen bringt.

  • Konzeption, Entwicklung und Gestaltung einer Multi-User-Plattform mit integriertem Buchungssystem
  • Konzeption und Umsetzung einer passenden Software Architektur
  • Aufnahme und Formulierung von Anforderungen
  • Installation und Einrichtung von Linux Arbeitsrechnern und Servern
  • Onboarding, Schulung und Betreuung von Entwicklern
  • Projekt Management

Technologien: PHP, JavaScript, MySQL, Apache Web Server, Symfony, jQuery

Tools: Git, Codebase, Redmine, Linux


Entwicklung und Gestaltung diverser Webseiten

08/2005 - 10/2014 (9 Jahre, 3 Monate) - Teamgröße: 1

Full Stack Web Entwickler und Web Designer

Neben meinem Studium und danach verdiente ich mir mit verschiedenen Homepage Projekten etwas hinzu.

  • Entwicklung und Gestaltung kundenspezifischer Websites in den Branchen Bau, Bildung, Energie, Hardware, Film, Musik und Vereinswesen
  • Entwicklung eines einfachen Content Management Systems
  • Pflege und Weiterentwicklung eines Onlineportals basierend auf dem Semantic MediaWiki
  • Pixelgenaue Umsetzung von Designvorlagen
  • Einrichtung und Betrieb von Webseiten bei diversen Web Hostern
  • Kundenakquise und -betreuung

Technologien: PHP, JavaScript, MySQL, Apache Web Server, NGINX, jQuery, Semantic MediaWiki

Tools: Git, Pivotal Tracker, Linux, Windows