Senior Embedded Linux Software Engineer (C/C++ | Python)
Freelance · Konzeption · Umsetzung · Integration · Testing
Softwareentwicklung seit 2001 · Linux seit 2001
Dr. rer. nat. Dipl.-Inf. Stefan KUHN
-
Kuhn & Völkel GmbHNürnberger Str. 3895448 BayreuthGermany
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
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
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
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
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)
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)
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
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
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).
-
"Trainiere Einmaleins – 1x1" (100.000+ Downloads, 4,4★): Link zu Eintrag in Google Play Store
-
"Minigolf Punktekarte" (5.000+ Downloads, 4,7★): Link zu Eintrag in Google Play Store
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
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
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)
-
Dissertation 2012 (Universität Bayreuth), S. Kuhn: "Wissens- und sensorbasierte geometrische Rekonstruktion"; urn:nbn:de:bvb:703-opus4-10458 YouTube: Demonstration im Promotionskolloquium
-
ISVC 2009 (Las Vegas, NV, USA), S. Kuhn, D. Henrich: "Multi-view Reconstruction of Unknown Objects within a Known Environment"; https://doi.org/10.1007/978-3-642-10331-5_73
-
IROS 2007 (San Diego, CA, USA), S. Kuhn, D. Henrich: "Fast Vision-Based Minimum Distance Determination Between Known and Unknown Objects"; https://doi.org/10.1109/IROS.2007.4399208
-
ICRA 2006 (Orlando, FL, USA), D. Henrich, S. Kuhn: "Modeling Intuitive Behavior for Safe Human/Robot Coexistence and Cooperation"; https://doi.org/10.1109/ROBOT.2006.1642304
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
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