Aufgaben:
-
Selbständige Entwicklung und Wartung von einfachen bis hin zu komplexen Software-Komponenten für Laborautomatisierungssysteme
-
Selbständige Spezifikation und Implementierung von Schnittstellen zwischen Software-Komponenten (Interprozesskommunikation) und Schnittstellen zu externen Systemen (z.B. Labor-Middleware Hardware, Motorcontroller)
-
Selbständige Erstellung von projektbezogener Softwaredokumentation
-
Selbständige Erstellung von Softwarecode in geforderter Qualität (Kommentare, Komplexität, Lesbarkeit) anhand interner Standards
-
Eigenverantwortliche Erstellung und Durchführung von Whitebox-Tests (Unit-Tests) und automatisierten Tests zur Verifizierung der Software sowie Durchführung von Code-ReviewsEigenverantwortliche Definition und Durchführung von manuellen Tests zur Verifizierung der Software
- Selbständige Durchführung des 4th-Level Support (letzte Stufe der Eskalationsmöglichkeiten) und Mitwirkung bei der Reklamationsbearbeitung inklusive Fehlerursachenanalyse, Erstellung von Untersuchungsberichten und der technischen Risikobewertung
- Selbständige Koordinierung von kleineren Software-Projekten (Fehlerkorrekturen, kleinerer Verbesserungen, Technologie- und Forschungsprojekte)
-
Selbständige Planung, Koordinierung und Sicherstellen der Freigabe von einfacheren Software-Projekte
Anforderungen:
-
Erfolgreich abgeschlossenes Studium der Fachrichtungen Informatik, Computer Science, Informationstechnik oder vergleichbares Studium
-
Mindestens drei Jahre Berufserfahrung als Softwareentwickler oder in der Produktentwicklung von komplexen Systemen im Bereich Laborautomatisierung, Medizintechnik oder der Entwicklung mechatronischer Systeme.
-
Sehr gute Englischkenntnisse
-
Gute Kenntnisse in allen Phasen des Software-Entwicklungsprozesses gemäß ISO/IEC 62304 (Requirements-Management, Architektur und Design, Implementierung, Verifizierung) unter Verwendung gängiger Werkzeuge (IDEs: z.B. QT Creator, Visual Studio, Eclipse; Sourcecode-Verwaltungssysteme: GIT; ALM-Tools: Polarion
-
Sehr gute Kenntnisse in Skriptsprachen (Shell, Python)
-
Gute Kenntnisse in Datenbanken (SQL, MySQL) und von genutzten SW-Bibliotheken (z.B. boost, c++ stdlib, usw.) und von Bus-Protokollen
-
Gute Kenntnisse von Betriebssystemen Unix (Linux) und Windows
-
Gute Kenntnisse in agiler Software-Entwicklung (SCRUM)