Senior Embedded Linux Software Engineer (C/C++ | Python)

Freelance · Konzeption · Umsetzung · Integration · Testing

Softwareentwicklung seit 2001 · Linux seit 2001

Background – Kurzprofil

  • 2014–Heute: Freelancer – Softwareentwicklung; seit 2016 Embedded Linux Umfeld
  • 2012–2013: EXIST-Gründerstipendium (BMWi): 2D-/3D-Vision und Bike-Fitting
  • 2004–2012: Promotion (Dr. rer. nat.): Robotik und 2D-/3D-Vision
  • 1999–2004: Studium (Dipl.-Inf.): Angewandte Informatik (Eingebettete Systeme)

Schwerpunkte

  • Softwareentwicklung: Konzeption, Prototyping, Implementierung, Integration, Debugging, Refactoring und Testing – im Team (Agile/Scrum) oder eigenständig
  • Embedded Linux: Bring-up/Inbetriebnahme, Feature-Integration sowie softwareseitige Hardware-Anbindung (z. B. FPGA und Sensorik)
  • Sprachen: C/C++ (11–20) im Allgemeinen; Python für Bindings, Codegenerierung, Tests, Diagnose-/Testwerkzeuge und Automatisierung

Arbeitsweise & Praxis

  • Schneller Einstieg in neue Themen und angrenzende Technologien
  • AI-Tools projektkonform als Produktivitäts-Boost – für Recherche, Entwurf und Review (GitHub Copilot / OpenAI ChatGPT / GitLab Duo)
  • Code-Reviews, Wissenstransfer, Onboarding, technische Dokumentation, Unit-/Hardware-Tests
  • Einbindung/Nutzung von 3rd-party Libraries/Frameworks
  • Sicher im Umgang mit den üblichen Werkzeugen (Jira/Confluence, GitLab, Docker etc.)
  • Algorithmik: 2D-Bildverarbeitung, 3D-Datenverarbeitung/-fusion sowie Numerik/Kinematik
  • Bevorzugt Remote tätig (angemietetes Büro Bayreuth); Bei Bedarf vor Ort, z. B. Einarbeitung, On-site Meetings

Keywords – aus Projekten & Ausbildung

Kategorisierte, stichpunktartige Auflistung von bisher gesammelten Erfahrungen im Projekt- und Ausbildungsverlauf.

  • Sprachen: C++ (11–20), C, Python, Bash; Java, C#, JavaScript, Dart, Perl
  • Plattformen: Embedded Linux (Yocto/BitBake: Build/SDK/Images; punktuell Anpassungen), Debian/Ubuntu; Windows; PLCnext; Android
  • Build/SCM/CI: Git, GitLab (MR/CI), CMake; gcc, make; Gradle; Jenkins; Docker/Buildx; Artifactory (Artifacts/Binaries); Debian-Packaging; SVN; SCons; Bitbucket/GitHub
  • Container/Deployment: Docker, Podman, DevContainer; systemd, init.d; Deployment-Skripte
  • Testing/Qualität: Reviews, Unittests, Catch2; pytest; clang-format/clang-tidy, cppcheck; Hardwaretests (je nach Setup); Stabilitäts-/Performance-Checks
  • Algorithmik/Mathe: 2D-Bildverarbeitung, 3D-Datenverarbeitung/Datenfusion (z. B. Voxelraum), Numerik/Kinematik (Newton-Raphson, Householder)
  • Schnittstellen/Formate: gRPC, REST/JSON, XML, JSON Schema, CSV, UDP, NTP (chrony), TCP/IP, HTTP, SSH
  • Libs/Frameworks: Qt; OpenGL; CLI11, pybind11, Jinja/Mako, textX, FastAPI/uvicorn, minizip-ng (ZIP/zstd), boost::asio, Boost, OpenCV, Eigen, Redis, HALCON/HDevelop, Bootstrap, ECharts, wxWidgets, Flutter; .NET (WPF/MVVM/XAML), SWIG, Roslyn, AOP; SQLite, MySQL, Gson, Volley, Crashlytics, Google Play Services
  • Tools/Umfeld: VS Code, Jira, Confluence, Polarion, MS Teams; Qt Creator, Eclipse, Visual Studio, Android Studio, Jupyter; Wolfram Research Mathematica; Redmine; iPerf, Wireshark; Google Play Console
  • Hardware/Sensorik: FPGA; IMU; Raspberry Pi; NVIDIA Jetson; Kameras/Interfaces (USB, GigE, FireWire); Z-Wave-USB-Controller
  • AI-Assistenz: GitHub Copilot, OpenAI ChatGPT, GitLab Duo
  • Domänen: Film-/Medientechnik (High-End-Filmkameras); Industrie/Automatisierung (Machine Vision, Sensorik, 2D-Industriekameras/3D-ToF, Multi-Sensor/IMU); Automatisierung/Energie (SPS/PLCnext); Energie/Energiespeicher (Smarthome/Z-Wave); Automotive (Infotainment/Navigation, Verifikation/Testing); Robotik/3D-Vision (Forschung & Entwicklung); Mobile Apps (Android)

Freelancer-Projekte

Detailbeschreibungen beauftragter Freelancer-Projekte, umgekehrt chronologisch nach Enddatum (mit Überlappungen durch Unterbrechungen/Nebenprojekte).

05/2022–01/2026 Film- und Medientechnik (High-End-Filmkameras)
Senior Embedded Linux Software Engineer

Frühe Integration neuer FPGA-Generationen/Releases in ein herstellerspezifisches Embedded-Linux-Softwaresystem zur Systemverifikation (Feedback-Loop) im Scrum-Setup (FPGA- & Software-Teams).

  • Softwareseitige Anpassung/Portierung der Bildverarbeitung für neue FPGA-Generationen/Releases

  • Modernisierung einer zentralen Verarbeitungskomponente inkl. technischer Dokumentation

  • Codegenerierung (Python/JSON) für konsistente Konfiguration (software- und FPGA-seitig) und Dokumentation

  • Erweiterung interner Debug-Tools, u. a. für Remote-Ansteuerung/Automatisierung

  • Ergänzend: Unittests (Catch2), Reviews/Wissenstransfer (inkl. Onboarding), manuelle Hardwaretests sowie Analyse von CI-Hardwaretests (Jenkins)

Tech: C, C++17, Python, Bash · Embedded Linux (Yocto/BitBake: Build/SDK/Images; punktuell Anpassungen), Userspace-Entwicklung, punktuell Kernel(-nah) · Git/GitLab (Multi-Repo), CMake, Jenkins, Artifactory · Docker · Catch2 · JSON · pybind11, Jinja/Mako, textX · Jira/Confluence/Polarion/MS Teams, VS Code · BYOD

04/2025–11/2025 Automatisierung/Energie (SPS/PLCnext)
Senior Embedded Linux Software Engineer

Nebenprojekt (parallel zum Hauptprojekt; ~4 Projekttage/Monat), Ein-Personen-Projekt: prototypische, containerbasierte Lösung auf PLCnext (Embedded Linux) für Datalogger-Konfiguration/Auslese, lokale Archivierung sowie Web-API + Web-UI.

  • C/C++-Kernkomponenten für Zugriff auf Datalogger und Konfiguration

  • Containerisierte Services für Konfiguration/Diagnose, Datenabfrage, Archivierung/Komprimierung

  • Containerisierte Web-API + Web-UI (Python/Bindings) zur Abfrage und Visualisierung der Daten

  • Automatisiertes Deployment/Installation

Tech: C++17, C, Python, Bash, JavaScript · PLCnext/Embedded Linux (Userspace) · Git (Mono-Repo), CMake, Docker Buildx · Podman · Autostart (init.d) · gRPC, strukturierte Datenformate (z. B. XML, CSV) · pybind11, FastAPI/uvicorn, Bootstrap, ECharts, CLI-Tooling, Komprimierung/Archivierung · VS Code (DevContainer + Copilot), MS Teams · OpenAI ChatGPT · BYOD

01/2016–04/2022 Industrie/Automatisierung (Machine Vision, Sensorik)
Senior Embedded Linux Software Engineer

Mehrphasiges Langläuferprojekt im 2D-Industriekamera/3D-ToF-/Sensorik-Umfeld: von Windows/Qt-Desktop-Anwendung über Embedded-Feature- und Algorithmik-Integration bis zur Hardware-Inbetriebnahme.

  • 09/2020–04/2022 – Multi-Sensor-Device: Inbetriebnahme Bilddatenpfad (Yocto/NVIDIA Jetson) + Sensor-Integration (u. a. IMU); beschreibungsbasierte Codegenerierung (Python/JSON) für C++

  • 04/2018–06/2020 – 2D/3D Features & Algorithmen: Systemfeatures (u. a. Streaming/Transfer) sowie Algorithmik (Bildverarbeitungs- und Qualitätsfunktionen); Prototyping/Tests in Python und Umsetzung/Integration in C/C++

  • 03/2017–07/2017 – OSS C++ Library (Nebenprojekt, ~4 Projekttage/Monat): boost::asio Konfigurations-Client + async Callbacks + Beispielcode; Erweiterung der Datenerfassung (inkl. Metadaten)

  • 08/2016–11/2016 – Embedded-Systemthemen: UDP-Performance/Stabilität (Raspberry Pi Setup/iPerf/Wireshark), Zeitsynchronisierung (NTP/chrony)

  • 01/2016–07/2016 – Windows/Qt-Desktop-Anwendung: Qt-Custom-Widgets & UI-Erweiterungen für Sensor-Konfiguration/Visualisierung

  • Querschnittlich: Implementierung/Integration, Debugging/Refactoring, Reviews; Build/CI (Jenkins/GitLab CI) und testnahe Absicherung je nach Phase; Zusammenarbeit über mehrere Teams/Teilbereiche

Tech: C, C++ (Qt, C++17), Python, Bash · Yocto (Embedded Linux), Ubuntu, Windows; NVIDIA Jetson (Embedded-GPU-Plattform), Raspberry Pi · Git/SVN (Multi-Repo), CMake/SCons, Jenkins/GitLab CI · Docker · Catch2/pytest, clang-format/clang-tidy, cppcheck · Algorithmik (Bildverarbeitungs- und Qualitätsfunktionen) · JSON/JSON Schema, UDP, NTP (chrony), Redis · boost::asio, pybind11, HALCON/HDevelop, Jupyter · Qt Creator/Eclipse/VS Code/Visual Studio, Polarion, Bitbucket/GitHub, iPerf/Wireshark

10/2017–03/2018 Energie/Energiespeicher (Smarthome/Z-Wave)
Senior Embedded Linux Software Engineer

Portierung einer C#/.NET-Windows-Desktop-Anwendung zu einer C++/Qt-Linux-CLI-Anwendung zur automatisierten Durchführung von Firmware-Updates für Z-Wave-Geräte/Controller in einem Linux-basierten Energiesystem; Debian-Packaging, Testabsicherung, Erfolgs-/Stabilitätsstatistik; Evaluation von Mesh-/Routing-Verhalten mit Geräten verschiedener Hersteller.

  • Portierung C#/.NET/Windows zu C++/Qt Linux-CLI inkl. Debian-Packaging

  • Automatisierte Update-Runs: Testabsicherung + Erfolgs-/Stabilitätsstatistik; Z-Wave-Mesh/Routing-Evaluation

Tech: C#, C++/Qt, Python, Bash · Debian Linux (Userspace) · Git/GitLab, Debian-Packaging · Qt Creator, Confluence · Z-Wave, Firmware-Update-Automatisierung, Mesh Networking

12/2016–09/2017 Automotive (Infotainment/Navigation, Verifikation/Testing)
Senior Software Engineer (C#/.NET, Testing)

Windows-Tools in C#/.NET zur manuellen und automatisierten Verifikation einer Low-Level-API (C/C++) auf Embedded-Linux-Targets. Phase 1: WPF/MVVM Test-GUI + SWIG (im Scrum-Team). Phase 2: C#-Testframework (Erweiterung, Automatisierung, Reporting/Trace, Integration zusätzlicher Testhardware).

  • Test-GUI (= Windows-Desktop-Anwendung): parametrisierte API-Calls, Log-/Result-View; SWIG-Interop punktuell unterstützt/mitgepflegt

  • Testframework: Priorisierung/Steuerung sowie gezieltes Abbrechen/Stoppen von Testläufen; Reporting/Trace via Roslyn + Code-Injection (AOP-ähnlich); zusätzliche Testhardware sicher angebunden

Tech: C#, C/C++, Python · Windows (Test/Automation), Embedded Linux (Target) · Git/SVN · .NET, WPF, MVVM/XAML, SWIG, Roslyn, AOP · Visual Studio, Jira/Confluence · Scrum-Team (Phase 1)

06/2014–01/2015 Mobile/Consumer Apps (Android)
Software Engineer (Android)

Android-Entwicklung im Scrum-Team (Design/Android/iOS): Mitwirkung an zwei Consumer-Apps mit Fokus auf UI-Umsetzung, Bildbearbeitung und manuelles Testing.

  • Postkarten-App: High-Res-Bildbearbeitung per Touch (Skalierung/Rotation/Filter) inkl. Snapping; Performance-/Speicheroptimierung

  • Vergleichsportal-App: UI/Screens nach Designvorgaben umgesetzt; manuelles Testing auf diversen Smartphones/Tablets

Tech: Java · Android · Gradle, Git · SQLite, Gson, Volley, Crashlytics, Google Play Services · Android Studio/Eclipse, Redmine · BYOD

Eigene Projekte (Kuhn & Völkel GmbH) | Bayreuth

Umgekehrt-chronologisch aufgelistete Detailbeschreibungen eigeninitiierter Projekte, d.h. ohne externe Beauftragung: EXIST-Gründerstipendium gefördertes Gründerprojekt sowie App-Entwicklung & Publishing.

07/2020–08/2020 Cross-Platform Mobile (Flutter/Dart)
Software Engineer (Mobile)
Bayreuth

Einarbeitung in Flutter/Dart; kleiner Prototyp zur Auffrischung und Validierung moderner Mobile-Toolchains.

Tech: Flutter, Dart · Android Studio (IntelliJ)

02/2015–12/2015 Eigene Android Apps (Google Play)
Software Engineer (Android)
Himmelkron

Mehrere Apps konzipiert, umgesetzt, veröffentlicht; Fokus auf UI/UX, Persistenz und Store-Release (nicht weiter gepflegt; ggf. nicht kompatibel mit aktuellen Android-Versionen).

Tech: Java · Android · Git · SQLite · Android Studio, Google Play Console

05/2012–05/2014 EXIST-Gründerstipendium (gefördert) – Markerbasierte 3D-Vermessung/Bike-Fitting
Gründer & Software Engineer (Windows/C++, Android/Java)
Himmelkron

Markerbasiertes Stereo-3D-Vermessungssystem zur Ableitung individueller Fahrradgeometrien/-einstellungen; In-Store-Prototyp (geführter Workflow, Visualisierung, digitaler Produktkatalog, Pilot-Einsatz). Gefördertes EXIST-Gründerstipendium (BMWi, 2012–2013); Auszeichnung bei Gründerwettbewerb "IKT Innovativ" (IFA 2014); Messeauftritt CeBIT 2016.

  • Computer Vision 2D/3D: Marker-Erkennung (2D) + 3D-Punktbestimmung (Kalibrier-/Rekonstruktionspipeline); Windows-App (C++): geführter Vermessungsprozess + Visualisierung

  • Android-Tablet als Bedien-/Steuer-Frontend (direkt per WLAN an die Vermessungs-Säule angebunden), Katalognavigation; Prototypaufbau/Deployment

Tech: C/C++ (STL, Boost), Java (Android) · Windows, Android · OpenCV, Stereokamera · TCP/IP, HTTP, WLAN-Kommunikation · SQLite, MySQL · wxWidgets · Visual Studio, Eclipse, Android Studio

Ausbildung

Umgekehrt-chronologisch aufgelistete Detailbeschreibungen der beiden Ausbildungsstationen: Promotion und Studium.

07/2004–12/2012 Robotik/3D-Vision (Forschung und Entwicklung)
Wiss. Mitarbeiter/Doktorand (Promotion, Dr. rer. nat.)
Universität Bayreuth

Lehrstuhl Robotik und Eingebettete Systeme. Themengebiet Mensch-/Roboter-Koexistenz: 2D/3D-Algorithmik zur konservativen Rekonstruktion freier/gesperrter 3D-Bereiche aus kalibriertem Multi-Kamera-System – für kollisions-/verletzungsfreie Industrierobotik im gemeinsamen Arbeitsraum (Forschungsprototyp).

  • Algorithmik/Methodik: Freiraum-/Belegungsmodelle (3D, Voxelraum) aus Multi-View-2D; Umgang mit Verdeckungen/Artefakten (Plausibilisierung: Mindestvolumen/-dicke, Bodenbindung, zeitliche Konsistenz)

  • Vision-Pipeline: Background Subtraction/Segmentierung; verteilte Vorverarbeitung pro Kamera plus zentrale Fusion/3D-Auswertung (echtzeitnah)

  • Robotik-Integration: Gelenkwinkel zur dynamischen Modellierung/Abschattung; Rückkopplung an Robotersteuerung (Prototyp: Stopp bei Eintritt in gesperrte Bereiche)

  • Umsetzung: Implementierung der Algorithmik und Anbindung von Geräten in C/C++ mit geeigneten zusätzlichen (OSS) Libraries und Frameworks.

  • Aufbau und Inbetriebnahme: Linux-Setup (verteilte Rechner plus Zentralrechner), Roboter-Anbindung (Stäubli RX130b, ABB IRB 4600), GigE-Kameras (z. B. SVS-VISTEC eco204CVGE), Montage und Kamera-Kalibrierung (Uni plus Evaluationsstandort)

Publikationen (Auswahl)

Transfer/Lehre

  • Evaluationsaufbau (final) beim Automobilhersteller (2011)

  • Demonstrator (früher Systemstand) auf Automatica München und Hannover Messe (2008)

  • Durchführung/Betreuung "C++-Praktikum"

  • Betreuung studentischer Abschlussarbeiten/Projekte (Visualisierung/Debugging 3D-Rekonstruktion, Kameraplatzierung, Tooling)

Tech: C/C++ (STL, Boost) · Linux (verteiltes Setup) · gcc, make, SVN · OpenCV, Eigen · Qt/OpenGL (Visualisierung) · GPGPU · Algorithmik: 2D-Bildverarbeitung, Multi-Kamera-Kalibrierung, 3D/Voxelraum-Rekonstruktion/Datenfusion · Netzwerk (TCP/IP, systemnah) · XML · Eclipse · Kamerainterfaces: GigE, FireWire

10/1999–03/2004 Angewandte Informatik (Eingebettete Systeme)
Studium (Dipl.-Inf.) + Hilfswissenschaftler
Technische Universität Kaiserslautern

Schwerpunkte: Computergraphik, Softwareentwicklung, Robotik, Eingebettete Systeme. Abschluss 2004: Diplom-Informatiker (Dipl.-Inf.)

  • Diplomarbeit: 3D-Kinematik/Numerik: Vorwärts-/Rückwärtstransformation parallelkinematischer Strukturen (z. B. Hexapod) via Newton-Raphson/Householder-Verfahren; Zwangsbedingungen hergeleitet/parametrisiert; Wolfram Research Mathematica für Gleichungsherleitung und Codegenerierung; generische Modellbeschreibung (Gelenke/Aktuatoren/Topologie) – Kinematik direkt ansteuerbar inkl. einfacher 3D-Visualisierung; Java als Prototyping-Variante, Umsetzung in C++.

  • Hilfswissenschaftler (2001–2004):

    • Wetterstationsdaten-Webvisualisierung (HTML + Java-Applet als Frontend; CGI/Perl/Apache-Backend): parametrisierbar via Applet-Parameter; selektives/interaktives Nachladen von Messkanälen; Diagramm mit Scroll/Zoom

    • Datei-/Druckserver unter Debian (Samba/CUPS) inkl. Perl-Tooling zur Konfiguration

Tech: C++, Java, Perl, HTML · Debian Linux · Bash/Shell, SSH, iptables · HTTP · Wolfram Research Mathematica · Numerik/Kinematik (Newton-Raphson, Householder) · Samba, CUPS