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.
+49 89 500316-300
Softwareentwicklung, Unix, Linux, ARM, Embedded, C, C++, Perl, Python, XML, SQL
D7
Ich möchte bevorzugt für Projekte in diesen Einsatzorten kontaktiert werden.
Projekte
05/2018 - 04/2020
2 Jahre
TALL Transport System
RolleSoftwareingenieurEinsatzortStuttgartProjektinhalteKenntnisseC++11
Linux
Embedded C++
Yocto
Jenkins
RS422
IEC62304
IEC60601
ProdukteYocto
Jenkins
SonarQube
Enterprise Architect
Gtests
Protobuf
Bitbucket
Git
GNU-Compilersammlung
HP ALM
03/2017 - 04/2018
1 Jahr 2 Monate
European Train Control System
RolleSoftwareingenieurEinsatzortStuttgartProjektinhalteAls 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.
KenntnisseETCS
SIL4
MISRA
Test-Driven
Embedded
Scrum
C/C++
EN50128
ProdukteEclipse
Emacs
IBM Rational DOORS
Jira
IBM Rational Rhapsody
google-Test
google-Mock
QAC/QAC++
11/2011 - 02/2017
5 Jahre 4 Monate
ION-U® ( Distributed-Antenna-System )
RolleSoftwareingenieur, SoftwarearchitektProjektinhalteKomponente : HwAccess
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 HwAccess 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.
Komponente : eventmanager
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.
Komponente : dbWrapper
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.
KenntnisseC/C++
SQL
IM Bus
I2C Bus
XML
C++ STL
Scrum
Sockets
Unix IPC
ProdukteEmacs
Enterprise-Architect
Polarion
log4cplus
SQLite3
OpenEmbedded
Yocto
svn
make
07/2011 - 10/2011
4 Monate
High-Speed-Internet
RolleSoftwareingenieur, SoftwarearchitektProjektinhalteFür die Auswertung der High-Speed-Internet Daten sollen die vorhandenen Prozesse reimplementiert werden. Dadurch werden sieben einzelne Programme durch ein einziges Kontrollprogramm ersetzt. Dazu wird es notwendig sein die pgsmart Komponente bzgl. dem Transfer großer Datenmengen zu erweitern. Des Weiteren soll die Importkomponente des 'Delphi-Systems' neu erstellt werden, mit dem Fokus die Daten direkt zu verarbeiten (Stichwort: Ohne DBLink). Eine weitere Aufgabenstellung bezieht sich auf die SCPM-Daten. Die Verarbeitung muss auch bei einer 'Primary-Key-Violation' erfolgreich und korrekt abgeschlossen werden. Ferner wird ein Notification-Tool benötigt, dass beliebig viele Server und deren Logfiles auswerten kann und diese Statiinformationen dem Anwender, visuellaufbereitet, auf dem Desktop darstellt.
KenntnisseAgile Entwicklung
SQL
Python
regexp
threads
ProdukteEmacs
Doxygen
Maketools
Oracle 10g
PostgreSQL 9
MS Windows
Linux / CentOS
python 2.5
PyQt 4.8.5
Git
03/2011 - 06/2011
4 Monate
AccessDispatcher
RolleSoftwareentwicklerProjektinhalteReimplementierung des AccessDispatcher unter Verwendung vom C/C++. Für die Kommunikation zwischen Clientanwendungen (zOS) und mehreren Unix-Servern, soll der Access-Dispatcher ankommende Anfragen annehmen und an die entsprechenden Server-Prozesse weiterleiten. Pro Client übernimmt ein Thread die Verwaltung eines Shared-Memory Segments, das für die Kommunikation zwischen Client- und Serverapplikation verwendet werden soll. Ausserdem soll der Access-Dispatcher, sofern kein aktiver Serverprozess vorhanden ist, diesen eigen-ständig starten. Sehr hohe Anforderungen bzgl. Performance, Skalierung (> 5000 parallele Clientanfragen) sowie Robustheit werden abschliessend vom einem Testteam überprüft. Der Destructive-Testlauf konnte erfolgreich abgeschlossen werden.
KenntnisseC/C++
Linux
Unix Solaris
Sockets
pthreads (posix 1003.1)
zOS
ProdukteEmacs
Maketools
mercurial
ncurses
Doxygen
12/2010 - 02/2011
3 Monate
VoD Import
RolleSoftwareingenieur, SoftwarearchitektProjektinhalteFür die VoD-Analyse sollen XML- und CSV-Daten eingelesen, gefiltert und in entsprechende DB-Tabellen importiert werden. Dabei ist die Erkennung relevanter Informationen sowie deren Konvertierung zu berücksichtigen. Des Weiteren werden, während der Importphase, zusätzliche Metadaten erzeugt, die für die spätere Endauswertung relevant sind. Da für den Produktiv-einsatz mit hohen Datenmengen zu rechnen ist, werden sowohl Ressourcenkonsum als auch Performanceaspekte berück-sichtigt.
KenntnisseAgile Entwicklung
SQL
XML SAX
regexp
Linux
ProdukteEmacs
Doxygen
PostgreSQL
Python
Git
07/2010 - 11/2010
5 Monate
FN-Visual
RolleSoftwareentwicklerProjektinhalteDie verwendete GUI soll erweitert werden, sodass auch die Produktdaten angezeigt werden. Vor allem sollen die Grafiken (Balken- und Liniendiagramme) skalierbar in der Darstellung sein. Um das zu erreichen soll das SVG-Grafikformat verwendet.
KenntnisseJava
SQL
ProdukteEclipse
Maven
DB2
Apache Tomcat
JDBC
svn
01/2010 - 06/2010
6 Monate
PrismaSeasn
RolleSoftwareingenieurProjektinhalteSpeziell für Produkte aus dem Fashionbereich, müssen die Prognose-Algorithmen ein differenziertes Verhalten bzgl. der Langzeitprognose aufweisen. Es soll ein Verfahren implementiert werden, das eine automatische Erkennung aufgrund dynamischer Gruppierungsverfahren (Stichwort: Clustering, Data-Mining) ermöglicht.
KenntnisseC/C++
SQL
LInux
ProdukteEmacs
make
CPPUnit
PostgreSQL
07/2009 - 12/2009
6 Monate
AnalyseUnified
RolleSoftwareentwicklerProjektinhalteVerschiedene Auswertungstools, programmiert in unterschiedlichen Programmiersprachen (awk, perl, shell und C++), sollen durch eine einzige Programmapplikation ersetzt werden. Als Programmiersprache soll Perl eingesetzt werden, weil die Unterstützung durch das DB-Interface hervorragend und vor allem performant ist. Die verwendeten statistischen Verfahren werden bei dieser Gelegenheit, bedarfsorientiert, verbessert und um zusätzliche Funktionen erweitert. Die Güte der Verfahren soll durch abschließende Tests verifiziert werden.
KenntnissePerl
SQL
Linux
ProdukteEmacs
svn
PostgreSQL
06/2008 - 06/2009
1 Jahr 1 Monat
ldl-Promo
RolleSoftwareingenieur, SoftwarearchitektProjektinhalteBasierend auf vorhandenen Aktionsprofilen sowie aktueller bzw. zukünftiger Aktionsparameter soll das Prognose-System Preisaktionen bzgl. Menge und Zeitpunkt vorhersagen können.
Die neue Komponente wird als Upgrade von V3 auf V4 erfasst. Die einzelnen Softwarekomponenten müssen eine Endabnahme bestehen. Dabei sollen alle automatisierten Tests erfolgreich abgeschlossen werden. Alle Ergebnisse müssen einem Soll/Ist Vergleich standhalten.
KenntnisseC/C++
STL
Boost
SQL
Linux
ProdukteEmacs
make
cvs
Doxygen
CPPUnit
PostgreSQL
MySQL
05/2007 - 05/2008
1 Jahr 1 Monat
PrismaSupply
RolleSoftwareingenieur, SoftwarearchitektProjektinhalteDie Kern-Algorithmen für die Berechnung der Belieferungsstrategie funktionierten nur für eine Teilmenge der möglichen Vorgaben. Die Reimplementierung der Kernfunktionalität mit abschließendem Test ist unumgänglich. Für diesen Test wurden ca. 35000 Testfälle künstlich erzeugt. Zur Datenreferenzierung soll zusätzlich ein Filter, SQL basiert, implementiert werden. Des Weiteren muss ein Algorithmus implementiert werden der die vorhandene Liefermengen in eine Sollbestandsmenge um- rechnet. Zusätzlich sollen alle Sicherheitsparameter eines Bestellvorschlags berücksichtigt werden.
KenntnisseC/C++
STL
SQL
Linux
ProdukteEmacs
make
STL
CPPUnit
Oracle 10g
Toad/Tora
11/2006 - 04/2007
6 Monate
DBH-Oracle-Adapter
RolleSoftwareentwicklerProjektinhalteIm Zuge einer Testphase konnte gezeigt werden, dass der verwendete Oracle-Adapter fehlerhaft arbeitet. Durch die Reimplementierung dieses Adapters sollen auch die problematischen Testfälle erfolgreich verarbeitet werden.
KenntnisseC/C++
STL
SQL
Linux
ProdukteEmacs
make
cvs
Oracle 10g
SQuirreL
05/2006 - 10/2006
6 Monate
PrismaSupply
RolleSoftwareentwicklerProjektinhalteBasierend auf historischen Daten soll eine einfache Auswertung erstellt werden, die für die Ermittlung der Belieferungsmengen in den Hauptsaisons verwendet werden kann.
KenntnisseC/C++
STL
Perl
Python
SQL
Linux
ProdukteEmacs
make
cvs
Doxygen
MySQL
05/2005 - 04/2006
1 Jahr
Optimierung der Clusterverfahren
RolleSoftwareingenieurProjektinhalteDie Güte der Clusterung nicht ausreichend, deswegen soll das Verfahren durch ein besseres H.-K-Means ersetzt werden. Ein abschließender Test, dabei werden Produktivdaten verwendet, muss erfolgreich abgeschlossen werden. Zur Verfikation der Clusterqualität wird ein Tool mit GUI benötigt, dieses wird mit Python unter Verwendung der TKInter-API umgesetzt.
KenntnisseC/C++
STL
Python
OS390
ProdukteEmacs
make
cvs
Doxygen
CPPUnit
11/2003 - 04/2005
1 Jahr 6 Monate
Arima-Engine
RolleSoftwareingenieur, SoftwarearchitektProjektinhalteDie vorhandene Prognose-Engine soll redesigned und reimplementiert werden. Des Weiteren soll eine Test-Datenbank Verwendung finden, die ausgesuchte Referenzdaten zur Verfügung stellt, sodass semantische Tests ausgeführt werden können. Zusätzlich sollen für alle Basis-Algorithmen Test erstellt werden.
KenntnisseC/C++
STL
SQL
Linux
ProdukteEmacs
make
cvs
Doxygen
freetds
Sybase
MS-SQL Server
01/2003 - 10/2003
10 Monate
VFN
RolleSoftwareingenieurProjektinhalteDie Hauptaufgabe ist die Implementierung eines Batch-Moduls, das den gesamten Datentransfer steuert. Der Datentransfer zwischen dem Cobol-Interface und dem C++-Programm soll dabei dateiorientiert stattfinden. Das Protokoll hierzu wird gemeinsam mit dem hausinternen Dienstleister des Kunden, der Itellium GmbH, erarbeitet.
Aufgrund der hohen Prozesskosten auf dem Host-Rechner ist die Steigerung der Performance und die dadurch reduzierte Laufzeit, zwingend erforderlich.
KenntnisseC/C++
STL
STLPort
SQL
OS390
ProdukteEmacs
XlC++
make
Doxygen
DB2
09/2002 - 12/2002
4 Monate
Arima DBI
RolleSoftwareingenieurProjektinhalteCode-Reviewing und Code-Refactoring der Softwarekomponenten. Beratend tätig für die Konzeption und Realisierung des Datenbankinterface. Funktionelle Erweiterung der hausinternen Groupware. Definition eines Style-Guides zur Gewährleistung der Entwicklungsqualität.
KenntnisseC/C++
STL
PHP
SQL
Linux
ProdukteEmacs
make
cvs
Doxygen
Sybase
10/2001 - 08/2002
11 Monate
WaWi I/O Prozesse
RolleSoftwareingenieurProjektinhalteDie neue Warenwirtschaftsumgebung (CARUS AG) macht es erforderlich die Import- & Exportprozesse zu reimplementieren. Programmteile die noch in ANSI-C implementiert sind, sollen durch C++ Implementierungen ersetzt werden. Außerdem muss das Prozesskontroll-Modul neu implementiert werden. Dieses soll die einzelnen Prozesse überwachen und entsprechend steuern.
KenntnisseC/C++
STL
Unix IPC
Linux
ProdukteEmacs
make
cvs
Doxygen
08/2001 - 09/2001
2 Monate
IS/Process-Watchdog
RolleSoftwareentwicklerProjektinhalteIm ersten Schritt soll für die Abteilung 'Intelligente Systeme' soll die Prozesssteuerung mittels eines einfachen Shell-Skriptes automatisiert werden.
Der XMLSentinel soll als Server-Prozess, den Datenaustausch zwischen verschiedenen Datenbankpools, überwachen und entsprechende Protokollmeldungen erstellen. Die Grammatik (Struktur) der Daten wird durch verschiedene XMLSchemas beschrieben, sodass der XMLSentinel syntaktische Test autonom ausführen kann.
KenntnisseShell-Script
Java
Linux
Solaris
ProdukteEmacs
make
JDeps
vss
Xcerces
Xalan
04/2001 - 07/2001
4 Monate
XML/XSL Konverter
RolleSoftwareentwicklerProjektinhalteDas Content-Managementsystem der Firma Webfair soll für das Portal der Kardex-Remstar AG verwendet werden. Webfair benutzt für die Aufbereitung des Content eine XML orientierte Vorgehensweise. Dabei bedarf es der Implementierung eines Konverters pro Content-Seite.
Das anschliessende Upgrade der Webfair Engine macht es erforderlich die XML/XSL Konverter zu reimplementieren und die Strukturen neu zu definieren.
KenntnisseJava
Windows NT
SQL
XML
JavaDoc
Solaris
ProdukteEmacs
make
JDeps
vss
Xcerces
Xalan
Webfair
MS-SQL Server
01/2001 - 03/2001
3 Monate
FIFA-Ticketsystem
RolleSoftwarearchitektProjektinhalteFür den Datentransfer eine Ticketsystems, soll eine XML basierte Lösung aufgezeigt werden. Die Erstellung des Feinkonzepts und die Implementierung diverser Prototypen soll zeitnah fertiggestellt werden. Letzteres soll die Machbarkeit des Ansatzes untermauern.
KenntnisseJava
XML
Linux
ProdukteEmacs
make
JDeps
vss
Xcerces
Xalan
ebXML
10/2000 - 12/2000
3 Monate
Future Bank
RolleSoftwareentwicklerProjektinhalteAls Mitglied des Intershop-Teams (Future Bank Projekt) muss die Visualisierung der Finanzdaten mit den bestehenden Funktionen der AWT 1.1.8 Version umgesetzt werden. Die Verwendung der besagten AWT Version macht die Erweiterung unabdingbar um den Anforderungen gerecht werden zu können.
Das Contact-Team des Future Bank Projekts benötigt Unterstützung im Unix Administrationsumfeld. Nachdem die benötigten Softwarepakete installiert und konfiguriert waren, machten die hohen Sicherheitsanforderungen eine Reimple-mentierung bzw. Erweiterung der Fax-Software-Komponenten erforderlich.
KenntnisseJava
AWT
Solaris
Windows NT
JavaDoc
ProdukteJBuilder
Siebel
PCVS
07/2000 - 09/2000
3 Monate
Connex© Java Interface
RolleSoftwareingenieurProjektinhalteDas vorhandene Java-Interface der Connex©-Suchmaschine muss überarbeitet werden. Mit dem neuen Interface soll ein geringerer Integrationsaufwand, die Erweiterbarkeit, sowei eine bessere Trefferquote sichergestellt werden.
KenntnisseJava
Linux
Solaris
ProdukteEmacs
make
JDeps
JavaDoc
vss
03/1998 - 06/2000
2 Jahre 4 Monate
CAD/Alice
RolleSoftwareingenieur, SoftwarearchitektProjektinhalteUnter der internen Projektbezeichnung ALICE soll eine Applikation entstehen, die Ingenieure bei ihrer Arbeit mit verschiedenen CAD-Systemen unterstützt. Eine Vielzahl von Anforderungen und Problemen soll dabei erfüllt bzw. überwunden werden :
- Die Visualisierung (2D) frei definierbarer Unternehmens-strukturen unter dem Gesichtspunkt des Kunden-/ Projektaufbaus.
- Unterstützung verschiedener CAD-Systeme (CATIA, Pro-Engineer, IcemSurf).
- Zusätzlich zur Referenzplattform AIX (RS6000) ist die Unterstützung von Irix (SGI) vorgeschrieben.
- Definition einer eigenen Skriptsprache zur Steuerung von konfigurierbaren Filter-Tools.
- Anbindung an das vorhandene Backup-System.
- Reimplementierung einiger systemnaher UNIX-Dienste, zur Steigerung der Portabilität.
Ausserdem ist die Implementierung einer separaten GUI unter Verwendung der OpenGL glut-Library notwendig. Modelldaten des IGES Formats sollen importiert und dargestellt werden. Die visuelle Erkennung der Oberflächenverformungen muss mittels eines Environment-Mappings ermöglicht werden.
Die verwendeten Filterprogramme sollen für das CATIA V4.18 CAD-System anwendbar sein. Unter Verwendung der CATIA Funktion-Tools sollen diese von AIX auf HP-UX portiert werden.
KenntnisseC/C++
STL
AIX
HP/UX
Irix
Linux
ProdukteEmacs
XlC
CATIA (V4)
ncurses
Optimizer
Qt
Branchen
Handel
Kompetenzen
Ausbildungshistorie
Diplom Informatiker (FH)