Q4 2020 - Q4 2020: Inbetriebnahme eines IMX6UL-Boards
Aufgaben:
Inbetriebnahme eines IMX6UL-Boards. Anhand des Schaltplans eines kundenspezifischen Boards auf Basis eines IMX6UL-Prozessors wurde ein Device-Tree und und zugeschnittener Linux-Kernel erstellt. Auf diesen aufbauend wurde eine Root-File-System mit der Yocto-Buildumgebung als Basis für die weitere Applikationserstellung bereit gestellt. Schwerpunkt war der manuelle und automatisierte Test der einzelnen Board-Schnittstellen: CAN, SPI, Seriell, USB, I2C, Flash, eMMC, GPIO und einem parallelen Bus zu einem FPGA.
Q2 2020 - Q3 2020: Entwicklung einer Auswerte-Software
Aufgaben:
Entwicklung einer Auswerte-Software (mit C++17 und Qt5 / Qwt), die aus einem Produktionsprozess konfigurierbare Meßwerte periodisch über das Netzwerk ausliest und dem Benutzer die Möglichkeit anbietet, diese nach verschiedenen Kriterien zu Filtern, Sortieren und statistisch (Histogramme, Wahrscheinlichkeitsnetze, ...) auszuwerten. Für längere Auswertungen kann die Software die eingelesenen Daten lokal zwischenspeichern. Aus dieser Datenhistorie heraus konnte der Benutzer frei konfigurierbar verschiedene Datensätze miteinander vergleichen und mit den bestehenden Auswertemethoden weiter inspezieren. Eine hohe Software-Performance und Parallelität der Auswertealgorithmen war ein wichtiges Entwicklungsziel, um auch längere Datenaufzeichnungen interaktiv auswerten zu können. Die Software-Dokumentation wurde im Quelltext gepflegt und mittels Doxygen in eine HTML- und PDF-Ausgabe generiert. Die Software läuft und Windows und Linux.
Q1 2020 - Q1 2020: Entwicklung eines Web-Frontends
Aufgaben:
Entwicklung eines Web-Frontends für eine Steuerungseinheit mit dem Ziel alle Einstellparameter von allen bekannten Mobilplatformen aus auslesen und verändern zu können. Auf der UI wurde mit dem Vue.js Framework die Bedienerführung in Anlehnung an die Gerätesteuerung umgesetzt. Im Backend wurde ein leichtgewichtiger Webserver (Lighttpd, CGI) in den Controller integriert, der an die bestehende Steuerungssoftware (in C) angekoppelt wurde. Außerdem wurde die Möglichkeit über die neu geschaffene Web-Schnittstelle ein System-Update einspielen zu können, geschaffen.
2016 - 2019: Entwicklung einer Echtzeitsteurung
Aufgaben:
Entwicklung einer Echtzeitsteurung auf Basis von Linux-RT/ Xenomai zu einem FPGA auf einem i.MX6 ARM-Prozessor. Der Fokus der Applikation (in C/C++) lag auf einem zeitlich deterministischen Verhalten bei der Datenverarbeitung und -weitergabe über verschiedene Schnittstellen. Die Datenaufbereitung für die Web-UI (Back-End auf NodeJS-Basis) musste über ein eigens erstelltes Protokoll von der Echtzeitapplikation entkoppelt werden, um dann die Web-UI kontinuierlich mit geänderten Daten zu versorgen (mittels JSON uber Web-Sockets). Die hohe Anforderung an Stabilität und Qualität im industriellen Umfeld wurde mittels eines Buildsystems (Yocto) und automatisierten Tests (auf Python-Basis) erreicht. Die Dokumentation für intern/ extern wurde mit HTML erstellt, bzw. über Markup in ein Wiki eingepflegt.
2014 - 2015: Automatisierung der Produktion
Aufgaben:
Als selbstständiger Entwickler Mitarbeit in einem Projekt zur Automatisierung der Produktion im Maschinenbaubereich. Aufgabe war die Entwicklung von geeigneten Algorithmen zur optimalen Durchsatzsteuerung, Implementierung und Inbetriebnahme. Eine C++/Qt Windows-Desktop-Applikation ermittelte kontinuierlich Messdaten, die in der GUI dargestellt wurden. Anhand der Messdaten wurden optimierte Einstellungen für den Linienbetrieb vorgeschlagen.
Kenntnisse:
OOA/OOD/OOP in C++, Qt, Dokumentation mit Doxygen/ HTML
2010 - 2014: Fachliche Leitung eines Projekts
Aufgaben:
Fachliche Leitung eines Projekts (Mitarbeiter in Shenzhen/ China) mit dem Ziel angepasste Messmethodiken zu entwicklen und zu implementieren, mit fachlichen und GUI-Tests zu validieren und bei lokalen chinesischen Kunden zu integrieren.
2007 - 2010: Erweiterungen der Remoteschnittstelle
Aufgaben:
Mehrere Erweiterungen der Remoteschnittstelle zur besseren Integration in verschiedene Kundenprojekte. Die Spezikation erfolgte stets in engen Zusammenarbeit mit dem jeweiligen Kunden. Erweiterung des GUI-Komponentenbaukastens um neue Messthemen (beispielsweise Ethernet) und jeweils angepassten GUI-Widgets (grasche Darstellung von Zustanden, Verläufen und Messdaten). Parallel dazu Portierung bestehender GUI-Komponenten auf Swing und eine neuere Java-Version.
2005 - 2007: Ausbau der Regression-Tests
Aufgaben:
Ausbau der Regression-Tests für die gesamte Gerätefamilie (mit C und Tcl/Tk) und parallel dazu Ausbau der modularen GUI-Bibliothek für die abgesetzte Gerätebedienung
Kenntnisse:
OOD/OOP in Java/Eclipse, Corba für die Client-Server Verbindung und Doxygen für die Kundendokumentation
03/2003 - 2005: Design und Implementierung
Aufgaben:
Design und Implementierung eines Testrahmens für automatisierbare Regression- und Black Box-Tests. Erstellung von Tcl/Tk und C Treiber für das MultiChannel SDH/SONET Projekt in direkter Zusammenarbeit (teilweise vor Ort) mit einem Großkunden in den USA. Erstellung einer abgesetzten. GUI mit Java/ Corba zur Testüberwachung. Im März 2004 Auszeichnung [auf Anfrage]
2000 - 02/2003: Software-Architekturimplementierung
Aufgaben:
Zu Beginn überschneidend mit der Software-Architekturimplementierung danach vollzeitig Analyse, Design und Implementierung eines Nachfolgegeräts für die optische Spektrumsanalyse. Aufbauend auf dem optischen Spektrum Entwicklung eines Algorithmuses für die Messung der Polarisationsmodendispersion (PMD) mittels einer Zweifachmessung und einem optischen Polarisator.
Kenntnisse:
Rational Rose (Use Cases, UML), Eclipse (Java-GUI-Entwicklung), Gnu C++ (Applikation) und Visual Page (Dokumentation)
09/1999 - 2001: Analyse, Design und Implementierung
Aufgaben:
Mitarbeit bei der Analyse, Design und Implementierung einer komponentenbasierenden verteilten Software-Architektur für eine neue Gerätefamilie. Ziel war es eine skalierbare und für neue Applikationen offene Platform zu erstellen, die außerdem leicht fernzubedienen und fernzusteuern ist. Anschließend Entwicklung einiger Komponenten für mehrere Applikationen auf dieser Platform.
Kenntnisse:
Rational Rose (Use Cases, UML), Gnu C++, Java, CORBA, XML
04/1998 - 08/1999: Entwicklung einer Anwendersoftware
Aufgaben:
Entwicklung einer Anwendersoftware für einen optischen Spektrumanalysator, in der von der Hardware gelieferte Rohdaten algorithmisch aufbereitet und in der grafischen Oberfläche angezeigt wurden.
Kenntnisse:
Borland C++ und Rational Rose
07/1997 - 03/1998: Weiterentwicklung der Diplomarbeit
Aufgaben:
Weiterentwicklung der Diplomarbeit in ein kommerzielles Produkt. Aus den Erkenntnissen der Diplomarbeit entstand eine Überwachungssoftware für Glasfaserstrecken auf Basis eines OTDR (Optical Time Domain Reflectometer), mit der es möglich war, mehrere Mess-Clients zu überwachen und bei Auftreten von Unregelmäßigkeiten Alarme über das LAN zu versenden.
Kenntnisse:
MS-Visual C++ (MFC) und Rational Rose (Booch Diagramme)
1992 - 1997
Studium der Elektrotechnik an der Universität Gesamthochschule Siegen
Abschluß als Diplom-Ingenieur, Note: 2,2
Thema der Studienarbeit: auf Anfrage
Thema der Diplomarbeit: auf Anfrage
1991 - 1992
Grundwehrdienst in Koblenz als Instandsetzungsmechaniker für Stromerzeuger
1988 - 1991
Hardtberg Gymnasium Bonn
Abschluß mit der Allgemeinen Hochschulreife (Abitur)
1982 - 1988
Realschule Hardtberg Bonn
1978 - 1982
Finkenhof Grundschule Bonn
beruflicher Werdegang
2014 - heute
Position:Selbstständiger Softwareentwickler
Aufgaben:
1997 - 2014
Position:Softwareentwickler
Aufgaben:
Q4 2020 - Q4 2020: Inbetriebnahme eines IMX6UL-Boards
Aufgaben:
Inbetriebnahme eines IMX6UL-Boards. Anhand des Schaltplans eines kundenspezifischen Boards auf Basis eines IMX6UL-Prozessors wurde ein Device-Tree und und zugeschnittener Linux-Kernel erstellt. Auf diesen aufbauend wurde eine Root-File-System mit der Yocto-Buildumgebung als Basis für die weitere Applikationserstellung bereit gestellt. Schwerpunkt war der manuelle und automatisierte Test der einzelnen Board-Schnittstellen: CAN, SPI, Seriell, USB, I2C, Flash, eMMC, GPIO und einem parallelen Bus zu einem FPGA.
Q2 2020 - Q3 2020: Entwicklung einer Auswerte-Software
Aufgaben:
Entwicklung einer Auswerte-Software (mit C++17 und Qt5 / Qwt), die aus einem Produktionsprozess konfigurierbare Meßwerte periodisch über das Netzwerk ausliest und dem Benutzer die Möglichkeit anbietet, diese nach verschiedenen Kriterien zu Filtern, Sortieren und statistisch (Histogramme, Wahrscheinlichkeitsnetze, ...) auszuwerten. Für längere Auswertungen kann die Software die eingelesenen Daten lokal zwischenspeichern. Aus dieser Datenhistorie heraus konnte der Benutzer frei konfigurierbar verschiedene Datensätze miteinander vergleichen und mit den bestehenden Auswertemethoden weiter inspezieren. Eine hohe Software-Performance und Parallelität der Auswertealgorithmen war ein wichtiges Entwicklungsziel, um auch längere Datenaufzeichnungen interaktiv auswerten zu können. Die Software-Dokumentation wurde im Quelltext gepflegt und mittels Doxygen in eine HTML- und PDF-Ausgabe generiert. Die Software läuft und Windows und Linux.
Q1 2020 - Q1 2020: Entwicklung eines Web-Frontends
Aufgaben:
Entwicklung eines Web-Frontends für eine Steuerungseinheit mit dem Ziel alle Einstellparameter von allen bekannten Mobilplatformen aus auslesen und verändern zu können. Auf der UI wurde mit dem Vue.js Framework die Bedienerführung in Anlehnung an die Gerätesteuerung umgesetzt. Im Backend wurde ein leichtgewichtiger Webserver (Lighttpd, CGI) in den Controller integriert, der an die bestehende Steuerungssoftware (in C) angekoppelt wurde. Außerdem wurde die Möglichkeit über die neu geschaffene Web-Schnittstelle ein System-Update einspielen zu können, geschaffen.
2016 - 2019: Entwicklung einer Echtzeitsteurung
Aufgaben:
Entwicklung einer Echtzeitsteurung auf Basis von Linux-RT/ Xenomai zu einem FPGA auf einem i.MX6 ARM-Prozessor. Der Fokus der Applikation (in C/C++) lag auf einem zeitlich deterministischen Verhalten bei der Datenverarbeitung und -weitergabe über verschiedene Schnittstellen. Die Datenaufbereitung für die Web-UI (Back-End auf NodeJS-Basis) musste über ein eigens erstelltes Protokoll von der Echtzeitapplikation entkoppelt werden, um dann die Web-UI kontinuierlich mit geänderten Daten zu versorgen (mittels JSON uber Web-Sockets). Die hohe Anforderung an Stabilität und Qualität im industriellen Umfeld wurde mittels eines Buildsystems (Yocto) und automatisierten Tests (auf Python-Basis) erreicht. Die Dokumentation für intern/ extern wurde mit HTML erstellt, bzw. über Markup in ein Wiki eingepflegt.
2014 - 2015: Automatisierung der Produktion
Aufgaben:
Als selbstständiger Entwickler Mitarbeit in einem Projekt zur Automatisierung der Produktion im Maschinenbaubereich. Aufgabe war die Entwicklung von geeigneten Algorithmen zur optimalen Durchsatzsteuerung, Implementierung und Inbetriebnahme. Eine C++/Qt Windows-Desktop-Applikation ermittelte kontinuierlich Messdaten, die in der GUI dargestellt wurden. Anhand der Messdaten wurden optimierte Einstellungen für den Linienbetrieb vorgeschlagen.
Kenntnisse:
OOA/OOD/OOP in C++, Qt, Dokumentation mit Doxygen/ HTML
2010 - 2014: Fachliche Leitung eines Projekts
Aufgaben:
Fachliche Leitung eines Projekts (Mitarbeiter in Shenzhen/ China) mit dem Ziel angepasste Messmethodiken zu entwicklen und zu implementieren, mit fachlichen und GUI-Tests zu validieren und bei lokalen chinesischen Kunden zu integrieren.
2007 - 2010: Erweiterungen der Remoteschnittstelle
Aufgaben:
Mehrere Erweiterungen der Remoteschnittstelle zur besseren Integration in verschiedene Kundenprojekte. Die Spezikation erfolgte stets in engen Zusammenarbeit mit dem jeweiligen Kunden. Erweiterung des GUI-Komponentenbaukastens um neue Messthemen (beispielsweise Ethernet) und jeweils angepassten GUI-Widgets (grasche Darstellung von Zustanden, Verläufen und Messdaten). Parallel dazu Portierung bestehender GUI-Komponenten auf Swing und eine neuere Java-Version.
2005 - 2007: Ausbau der Regression-Tests
Aufgaben:
Ausbau der Regression-Tests für die gesamte Gerätefamilie (mit C und Tcl/Tk) und parallel dazu Ausbau der modularen GUI-Bibliothek für die abgesetzte Gerätebedienung
Kenntnisse:
OOD/OOP in Java/Eclipse, Corba für die Client-Server Verbindung und Doxygen für die Kundendokumentation
03/2003 - 2005: Design und Implementierung
Aufgaben:
Design und Implementierung eines Testrahmens für automatisierbare Regression- und Black Box-Tests. Erstellung von Tcl/Tk und C Treiber für das MultiChannel SDH/SONET Projekt in direkter Zusammenarbeit (teilweise vor Ort) mit einem Großkunden in den USA. Erstellung einer abgesetzten. GUI mit Java/ Corba zur Testüberwachung. Im März 2004 Auszeichnung [auf Anfrage]
2000 - 02/2003: Software-Architekturimplementierung
Aufgaben:
Zu Beginn überschneidend mit der Software-Architekturimplementierung danach vollzeitig Analyse, Design und Implementierung eines Nachfolgegeräts für die optische Spektrumsanalyse. Aufbauend auf dem optischen Spektrum Entwicklung eines Algorithmuses für die Messung der Polarisationsmodendispersion (PMD) mittels einer Zweifachmessung und einem optischen Polarisator.
Kenntnisse:
Rational Rose (Use Cases, UML), Eclipse (Java-GUI-Entwicklung), Gnu C++ (Applikation) und Visual Page (Dokumentation)
09/1999 - 2001: Analyse, Design und Implementierung
Aufgaben:
Mitarbeit bei der Analyse, Design und Implementierung einer komponentenbasierenden verteilten Software-Architektur für eine neue Gerätefamilie. Ziel war es eine skalierbare und für neue Applikationen offene Platform zu erstellen, die außerdem leicht fernzubedienen und fernzusteuern ist. Anschließend Entwicklung einiger Komponenten für mehrere Applikationen auf dieser Platform.
Kenntnisse:
Rational Rose (Use Cases, UML), Gnu C++, Java, CORBA, XML
04/1998 - 08/1999: Entwicklung einer Anwendersoftware
Aufgaben:
Entwicklung einer Anwendersoftware für einen optischen Spektrumanalysator, in der von der Hardware gelieferte Rohdaten algorithmisch aufbereitet und in der grafischen Oberfläche angezeigt wurden.
Kenntnisse:
Borland C++ und Rational Rose
07/1997 - 03/1998: Weiterentwicklung der Diplomarbeit
Aufgaben:
Weiterentwicklung der Diplomarbeit in ein kommerzielles Produkt. Aus den Erkenntnissen der Diplomarbeit entstand eine Überwachungssoftware für Glasfaserstrecken auf Basis eines OTDR (Optical Time Domain Reflectometer), mit der es möglich war, mehrere Mess-Clients zu überwachen und bei Auftreten von Unregelmäßigkeiten Alarme über das LAN zu versenden.
Kenntnisse:
MS-Visual C++ (MFC) und Rational Rose (Booch Diagramme)
1992 - 1997
Studium der Elektrotechnik an der Universität Gesamthochschule Siegen
Abschluß als Diplom-Ingenieur, Note: 2,2
Thema der Studienarbeit: auf Anfrage
Thema der Diplomarbeit: auf Anfrage
1991 - 1992
Grundwehrdienst in Koblenz als Instandsetzungsmechaniker für Stromerzeuger
1988 - 1991
Hardtberg Gymnasium Bonn
Abschluß mit der Allgemeinen Hochschulreife (Abitur)
1982 - 1988
Realschule Hardtberg Bonn
1978 - 1982
Finkenhof Grundschule Bonn
beruflicher Werdegang
2014 - heute
Position:Selbstständiger Softwareentwickler
Aufgaben:
1997 - 2014
Position:Softwareentwickler
Aufgaben: