• Locations
    • San Francisco
    • Boston
    • Seattle
  • Date Posted
  • Jan. 10, 2022
  • Function
  • Software Engineering
  • Sector
  • Entertainment

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 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 a Senior Software Development Engineer on the Consumer Experience Playback Control team, you will join a cross-disciplinary team responsible for enabling the users’ control of their Sonos system through any modality, including BLE. You will design, build and enhance the embedded software system that controls speaker behavior throughout the multi-room Sonos system and future Sonos products. In our dynamic environment you will collaborate with software engineering, user experience and product management to design and deliver unique, innovative new features that delight our customers. Join our team focused on new product development and the continuous evolution of our core embedded and mobile software.

What You’ll Do

  • Write clear, reliable, maintainable code
  • Design, build, analyze, enhance, and refactor the embedded software system used to power Sonos products
  • Interface with other software teams to define the proper APIs and IPC mechanisms
  • Reproduce, isolate and debug complex low-level problems that may span interfaces between hardware and software
  • Contribute to the suite of developer unit tests using GTEST
  • Collaborate with software engineers, PM, QA and UX to design and deliver unique, innovative new features that delight our customers
  • Drive your work forward and exercise your strong technical aptitude to influence positive change and innovation
  • Participate in team process, using Agile methodologies to adapt and continuously improve
  • Develop and mentor junior engineers, paying your knowledge forward

Basic Qualifications

  • 4+ years of C/C++ software engineering experience in a multi-threaded Linux environment
  • Experience delivering reliable, extensible and maintainable software
  • Experience writing and implementing APIs
  • Excellent analytical and problem-solving skills
  • Highly proficient in the use of common source code control and defect tracking systems (Jira, Perforce, Git, GitHub)
  • Experience writing developer tests using GTEST or another similar testing framework with understanding of unit testing and design-for-testability strategies
  • Strong written and verbal communication skills with experience articulating technical concepts in cross-functional teams

Preferred Qualifications

  • Demonstrated ability to design, develop, document and test portable and maintainable code that is processor-, architecture- and OS-agnostic
  • Experience with benchmarking algorithm performance on embedded systems using software and hardware techniques
  • Experience with embedded Linux
  • Experience with Bluetooth or BLE technologies
  • Cross-platform mobile application development
  • Experience with Cloud, RESTful API and HTTP technologies is a plus