Softwareentwickler C/C++
- Verfügbarkeit einsehen
- 0 Referenzen
- 84€/Stunde
- 75335 Dobel (Württemberg)
- DACH-Region
- de | en
- 03.02.2026
- Contract ready
Kurzvorstellung
Geschäftsdaten
Qualifikationen
Projekt‐ & Berufserfahrung
7/2025 – 9/2025
Tätigkeitsbeschreibung
Entwicklung und Fehlerbehebung von C++ basierten Firmware-Komponenten und Prozessabläufen für die nächste Generation einer Geschirrspülmaschinen-
Serie.
Die Analyse der bestehenden Prozessabläufe erfolgte gegen die in PTC Windchill hinterlegte Spezifikation, inklusive notwendiger Anpassungen.
Zusätzlich wurden Modultests mit dem GoogleTest-Framework (gTest/gMock) erstellt sowie pytest-basierte Integrationstests für die CI/CD-Pipeline in GitLab implementiert und angepasst.
C++, Git, Linux Entwicklung, Python
9/2024 – 6/2025
Tätigkeitsbeschreibung
Entwicklung effizienter Firmware-Komponenten für Peripheriesysteme eines FTIR-Spektrometers auf Basis der Mikrocontroller Microchip SAM E54 (ARM Cortex-M4F) und NXP LPC1700 (ARM Cortex-M3).
Die Implementierung umfasste die Ansteuerung von Schrittmotoren sowie die Kommunikation mit Sensoren (Temperatur, Feuchtigkeit, IR-Quelle und Laser) in C++ 17, unter Nutzung von FreeRTOS und CMSIS. Die Bussysteme I²C, SPI und 1-Wire wurden für die Kommunikation zwischen Mikrocontroller (MCU) und externen Controllern/Sensoren genutzt. Die Verbindung zum übergeordneten, auf Linux basierenden Hauptsystem erfolgte über CAN. Zusätzlich wurde eine Statusmaschine (State Machine) entworfen und implementiert, die die Erkennung des Typs der IR-Quelle (MIR/NIR) sowie deren Statusüberwachung durch Spannungs- und Strommessungen über ADC des MCU ermöglicht.
Für die Test- und Validierungsmaßnahmen wurden Unit-Tests und Mocking mit dem GoogleTest-Framework (gTest/gMock) sowie Regressionstests mit einem kundeninternen Python-basierten Framework implementiert.
C++, Echtzeit-Betriebssysteme, Embedded Entwicklung / hardwarenahe Entwicklung, Git, Jenkins, Jira, Python
8/2023 – 4/2024
Tätigkeitsbeschreibung
Entwicklung und Dokumentation von Modultests für hardwarenahe Softwarekomponenten eines Systems für die refraktive Augenlaser-Behandlung, das unter dem Echtzeitbetriebssystem QNX läuft.
Die Tests wurden konform mit IEC 62304 und FDA 21 CFR Part 820 entwickelt. Zielsetzung: Eine möglichst vollständige Erreichung der Function-, Statement-, Branch- und Condition-Coverage der Systemsoftware.
Die Implementation erfolgte gegen die in DOORS spezifizierten funktionalen Anforderungen der Software, basierend auf einem kundeninternen auf Python und XML-basierten Framework. Die Dokumentation wurde zunächst in DOORS und später in Polarion durchgeführt.
C++, Echtzeit-Betriebssysteme, Jenkins, Jira, Python, QNX (Software), Subversion
6/2022 – 3/2023
Tätigkeitsbeschreibung
Entwicklung im Automotive Umfeld (Instrumenten-Cluster).
Fehlersuche, Stabilisierung und partielles Redesign einer State-Machine-basierten, sicherheitskritischen Softwarekomponente des Instrumenten-Clusters für zukünftige Fahrzeuggenerationen eines deutschen Automobilherstellers.
Die Komponente, zuständig für die Verarbeitung und Synchronisation von Echtzeit-Signalen für Warn- und Statusmeldungen, wurde teilweise neu implementiert und in ihrem Laufzeitverhalten optimiert.
Alle Anpassungen wurden in C++ 14 umgesetzt und auf einer ARM-Architektur unter Linux realisiert. Die Unit-Tests sowie das C++ Mocking wurden mit dem GoogleTest-Framework implementiert. Die Validierung der in DOORS spezifizierten Anforderungen und Funktionsabläufe erfolgte mit VECTOR CANoe sowie durch Unit-Tests.
C++, Embedded Linux, Embedded Systems, Git, Make (Software)
11/2020 – 5/2022
Tätigkeitsbeschreibung
Entwicklung im Embedded Linux und BOS-Funk Umfeld.
Weiterentwicklung eines Software-Defined-Radio (SDR) für die Alarmierung von Behörden und Organisationen mit Sonderaufgaben (BOS) über das Funkrufprotokoll POCSAG.
Das ursprünglich auf einem Xilinx Zynq-7000 SoC im Bare-Metal-Betrieb laufende System wurde in einem ersten Schritt auf Embedded Linux portiert. Dabei wurden der Device-Tree für die PL-basierten FPGA-Devices (wie DMA- und GPIO-Controller) konfiguriert sowie die Build-Skripte für die Erstellung des FSBL, des Linux-Kernels und zusätzlicher Kernel-Module angepasst.
Im zweiten Schritt erfolgte die Portierung der Bare-Metal-Software auf die Linux-Plattform, wobei die hardwarenahen Zugriffe durch Memory-Mapping realisiert wurden. Die ursprünglich im Xilinx SDK verwendeten APIs wurden in C neu implementiert, um die Linux-spezifischen Anforderungen zu erfüllen. Zudem wurde die vorhandene UART-Schnittstelle – verantwortlich für die externe Steuerung und Kommunikation – auf TCP/IP umgestellt und die Datenübertragung durch TLS-Verschlüsselung abgesichert.
ARM-Architektur, C, Embedded Entwicklung / hardwarenahe Entwicklung, Embedded Linux, Embedded Systems, Git, Make (Software), TCP / IP, Vivado (Xilinx)
8/2019 – 10/2020
Tätigkeitsbeschreibung
Entwicklung im BOS-Funk Umfeld unter Embedded Linux.
Entwurf und Implementierung eines Software-Systems zum Routing von BOS- Funk Audio-Übertragungen über IP-Netzwerke.
Die Audiosignale der BOS-Funktechnik werden über einen AD-Wandler (ADC) auf einem NXP i.MX7 basierten System-on-Modul (SoM, ARM Cortex-A7 + Cortex-M4) digitalisiert und mittels eines Software-basierten Codecs encodiert. Die encodierten Audiodaten werden über das RTP-Protokoll an frei definierbare IP-Endpunkte gesendet, die mit dem gleichen Hardware- und Software-System realisiert wurden. Dort werden die empfangenen RTP-Daten decodiert und über einen DA-Wandler (DAC) des SoM an die mit dem System verbundene BOS-Funktechnik übertragen.
Die Echtzeit-Signalverarbeitung wurde in C++ 11 unter zusätzlicher Nutzung der Boost-Bibliothek implementiert.
ARM-Architektur, C++, Embedded Linux, Embedded Systems, Git, RTP (Real-Time Transport Protocol), UML
12/2018 – 7/2019
Tätigkeitsbeschreibung
Entwicklung im Embedded Linux SBC Umfeld.
Portierung und Erweiterung einer Anwendung für die Visualisierung von POCSAG-basierten Alarmnachrichten für Rettungsdienste.
Als Hardware-Plattform wurde der Single-Board-Computer (SBC) Raspberry Pi eingesetzt. Für das Betriebssystem des SBC wurde mit dem Yocto-Projekt ein Embedded-Linux-System inklusive Toolchain und Cross-Compile-Support erstellt, um ein auf die Systemanforderungen optimiertes OS zu realisieren.
Im Rahmen der Änderungen erfolgte eine Portierung der auf Qt 4 basierenden Anwendung auf Qt 5 sowie die Anpassung der audiovisuellen HDMI-Ausgabe. Zudem wurde ein Bedienkonzept mit Infrarotfernsteuerung integriert.
ARM-Architektur, C++, Embedded Linux, Embedded Systems, Qt (Software)
3/2018 – 9/2018
Tätigkeitsbeschreibung
Entwicklung im Automotive / Tuner Umfeld.
Redesign und Entwicklung einer Softwarekomponente des Presentation-Controllers für die Diagnosefunktionalität eines Infotainment-Systems.
Im Rahmen des Projekts wurden Analyse und Korrektur von Fehlern in der vorhandenen Diagnosekomponente durchgeführt. Die Visualisierung der Architektur des bestehenden Komponenten-Modells sowie der Entwurf des neuen Modells erfolgten in UML-2. Die Implementierung der Komponente erfolgte in C++ 11.
Die Validierung der in DOORS spezifizierten Anforderungen erfolgte mit dem VECTOR CAN-Interface VN1610 sowie VECTOR CANoe, das die produktionsrelevanten Funktionsabläufe simuliert.
C++, Embedded Linux, Embedded Systems, Git, Linux Entwicklung, Subversion, UML
6/2015 – 2/2018
Tätigkeitsbeschreibung
Entwicklung im Automotive / Tuner Umfeld.
Design und Entwicklung einer Kommunikationsschicht zwischen Device- und Presentation-Controller für Radio- und TV-Tuner eines Infotainment-Systems, unter Berücksichtigung vorgegebener Schnittstellen.
Die Implementierung erfolgte in C++ unter Nutzung des Komponenten-Framework MoCCA. Der Fokus lag auf der Abstraktion der Device-Schnittstellen für folgende Tuner-Standards: Radio: AM/FM, DAB, DMB(A). TV: ISDB-T, DVB-T/DVB-T2, DMB(A/V). Besonders zu berücksichtigen war dabei die starke Asynchronität in der Komponenten-Kommunikation.
Die Dokumentation in Form einer Component Design Description (CDD) wurde mit dem UML-Tool Enterprise Architect erstellt. Die automatisierten Tests der Komponenten wurden mit einem kundenindividuellen Testframework realisiert.
C++, Embedded Linux, Embedded Systems, Enterprise Architect (EA), Linux Entwicklung, Subversion, UML
12/2014 – 5/2015
Tätigkeitsbeschreibung
Integration im Automotive / Tuner Umfeld.
Anpassung und Optimierung der Build-Prozesse für Tuner-Software, die auf den RTOS-Plattformen QNX und ITRON basiert.
Im Rahmen des Projekts wurden die Build-Prozesse angepasst und optimiert, um eine effizientere und zuverlässigere Softwareentwicklung auf den genannten Plattformen zu ermöglichen.
Für die Qualitätssicherung wurden Smoketests für die Früherkennung von Fehlern durchgeführt sowie eine detaillierte Fehleranalyse in der Software vorgenommen.
C++, Echtzeit-Betriebssysteme, Embedded Systems, QNX (Software), Windows 7
5/2014 – 9/2014
Tätigkeitsbeschreibung
Softwareentwicklung im Automotive / Audio Umfeld.
Erweiterung einer Softwarelösung für die Feinabstimmung und Übertragung digitaler Signalfilter für Automotive-Verstärker.
Nach Bestandsaufnahme und Analyse der bestehenden Funktionalität im Quellcode erfolgte die Anpassung der auf C++ und MFC basierenden Windows-Anwendung an die neuen Kundenanforderungen. Dieses wurde unter Nutzung des für das MOST150-Interface VN2640 von VECTOR verfügbaren APIs umgesetzt.
C++, Enterprise Architect (EA), Microsoft Foundation Classes (MFC), Microsoft Visual Studio, Windows 7, Windows XP
5/2012 – 3/2014
Tätigkeitsbeschreibung
Komponentenentwicklung im Automotive-Umfeld eines Infotainment Kundenprojektes für die Daimler AG (S-Klasse).
Analyse von Fehlerereignissen, Entwicklung und Implementierung von Lösungen für Fehlerbehebung und Stabilisierung des Systems.
Der Schwerpunkt lag in der Tuner-Domäne, insbesondere auf HD-, TA- und TI-Funktionalitäten sowie auf dem Waveband-Management zwischen Presentation- und Device-Controller. Hierzu gehörte die Erstellung und Auswertung von MOST-Bus Protokollen unter Nutzung des OptoLyzer sowie der OptoLyzer-Tools und die manuelle Disassemblierung von MOST-Protokoll-Sequenzen. Ferner wurde die Analyse eines Memory-Leaks in der AV-Tuner Komponente durchgeführt.
C++, Echtzeit-Betriebssysteme, QNX (Software), Windows 7
4/2009 – 2/2012
Tätigkeitsbeschreibung
Entwicklung einer SQL-Datenbank gestützten Anwendung für Computerunterstützte Übersetzung (CAT).
Die Anwendung wurde in C# entwickelt, wobei das Benutzeroberfläche (UI) mit WinForms umgesetzt wurde. Als Grundlage diente die Software FindWord. Die bestehende Suchfunktionalität wurde von C++ nach C#/.NET portiert. Die ursprünglich vollständig im dynamischen Speicher abgelegte In-Memory-Datenbank wurde durch ein hybrides Modell aus einer SQL-Datenbank und In-Memory-Datenbank ersetzt.
Der bestehende Suchalgorithmus wurde um ein Näherungsverfahren für die Suche nach Phrasen mit mehreren Wörtern erweitert. Dieser kann dadurch solche Phrasen im Dokumentenbestand identifizieren und den Übereinstimmungsgrad berechnen.
Zusätzlich wurde ein heuristischer Algorithmus entwickelt, der ein satzbasiertes Alignment zwischen zwei Dokumenten ermöglicht. Dabei handelt es sich um ein Dokument in der Originalsprache und ein anderes in der Übersetzung.
.Net, .Net Framework (Microsoft), C#, SQL, UML, Windows 7
2/2007 – 3/2009
Tätigkeitsbeschreibung
Komponentenentwicklung im Automotive-Umfeld eines Infotainment Kundenprojektes für die Daimler AG (S-Klasse).
Im Rahmen des Projekts wurden HMI-Komponenten mit Fokus auf medienbezogene Funktionen entwickelt, implementiert und auf Fehler überprüft, wobei die Anforderungen der Kunden strikt berücksichtigt wurden.
Fuzzylogik-basierte Musiksuche. Es wurde eine spezifische HMI-Komponente implementiert, die eine Fuzzylogik-basierte Suche nach Musikstücken ermöglicht, basierend auf deren Metadaten.
CD-Digitalisierung mit Hintergrundabspielung. Implementation einer weiteren Komponente die eine Digitalisierung von Audio-CD-Tracks auf die integrierte Festplatte der Headunit ermöglicht. Sobald ein ausreichend großer Datenpuffer für den aktuell in der Verarbeitung befindlichen analogen Track verfügbar ist, wird parallel der MP3-Stream im Hintergrund abgespielt.
C++, Echtzeit-Betriebssysteme, QNX (Software), UML
12/2006 – 1/2007
Tätigkeitsbeschreibung
Entwicklung eines COM-Servers für die Integration der FindWord-Suchfunktionalität.
Für die Einbindung der Suchengine der Software FindWord in externe Anwendungen wurde ein COM-Server als Typbibliothek entworfen und implementiert. Diese Architektur ermöglicht es fremden Programmen, zentrale Suchfunktionen von FindWord zu nutzen. Darunter die automatisierte Indizierung von Dokumenten, die Verwaltung der Suchindizes sowie die inhaltsspezifische Suche.
Für die Überprüfung der Funktionalität und Stabilität der Typbibliothek wurde ein Testclient in C#/.NET entwickelt. Dieser dient der Validierung aller Schnittstellen und stellt sicher, dass die Integration nahtlos in verschiedene Anwendungsumgebungen erfolgt.
.Net, .Net Framework (Microsoft), C#, C++, Microsoft Windows (allg.)
Weitere Kenntnisse
- MS-Visual Studio: 6.0
- MS-Visual Studio .NET 2003 - 2008
- MFC, ODBC, ASP.net
- Crystal Reports
- SQLite
- MySQL
- MS SQL-Server
- Telelogic DOORS
- Perforce
Erfahrungen
- Anwendungsentwicklung: Unter DOS, Win 3.x, 9x, NT 4.0, W2k, WinXP, Win7, ASP.net, QNX.
- Komponentenentwicklung im Automotiv Infotainment Sektor.
- Planung, Realisierung, Administration von WinNT Netzwerken.
Persönliche Daten
- Deutsch (Muttersprache)
- Englisch (Gut)
- Europäische Union
Kontaktdaten
Nur registrierte PREMIUM-Mitglieder von freelance.de können Kontaktdaten einsehen.
Jetzt Mitglied werden
