Profilbild von Anonymes Profil, Software Ingenieur / Architekt
verfügbar

Letztes Update: 06.09.2022

Software Ingenieur / Architekt

Abschluss: Dipl.-Ingenieur (FH)
Stunden-/Tagessatz: anzeigen
Sprachkenntnisse: deutsch (Muttersprache) | englisch (verhandlungssicher)

Skills

Meine Name ist Ralf Holly, Jahrgang 1970 und ich bin begeisterter Software-Entwickler.
Seit über 15 Jahren beschäftige ich mich mit der Entwicklung komplexer und sicherheitskritischer System- bzw. Embedded-Software.

Branchen: Telekommunikation, Smartcards
Programmiersprachen: C, C++, Java, Perl, Python
Betriebssysteme: Linux, Windows und diverse RTOS

Schulungen/Coaching zu folgenden Themen:

- Verbesserung der Software-Qualität mittels PC-Lint
- Entwicklung von plattformunabhängigen und portablen Code
- Code Optimierungen (Performance/Footprint)
- Build- und Testautomatisierung
- Software Configuration Management
- Wie man herausragende Entwickler findet

Projekthistorie

09/2019 - bis jetzt
Bildbearbeitung/Videoprocessing für ein Augenoperationsmikroskop.
Carl Zeiss Meditec AG (Pharma und Medizintechnik, 5000-10.000 Mitarbeiter)

Pflege und Erweiterung von Bestandscode, Redesign und Neuimplementierung des Nachfolgemodells, Evaluierung und Performance-Analyse von Videograbber-Karten, Definition und Implementierung eines robusten Kommunikationsprotokolls zwischen GUI-Applikation und Video-Backend. Performance-Optimierungen. 

Visual Studio 2019, C++17, CMake, Conan, Google protobuf, gstreamer, opengl, Qt, Google Test/Mock.

05/2018 - 09/2019
Integration eines Flash-Bootloaders + DevOps
Munich Electrification GmbH (Automobil und Fahrzeugbau, 50-250 Mitarbeiter)

Aufsetzen eines Release- und Continuous Integration Prozesses.
Post-merge und Pre-merge Builds, Nightly Builds, Erfassen und Auswerten von SW Qualitätsmetriken (z. B. Compiler Warnings, MISRA Verletzungen, Test Coverage).
Python, Jenkins.

Integration eines Flash-Bootloaders für ein KFZ-Steuergerät zur Batterieüberwachung in elektrisch angetriebenen Fahrzeugen.
GreenHills C/C++, winIDEA Debugger, S32K148 MCU.

11/2016 - 09/2019
Master Controller für Robotorarm "Panda"
Franka Emika GmbH (Industrie und Maschinenbau, 50-250 Mitarbeiter)

Master Controller für den Roboterarm "Panda". (Deutscher Zukunftspreis 2017, verliehen durch Bundespräsident Frank-Walter Steinmeier).

Bei dem Master Controller handelt es sich um eine multi-threaded realtime-Linux Anwendung, welche die Gelenke eines Roboterarms steuert. Der Master Controller sorgt für den Datenaustausch der Sensor/Aktoren der Gelenke und dem MATLAB/Simulink Roboter Steuerungsalgorithmus. Darüber hinaus ist der Master Controller für diverse Verwaltungs- und Wartungsaufgaben (inkl. Firmware Download zur Gelenkeletronik) verantwortlich.

Implementierung diverser FoE (File access over EtherCAT) Kommandos, Refactoring bzgl. Testability, Dependency-Injection, Entwicklung von Unit Tests, Code Coverage Analyse mittels CTC++ and gcov.

Implementierung eines Firmware Download Protokolls zum Einspielen von Gelenkfirmwareversionen über FoE. Die Umsetzunge erforlgte sowohl in der Gelenksoftware, als auch im MasterController.

RT-Linux, g++, C++11, Google Test/Mock, CMake, EtherCAT, µC/OS II, TI Code Composer Studio.

01/2014 - 12/2016
Implementierung diverser Steuergerätefunktionen
ESRLabs AG (Automobil und Fahrzeugbau, 50-250 Mitarbeiter)

Implementierung diverser Adapter und Adapter-Generatoren als Steuergeräte-Middleware zwischen Basissoftware und Applikationen u. a. HW I/O, Diagnosedienste und Check-Control Nachrichten.
C++, Java, Groovy, Python, Artop.

Pflege/Erweiterung diverser Steuergeräte-Systemfunktionen.
C++, Google Test/Mock.

07/2012 - 12/2013
Implementierung diverser Steuergerätefunktionen
BMW AG (Automobil und Fahrzeugbau, >10.000 Mitarbeiter)

Integration/Entwicklung eines Embedded Webservers zur Statusüberwachung und Konfiguration von KFZ-Steuergeräten. C++/Javascript.

Implementierung eines XCP Trace Servers auf einem  KFZ- Steuergerät (C++), sowie eines XCP Trace Clients (Java/C#).  Per XCP Protokoll werden interne Speicherdaten und Debug-Informationen des Steuergeräts via UDP vom Server versendet und vom Client empfangen, dekodiert und dargestellt.

Integration und Erweiterung von Fahrzeugsystemfunktionen innerhalb eines BDC (Body Domain Controller). Implementierung von AUTOSAR CDDs (Complex Device Drivers).
Cygwin, Embedded C/C++, AUTOSAR, Google Test/Mock, CMake, Python.

12/2010 - 06/2012
Erweiterung eines Mobiltelefon-Betriebsystems um einen sicheren Kernel ("MobiCore").
Giesecke & Devrient GmbH (Internet und Informationstechnologie, 5000-10.000 Mitarbeiter)

Basierend auf der ARM/TrustZone-Technologie und eines L4 Microkernel wurde ein sicheres Betriebssystem ("MobiCore") realisiert, dass es Mobiltelefon-Anwendungen (z. B. Android Applikationen) ermöglicht, sichere Transaktionen durchzuführen und damit Schutz vor Schadsoftware (z. B. Trojanern) bietet.

Implementierung von MobiCore-Funktionalität in C/C++, insbesondere Content-Management Operationen zum Verwalten von Service Providern und Trustlets innerhalb von MobiCore.
Ubuntu Linux, Eclipse CDT, gcc und g++, CppUnit, CppUTest, Subversion, Git.

Implementierung eines Content Management Servers in C++ für Android, der über eine Socketverbindung eine Schnittstelle zum MobiCore Content Management anbietet. 
Ubuntu Linux, Eclipse CDT, g++, Subversion.

Implementierung eines Content Management Clients in Java, der u. a. eine Bibliothek für Content Management Backend-  sowie Testsysteme anbietet.
Eclipse, JDK 1.6, unter Verwendung von Reflection und selbstdefinierten Annotations, JUnit, Subversion.

Erweiterung des MobiCore-Betriebssystems um die Funktionalität "nachladbare Treiber". Erweiterung der Interprozesskommunikationslogik bzw. der IPC-Statemachines.
Windows, Cygwin, ARM RVDS Toolchain.
 
Implementierung eines Konfigurationswerkzeugs in Java. Kommandozeilentool zum Setzen bzw. Verändern diverser Kerneloptionen direkt im Binärimage. 
Ubuntu, Eclipse, JDK 1.6, XPath.


05/2010 - 12/2010
Entwicklung und Pflege von PC-basierten Funkempfänger-Benutzeroberflächen
Rohde & Schwarz GmbH (Telekommunikation, 5000-10.000 Mitarbeiter)

Entwicklung und Pflege von PC-basierten Funkempfänger-Benutzeroberflächen in C++ sowie dazugehörigen Gerätesimulationen als Teilkomponente eines vernetzten Funküberwachungssystems (Gesamtgröße: 1.5 MSLOC C++); Entwicklung eines Multi-Client fähigen Treibers, der über UDP sowie TCP/IP mit den Clients und Funkempfängern kommuniziert.

Visual Studio 2005, flex/bison, STL, Boost, Qt, CppUnit, ClearCase.


03/2009 - 04/2010
Konzeption und Implementierung eines High-End JavaCard-Betriebbsystems.
Giesecke & Devrient GmbH (Internet und Informationstechnologie, 5000-10.000 Mitarbeiter)

Ziel ist es, ein neuartiges Betriebssystem zu realisieren, dass sich bezüglich Zukunftstechnologien wie NFC, USB, Smartcard-Webserver und JavaCard 3.0 als tragfähig erweist.

Mitwirkung bei der Definition der Anforderungen, Architektur und Projektkonventionen; Implementierung hardwarenaher Funktionalität (Device Treiber); Implementierung des Filesystem-Layers; Vereinheitlichung der Entwicklertestumgebung (ein auf C++ basierendes Test-Framework).


Reisebereitschaft

Verfügbar in den Ländern Deutschland
Großraum München
Profilbild von Anonymes Profil, Software Ingenieur / Architekt Software Ingenieur / Architekt
Registrieren