OOA, OOD, OOP, SW-Architektur, Automatisierung, Linux-Embedded + Realtime, GUI, C/C++, Qt, Python, JavaScript, VueJS, DB, TCP/IP, Html, Yocto
Aktualisiert am 03.12.2024
Profil
Freiberufler / Selbstständiger
Remote-Arbeit
Verfügbar ab: 03.02.2025
Verfügbar zu: 20%
davon vor Ort: 100%
C++
Senior SW-Entwickler
Embedded Linux
HTML 5
OOA
SW-Architektur
C
Qt
OOD
Linux-Echtzeitbetriebssystem
realtime-SW
NodeJS
OOP
Test-Automation
Yocto
Git
ARM-Platform
JavaScript
JavaScript Object Notation
TCP/IP
Web-Services
Python
Englisch
verhandlungssicher

Einsatzorte

Einsatzorte

Reutlingen (+150km)
möglich

Projekte

Projekte

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)

Aus- und Weiterbildung

Aus- und Weiterbildung

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

Kompetenzen

Kompetenzen

Top-Skills

C++ Senior SW-Entwickler Embedded Linux HTML 5 OOA SW-Architektur C Qt OOD Linux-Echtzeitbetriebssystem realtime-SW NodeJS OOP Test-Automation Yocto Git ARM-Platform JavaScript JavaScript Object Notation TCP/IP Web-Services Python

Schwerpunkte

OOA/OOD/OOP
Softwarearchitektur
Softwareentwicklung
Testautomatisierung

Produkte / Standards / Erfahrungen / Methoden

beruflicher Werdegang

2014 - heute

Position:Selbstständiger Softwareentwickler

Aufgaben:

  • Applikationsentwicklung, Embedded-Linux, Back-End Data-Provider
  • OOA / OOD / OOP, Design-Patterns und SW-Architektur
  • C/C++, Qt, GNU-Tools, Python, JavaScript, NodeJS, VueJS
  • HTML, CSS, Datenbanken, SQL, Netzwerke, Yocto
  • Test-Automatisierung, Realtime, Xenomai
  • Git, SVN, Doxygen, Bash-Scripting, Eclipse, Web-Sockets

1997 - 2014

Position:Softwareentwickler

Aufgaben:

  • Applikationsentwicklung, Visualisierung und Testautomatisierung
  • OOA / OOD / OOP, Design-Patterns, Client/Server und SW-Architekturen
  • Automatisierung, Linux-Embedded + Realtime
  • Java, C/C++, GNU-Tools, Python, Groovy, JavaScript
  • Qt, TCP/IP, Html, CSS, UML, Git, Datenbanken, SQL
  • Linux, Windows, Solaris

Betriebssysteme

Linux
+ Realtime

Programmiersprachen

Bash-Scripting
C/C++
HTML / CSS
Java SE
JavaScript
NodeJS
Python
Qt
VueJS
Yocto

Datenbanken

JDBC
MySQL
ODBC
Sybase

Datenkommunikation

Html (REST)
TCP/IP
alle gängigen Protokolle
Web Sockets

Einsatzorte

Einsatzorte

Reutlingen (+150km)
möglich

Projekte

Projekte

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)

Aus- und Weiterbildung

Aus- und Weiterbildung

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

Kompetenzen

Kompetenzen

Top-Skills

C++ Senior SW-Entwickler Embedded Linux HTML 5 OOA SW-Architektur C Qt OOD Linux-Echtzeitbetriebssystem realtime-SW NodeJS OOP Test-Automation Yocto Git ARM-Platform JavaScript JavaScript Object Notation TCP/IP Web-Services Python

Schwerpunkte

OOA/OOD/OOP
Softwarearchitektur
Softwareentwicklung
Testautomatisierung

Produkte / Standards / Erfahrungen / Methoden

beruflicher Werdegang

2014 - heute

Position:Selbstständiger Softwareentwickler

Aufgaben:

  • Applikationsentwicklung, Embedded-Linux, Back-End Data-Provider
  • OOA / OOD / OOP, Design-Patterns und SW-Architektur
  • C/C++, Qt, GNU-Tools, Python, JavaScript, NodeJS, VueJS
  • HTML, CSS, Datenbanken, SQL, Netzwerke, Yocto
  • Test-Automatisierung, Realtime, Xenomai
  • Git, SVN, Doxygen, Bash-Scripting, Eclipse, Web-Sockets

1997 - 2014

Position:Softwareentwickler

Aufgaben:

  • Applikationsentwicklung, Visualisierung und Testautomatisierung
  • OOA / OOD / OOP, Design-Patterns, Client/Server und SW-Architekturen
  • Automatisierung, Linux-Embedded + Realtime
  • Java, C/C++, GNU-Tools, Python, Groovy, JavaScript
  • Qt, TCP/IP, Html, CSS, UML, Git, Datenbanken, SQL
  • Linux, Windows, Solaris

Betriebssysteme

Linux
+ Realtime

Programmiersprachen

Bash-Scripting
C/C++
HTML / CSS
Java SE
JavaScript
NodeJS
Python
Qt
VueJS
Yocto

Datenbanken

JDBC
MySQL
ODBC
Sybase

Datenkommunikation

Html (REST)
TCP/IP
alle gängigen Protokolle
Web Sockets

Vertrauen Sie auf Randstad

Im Bereich Freelancing
Im Bereich Arbeitnehmerüberlassung / Personalvermittlung

Fragen?

Rufen Sie uns an +49 89 500316-300 oder schreiben Sie uns:

Das Freelancer-Portal

Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.