- San Francisco
- Santa Barbara, CA
- Date Posted
- Jan. 6, 2022
- Software Engineering
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.
We are passionate about building and delivering the finest high definition multi-channel audio experiences to our customers. Our products stream all the music on earth, in every room, wirelessly, and you control it all from the palm of your hand. It’s easy to use, but keeping things simple and bug-free is hard work.
As an Embedded Audio Software Engineer working as a member of the CoreOS Team, you will be part of the team responsible for the audio processing and rendering software at the heart of all Sonos products. You are a highly skilled embedded software engineer that thrives in a new product development environment and you are as comfortable with using a logic analyzer to debug a difficult problem as you are with using GDB. You will be responsible for applying solid software engineering design patterns and best practices needed to evolve and expand the core codebase to deliver new ideas and technical innovations into products that continue to delight our customers and set the satisfaction bar higher. You will be a member of a team that is setting new standards for the audio industry and reshaping the way consumers engage with music. You will work independently as well as with a team of industry leading innovators in other engineering fields such as acoustics, mechanical, application software, hardware, and user experience. If you love music, creating breakthrough new products and solving challenging problems, we would like to talk to you!
The ideal candidate will be an embedded software expert with a solid background in embedded Linux and RTOS based real time processing platforms for audio and speech processing.
What You’ll Do:
- Design, development and refactoring of hard real-time software architectures and modular software components used to power Sonos products
- Solve complex audio traffic routing problems for high definition audio formats over wireless networks.
- Integrate new multi-channel high definition audio codecs and streaming formats into Sonos audio platforms
- Interface with other software teams to define the proper APIs and IPC mechanisms needed to access audio services
- Contribute to the suite of developer unit tests using GTEST
- Reproduce, isolate and debug complex low-level problems that may span interfaces between hardware and software.
What You’ll Need:
- 3-5 years of real-time embedded processor software engineering experience in a multi-threaded Linux environment.
- Understanding of streaming multichannel lossy and lossless audio compression formats such as MPEG, AAC, OPUS, FLAC and Dolby ATMOS
- Experience with handling audio over wireless network traffic and understanding timing and latency constraints
- Fluent in C and C++ programming languages
- Writing developer tests using GTEST or another similar testing framework.
- Demonstrated ability to design, develop, document and test portable and maintainable code that is processor-, architecture- and OS-agnostic
- Thorough understanding of unit testing and design-for-testability strategies
- Experience with benchmarking algorithm performance on embedded systems using software and hardware techniques
- Highly proficient in the use of common source code control and defect tracking systems (Jira, Perforce, Git)