Profilbild von Matthias Thoemel Software Entwickler C/C++; JAVA (Android); embedded; IoT; freeRTOS; Linux; hardwarenah; Middleware; aus Hannover

Matthias Thömel

verfügbar
Kontakt

Letztes Update: 13.01.2022

Software Entwickler C/C++; JAVA (Android); embedded; IoT; freeRTOS; Linux; hardwarenah; Middleware;

Firma: thoemel
Abschluss: nicht angegeben
Stunden-/Tagessatz: anzeigen
Verhandelbar, wenn Projekt länger als 6 Monate läuft; Ich arbeite nur in meinem Büro und nicht vor Ort
Sprachkenntnisse: deutsch (Muttersprache) | englisch (verhandlungssicher)

Dateianlagen

bosch-referenz-2016-blurred.pdf
20170109__thoemel__referenzschreiben.pdf
Referenz ESP32 Spirit21 4.2018.pdf
Erfahrungen und technische Kenntnisse Matthias Thoemel DE v1.19.pdf
Projektliste Matthias Thoemel DE v1.23.pdf
Project Reference Matthias Thoemel en-v1.23.pdf
Skills Matthias Thoemel en-v1.19.pdf

Skills

Technische Datenverarbeitung
• Datenbroker für MQTT und MODBUS
• Temperatur-Messdatenerfassung über OneWire (eigener Teiber)
• Erstellen einer Benutzeroberfläche mit WebToolkit
• Digitale Signal Verarbeitung mittels OpenCV und eigenen FIR Filtern
• Maschinelles Lernen mittels NVIDIA CUDA auf GPU (RTX2070)
• Implementierung und Test des USB Treibers für EFM32 SOC
• Anbindung LDMA an USART Schnittstellen für EFM32 SOC um Interrupt Latenzen zu überbrücken
• Schnelle embedded Messdaten-Speicherung und Aggregation mit SQLite3-SQL unter Android
• Update Over the Air für embedded IoT Modul
• Azure-Cloud-Anbindung für IoT Modul
• WLAN Daten-Routing Modul für IoT im Bereich Consumer-Geräte
• AES Verschlüsselung
• Linux File Change Observer mit inotify (eigene Implementierung)
• Linux-Kernel-Treiber Entwicklung für DMA- und Tracing-Treiber
• Projection auf Android Java API in Richtung Android Wear
• P2P Verschlüsselung mit RSA 1024 Bit
• Bluetooth Kommunikation auf Android Java API
• Protokollayer für ein Kundenprotokoll zwischeneiner Verkehrsleitstelle und den Bussen im öffentlichen Bereich
• UDP Scrambler um das Verhalten von UDP über Luftschnittstelle für den Test und die Entwicklung zu simulieren
• Hoch-Parallele Bilddatenverarbeitung auf Nvidia GPUs (Filtering, Mustererkennung)
• Embedded Mediaplayer Core Design und Implementation
• Design einer Mediaplayer Datenbank für SqLite inklusive prototypischer SqLite SQL Abfragen für SqLite Performance Analyse unter embedded Linux
• Entwicklung eines Function Tracing Tools für embedded Linux als Preload Bibliothek
• Entwicklung eines Memory Tracing Tool für embedded Linux als Preload Bibliothek
• Einführen einer Eclipse-CDT Debugging Umgebung unter X86 (uBuntu) für embedded Linux (ARM) Debugging
• Portierung von C/C++ Software von t-kernel auf X86 Linux und ARM embedded Linux (Monta Vista) unter GNU-EABI (C/C++), inklusive Buildsystem-Anpassungen für Cross-Compile mit GNU EABI Toolchain
• Generelles Audio-Management für ein Radio/Navigations-Projekt (C++)
• Erweiterung des Nucleus+ OS gegen Prioritäten-Inversion
• Low-Level Startup-Statemaschine für Nucleus+ (RNS) mit automatischer Abhängigkeitsanalyse und –Steuerung
• In-Target Profiling Tool für C55 DSP/BIOS
• Interprozessorkommunikation mit Zero-Copy-Eigenschaften zwischen ARM und C55 DSP
• Sehr schnelles Memory Management System für internen und externen Speicher (C55 / DSP/BIOS)
• DMA Management für DSP C55 DMA Controller
• Realisation diverser Modem-Standards (Siemens und normales FSK)
• Eigene Sprachanalyse und –synthese für verschlüsselte Sprachübertragungen mit FFT/iFFT und FIR.
• Ansteuerung diverser Modems für Fax, SMS, Voice, DTMF für ein Multi-Messaging System auf einem embedded Prozessor
• Eigener Video-Komprimierer und –Dekomprimierer (ohne Sound), mit FHT
• Synchronisation von multiplen Multimedia-PC für ein 3D-Spiele-System (NEMO) über UDP-Broadcast
• Paketdatentransfer vom Internet zum Mobile-Phone auf Multiprozessorsystem zum Einsatz in Japan. Protokolle: HDLC, IP, TCP, Unit (Ericsson), LAPDM (Ericsson)
• Netzwerk-Analysator (Sniffer) für die Protokolle TCP/IP, HTTP, FTP, SMTP, NNTP, POP3, NetBios an der NDIS-Schnittstelle für Windows-Netzwerk-Treiber (LAN und DFÜ)
• Unix-Systemprogramme zur Netzwerk-Anbindung auf Systemebene zwischen HP-UX (Unix-Workstations) und RTE-A (HP1000-Realtimesysteme)
• Entwicklung des Projekts: "Der Wellenreiter, ein DSP-MC56001-Entwicklungssystem" für die Elektronikfachzeitschrift ELRAD, Hannover
• Digitales-Signal-Prozessing
• schnelle Echtzeit-Analog/Digital-Wandlung
• Mikroprozessorprogrammierung
• Echtzeit-Meßdatenerfassung und Dokumentation/Darstellung
• (Schall-)Analysesysteme für Forschung und Entwicklung für einen Kfz-Konzern
• Materialeinsatzplanung und Materialverfolgung für ein führendes Stahlunternehmen
• Qualitätssicherung mit statistischen Mitteln (X/R-Regelkarte)
• Vernetzung verschiedener Rechnersysteme
• schnelle grafische Darstellungen
• grafische Auswertung gemessener Daten
3. Android
• JAVA unter AndroidX
• GPU Unterstütztes Grafik-Rendering der Daten-Plots
• Extrem schnelle sqlite Anbindung (für mehrere Millionen Datensätze pro Sekunde)
• ProGuard
• Multilingual
• Portrait und Landscape Unterstützung
• WebViews / JAVAScript Anbindung an JAVA
• USB-Host Schnittstelle
• GPS Anbindung
• Graddle-Programmierung (Mehrere Flavors für die App)
• Dynamische Views (zur Laufzeit erzeugt)
• Foreground-Service (für Messungen im Hintergrund)
• Unit-Tests / Demo-Mode der App
• Obfuskierung eines Teils der Datenbank (Maßnahme gegen Reverse Engineering)
4. Programmieren
• C++14 für WebToolkit für Benutzeroberfläche im Browser
• Maschinelles Lernen mit CUDA 10.2
• Android JAVA an AndroidX
• Graddle (Android Build)
• Python Webserver for GoogleTest Testcases
• Embedded Software auf freeRTOS und ESP-IDF
• Design eines Convolutional Neuronal Nets (KI) mit TensorFlow
• Thread-Control und -Scheduling Framework für CUDA 5.0
• Eigenes State Machine Framework für generierte Statemaschinen
• Memory- und Function-Trace Tools für embedded Linux (C/C++)
• Oberfläche für ein Live-Soundmixing-System (C# / .NET)
• Portierung der LUA Script Bibliothek auf ein embedded Target
• Erweiterung des Nucleus+ OS in C
• Diverse Optimierungen für die C55 DSP Software (RAMSET, Stackmove)
• Erweiterung des DSP/BIOS um Analysefunktionen und Task-Steuerung
• Applikationsverwaltung auf Basis C55 DSP/BIOS
• Diverse Devices und Treiber unter VxWorks
• Realisation eines eignen DSP Multitasking Echtzeit-Betriebssystems als Basis für diverse Teilprojekte (für DSP 56826)
• Verteiltes System zur Übermittlung von Internetdaten zum Mobile Phone und zurück (Japanische Nutzer)
• Verteiltes Data-Broker-System (unter Linux und HP-UX; dynamische Netzlast-Verteilung; TCP-sockets; 60 MB Daten in binärem Baum; maximale Antwortzeit: 3 Sekunden)
• Einbindung des Data-Broker-Systems in Intranet-Seiten über php (eigene Funktion in php implementiert)
• Unix- und NT-Programmierung (Programmiersprache C) einer allgemeine Datenbank-Programmierschnittstelle (DBAPI) zur Anbindung von Applikationen an unterschiedliche Datenbank-Systeme (auf Treibern basierend)
• Windows-Oberflächenprogrammierung in C (C++) auf Windows 95 und NT (diverse Compiler)
• Programmierung eines Cross-Compilers zwischen AutoCAD-Lisp und C und zwischen DBase 4.0 und Clipper 5.0
• Softwareherstellung für Windows 3.11 unter Borland C++/API-Schnittstelle
• Applikationsprogrammierung für AutoCAD R12/R13 an der ADS-Schnittstelle in C
• Benutzeroberflächen für Windows 3.11, AutoCAD R12/R13, XWindow, Terminals, ...
• Mitarbeiterverwaltungen
• Lagerbestandsverwaltungen
• Arbeitseinsatzplanung und Zeiterfassung in der Produktion
• Auftragsverfolgung
• Meßdaten-Verwaltung
5. Schnittstellen und Netzwerke
• ESP32: I2C, Analog-IO, Digital-IO, WIFI, Sockets, mbettls• MIDI
• LDMA
• I²C, USART
• Bluetooth-LE-Modem
• WebSocket, SSL, JSON, UPnP
• WIFI (WLAN) Access Point und Station
• Linux Coherence Memory Interface (ARM v7)
• Bluetooth (Android API)
• MOST-Bus für vernetzte CAR Multimedia Systeme
• MIDI unter Windows (für Digitale Mischpulte; System-Exclusive, Controller-Daten)
• AIC23 AD/DA Wandler
• Serielle Interfaces unter DSP, VxWorks, viele andere
• ISDN (Uk0)
• T1-Interface (US-Standard)
• Analog/Digital- und Digital/Analog-Schnittstellen
• AES/EBU, S/P-DIF und andere Digital-Audio-Schnittstellen
• Parallelschnittstellen, Seriellschnittstellen, HP-IB, GP-IB, eigene digitale Schnittstellen (seriell und parallel)
• LAN, ThinLAN, ThicLAN, X25
• Low-Level-Access-Programmierung Ethernet 802.3 (LAN) in C (HP-UX) und Fortran
6. Hardware und Rechnersysteme
• EFM32 von SiliconLabs (emlib, SDK)
• ESP32 von Espressif (freeRTOS, ESP-IDF)
• iMX6, ARM V7 (Linux/Kernel)
• ARM Prozessor (WinCE 4.2)
• Nvidia-GPU (GT-260) Stream Processors (CUDA 5.0)
• ARM Triton 3 Core System on Chip (Kundenentwicklung) (t-kernel und embedded Linux)
• Texas Instruments OSK5912, OSK5946 (Trinity-OSK)
• Texas Instruments OMAP5912 (C55 DSP), OMAP5946 (Trinity) (C55 DSP)
• Motorola DSP 56826
• VideoGrabber Karte für PC104 Systeme
• VME-Bus
• Diverse Modems: Voice, Fax, GSM
• Power-PC (604, 860) (VxWorks, Ericsson-WPP)
• IBM-kompatible PC (MS-DOS, Windows 3.11/95/NT, 32-Bit-DOS-Extender, Linux)
• HP 9000 (HP-UX, HP-Technical BASIC)
• HP 1000 (RTE-A, RTE-6, RTE-L)
• HP 85 (HP-BASIC)
• Mikroprozessoren: 8051, Z80, MC68000/8, DSP56001, MC68302
• Paragon (HP eigenes Meßdatenverarbeitungs-System)
• Cyber 76 und 128 (Control-Data)
• HP-Plotter, Laserjet, Magnetbandgeräte, CTD-Streamer, ...
7. 4-GL-Programmiersprachen
• ArgoUML + eigenes State Machine Framework
• TresosGUIDE mit XML Export und Crosscompiler auf C
• Rational Rose für Realtime (PPC860)
• Innovator unter HP-UX 9.5 (auf HP-Workstations)
8. Spezielle Bibliotheken
• Linux:
o libtag
o libpl-parser-lib
o libmtp
o libcppunit
o libdbus
o libsqlite3
o Devil (libIL, libILU, libILUT)
o libduma
o glib
o pthread
o zlib
• Windows:
o Videoinput
o CUDA 10.0
o WT (WebToolkit)
9. Programmiersprachen
• C++14 (smart pointer) unter Microsoft Visual Studio 2017
• GCC Crosscompiler Suite (viele Systeme)
• JAVA auf Android API
• Perl/Tk under Windows und Linux
• C/C++ for WinCE 4.2 for embedded devices
• C/C++ für CUDA Nvida GPU Stream Processors (inkl. NSight)
• C/C++ auf uBuntu Linux (gdb/Eclipse CDT)
• C/C++ mit GNU EABI inkl. gdb/gdbserver und Eclipse CDT
• Perl unter Linux
• JAVA (JDK 1.6, J9, Eclipse)
• C# (.NET) für eine GUI
• LUA (für die Widgets eines Radio/Navigations-Systems)
• TCONF (TI Configuration für DSP/BIOS Projekte)
• C (TI Code-Composer-Studio 2.21 und 3.20 mit XDS zum OMAP)
• GNU-C (Metrowerks Codewarrior für DSP 56826)
• GNU-C++ für VisiBroker-Anwendungen (CORBA)
• TCL/TK (mit eigener DLL unter WIN32)
• GNU-C (VxWorks), SunWS-C-Compiler
• C, C++ (MSVS++6.0, Linux, SGI, ...), ECOC (für MC68008), SCZ80 (für Z80), MRI-C (für MC68302)
• CDM(CATIA)-Datenbank Programmierschnittstelle
• Dbase4 und SQL (Datenbank auf MS-DOS, Unix, NT)
• FORTRAN 7X von HP
• Image (Datenbank auf HP 1000)
• Fortran 5 von Control-Data
• diverse BASIC-Dialekte
• diverse Assembler
• HP-GL (Graphics-Language von HP)
• diverse Tabellenkalkulationsprogramme
10. Auslandserfahrung / Fremdsprachen
• Fachteamleitung in Englischer Sprache für indische und chinesische Mitarbeiter (4 Monate)
• Zwei Musterpräsentation beim Kunden in den USA (3 Wochen)
• Teamsupport und Fortbildung für indische Kollegen auf Englisch (2 Jahre)
• Software Design Dokumentation auf Englisch (10 Jahre)
• Drei Zulieferer-Meetings mit japanischem Zulieferer auf Englisch (3 Tage)
• Zuliefererbesprechung in Belgien auf Englisch (1 Tag)
• Entwicklungsbesprechung in Schweden auf Englisch (2 Tage)
• Schulung für ein Meßdatenerfassungsystem in USA auf Englisch (2 Wochen)
• Entwicklung und Support für eine Meßdatenerfassung in England auf Englisch (eine Woche)
11. Weiteres
• Erstellen einer Produktseite für das KI Projekt AILO: http://ailo.show
• Migration einer Geräte-Software von veralteten MicroController auf EFM32 inklusive der Low-Level-Treiber und des LowPower handling
• Software-Architektur und -Design eines WIFI-Router Moduls für schnellste Reaktionszeiten und höchste Zuverlässigkeit (für IoT Geräte)
• Entwicklung eines Software Design Prozesses für eine mittelständische Firma basierend auf SVN, perl/tk für Tooling
• Fachteamleitung für ausländisches Entwickler-Team (Indien, China) im Bereich Media Player Core Entwicklung, 4 – 7 Mitarbeiter
• Entwicklerworkshops für C/C++, Build-System, Download-System, Remote-Debugging, 40 Teilnehmer, 5 Termine; um das Projekt hochzufahren
• Geräte-Muster Präsentationen in Detroit/USA beim Kunden
• Leitung verschiedener Taskforces im Bereich Software-Entwicklung
• Performance Analysen und Bottleneck Beseitigung im embedded Linux und t-kernel
• C/C++ Code Reviews
• Design eines Software-Entwicklungs – und Fehler-Abstell-Prozesses für ein Projekt mit über 50 Entwicklern
• Design eines Software-Schnittstellen-Abstimmprozesses für einen Automobilkonzern
• Projektleitung / Gruppenleitung (max. 15 MA / Gruppe)
• Komplettes Systemdesign für den C55 unter DSP/BIOS mit notwendigen Erweiterungen
• Neu-Aufsetzen einer Multi-Target und Multi-Project Buildumgebung unter ClearCase
• Eigenständige Forschung und Realisation bis zur Produktreife
• Vorträge
• Autor für Elektronikfachzeitschrift
• Dokumentation für diverse Programmsysteme
• Handbuch-Erstellung
• Service vor Ort
• Mitarbeiterschulungen
• Auftragsschulungen für PC-Benutzung und Programmierung
• Anwenderschulungen in der Industrie
• Systemadministrator (UNIX)

Projekthistorie

10/2000 - bis jetzt
Referenzschreiben
diverse (>10.000 Mitarbeiter)
Sonstiges
Referenzschreiben finden Sie auf meiner Seite: 
http://thoemel-consulting.de/index.php/de/consulting/software-entwicklung/dokumente

Zeitliche und räumliche Verfügbarkeit

Ich möchte in Hannover arbeiten. Hauptsächlich Remote also. Zu Besprechungen kann ich gerne zum Auftraggeber fahren.

Kontaktformular

Kontaktinformationen