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

Freelance · Solution Design · Implementation · Integration · Testing

Software development since 2001 · Linux since 2001

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

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

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

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

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)

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)

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

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

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).

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

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

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)

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

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