Ausbildung
Du verfügst über ein abgeschlossenes Studium der Informatik, technischen Informatik, Elektrotechnik, Automatisierungstechnik oder einer vergleichbaren technischen Fachrichtung.
Berufserfahrung
Du verfügst über mindestens drei Jahre Berufserfahrung in der professionellen Entwicklung von C++-Software unter Linux, hast bereits an umfangreicheren Softwareprojekten mitgewirkt und dabei Aufgaben von der Anforderungsanalyse und Konzeption über die Implementierung bis zur Integration und zum Test bearbeitet. Idealerweise hast Du Erfahrung mit industriellen, eingebetteten oder hardwarenahen Systemen, die über lange Zeiträume zuverlässig und weitgehend unbeaufsichtigt betrieben werden. Du bist in der Lage, bestehende Software zu analysieren, technisch zu bewerten und schrittweise in eine tragfähige neue Architektur zu überführen.
Technische Kompetenzen
Du besitzt sehr gute Kenntnisse in modernem C++, vorzugsweise ab C++17, sowie gute Kenntnisse in C und bist mit modularer Softwareentwicklung, Multithreading, Synchronisation, Ressourcenverwaltung und der Entwicklung robuster Anwendungen vertraut.
Zudem verfügst du über fundierte Erfahrung in der Softwareentwicklung unter Linux. Dazu gehören die Entwicklung von Diensten und Hintergrundprozessen, Netzwerkkommunikation, Logging sowie Fehlerbehandlung.
Du kannst größere Aufgabenstellungen eigenständig in wartbare und testbare Komponenten, Dienste und Schnittstellen zerlegen. Du hast Erfahrung mit Datenbanken, Backend-Diensten und APIs und kannst Messdaten, Konfigurationen, Zustände und historische Informationen strukturiert speichern und für webbasierte Anwendungen bereitstellen.
Automatisierte Unit-, Komponenten-, Integrations- und Regressionstests sind dir vertraut. Außerdem beherrschst Du den Umgang mit Versionsverwaltung und Buildsystemen.
Es fällt dir leicht, Dich in hardwarenahe Kommunikationsabläufe einarbeiten und Schnittstellen zwischen Linux-Systemen, Messhardware und übergeordneten Systemen entwickeln.
Persönliche Stärken
Du arbeitest analytisch, strukturiert und eigenverantwortlich. Ein hoher Qualitätsanspruch, Teamgeist sowie die Motivation, innovative Hightech-Produkte aktiv mitzugestalten, zeichnen Dich aus.
Sprachkenntnisse
Sehr gute Deutschkenntnisse auf mindestens C1-Niveau oder muttersprachliche Deutschkenntnisse sind aufgrund der engen Zusammenarbeit innerhalb unserer Entwicklungs- und Fachabteilungen zwingend erforderlich. Gute Englischkenntnisse sind von Vorteil.
Wünschenswerte Zusatzqualifikationen
Idealerweise verfügst Du bereits über Erfahrungen in einem oder mehreren der folgenden Bereiche:
- Erfahrung mit Echtzeitbetriebssystemen wie FreeRTOS, ThreadX oder Zephyr
- Kenntnisse in Embedded Linux und industriellen Linux-Systemen
- Erfahrung mit CAN und CAN-FD
- Kenntnisse industrieller Feldbusse und Kommunikationsprotokolle
- Erfahrung mit Messgeräten, Prüfständen oder Automatisierungssystemen
- Erfahrung mit WebSockets oder vergleichbaren Verfahren zur Übertragung von Live-Daten
- Grundkenntnisse in React oder anderen Web-Frontend-Technologien
- Kenntnisse in Python für Test-, Simulations- oder Analysewerkzeuge
- Erfahrung mit Continuous Integration und automatisierten Build- und Testprozessen
- Kenntnisse in Containertechnologien
- Kenntnisse in Softwareupdate-, Recovery- und Rollback-Verfahren
- Grundkenntnisse der Cybersicherheit industrieller Produkte
- Erfahrung mit Software für den unbeaufsichtigten 24/7-Betrieb