Senior Systems Software Development Engineer
Listed on 2026-05-19
-
Software Development
Embedded Software Engineer, C++ Developer, Software Engineer
At Sonos we want to create the ultimate listening experience for our customers and know that it starts by listening to each other. As part of the Sonos team, you’ll collaborate with people of all styles, skill sets, and backgrounds to realize our vision while fostering a community where everyone feels included and empowered to do the best work of their lives.
This is a hybrid role, based in our Boston, MA office.
Visa Sponsorship:
Sonos is unable to sponsor or take over sponsorship of an employment visa for this role at this time. We ask that applicants be authorized to work for any US employer, both now and in the future.
- Design and implement real‑time system software architectures leveraging SMP (symmetric multiprocessing) and AMP (asymmetric multiprocessing) approaches for embedded audio systems
- Bring up, debug, and maintain boot loader (U‑Boot) and embedded Linux across new hardware platforms.
- Lead early board bring‑up and debug of new PCBs using ARM SoCs, Wi So Cs , BT SoCs, and microcontrollers.
- Develop and maintain Linux kernel drivers across a wide range of subsystems, interfaces, and peripherals.
- Own and evolve the HDMI software stack, including:
- Video path integration
- ARC/eARC
- CEC
- Userspace interfaces supporting the audio/product pipeline
- Integrate vendor SDKs, BSP components, and OS modules into the build and release process
- Develop and maintain HAL libraries enabling clean, testable interfaces between hardware and user space.
- Identify platform gaps relative to hardware capabilities and product requirements; propose and deliver improvements to enable faster prototyping and evaluation of new hardware.
- Contribute to BSP validation and system‑level debugging across HW/SW boundaries.
- Define, execute, and document unit and integration testing for system software components.
- Partner with silicon and component vendors to coordinate support and resolve platform issues across CPU/radio SoCs, MCU/PIC, NPU/GPU, and peripheral devices.
- Support hardware engineering teams with deep technical debugging and contribute to OS/platform modernization efforts.
- Bachelor’s in Computer Engineering, Electrical Engineering, Computer Science or related field
- At least 5 years of professional experience developing firmware/system software for embedded systems
- Strong proficiency in C/C++
- Significant experience with embedded Linux, kernel internals, and device driver development.
- Experience bringing up and debugging systems using U‑Boot and common boot flows.
- Experience with toolchain and debug tooling (e.g., gcc, binutils, gdb).
- Experience designing and developing software/firmware using Free‑RTOS as developing bare‑metal applications for microcontrollers
- Strong debugging capability using tools such as JTAG, logic analyzers, and oscilloscopes.
- Proven ability to build performance‑critical software in resource‑constrained environments (e.g., high‑speed peripheral drivers).
- Proficiency with Yocto Project / Open Embedded workflows.
- Strong understanding of Linux execution contexts and concurrency, including locking/mutexes, SMP behavior, and kernel/user boundaries.
- Familiarity with key interfaces/protocols such as:
- DDR, NAND, PCIe, Ethernet, USB
- SPI, I2C, UART, I2S
- TCP/IP, Wi‑Fi (802.11), Bluetooth/BLE
- Proficiency in Python
- Experience with the HDMI subsystem (Video, ARC/eARC, CEC).
- Prior hardware design exposure and ability to read schematics/datasheets.
- Familiarity for low‑level optimization and performance tuning.
- Familiarity with USBPD and development experience in USB PD ICs
- Experience working in Agile development environments.
The base pay range for this role based off geographic location is: $137,000 and $170,900. The specific pay offered will depend on the candidate’s geographic location, as well as qualifications and experience. We apply geographic pay differentials based on the cost of labor in the market. Employees in high‑cost locations may be compensated at the upper end of the range, while those in medium or low cost markets may be compensated at the lower end of the range.
Your recruiter can provide more details about the specific salary range for your location…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).