Profileimage by Mike Netz Embedded Softwareentwicklung C/C++ und KI (Deep Learning + Computer Vision) Python from GlienickeNordbahn

Mike Netz

not available until 10/01/2024

Last update: 19.03.2024

Embedded Softwareentwicklung C/C++ und KI (Deep Learning + Computer Vision) Python

Company: Mike Netz Engineering
Graduation: Diplom-Ingenieur (FH)
Hourly-/Daily rates: show
Languages: German (Native or Bilingual) | English (Limited professional)

Attachments

CV_Mike_Netz_2021Q1.docx
Profil-Mike-Netz-2023Q4_071223.docx

Skills

Programmiersprachen und Werkzeuge

Primär
C/C++, Python
KI mit Machine Learning: Scikit learn (Numpy, Pandas),
Deep Learning: Keras/TensorFlow
Computer Vision: OpenCV und Adaptive Vision
Enterprise Architect: UML / SysML
STM32 Cortex M1/M3/M4/M7 bspw. STM32F303, NXP iMX RT 117x, AM335x ARM Cortex-A8, ESP32
Capl (Canoe + VT-System)
Schnittstellen: Seriell (bspw. RS485), SPI, CAN, Bluetooth low energy (BLE)


Sekundär: 
MATLAB / Simulink  


Eigenes Repository
https://github.com/embmike


Branchenerfahrung 
Automobil (Automotive), Verkehrstechnik, Nachrichtentechnik , Train und IT 


Bildung 
Ausbildung: 
Energieanlagenelektroniker 

Studium: 
An der Fachhochschule für Technik und Wirtschaft in Berlin, Fachrichtung 
Elektrotechnik, Studiengang Automatisierungstechnik 
Abschluss: Diplom-Ingenieur (FH), Prädikat "gut bestanden" 


Weiterbildung
Qualifizierungen 2021: Robotics Software Engineer (Udacity), https://graduation.udacity.com/confirm/R9JHTW9K
Build your own home service roboter: Gazebo, ROS with C++ : Kalman filter, Monte Carlo Localization, Graph SLAM, Path Planning (A* Search)

Qualifizierungen 2020: Computer Vision Nanodegree (Udacity), https://graduation.udacity.com/confirm/YPNKTEWC
Libraries: OpenCV + PyTorch; Image recognition: CNN + LSTM; Object tracking and localization: Kalman filter, Graph SLAM, Bayes Filter Grid Localization

Qualifizierungen 2018: Intro to Machine Learning with Keras/Tesorflow (Udacity)
Libraries: Scikit learn + Keras/Tensorflow, Machine Learning: Unsupervised Learning + Supervised Learning + Deep Learning

Qualifizierungen 2012: Systems Engineering mit SysML (inkl. OCSMP-Zertifizierung)

Qualifizierungen 2010: Funktionale Sicherheit ISO 26262 (bei TÜV Süd)

Qualifizierungen 2009:  ISTQB Certified Tester: Advanced Level - Test Manager

Qualifizierungen 2006:  AutomationDesk Basic and Advanced Training (bei dSpace)

Qualifizierungen 2005:  ISTQB Certified Tester: Foundation Level

Project history

02/2020 - Present
PRIVAT - Service Home Roboter: Bilderkennung von Kameravideos mit Raspberry PI/Linux/ROS/C++17/ Python
Privat - Eigenes Projekt (Other, < 10 employees)

Eigenes Projekt

Projekt
Modellauto erkennt selbstständig Objekte mittels einer Kamera. Dafür wurde ein CNN mit PyTorch in Python trainiert. Die C++17-Fahrapplikation Applikation greift auf das Modell übers die PyTorch-C++-Bibliothek libtorch zu.
(Umsetzung in Python und in C++)

Aktuell seit 02/2021:
  • Wechsel auf Ubuntu als Entwicklungsrechner (VMWare mit Ubuntu Robo V2)
  • Gazebo Robosimulation
  • Strukturierung der C++ -Software mit ROS (Robot Operating System)
  • Untersuchung: Import der KI-Modelle in Matlab/Simulink (Deep-Learning-Framework) mit Codegenerierung und Einbindung in die C++ -ROS-Application.
 
Technik
  • Bilderkennung mittels Kamera und trainierten CNN mit PyTorch. CNN: Convolutional Neural Network. 
  • IDE für Python: Jupyter Notebook in Amazon AWS (Training GPU) 
  • IDE: Visual Studio 19 C++ mit C++17 (Templates, Thread/async/future, STL und Range-V3) 
  • Zielrechner: Raspberry PI 4 mit Linux 
  • Entwicklungsrechner: Windows 
  • Modellauto: Sunfounder Smart Video Car Kit 

01/2021 - 03/2024
Firmware: Entwicklung einer Laufzeitumgebung für eine neue Mikrocontroller-Plattform
SMA (Industry and mechanical engineering, 1000-5000 employees)

Programmierung der Software
Funktionen, bspw.
- Integration der "IEC 60730 Class B Safety Library" in die Software
- Treiber für externe Peripherie: ADC ADS131, TMP116, ...
- Treiber-Anpassung für interne Peripherie: SPI, Timer (PWM) , CAN, I2C, DMA, ...
- Digitale Signalverarbeitung: Algorithmen  Messgrößenauswertung
- RTOS: MicroC/OS-II

Technik
Mikrocontroller: NXP iMX RT 1170 - Dual Core ARM Cortex M7 und M4, NXP KV4 - Cortex M4
Programmiersprache: C++ (Version 17), Inline Assembler
Entwicklungsumgebung: Rowley CrossWorks, (Prototyping mit MCUXpresso IDE und Visual Studio Code)
Entwicklungsprozess: Scrum mit Jira
Versionsverwaltung: Bitbucket Git
Bildsystem: Jenkins
Unittest: Google Test und Moc
Integrationstest: Aqua und NXP Freemaster, Saleae-Logic-Analyzer, R&S Oszillioskop
Softwaredesign: Enterprise Architect
Dokumentation: Markdown (*.md) mit Visual Studio Code, Plugins: Markdown PDF, ...

09/2018 - 12/2019
Messdatenanalyse: Analyse von ADAS-Daten mittels Data-Science- und KI-Methoden in Python
Wabco (Automotive and vehicle construction, >10.000 employees)

Analyse und Auswertung von Testdaten (große Datenmengen) für ADAS-Funktionen eines Fahrerassistenzsystems im Nutzfahrzeugumfeld mit Data- Science und KI-Methoden.

  • Analyse Mileage Data (Leistungsdaten)
    • Clusteranalyse (Unsupervised Learning) bildung von Fehlerklassen mittels Scikit learn
    • Automatische Fahrerklassifizierung (Deep Learning) mittels Keras/TensorFlow
  • Schreiben eines Analysetools in Python
    • Statistische Auswertung von Testdaten (Große Datenmengen)
    • Validierung der tolerierbaren Fehlalarmrate der Radarerkennung (False-Positives)
      • Vergleich ADAS-Software mit Fahrer-Fahrstrecke-Fahrzeugmodell (Multilayer)
      • Abgleich anhand GPS mit Open Steet Map und Wetterdaten
      • Abgleich mit Sensordaten (Beschleunigung, Geschwindigkeit, usw.).
  • Erstellung eines Testdaten-Reports für die sicherheitsrelante Dokumentation
  • Daten wurden mittels REST-API aus Altran VueForge Services geholt oder lagen im CSV-Format vor
  • Verarbeitung der großen Datenmengen über Servercluster mittels Hadoop
  • Test der Python-Applikation mit Robot Framework und Python unittest

Werkzeuge

Deep Learning mit Anaconda Python (Numpy, Pandas, Dask, Keras/TensorFlow, Scikit Learn, Seaborn, Matplotlib). Altran VueForge/REST-API, HTTP, JSON. Robot Framework und Python unittest.


12/2017 - 06/2019
Firmware: Entwicklung einer Embedded Sicherheitssoftware in C für eine Torsteuerung
Technagon (Industry and mechanical engineering, 50-250 employees)

07/2018- 06/2019

Service (Teilauslastung): Neue Anforderungen und Abschlusstest

 

12/2017 – 06/2018

Software-Spezifikation (MS Word)
Anwendungsfälle in Gherkin-Syntax

 

Software-Architektur (MS Word / Enterprise Architekt)
Textuell unterstützt mit UML-Diagrammen

 

Programmierung der Software
Programmiersprache C (Misra-C:2012)
Entwicklungsumgebung: Eclipse C/C++ OpenSTM32 + CubeMX
Modellierung: Enterprise Architect UML/SysML
Kommentierung: Doxygen
Funktionen: Sicherheitsfunktionen Torsteuerung + uC-Selbsttest
Microcontroller: STM32F303 (ARM Cortex-M4)

 

Entwickler-Tests
SW-Modul- + SW-Integrations-Test: Unity-Framework
Integrationstest: PIL-Testplatine, Putty

 

Normen
Safety: DIN EN 60730, Klasse B
DIN EN ISO 13849


11/2013 - 11/2017
Firmware: Steuergerätetest, Programmierung C/C++ für Lichtsignalsteuerung (Ampelsteuerung) und Projektleitung
Fabema (Industry and mechanical engineering, 50-250 employees)

11/2013 – 06/2014: Testspezifikation, Testdurchführung und Testbericht.
Inbetriebnahme und Test der Steuergeräte
SW/HW-Integrationstest
SW-Modultest C (+Ergänzung der Doxygen-Kommentare)
Integrationstest zweier Steuergeräte
Review und Unterstützung bei den Anforderungen

 

Unterstützung bei den Dokumenten für den TÜV
Einführung von Enterprise Architect (EA)
Unterstützung beim Erstellen der Software-Anforderungen
Unterstützung bei Software- und System-Design mit EA
 

07/2015 – 12/2015 Software (Bibliothek) in C für Seriell/RS485 (Ampelkommunikation)
Programmierung der Bibliothek
IDE: Eclipse C/C++ OpenSTM32
Microcontroller: Cortex-M0+/M4

 

01/2016 – 11/2017: Programmierung eines Ampelprogrammgenerators in C+11
Programmierung eines Programmgenerators für Ampelprogramme
JSON -> C++11-Ampelprogramm
Auflaufumgebung: DIMM-Modul AM335x ARM Cortex-A8 Microprozessor mit RT-Linux
IDE: Visual Studio
Pflege von Softwaremodulen

Teilprojektleitung Embedded-Softwareentwicklung
Unterstützung beim Projektmanagement

 

Werkzeuge: 

MS Office (+Project, Visio), Oszilloskop Rigol DS4024E, C#, Debugger, Tessy, Enterprise Architect, AM335x ARM Cortex-A8, Visual Studio, C++11, JSON

 

Methoden: 

Normen und Richtlinien (RiLSA, VDE 0832-100, -200, -500, DIN EN 12675, NEN 3384,..), SysML /UML / Enterprise Architect


02/2000 - 10/2013
Diverse Software in C++, C, C-Autocode mit Matlab/Simulink, Python und C# erstellt.
ZF, Porsche, BMW, Rohde & Schwarz und Takata (>10.000 employees)

Entwicklung von Software:

Testautomatisierung mit C# und Python
Software mit C++, QT4 und CanCardX
Autocode in C mit Ascet und Matlab/Simulink
C barmetal auf Microkontroller


Testing
Integrationtest mit modellbasierter Testautomatisierung mit den Werkzeugen dSpace-HIL, Control Desk/Automation Desk, Matlab/Simulink



Werkzeuge:

Visual Studio für C# und C++,QT,
Python IDE,
Ascet, Matlab/Simulink für C (Autocode-Generierung),
Eclipse-CDT-Varianten für C
NI-Measurement Studio in C#,
Enterprise Architect für UML,
HIL: dSpace HIL, Vector VT-System, Canoe, Control Desk/Automation Desk

 

Normen und Methoden:
Modellierung mit UML und Matlab/Simulink,
Safety nach ISO 26262 ASIL D,
Testkonzept nach IEEE 829
ASPICE

Betriebssysteme
Windows,
Mikrocontroller: Barmetal und RTOS

Microcontroller
Windows,
Linux 
Mikrocontroller: RTOS


Local Availability

Only available in these countries: Germany
Berlin und Umland, sonst Remote
Profileimage by Mike Netz Embedded Softwareentwicklung C/C++ und KI (Deep Learning + Computer Vision) Python from GlienickeNordbahn Embedded Softwareentwicklung C/C++ und KI (Deep Learning + Computer Vision) Python
Register