> Markdown version of [/jobs/ext/2321158-remote-linux-embedded-systems-software-engineer-audio-usb-hid](https://www.wearedevelopers.com/jobs/ext/2321158-remote-linux-embedded-systems-software-engineer-audio-usb-hid). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Remote Linux Embedded / Systems Software Engineer - Audio & USB HID - **Company:** ZENOVO LTD - **Location:** London, UK (Remote available) - **Contract:** Permanent contract - **Skills:** Microsoft Windows, Application Programming Interfaces (APIs), Advanced Linux Sound Architecture, Data Analysis, C++ (Programming Language), Encodings, Codecs, Debian Linux, Software Debugging, Linux, Linux on Embedded Systems, Service Development Studio, Software Engineering, Software Systems, Data Streaming, System Programming, Data Logging, Low Latency, OPUS (Software) - **Published:** August 10, 2026 - **Apply:** https://uk.indeed.com/viewjob?jk=8cbb2bef0f8cec7c ## About the Role * Strong C/C++ systems programming * Proven Linux/Debian daemon or service development * Practical experience with systemd * Linux audio (PipeWire, PulseAudio or ALSA) * USB device communication (USB HID, hidraw, libusb, composite devices, hot-plug handling) * Real-time or near-real-time audio/data streaming * Familiarity with Opus or similar low-latency codecs * Ability to debug across application, OS, audio and USB boundaries * Experience analysing and porting Windows code to Linux Desirable * Embedded Linux * BLE / DA14531 or similar * Custom USB HID protocols * Kiosk / unattended system experience * Windows-to-Linux ports * Audio latency and codec pipeline debugging ## Description * Set up the Debian build/test environment and create a production-ready systemd service that starts at boot and recovers from failures. * Analyse the existing Windows listener, extract portable C/C++ logic, and replace Windows-specific APIs with Linux equivalents. * Capture system audio from the default output using PipeWire or PulseAudio (WASAPI loopback equivalent), handle device hot-swap and idle/silent states with low CPU usage. * Encode audio (Opus), chunk into 64-byte HID packets, and implement the required notification/header protocol. * Enumerate the composite USB device, locate the correct HID interface, and communicate via hidraw or libusb. * Handle USB attach/detach, reconnect, write failures and buffer overruns robustly. * Implement the shared command protocol (no API changes) and provide matching stub handlers. * Deliver diagnostic logging with parity to the Windows tool (audio level, VID/PID, connection status, errors, etc.). * Perform side-by-side validation against the Windows version and Android reference app for audio quality, latency, framing and stability.