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