freiberufler Senior Software Engineer (C++) & Software Architect auf freelance.de

Senior Software Engineer (C++) & Software Architect

zuletzt online vor 7 Tagen
  • auf Anfrage
  • 52072 Aachen
  • DACH-Region
  • de  |  en  |  ro
  • 02.09.2024

Kurzvorstellung

Studierter Informatiker (M.Sc.) und ausgebildeter Anwendungsentwickler mit 20 Jahren Berufserfahrung und starken Skills in Konzeption, Architektur, Modellierung und Implementierung in C++ unter Linux und Hang zu qualitativ hochwertigen SW-Entwicklung

Qualifikationen

  • C++19 J.
  • Embedded Linux8 J.
  • Software Architecture5 J.
  • Agile Methodologie
  • Debian Linux
  • Informatik
  • Scrum2 J.
  • Software engineering / -technik
  • Technische Projektleitung / Teamleitung
  • UML7 J.

Projekt‐ & Berufserfahrung

Software Architect & Senior Software Engineer
Eppendorf SE, Hamburg/remote
10/2022 – 7/2024 (1 Jahr, 10 Monate)
Chemieindustrie
Tätigkeitszeitraum

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

Eingesetzte Qualifikationen

C++, Embedded Linux, Scrum, Software Architecture

Softwareentwickler C++
Maurer Electronics, Hamburg/remote
11/2021 – 8/2022 (10 Monate)
IT & Entwicklung
Tätigkeitszeitraum

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

Eingesetzte Qualifikationen

C++, Qt (Software), Microsoft Visual Studio

Software-Architekt (Festanstellung)
Bosch Building Technology, Aachen
1/2021 – 10/2021 (10 Monate)
IT & Entwicklung
Tätigkeitszeitraum

1/2021 – 10/2021

Tätigkeitsbeschreibung

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

Eingesetzte Qualifikationen

C++, Netzwerktechnik, Software Architecture, UML

Software Architect & Senior Software Engineer (Festanstellung)
Minebea Intec GmbH, Aachen
9/2019 – 12/2020 (1 Jahr, 4 Monate)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

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++)

Eingesetzte Qualifikationen

C++, Embedded Linux, Json, Software Architecture, Testen, UML

Softwareentwickler
Minebea Intec GmbH, Aachen
9/2018 – 9/2019 (1 Jahr, 1 Monat)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

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

Eingesetzte Qualifikationen

Scrum, C++, Embedded Linux, Software Architecture, Testen, UML

Senior Software Engineer (Festanstellung)
Amano Parking Europe, Aachen
5/2014 – 7/2018 (4 Jahre, 3 Monate)
IT & Entwicklung
Tätigkeitszeitraum

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

Eingesetzte Qualifikationen

C++, Embedded Linux, Testen, UML

Software-Entwickler (Teilzeit) (Festanstellung)
Amanao Parking Europe N.V., Aachen
10/2004 – 2/2014 (9 Jahre, 5 Monate)
Parkplatz-Managment-Systeme
Tätigkeitszeitraum

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

Eingesetzte Qualifikationen

C++, HTML, JavaScript, PHP

Ausbildung

Informatik
Master of Science, M. Sc.
2014
Aachen (RWTH Aachen University)
Informatik
Bachelor of Science, B. Sc.
2011
Aachen (RWTH Aachen University)
Fachinformatiker (Anwendungsentwicklung)
Ausbildung
2004
Aachen

Über mich

Softwareentwickler und -architekt 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.

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

Programmiersprachen:
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

Sprache
  • Deutsch (Muttersprache)
  • Englisch (Fließend)
  • Rumänisch (Grundkenntnisse)
Reisebereitschaft
DACH-Region
Arbeitserlaubnis
  • Europäische Union
Home-Office
bevorzugt
Profilaufrufe
1345
Alter
45
Berufserfahrung
23 Jahre und 3 Monate (seit 08/2001)
Projektleitung
3 Jahre

Kontaktdaten

Nur registrierte PREMIUM-Mitglieder von freelance.de können Kontaktdaten einsehen.

Jetzt Mitglied werden