Software Engineering & Enwicklung
- Verfügbarkeit einsehen
- 0 Referenzen
- auf Anfrage
- 79194 Heuweiler
- auf Anfrage
- de | en
- 01.12.2025
- Contract ready
Kurzvorstellung
Geschäftsdaten
Qualifikationen
Projekt‐ & Berufserfahrung
4/2022 – 11/2025
TätigkeitsbeschreibungAls leitender Softwareingenieur in der Magnetometer-Abteilung war ich für das Design und die Entwicklung der gesamten Softwarearchitektur verantwortlich und sorgte für eine robuste und effiziente Sensor-Software. Meine Rolle ging über die Softwareentwicklung hinaus und umfasste Tätigkeiten innerhalb des Laborbetriebs sowie die Einrichtung und Integration von prototypischen Hardwarekomponenten. Ich entwickelte die Kernsteuerungssoftware in Python und nutzte dabei Bibliotheken wie NumPy und SciPy, um die Leistung zu optimieren und dabei gleichzeitig eine Steuerung mit geringer Latenz für zeitkritische Berechnungen zu erreichen. Darüber hinaus entwarf und implementierte ich die in C++ geschriebene Steuerungssoftware für eine Handprothese. Ich spielte eine entscheidende Rolle bei der Vorbereitung und Präsentation des Systems für interne Vorführungen sowie öffentliche Ausstellungen auf Branchenmessen. Dabei ging es darum, die nahtlose Integration zwischen Software und Hardware zu unterstützen. Meine Beiträge erstreckten sich über den gesamten Lebenszyklus des Projekts, von der Entwicklung bis zur Präsentation.
Eingesetzte QualifikationenARM-Architektur, Embedded Linux, Physiklaborant, Programmierer C, C++, Python-Programmierer, Qt (Software)
12/2020 – 2/2022
TätigkeitsbeschreibungDer Datenstrom des LiDAR soll in ein winkelstabiles Sektorformat transformiert werden, damit die Filter-Algorithmen akkurat angewendet werden können. Dazu ist es erforderlich die entsprechenden Komponenten zu erweitern bzw. diese sofern nicht vorhanden zu implementieren. Alle Komponenten werden dabei durch die Erstellung von Unit-Tests, hinsichtlich Testabdeckung, und Funktion abgesichert. Des Weiteren ist die Erzeugung eines komprimierten seriellen Datenausgabe-Formates für die Verarbeitung auf leistungsschwächeren SPS-Geräten erforderlich.
Eingesetzte QualifikationenEmbedded Linux, Windows 10, Jenkins, Jira, Linux Entwicklung, Lua Scripting, Make (Software), Programmierer C, C++
5/2018 – 4/2020
Tätigkeitsbeschreibung
Das Transport-System verwendet sogenannte TMA-Controller für die Ansteuerung der Transportmodule. Die Transportmodule selbst können durch entsprechende Befehle eine bestimmte Menge an Single-Holder über die Oberfläche bewegen. Der TMA-Controller verwendet eine AM572x CPU von TI und verfügt über 8 serielle RS-422 Schnittstellen. Diese werden mit ca. 1Mbit/s konfiguriert und sollen bis zu 1000 Transportmodule ansteuern.
Der Software-Server soll redesignt und implementiert werden. Dabei sollen empfangene Instruktionen, die von einem Master-Controller, über eine Socket-Schnittstelle (TCP) versendet werden, an die addressierten Transportmodule weitergeleitet werden. Dies erfordert, dass der TMA-Controller die Protobuf-Nachrichten in ein propriäteres Protokoll transformiert, damit die Transportmodule dies verstehen und verarbeiten können. Hier ein kurzer Auszug aus der Befehlsmenge die unterstützt werden soll:
• Connect
• Power-On/Off
• Initialize
• Move
• Step
Selbstverständlich müssen auch die Antworten, welche von den einzelnen Transportmodulen übertragen werden in eine entsprechende Protobuf-Nachricht konvertiert werden damit diese vom Master-Controller verarbeitet werden kann.
Embedded Linux, Enterprise Architect (EA), Git, Jenkins, TCP / IP, Programmierer C, C++
3/2017 – 4/2018
Tätigkeitsbeschreibung
Als Software-Ingenieur habe ich Anforderungen der UNISIG (Requirement-Driven-Development), aus der ETCS-Spezifikation, Subset-26, analysiert und die entsprechenden Komponenten der CoreEngine angepasst bzw. erweitert.
Die CoreEngine überwacht und steuert alle Prozesse und Ereignisse die zur Kontrolle des Fahrzeuges erforderlich sind. Die Anforderungen des Subset-26 sind in der CoreEngine implementiert und stellen damit die Prozesslogik des Systems dar.
Meine Anpassungen betrafen hauptsächlich interne Komponenten, dass waren unter anderem, die Movement-Authority Unit (MA), der National-Values Controller, die ICF SubUnit, sowie der PersistenMemory Controller. Des Weiteren erhielt ich die Beauftragung, fehlerhafte Softwareelemente bzgl. der objektorientierten Umsetzung ausfindig zu machen und entsprechend zu korrigieren.
Embedded Linux, Programmierer C, C++, Scrum, Eclipse, Emacs, Jira
11/2011 – 2/2017
Tätigkeitsbeschreibung
HwAccessLink
Die Steuergeräte der Remote-Einheit sowie der Zentraleinheit (19“ Rack) benötigen ein Serviceprogramm, das die Kommunikation zu den angeschlossenen Modulen ermöglicht. Über den lokalen IM-Bus (CAN) werden die Module anhand einer sogenannten HID identifiziert und dadurch für eine nachfolgende Überwachung registriert. Des Weiteren verfügt die Remote-Einheit über einen separaten I²C-Bus, der speziell zur Steuerung (watchdog, heartbeat) des Stromversorgungsmoduls verwendet wird. Sobald die Modul-Erkennung abgeschlossen ist, wechselt der HwAccessLink in den Überwachungsmodus. Jedes Modul kann verschiedene Alarme melden diese werden in ein definiertes Format transformiert und durch eine entsprechende Notifizierung zur Zentraleinheit übertragen. Ein weiterer Bestandteil des Überwachungsmechanismus ist der 'dr-mode', der mit einem kürzeren Interval arbeitet und zusätzliche Modulparameter protokollieren kann. Während die Überwachung im Hintergrund weiter ausgeführt wird, können Befehle an verschiedene Module gesendet werden. Dazu werden die empfangenen XML-Nachrichten in das CAN-Nachrichtenformat transformiert und unter Verwendung des Busprotokolls an das Modul übertragen. Die Antwort wird wieder in das definierte XML-Format zurückübersetzt. Die Nachrichten können, direkt vom Benutzer über eine grafische Benutzerschnittstelle initiiert werden oder durch externe Service-Prozesse. Dies wird vor allem für die Konfiguration des Systems und dem Leveling verwendet, wobei letzteres zur Maximierung der Sendeleistung erforderlich ist.
EventBus
Für die Interprozesskommunikation wird eine Server-Applikation verwendet die ereignisorientiert unterschiedliche Prozesse mit Nachrichten versorgt. Die Reimplementierung bzw. Erweiterung betrifft insbesondere die Annahme sowie Verteilung der Nachrichten. Unter Verwendung der Standard Unix-IPC Methoden können sich Prozesse für bestimmte Ereignisse registrieren sowie Ereignisse protokollieren. Sofern ein entsprechendes Ereignis auftritt, erhalten die angemeldeten Prozesse den Hinweis auf ein Ereignis.
dbLiteWrapper
Der verwendete Datenbank-Adapter soll erweitert werden. Fehlende Funktionen, wie zum Beispiel der prepare-Statement Mechanismus werden benötigt. Auch ein Multiprozess-Support, zur Synchronisation gleichzeitiger Zugriffe, und eine Thread-Protection sind erforderlich.
CAN-Bus (controller area network), Enterprise Architect (EA), Ethernet, Kanban (Softwareentwicklung), Linux Entwicklung, Programmierer C, C++, Scrum, SQL, TCP / IP, XML
12/2010 – 10/2011
Tätigkeitsbeschreibung
Im Bereich Datenverarbeitung und Systemintegration habe ich folgende Teilprojekte erfolgreich umgesetzt.
High-Speed-Internet – Prozesskonsolidierung & Datenverarbeitung
Reimplementierung der bestehenden Auswertungsprozesse, um sieben Einzelprogramme durch ein zentrales Kontrollprogramm zu ersetzen. Erweiterung der -Komponente für den Transfer großer Datenmengen sowie Neuentwicklung der Importkomponente des Delphi-Systems mit direkter Datenverarbeitung (ohne DBLink). Sicherstellung einer korrekten Verarbeitung der SCPM-Daten auch bei . Entwicklung eines Notification-Tools zur serverübergreifenden Logfile-Auswertung mit visueller Darstellung der Statusinformationen auf dem Desktop.
Video-on-Demand – Datenimport & Analyse
Verarbeitung von XML- und CSV-Daten inklusive Erkennung relevanter Inhalte, Konvertierung und Import in entsprechende Datenbanktabellen. Generierung zusätzlicher Metadaten während des Importvorgangs zur späteren Analyse. Berücksichtigung von Performance- und Ressourcenanforderungen aufgrund hoher Datenvolumina im Produktivbetrieb.
Access-Dispatcher – Hochperformante Kommunikationsschnittstelle
Reimplementierung des Access-Dispatchers in C/C++ zur Kommunikation zwischen zOS-Clients und mehreren Unix-Servern. Nutzung von Shared-Memory-Segmenten, die pro Client über dedizierte Threads verwaltet werden. Automatisches Starten von Serverprozessen bei Bedarf. Auslegung auf hohe Performance, Skalierbarkeit (> 5.000 parallele Clientanfragen) und Robustheit. Der abschließende Destructive-Testlauf wurde erfolgreich bestanden.
Postgresql, SQL, Programmierer C, C++, Python-Programmierer, Git, Linux Entwicklung, Windows NT, Oracle Database
Ausbildung
Hochschule RheinMain
Wiesbaden
Persönliche Daten
- Deutsch (Muttersprache)
- Englisch (Fließend)
- Europäische Union
Kontaktdaten
Nur registrierte PREMIUM-Mitglieder von freelance.de können Kontaktdaten einsehen.
Jetzt Mitglied werden
