Senior Software Engineer (C++) & Software Architect
- Verfügbarkeit einsehen
- 6 Referenzen
- auf Anfrage
- 52072 Aachen
- DACH-Region
- de | en | ro
- 02.09.2024
Kurzvorstellung
Qualifikationen
Projekt‐ & Berufserfahrung
10/2022 – 7/2024
Tätigkeitsbeschreibung
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
C++, Embedded Linux, Scrum, Software Architecture
11/2021 – 8/2022
Tätigkeitsbeschreibung
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
C++, Qt (Software), Microsoft Visual Studio
1/2021 – 10/2021
Tätigkeitsbeschreibung
Analyse und Weiterentwicklung des Bestandssystems einer Alarmmeldeanlage
Planung und Realisierung des Nachfolgesystems
Etablierung eines Software-Entwicklungsteams
C++, Netzwerktechnik, Software Architecture, UML
9/2019 – 12/2020
Tätigkeitsbeschreibung
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++ und vice 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++)
C++, Embedded Linux, Json, Software Architecture, Testen, UML
9/2018 – 9/2019
Tätigkeitsbeschreibung
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++ und vice 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
Scrum, C++, Embedded Linux, Software Architecture, Testen, UML
5/2014 – 7/2018
Tätigkeitsbeschreibung
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
C++, Embedded Linux, Testen, UML
10/2004 – 2/2014
Tätigkeitsbeschreibung
Softwareentwicklung und -architektur
- C++ Intercom-Implementierung zur Kommunikation zwischen Kunden und Operatoren.
- Web Service – implementiert in Java und basierend auf Apache CXF –
der die zentrale, externe Schnittstelle zum Hauptprodukt anbietet
- Zentrale Applikation zur Konfiguration, zum (Live-)Monitoring und Reporting des Gesamtsystems implementiert in den Webtechnologien
PHP, JavaScript und HTML (später erweitert um WebSockets)
- Virtualisierung einer Handkasse mithilfe des MVC-Web-Frameworks yii
Verbesserungen des Prozesses der Softwareentwicklung
- Etablierung des Debian-Paket-Mechanismus als Standard zur Installation
und Aktualisierung aller Komponenten des Systems
- Einführung der Versionskontrolle mit Subversion
- Einführung eines Bugtrackingsystems (Bugzilla)
- Einführung eines Wikis zur internen Dokumentation
- Schulungen zu obigen Prozessverbesserungen
C++, HTML, JavaScript, PHP
Ausbildung
Aachen (RWTH Aachen University)
Aachen (RWTH Aachen University)
Aachen
Über mich
Erfahren in der Konzeption von verteilten Systemen, teils mit zentralisiertem Server, wie auch autarken Systemen mit monolithischen oder modularen Applikationen mit klarer, komponentenorientierter Architektur (strikte Unterteilung in System und Komponenten, konkretem Startup/Teardown des System, explizitem Life-Cycle der Komponenten, ...).
Performant in der modernen und hochqualitativen C++-Programmierung ausgerichtet am state-of-the-art (TDD, Design Patterns, Best Practices, Analysetools, CI, Sprachstandards, ...).
Stark in der Analyse problematischer Umsetzungen, sowohl Top-down von der Konzeption, über Design zur Implementierung, wie auch Bottom-up ausgehend von konkretem Source-Code und Applikations-Crashes. Geübt im Auffinden von Speicherproblemen wie Buffer overruns, Memory leaks, etc. und im Beheben der Probleme auf den verschiedenen Niveaus.
Weitere Kenntnisse
C++ 03 | 11 | 14 | 17 (Hervorragend)
Shell/Bash (Sehr Gut)
Java (Gut)
PHP (Gut)
JavaScript (Gut)
Python (Basics)
Prolog (Basics)
Web-Technologien:
HTML
CSS
Skills:
Teamplayer
eigeninitiativ
impulsgebend
analytisch
lösungsorientiert
sozial kompetent
wissbegierig
selbstkritisch
Protokolle:
Web: TCP, UDP, HTTP, MQTT
IOT: OPC UA
Formate:
XML (XSD, XPATH)
JSON
Entwicklungswerkzeuge:
Eclipse
make
gdb
tcpdump/wireshark
netcat
nmap
SonarQube
valgrind
eletric-fence
dia
Modellierung mittels UML:
- Strukturdiagramme: Klassendiagramme, Objektdiagramme, ...
- Verhaltensdiagramme: Aktivitätsdiagramme, Sequenzdiagramme, Zustandsdiagramme (State-machine dia.), ...
Systemprogrammierung:
- Allgemein unter Linux
- Paketverwaltung unter Debian-basierten Distributionen
Betriebssysteme:
- Linux
- Debian/Ubuntu
- Yocto
Docker
Datenbankmanagementsysteme:
- SQL
- PostgreSQL
- MySQL
Unix-Werkzeuge:
sed, awk, vi, etc.
Persönliche Daten
- Deutsch (Muttersprache)
- Englisch (Fließend)
- Rumänisch (Grundkenntnisse)
- Europäische Union
Kontaktdaten
Nur registrierte PREMIUM-Mitglieder von freelance.de können Kontaktdaten einsehen.
Jetzt Mitglied werden