Software Engineer

Via
Charing Cross, United Kingdom
24 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Compensation
£ 55K

Job location

Charing Cross, United Kingdom

Tech stack

Advanced Linux Sound Architecture
Systems Engineering
Automation of Tests
UClibc (C Standard Library)
C++
CMake
Profiling
Code Review
Software Debugging
Linux
File Systems
Firmware
Python
Memory Leaks
Software Engineering
Management of Software Versions
Data Logging
Concurrency
GIT
Perf (Linux)
Yocto
Heap (Data Structure)

Job description

Our client is looking for a pragmatic systems engineer who loves building fast, reliable software that talks to real hardware. You'll work alongside product designers, embedded/EE, and application developers to ship maintainable, high-performance systems for professional audio.

What you'll be doing

  • Designing and implementing robust, maintainable C++ systems (C++17/20).

  • Building efficient, asynchronous services (event loops, concurrency, IPC, networking).

  • Managing complex toolchains (cross-compilers, CMake/Bazel), packaging, and versioning workflows (Git, trunk-based or GitFlow).

  • Owning CI/CD pipelines and release engineering for smooth delivery.

  • Writing rigorous automated tests (unit/integration/functional) with coverage and reliability gates.

  • Profiling and debugging in production-like environments (perf, valgrind, ASan/TSan/UBSan, heap/CPU profilers).

  • Collaborating tightly with hardware and firmware teams to integrate software with real devices.

Requirements

  • Strong background in modern C++ (required): templates, STL, concurrency, RAII, move semantics.

  • Solid Linux systems programming: sockets, filesystems, epoll/kqueue, threads, timers, IPC.

  • Experience with secure systems design (threat modeling, least privilege, secrets, sandboxing).

  • Familiarity with embedded Linux development (Yocto/Buildroot, cross-compilation, init/services).

  • Interest in audio software, plug-ins, and AoIP (Audio over IP).

Nice to have

  • Rust experience (or a serious interest in learning it); FFI with C/C++.

  • Real-time considerations (low-latency I/O paths, jitter budgets, lock-free structures).

  • Networking for media: multicast, PTP/IEEE-1588, AES67/RAVENNA/Dante/AVB-TSN.

  • Audio domain exposure: plugin formats (VST3/AU/AAX), DSP pipelines, JACK/ALSA/CoreAudio/ASIO.

  • Observability/tooling: metrics/logging/tracing, crash capture, OTA/firmware update infrastructure.

  • Internal tools and partner portals: small web backends (C++/Rust/Python) to support ops/dev.

What we're looking for

  • Software engineering background (degree or equivalent professional experience).

  • Ability to design and deliver well-structured, maintainable systems end-to-end.

  • Comfortable collaborating across disciplines with designers, software engineers, and hardware engineers.

  • Ownership mindset: you ship, measure, and iterate.

Apply for this position