Ich bin Diplom-Physiker und seit 1990 als freiberuflicher Systemprogrammierer im Projektgeschäft tätig. In dieser Zeit habe ich umfangreiche Erfahrungen in der selbstständigen Abwicklung von Softwareprojekten erwerben können. In den letzten achtzehn Jahren war ich hauptsächlich im Automotivebereich tätig, parallel zu meiner Projekttätigkeit bilde ich mich seit einiger Zeit etwa durch die erfolgreiche Teilnahme am Udacity Self Driving Car Engineer Nanodegree zum Spezialisten für KI-unterstützte Automotive-Systeme weiter.
Der Schwerpunkt meiner Tätigkeiten lag in der Vergangenheit hauptsächlich in der hardwarenahen Programmierung von mikrocontrollerbasierten Steuergeräten in C/C++ oder auch Assembler, ich habe aber auch wiederholt PC's in C/C++ unter Windows, Unix oder QNX programmiert. Die Bandbreite meiner bisherigen Tätigkeiten reicht von der Programmierung von Hintergrundprozessen unter Unix in C über die Programmierung von graphischen Applikationen unter Windows in C++ und die Entwicklung mobiler Anwendungen in Java oder Javascript bis zur der Programmierung von Firmware für Mikrocontroller ohne Betriebssystem in C oder Assembler.
Ich verfüge über umfangreiche Kenntnisse und Erfahrungen auf folgenden Gebieten:
- Grundtechniken für autonomes Fahren wie Deep Learning, Computer Vision, Sensor Fusion, Localization etc.
- Automotive-Normen und -Tools für Softwareerstellung und Softwarevalidierung
- Firmwareentwicklung für kundenspezifische Mikrocontrollerschaltungen
- Programmierung unter Echtzeitbetriebssystemen
- Treiber- und Anwendungsentwicklung unter Windows und Linux etwa mit Qt
- Compiler- und Interpreterbau mit Lex und Yacc
- Protokollentwicklung für Feldbusse wie CAN / LIN etc.
- Generische und komponentenorientierte Programmierung für wieder verwendbare Software
Wie Sie den weiteren Seiten dieser Internetpräsenz entnehmen können, habe ich besonderes Interesse an Entwicklungstechniken, die zu einer optimierten Wiederverwendbarkeit von Software führen - gerne würde ich diese Techniken auch zum Vorteil Ihres Projektes anwenden. In den letzten zehn Jahren war ich hauptsächlich im Automotivebereich tätig, habe jedoch durchaus Interesse, mal wieder in einer anderen Branche Erfahrungen sammeln zu können. Eine meiner besonderen Stärken ist die schnelle Einarbeitung in neue Aufgabenbereichen und Fachgebiete. Ich bin immer an neuen Herausforderungen interessiert! Ich bin verheiratet und habe drei Kinder (manchmal auch eine Herausforderung).
Bei Interesse an einem detaillierten Profil mit umfangreichen Referenzen sowie Informationen zu Stundensätzen und Verfügbarkeiten kontaktieren Sie mich bitte hierüber. Gerne unterstütze ich auch Ihr Projekt mit meiner Tatkraft und Erfahrung.
Ausbildung
1989 | Abitur am Marie-Curie-Gymnasium in Recklinghausen mit einem Notendurchschnitt von 1,9 |
1990 | Beginn des Studiums der Physik an der Universität Dortmund |
1996 |
Abschluss des Studiums der
Physik mit Diplom mit einer Endnote von 1,0 Nebenfach Informatik mit Fachrichtung "Rechnernetze und verteilte Systeme" |
2016 | Seit Dezember Teilnahme Udacity Self Driving Car Engineer Nanodegree, erfolgreicher Abschluss im November 2017. Udacity ist eine innovative amerikanische Fernuniversität, die von Stanford-Professor Sebastian Thrun, dem ehemaligen Leiter des Google X Labs sowie des Google Self Driving Car Projects gegründet wurde. Der Kurs beinhaltet sowie Deep Learning- als auch "klassische" Robotik-Umfänge wie Computer Vision, Sensor Fusion, Localization etc. |
Kenntnisse
Programmiersprachen | C/C++ (sehr gut), Assembler TriCore / PowerPC / C16x / HC12 / ST7 / 80x51 / 80x86 / Z80 / (sehr gut), Basic (gut), Visual-Basic (gut), Pascal (gut), Delphi (ausreichend), Java (gut), Prolog (befriedigend) |
Skriptsprachen | Python (sehr gut), Visual Basic for Applications (befriedigend), JavaScript (befriedigend) , Matlab (befriedigend), DOS Shell (befriedigend), Unix Shell (befriedigend), MAKE (gut), AWK (befriedigend) |
Rechnerplattformen | PC (sehr gut), Mikrocontroller (sehr gut) |
Betriebssysteme | Windows 10/ 8 / 7 / Vista / XP / 2000 / NT (sehr gut), Windows 9x / 3.x (sehr gut), DOS (sehr gut), QNX (gut), Linux (gut), AIX (befriedigend) |
Datenbanken | ODBC (ausreichend), c-tree (ausreichend) |
Netzwerke | Ethernet (befriedigend) |
Feldbusse | CAN (sehr gut), LIN (sehr gut) |
Datenübertragungs- protokolle | CANopen (sehr gut), UDS (sehr gut), KWP2000 (sehr gut), CCP/XCP (sehr gut), TCP/IP (gut), diverse proprietäre Draht- und Funkübertragungsprotokolle (sehr gut) |
Datenerfassungsterminals | VT100-Terminals (gut), diverse proprietäre Datenerfassungsterminals (sehr gut) |
Echtzeitsysteme | OSEK (sehr gut), AutoSAR (befriedigend), QNX (gut) |
Mikrocontrollerfamilien | TriCore (sehr gut), PowerPC (sehr gut), C16x / XC2xxx (sehr gut) , HC12 (sehr gut), HC16 (gut), ST7 (sehr gut), TMS370 (gut), 80x51 (sehr gut) |
Peripheriekomponenten | Resolver (sehr gut), Schrittmotoren (sehr gut), EEPROM (sehr gut), Flash (sehr gut), Matrixtastaturen (sehr gut), LCD-Displays (sehr gut) |
Hardwareschnittstellen | CAN-Bus (sehr gut), LIN-Bus (sehr gut), SPI (sehr gut), I²C-Bus (gut), RS 232 (sehr gut), Centronics (ausreichend) |
Softwareschnittstellen | Qt (gut), COM/OLE (sehr gut), Windows API (sehr gut), MFC (gut), POSIX (gut), Sockets (gut) |
Standards | ISO-C 99 (sehr gut), ISO-C++ 98 (sehr gut), POSIX.1 (sehr gut), POSIX.4 (gut), pthreads (ausreichend), IEC-1131 (ausreichend) |
Produkte | Keras (gut), Tensorflow (gut), Eigen Library (gut), Git/Gerrit (gut), Subversion (gut), Continuuus (gut), PLS Debugger (gut), Lauterbach Debugger (sehr gut), dSpace Simulator / ControlDesk (gut), Matlab / Simulink (gut), ETAS Inca (sehr gut), Kleinknecht Gredi (sehr gut), BMW Diagnostic Tool Set (sehr gut), Vector CANalyzer / CANoe (gut), CodeWright (sehr gut), Eclipse (befriedigend), GNU C/C++ (sehr gut), Tasking C/Assembler für C16x (sehr gut), Cosmic C/Assembler für HC12 (sehr gut), Hiware C/Assembler für ST7 (gut), Keil C/Assembler für C16x / 80x51 (sehr gut), MS Visual C/C++ 16/32/64 bit (sehr gut), MS MASM (gut), MS Visual Basic (gut), Borland JBuilder (gut), Borland C/C++ 16/32 bit (gut), Borland TASM (sehr gut), Turbo Pascal (gut), XMetaL (gut), MS Office (gut), MS Visio (gut), Mathematica (gut), TeX/LaTeX (gut), lex/yacc (sehr gut), ST Emulatoren (sehr gut), HiTex Emulatoren (sehr gut) |
Methoden | Deep Learing (gut), Computer Vision (gut), Kalman-Filter (gut), Bayes-Filter (gut), Regelkreise (sehr gut), Metatemplate-Programmierung (sehr gut), Komponentenorientierte Analyse / Programmierung / Design (sehr gut), Objektorientierte Analyse / Programmierung / Design (sehr gut), Strukturierte Analyse / Programmierung / Design (sehr gut), ISO/OSI-Schichtenmodell / Protokollimplementierung (sehr gut), Compilerbau (sehr gut), Treiberprogrammierung (sehr gut), Ereignisgesteuerte Programmierung (sehr gut), Dialogprogrammierung (sehr gut) |
Erfahrungen | Grundtechniken für selbstfahrende Fahrzeuge (gut), Programmierung kundenspezifischer Hardware (sehr gut), Aufbau von Datenübertragungsprotokollen (sehr gut), Compiler- und Interpreterbau (gut), Aufbau von Betriebssysteme (gut), Erstellung von Spezifikationen (gut), Review von Code und Dokumenten (gut), Durchführung von Tests (gut), Erstellung von Dokumentationen (gut), Migration und Portierung (sehr gut) |
Branchen | Automobilelektronik (sehr gut), Bahn (sehr gut), Kommunikationstechnik (sehr gut), Automatisierungstechnik (gut), Warnsysteme (gut), Wiegesysteme (gut) |
Fremdsprachen | Englisch (gut) |