Senior Embedded Linux Software Engineer (C/C++ | Python)
Freelance · Solution Design · Implementation · Integration · Testing
Software development since 2001 · Linux since 2001
Dr. rer. nat. Dipl.-Inf. Stefan KUHN
-
Kuhn & Völkel GmbHNürnberger Str. 3895448 BayreuthGermany
Background – Short Profile
- 2014–Present: Freelancer – Software development; Embedded Linux since 2016
- 2012–2013: EXIST start-up grant (BMWi): 2D/3D vision and bike fitting
- 2004–2012: PhD (Dr. rer. nat.): Robotics and 2D/3D vision
- 1999–2004: Studies (Dipl.-Inf.): Applied Computer Science (Embedded Systems)
Focus Areas
- Software development: Solution design, prototyping, implementation, integration, debugging, refactoring and testing – in teams (Agile/Scrum) or independently
- Embedded Linux: Bring-up, feature integration and software-side hardware interfacing (e.g. FPGA and sensors)
- Languages: C/C++ (11–20) in general; Python for bindings, code generation, tests, diagnostic/test tools and automation
Working Style & Practice
- Quick ramp-up on new topics and adjacent technologies
- AI tools used in line with project needs as a productivity boost – for research, design and review (GitHub Copilot / OpenAI ChatGPT / GitLab Duo)
- Code reviews, knowledge transfer, onboarding, technical documentation, unit/hardware tests
- Integration and use of 3rd-party libraries/frameworks
- Confident use of common tools (Jira/Confluence, GitLab, Docker, etc.)
- Algorithms: 2D image processing, 3D data processing/fusion and numerics/kinematics
- Prefer remote work (rented office Bayreuth); on-site when needed, e.g. onboarding, on-site meetings
Keywords – from Projects & Education
Categorized, bullet-point listing of experience gained to date across project and education history.
- Languages: C++ (11–20), C, Python, Bash; Java, C#, JavaScript, Dart, Perl
- Platforms: Embedded Linux (Yocto/BitBake: Build/SDK/Images; occasional customisation), Debian/Ubuntu; Windows; PLCnext; Android
- Build/SCM/CI: Git, GitLab (MR/CI), CMake; gcc, make; Gradle; Jenkins; Docker/Buildx; Artifactory; Debian packaging; SVN; SCons; Bitbucket/GitHub
- Container/Deployment: Docker, Podman, DevContainer; systemd, init.d; deployment scripts
- Testing/Quality: Reviews, Unit tests, Catch2; pytest; clang-format/clang-tidy, cppcheck; hardware tests (depending on setup); stability/performance checks
- Algorithms/Math: 2D image processing, 3D data processing/fusion (e.g. voxel space), numerics/kinematics (Newton-Raphson, Householder)
- Interfaces/Formats: 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/Environment: 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/Sensors: FPGA; IMU; Raspberry Pi; NVIDIA Jetson; Cameras/interfaces (USB, GigE, FireWire); Z-Wave USB controller
- AI assistance: GitHub Copilot, OpenAI ChatGPT, GitLab Duo
- Domains: Film/media (high-end film cameras); Industry/automation (machine vision, sensors, 2D industrial/3D ToF cameras, multi-sensor/IMU); Automation/energy (PLC/PLCnext); Energy/storage (smart home/Z-Wave); Automotive (infotainment/navigation, verification/testing); Robotics/3D vision (R&D); Mobile apps (Android)
Freelancer Projects
Detailed descriptions of commissioned freelancer projects, in reverse chronological order by end date (with overlaps due to interruptions/side projects).
05/2022–01/2026
Film & Media (High-End Film Cameras)
Senior Embedded Linux Software Engineer
Senior Embedded Linux Software Engineer
Early integration of new FPGA generations/releases into a vendor-specific embedded Linux software system for system verification (feedback loop) in a Scrum setup (FPGA & software teams).
-
Software-side adaptation/porting of image processing for new FPGA generations/releases
-
Modernisation of a central processing component including technical documentation
-
Code generation (Python/JSON) for consistent configuration (software and FPGA side) and documentation
-
Extension of internal debug tools, including for remote control/automation
-
Additionally: unit tests (Catch2), reviews/knowledge transfer (including onboarding), manual hardware tests and analysis of CI hardware tests (Jenkins)
Tech: C, C++17, Python, Bash · Embedded Linux (Yocto/BitBake: Build/SDK/Images; occasional customisation), userspace development, occasional kernel(-near) · 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
Automation/Energy (PLC/PLCnext)
Senior Embedded Linux Software Engineer
Senior Embedded Linux Software Engineer
Side project (parallel to main project; ~4 project days/month), single-person project: prototype container-based solution on PLCnext (embedded Linux) for datalogger configuration/readout, local archiving and web API + web UI.
-
C/C++ core components for datalogger access and configuration
-
Containerised services for configuration/diagnostics, data query, archiving/compression
-
Containerised web API + web UI (Python/bindings) for querying and visualising data
-
Automated deployment/installation
Tech: C++17, C, Python, Bash, JavaScript · PLCnext/Embedded Linux (userspace) · Git (mono-repo), CMake, Docker Buildx · Podman · Autostart (init.d) · gRPC, structured data formats (e.g. XML, CSV) · pybind11, FastAPI/uvicorn, Bootstrap, ECharts, CLI tooling, compression/archiving · VS Code (DevContainer + Copilot), MS Teams · OpenAI ChatGPT · BYOD
01/2016–04/2022
Industry/Automation (Machine Vision, Sensors)
Senior Embedded Linux Software Engineer
Senior Embedded Linux Software Engineer
Multi-phase long-running project in 2D industrial camera/3D ToF/sensor environment: from Windows/Qt desktop application via embedded feature and algorithm integration to hardware commissioning.
-
09/2020–04/2022 – Multi-sensor device: commissioning of image data path (Yocto/NVIDIA Jetson) + sensor integration (incl. IMU); description-based code generation (Python/JSON) for C++
-
04/2018–06/2020 – 2D/3D features & algorithms: system features (incl. streaming/transfer) and algorithms (image processing and quality functions); prototyping/tests in Python and implementation/integration in C/C++
-
03/2017–07/2017 – OSS C++ library (side project, ~4 project days/month): boost::asio configuration client + async callbacks + sample code; extension of data acquisition (incl. metadata)
-
08/2016–11/2016 – Embedded system topics: UDP performance/stability (Raspberry Pi setup/iPerf/Wireshark), time synchronisation (NTP/chrony)
-
01/2016–07/2016 – Windows/Qt desktop application: Qt custom widgets & UI extensions for sensor configuration/visualisation
-
Throughout: implementation/integration, debugging/refactoring, reviews; build/CI (Jenkins/GitLab CI) and test coverage as per phase; collaboration across multiple teams/areas
Tech: C, C++ (Qt, C++17), Python, Bash · Yocto (embedded Linux), Ubuntu, Windows; NVIDIA Jetson (embedded GPU platform), Raspberry Pi · Git/SVN (multi-repo), CMake/SCons, Jenkins/GitLab CI · Docker · Catch2/pytest, clang-format/clang-tidy, cppcheck · Algorithms (image processing and quality functions) · 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
Energy/Energy Storage (Smart Home/Z-Wave)
Senior Embedded Linux Software Engineer
Senior Embedded Linux Software Engineer
Port of a C#/.NET Windows desktop application to a C++/Qt Linux CLI application for automated firmware updates of Z-Wave devices/controllers in a Linux-based energy system; Debian packaging, test coverage, success/stability statistics; evaluation of mesh/routing behaviour with devices from different manufacturers.
-
Port C#/.NET/Windows to C++/Qt Linux CLI including Debian packaging
-
Automated update runs: test coverage plus success/stability statistics; 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 automation, mesh networking
12/2016–09/2017
Automotive (Infotainment/Navigation, Verification/Testing)
Senior Software Engineer (C#/.NET, Testing)
Senior Software Engineer (C#/.NET, Testing)
Windows tools in C#/.NET for manual and automated verification of a low-level API (C/C++) on embedded Linux targets. Phase 1: WPF/MVVM test GUI + SWIG (in Scrum team). Phase 2: C# test framework (extension, automation, reporting/trace, integration of additional test hardware).
-
Test GUI (= Windows desktop application): parameterised API calls, log/result view; SWIG interop partially supported/maintained
-
Test framework: prioritisation/control and targeted abort/stop of test runs; reporting/trace via Roslyn + code injection (AOP-like); additional test hardware integrated
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 development in Scrum team (design/Android/iOS): contribution to two consumer apps with focus on UI implementation, image editing and manual testing.
-
Postcard app: high-res image editing via touch (scale/rotate/filter) including snapping; performance/memory optimisation
-
Comparison portal app: UI/screens implemented to design specs; manual testing on various smartphones/tablets
Tech: Java · Android · Gradle, Git · SQLite, Gson, Volley, Crashlytics, Google Play Services · Android Studio/Eclipse, Redmine · BYOD
Own Projects (Kuhn & Völkel GmbH) | Bayreuth
Detailed descriptions of self-initiated projects (no external commission), in reverse chronological order: EXIST-funded start-up project and app development & publishing.
07/2020–08/2020
Cross-Platform Mobile (Flutter/Dart)
Software Engineer (Mobile)
Bayreuth
Software Engineer (Mobile)
Bayreuth
Ramp-up in Flutter/Dart; small prototype to refresh and validate modern mobile toolchains.
Tech: Flutter, Dart · Android Studio (IntelliJ)
02/2015–12/2015
Own Android Apps (Google Play)
Software Engineer (Android)
Himmelkron
Software Engineer (Android)
Himmelkron
Several apps conceived, implemented and published; focus on UI/UX, persistence and store release (no longer maintained; may not be compatible with current Android versions).
-
"Trainiere Einmaleins – 1x1" (100,000+ downloads, 4.4★): Link to Google Play Store
-
"Minigolf Punktekarte" (5,000+ downloads, 4.7★): Link to Google Play Store
Tech: Java · Android · Git · SQLite · Android Studio, Google Play Console
05/2012–05/2014
EXIST Start-up Grant – Marker-Based 3D Measurement/Bike Fitting
Founder & Software Engineer (Windows/C++, Android/Java)
Himmelkron
Founder & Software Engineer (Windows/C++, Android/Java)
Himmelkron
Marker-based stereo 3D measurement system for deriving individual bicycle geometry/settings; in-store prototype (guided workflow, visualisation, digital product catalogue, pilot use). EXIST start-up grant (BMWi, 2012–2013); award in "IKT Innovativ" start-up competition (IFA 2014); CeBIT 2016 trade fair.
-
Computer vision 2D/3D: marker detection (2D) + 3D point determination (calibration/reconstruction pipeline); Windows app (C++): guided measurement process + visualisation
-
Android tablet as control frontend (connected via WLAN to measurement station), catalogue navigation; prototype setup/deployment
Tech: C/C++ (STL, Boost), Java (Android) · Windows, Android · OpenCV, stereo camera · TCP/IP, HTTP, WLAN communication · SQLite, MySQL · wxWidgets · Visual Studio, Eclipse, Android Studio
Education
Detailed descriptions of the two education stages, in reverse chronological order: PhD and university studies.
07/2004–12/2012
Robotics/3D Vision (R&D)
Research Associate/PhD Student (Dr. rer. nat.)
University of Bayreuth
Research Associate/PhD Student (Dr. rer. nat.)
University of Bayreuth
Chair of Robotics and Embedded Systems. Topic: human/robot coexistence: 2D/3D algorithms for conservative reconstruction of free/occupied 3D regions from a calibrated multi-camera system - for collision- and injury-free industrial robotics in a shared workspace (research prototype).
-
Algorithms/methods: free-space/occupancy models (3D, voxel space) from multi-view 2D; handling occlusions/artefacts (plausibility: minimum volume/thickness, ground binding, temporal consistency)
-
Vision pipeline: background subtraction/segmentation; distributed preprocessing per camera plus central fusion/3D evaluation (near real-time)
-
Robotics integration: joint angles for dynamic modelling/occlusion; feedback to robot control (prototype: stop on entry into restricted zones)
-
Implementation: algorithm implementation and device integration in C/C++ with suitable open-source libraries and frameworks.
-
Setup and commissioning: Linux setup (distributed PCs plus central server), robot integration (Stäubli RX130b, ABB IRB 4600), GigE cameras (e.g. SVS-VISTEC eco204CVGE), assembly and camera calibration (university plus evaluation site)
Publications (selection)
-
Dissertation 2012 (University of Bayreuth), S. Kuhn: "Wissens- und sensorbasierte geometrische Rekonstruktion"; urn:nbn:de:bvb:703-opus4-10458 YouTube: Demonstration in doctoral colloquium
-
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/Teaching
-
Final evaluation setup at automotive manufacturer (2011)
-
Demonstrator (earlier system state) at Automatica Munich and Hannover Messe (2008)
-
Running/supervising "C++ practical course"
-
Supervising student theses/projects (visualisation/debugging 3D reconstruction, camera placement, tooling)
Tech: C/C++ (STL, Boost) · Linux (distributed setup) · gcc, make, SVN · OpenCV, Eigen · Qt/OpenGL (visualisation) · GPGPU · Algorithms: 2D image processing, multi-camera calibration, 3D/voxel reconstruction/data fusion · Network (TCP/IP, low-level) · XML · Eclipse · Camera interfaces: GigE, FireWire
10/1999–03/2004
Applied Computer Science (Embedded Systems)
Studies (Dipl.-Inf.) + Research Assistant
Technische Universität Kaiserslautern
Studies (Dipl.-Inf.) + Research Assistant
Technische Universität Kaiserslautern
Focus: computer graphics, software development, robotics, embedded systems. Degree 2004: Diplom-Informatiker (Dipl.-Inf.)
-
Diploma thesis: 3D kinematics/numerics: forward/inverse transformation of parallel-kinematic structures (e.g. hexapod) via Newton-Raphson/Householder; constraints derived/parameterised; Wolfram Research Mathematica for equation derivation and code generation; generic model description (joints/actuators/topology) – kinematics directly controllable including simple 3D visualisation; Java for prototyping, implementation in C++.
-
Research assistant (2001–2004):
-
Weather station data web visualisation (HTML + Java applet frontend; CGI/Perl/Apache backend): configurable via applet parameters; selective/interactive loading of measurement channels; chart with scroll/zoom
-
File/print server on Debian (Samba/CUPS) including Perl tooling for configuration
-
Tech: C++, Java, Perl, HTML · Debian Linux · Bash/Shell, SSH, iptables · HTTP · Wolfram Research Mathematica · Numerics/kinematics (Newton-Raphson, Householder) · Samba, CUPS