Sabbatical
Schlagwörter
Skills
- C++17
- Medizintechnik
- Maschinensteuerung
- Echtzeitprogrammierung
- Agile Softwareentwicklung
- Scrum
- Objektorientiertes Design
- Objektorientierte Programmierung
- Microsoft Windows 10/11
- Linux
- C++
- Python
- Enterprise Architect
- Eclipse
- Visual Studio
- Git
- Google Protocol Buffers
- XML
- JSON
- EtherCAT
- OPC UA
Projekthistorie
01/2023
-
12/2023
02/2021
-
12/2022
Maschinensteuerung für automatisierten MEMS-Test
Maschinenbau
(Industrie und Maschinenbau, 250-500 Mitarbeiter)
- Softwareentwicklung im Rahmen einer Neuentwicklung von Hard- und Software für den automatisierten Test von MEMS (Micro-Electro-Mechanical Systems)
- Synchronisation verschiedener Geräte-Komponenten
- Multi-Prozess-System
- Objektorientiertes Design
- Roboter-Ansteuerung (Pick & Place) mittels OPC UA
- Interprozess-Kommunikation mittels shared memory und OPC UA
- EtherCAT-Feldbus
- Integration eines RFID-Readers über IO-Link
- Inbetriebnahme und Test verschiedener Hardware-Komponenten
- Entwurf und Implementierung einer statischen Bibliothek zur Abfrage von Serverdaten (Post Processing) mittels REST-API
- Implementierung eines Codegenerators (PowerShell) zur Erzeugung von C++-Code aus einem Enterprise Architect Zustandsdiagramm (Nutzung des EA Automation Interfaces)
- Entwurf und Implementierung einer Hardware-Simulation auf EtherCAT-Feldbus-Ebene über ein Plugin-Konzept (Laden von Simulations-DLLs zur Laufzeit)
- Enge Zusammenarbeit mit dem Mechanik- und Elektronik-Team
- Dokumentation in Englisch
- Entwicklung unter Windows 10
- Zielsystem: Industrie-PC mit Windows 10
- Programmiersprachen: C++17 (CMake-Builds), C, Python, PowerShell Script
02/2018
-
06/2020
Softwareentwicklung für medizinische Laborgeräte im Großlabor
Medizintechnik
(Pharma und Medizintechnik, >10.000 Mitarbeiter)
- Mitarbeit bei Neuentwicklung eines Laborgeräts (3-Achsen-System)
- Agile Softwareentwicklung im internationalen Scrum-Team
- Projektsprache und Dokumentation in Englisch
- Enge Zusammenarbeit mit dem Hardware-Team
- Zielsystem: Industrie-PC mit Linux Echtzeit-Kernel
- Programmiersprachen C++11, C und Python
- Behavior Driven Development (Radish)
- Erstellung von Feature Files für Unittests
- Automatisierte Klassentests mittels Google Test
- Automatisierte Tests auf CI-System mittels Hardware-Simulation
- Datenaustausch mit anderen Gerätekomponenten und Servern (Socket-Kommunikation / RabbitMQ-Server)
- Datenserialisierung mittels Google Protocol Buffers
- Schreiben / Lesen von Konfigurationsdateien (XML / JSON)
- Erstellung Testsoftware in Python für Ansteuerung der device controller (CANopen, DS402)
- Integration eines EtherCAT-Masters für den Betrieb über EtherCAT (CoE)
- Erstellung von Linux-Bibliotheken (C) für die Ansteuerung der Hardware mittels CAN Befehlen
- Anpassung des Linux-Kernels für Zugriff auf eine Mini PCI Express Karte (EtherCAT Master)
- Design und Programmierung einer Abstraktionsschicht (Hardware Abstraction Layer in C++) für den abstrahierten Zugriff auf Hardware-Komponenten (Dependency Injection und IoC-Container)
- High level Programmierung in C++ entsprechend der jeweiligen Sprint-Ziele anhand vorgegebener Requirements, Unit Specifications und Use Cases
- Dokumentation im Rahmen des regulierten Entwicklungsprozesses nach DIN EN ISO 13485 und IEC 62304
01/2016
-
06/2017
Architektur-Optimierung einer Software im medizinischen Dentalbereich
Medizintechnik
(Pharma und Medizintechnik, >10.000 Mitarbeiter)
- Rolle: Software-Architekt
- Optimierung der Architektur einer CAD-/CAM-Software im Dentalbereich (medizinische Zahn-Restaurationen)
- Modularisierung der Software
- Verringerung der Buildzeiten
- Auslagerung von C++-Projekten als NuGet-Pakete
- Erarbeitung eines Konzepts zur automatisierten Versionierung und Erstellung von nativen NuGet-Paketen (C++-DLLs)
- Versionsnummern-Konzept nach SemVer 2.0
- Architekturüberprüfung und ggf. Programmanpassung
- Anpassung PowerShell-Skripte
- Programmierung in C++
- Anpassung von C++-Templates (C++11-Standard)
- Analyse der Abhängigkeiten von bestehenden .NET-Komponenten mittels Scripting unter Enterprise Architect
- Programmierung eines PDB-Symbolparsers als Visual Studio 2015 Extension (VSIX Visual Studio Plugin) mittels Debug Interface Access SDK (DIA)
- Entwicklung unter Windows 7
- Zielsystem: Windows 7 / Windows 10
03/2015
-
12/2015
Verarbeitung und Visualisierung von Flugsicherungs-Radardaten
Flugsicherung
- Rolle: Software-Entwickler
- Erweiterung der Radarbilddarstellung des Flugverkehrs
- Integration eines zusätzlichen Radar-Datenstroms
- Datenübermittlung mittels ASTERIX-Protokoll
- GUI-Programmierung
- Schnittstellen-Programmierung
- Anpassung Linux-Skripte
- Programmierung in C++ und C
- Entwicklung unter Linux und Windows
- Zielsystem: Linux (CentOS / Red Hat)
- Projektsprache: Englisch
- Design
- Implementierung
- Dokumentation (Requirements, Software-Design)
- Zusammenarbeit mit in- und ausländischen Entwicklungspartnern
10/2011
-
12/2014
Bediensoftware für medizinische Fluoroscopy-Geräte
Medizintechnik
(Pharma und Medizintechnik)
- Rolle: Software-Entwickler
- Erweiterung der bestehenden Bediensoftware für Fluoroscopy-Geräte
- Aufbau einer C++-Bibliothek zur Patienten- und Bilddatenverwaltung
- GUI-Programmierung
- Datenbank: SQLite
- Programmierung in C++ in Verbindung mit Qt-Bibliothek
- Datenübermittlung mittels DICOM-Standard
- Entwicklung unter Linux und Windows
- Zielsystem: Linux
- Projektsprache: Deutsch und Englisch
- Design
- Implementierung
- Fehler-Diagnose und -behebung
- Zusammenarbeit mit chinesischen Entwicklungspartnern
03/2011
-
09/2011
Bediensoftware für Schutzgeräte
Energieautomation
(Industrie und Maschinenbau, >10.000 Mitarbeiter)
- Rolle: Software-Entwickler
- Erweiterung der bestehenden Bediensoftware (Parametrierung) für neue Schutzgeräte mit zusätzlichen Systemschnittstellen
- Projektsprache: Englisch
- Software-Design
- Spezifikation (Development Specification)
- Implementierung
- Fehler-Diagnose und -behebung
- Systemtest
- Teilnahme an Reviews
- Zusammenarbeit mit indischen und chinesischen Entwicklungspartnern
07/2010
-
02/2011
Netzleittechnik für Energieversorgungssysteme (SCADA)
Energieautomation
(Industrie und Maschinenbau, >10.000 Mitarbeiter)
- Rolle: Software-Entwickler
- Mitarbeit im Bereich SCADA (Supervisory Control and Data Acquisition):
- Beobachtung, Steuerung und Überwachung des gesamten Energieversorgungssystems
- Unterstützung des Entwicklungsteams beim Kunden vor Ort
- Redesign des bestehenden Alarm Processings bzgl. Robustheit
- Cleanup-Logik für Alarmlisten bei drohendem Überlauf
- Sicherstellung Hot-Standby-Betrieb bei Cleanup
- Testautomatisierung mittels BOOST (C++-Bibliothek)
- Projektsprache: Englisch
- Implementierung
- Integrationstest für die erweiterten Softwarekomponenten
- Fehler-Diagnose und -behebung
Reisebereitschaft
Verfügbar in den Ländern
Deutschland