Profilbild von Johannes Dohmen Senior Software Engineer & Software Architect aus Herzogenrath

Johannes Dohmen

verfügbar

Letztes Update: 01.10.2023

Senior Software Engineer & Software Architect

Abschluss: M.SC. Computer Science
Stunden-/Tagessatz: anzeigen
Sprachkenntnisse: deutsch (Muttersprache) | englisch (gut)

Dateianlagen

CV JD 21-22.pdf

Skills

Softwarearchitekt und Entwickler mit fast 20 Jahre Berufserfahrung und tiefem Wissen der Softwareentwicklung, insbesondere in C++ und Linux, sowie breit gestreutem Wissen durch Kenntnisse der Arbeitsweisen von Programmiersprachen, Betriebssystemen, Netzwerken, UIs, sowie Konzepten hinter Design Patterns und Software Architekturen. Meine Expertise setze ich gewinnbringend in Projekte und Prozesse ein um qualitativ hochwertige Software zu entwickeln.

Programmiersprachen:
  • C++ 03 | 11 | 14 | 17
  • Java
  • Shell/Bash
  • PHP
  • JavaScript
  • Prolog
Webtechnologien:
  • HTML
  • CSS
Protokolle:
  • Web:
    • IP
    • TCP
    • UDP
    • HTTP
    • REST
  • IoT:
    • MQTT
    • OPC-UA
  • Multimedia:
    • RTP
    • SIP

Entwicklungswerkzeuge:
  • Eclipse
  • git, svn
  • make
  • gdb
  • tcpdump/wireshark
  • netcat
  • nmap
  • valgrind
  • Unix-Werkzeuge: sed, awk, vi, etc
Datenformate:
  • XML(XSD, XPath)
  • JSON
Betriebssysteme:
  • Linux
  • Debian
  • Ubuntu
Versionskontrolle:
  • Git
  • Subversion

Projekthistorie

09/2023 - bis jetzt
Software-Architect, Leitung Softwareentwicklung, Teamlead C++
Eppendorf SE (Pharma und Medizintechnik, 1000-5000 Mitarbeiter)

Rollen:
  • Software-Architect
  • Leitung Software-Enwicklung (verschiedene Subteams) im Scrum-Project
  • Teamlead C++

Aufgaben:
  • Organisation der Entwicklung (Bestandsprodukt und Neuentwicklung)
  • Konzeption und Realisierung des C++ Backends
  • Anleitung und Training anderer Teammitglieder

10/2022 - 09/2023
Software-Architect
Eppendorf SE (Pharma und Medizintechnik, 1000-5000 Mitarbeiter)

Rollen:
  • Software-Architect
  • Leitung Software-Enwicklung (verschiedene Subteams) im Scrum-Project
  • Teamlead C++

Aufgaben:
  • Organisation der Entwicklung (Bestandsprodukt und Neuentwicklung)
  • Konzeption und Realisierung des C++ Backends
  • Anleitung und Training anderer Teammitglieder

10/2021 - 09/2022
Senior Software Engineer
Bundesdruckerei (Öffentlicher Dienst, 5000-10.000 Mitarbeiter)

Implementation und Weiterentwicklung von Softwarekomponenten inkl. der Erstellung von Unit bzw. Komponententests Ausarbeitung technischer Lösungsmöglichkeiten in direkter Interaktion mit dem Architekten sowie angemessene Dokumentation der Umsetzung Analyse und Beseitigung von Fehlern im Rahmen des 3rd Level Supports Betrieb der entwickelten Anwendungen auf unserer Containerplattform (DevOps) aktive Teilnahme am agilen Entwicklungsprozess

01/2021 - 09/2021
Software-Architekt & Team Lead (Festanstellung)
Bosch Building Technology (>10.000 Mitarbeiter)

Analyse und Weiterentwicklung des Bestandssystems einer Alarmmeldeanlage
Planung und Realisierung des Nachfolgesystems
Etablierung eines Software-Entwicklungsteams

C++, Netzwerktechnik, Software Architektur / Modellierung, UML

09/2018 - 12/2020
Software Architect & Senior Software Engineer (Festanstellung)
Minebea Intec GmbH, Aachen (250-500 Mitarbeiter)

Für Minebea Intec, global führender Hersteller für Industrielösungen, u.a. Kontrollwaagen: Neuentwicklung eines Kontrollwaagensystems zur Anwendung in
der Lebensmittelindustrie und weiteren Branchen mit hohen Anforderungen an Genauigkeit, Durchsatz, gesetzlichen Vorschriften, wie z.B. Eichfähigkeit, und
Industriestandards. Zuständig für die Architektur und Realisierung des gesamten Backends inklusive der Anbindung des UIs per MQTT.
Softwareearchitektur und -entwicklung
  • Konzeption und Implementierung einer komponentenbasierten, multithreadingfähigen Softwarearchitektur, die die parallele Verarbeitung von Request/Responses und interner Tasks ermöglicht
  • Definition der States und Life-Cycles des Gesamtsystems sowie der bereitgestellten allgemeinen Services und spezifischen Komponenten
  • Konzeption und Implementierung einer automatisierten JSON/C++ undvice versa Konvertierung von komplexen Datentypen zur Compile-Zeit,basierend auf Boost Hana
  • Konzeption und Implementierung eines Request/Response-Verfahrens auf Basis des MQTT-Protokolls zur Kommunikation mit dem UI und der automatisierten Umwandlung zwischen JSON und C++-Objekten (s.o.)
  • Erstellung von Debian-Paketen zum Deployment der aktuellen Software und Bereitstellung eines – auf diesen basierenden – Live-Systems, um die Integration des UIs durch das HMI-Team zu ermöglichen
  • Evaluation einer ORM-Bibliothek und Integration in das Gesamtprojekt
  • Schulung des Teams zu allen obigen Themen
Tätigkeiten in einem internationalen IIOT-Projekt
  • Analyse der cloudbasierten System-Architektur
  • Erstellung von Anforderungen für die Web-Applikation
  • Prüfen und Implementieren von Anforderungen innerhalb der verantworteten Neuentwicklung und im Bestandscode
  • Weiterbildung im Bereich OPC-UA
Verbesserungen des Prozesses der Softwareentwicklung
  • Schulung der gesamten Abteilung zu den Themen: Unit Testing (Boost), Versionskontrolle (svn), OOP (Schwerpunkt C++)

03/2014 - 06/2018
Software Engineer (Festanstellung)
Amano Parking Europe N.V. | Aachen (Sonstiges, 10-50 Mitarbeiter)

Amano Parking Europe N.V., ist innerhalb der Amano Corporation Japan für die Entwicklung des Xparc Produkts verantwortlich, das barcodegestützte Parkraumbewirtschaftung in mehr als 45 Ländern auf allen Kontinenten ermöglicht.
Planung, Konzeption und Implementierung folgender Komponenten des Xparc-Gesamtsystems (soweit nicht anders angegeben implementiert in C++ unter Linux).

Softwareentwicklung und -architektur
* Bluetooth Reader zur Identifikation durch Smartphone-Apps an Ein- und Ausfahrten als papierloser Ersatz der herkömmlichen Ticketidentifikation;
Implementierung basierend auf Bluetooth Low Energy und D-Bus sowie zusätzlich einer Prototyp-App in React Native
* VoIP-Client, der Nutzern basierend auf SIP/RTP bei Bedarf audiovisuelle Kommunikation mit lokal oder remote verfügbaren Operatoren ermöglicht
* Systemkomponente, die verschiedene hard- und softwarebasierte Kennzeichenerkennungstechnologien verwaltet, um nummernschildbasierte Fahrzeugidentifikation uniform im Gesamtsystem anzubieten
* Realisierung eines Fiskalspeichers zur Einnahmenverfolgung entsprechend lettischer Gesetzgebung in XML-Dateien und binärem WORM-Speicher
* Javabasierter Service um interne Meldungen in binärem, proprietärem Format aufzunehmen und als JSON-Objekte über WebSockets zu dispatchen
* Konzeption einer hierarchischen Public/Private-Key Infrastruktur zum sicheren Zugriff auf Elemente (ggf. entfernter) Systeme
* Konzeption und Implementierung einer Reporting-Datenbank basierend auf Datenbank-Triggern und Web Services und entsprechenden Clients
Verbesserungen des Prozesses der Softwareentwicklung
* Konzeption und Implementierung einer Continuous-Integration-Lösung basierend auf standardisierten Softwarebuilds (make, Jenkins, dpkg)
* Automatisiert: saubere Buildumgebung, automatische Abhängigkeitsauflösung, Testausführung, Reporting
* On-demand: lokal, wahlweise nur Programm oder vollst. Debianpaket
* Konzeption und Implementierung einer Release-Methodik (inklusive Installations- und Upgrade-Mechanismus basierend auf Debianpaketen)
* Schulungen zu obigen Prozessverbesserrungen

10/2004 - 02/2014
Senior Software Engineer (Festanstellung)
Amano Parking Europe N.V

Softwareentwicklung und -architektur
* Web Service - implementiert in Java und basierend auf Apache CXF -
der die zentrale, externe Schnittstelle zum Hauptprodukt Xparc anbietet
* Zentrale Applikation zur Konfiguration, zum (Live-)Monitoring und Reporting
des Xparc Gesamtsystems implementiert in den Webtechnologien
PHP, JavaScript und HTML (später erweitert um WebSockets)
* Virtualisierung einer Handkasse mithilfe des MVC-WebFrameworks yii
Verbesserungen des Prozesses der Softwareentwicklung
* Etablierung des Debian-Paket-Mechanismus als Standard zur Installation
und Aktualisierung aller Komponenten des Xparc-Systems
* Einführung der Versionskontrolle mit Subversion
* Einführung eines Bugtrackingsystems (Bugzilla)
* Einführung eines Wikis zur internen Dokumentation
* Schulungen zu obigen Prozessverbesserrungen

Reisebereitschaft

Verfügbar in den Ländern Deutschland, Österreich und Schweiz
Remote-Einsatz im Homeoffice bevorzugt.
Einarbeitungsphase gerne vor Ort.
Regelmäßige Besuche vor Ort verhandelbar (beispielsweise: bis zu 4 zusammenhängende Tage pro Monat vor Ort).
Profilbild von Johannes Dohmen Senior Software Engineer & Software Architect aus Herzogenrath Senior Software Engineer & Software Architect
Registrieren