Senior Embedded Engineer
Who you'll be be joining
Our Embedded Chapter is made up of 20+ Embedded Developers with a wide variety of specialties, skill sets, backgrounds, and experiences. They aim to bring their Embedded experience to the cross-functional squads that they are a part of, with a focus on collaboration, learning, development.
How you'll make an impact
As a Senior Embedded Engineer, you will be responsible for helping develop the software that powers our hardware products. These devices run on a multitude of platforms from small, battery operated microcontrollers to full-blown multicore embedded Linux systems.
The embedded team is in a unique position as we own a wide breadth of the technologies that get built into our devices making each day a unique challenge. You may be working on portions of the low-level software/hardware interactions, but equally important is the development of the user applications that run on device. Everything from network protocols, to control algorithms to building enticing graphic UI’s.
The embedded team is also responsible for developing the test fixtures used to validate the functionality of each device manufactured. These devices are truly products on their own and no less complex considering the hardware and software systems they must interface with.
Aside from the in-house technologies, the embedded team is often also responsible for integrating third-party services. For example, we developed the device software stack that allowed us to become one of the first Apple HomeKit accessories on the market as well as more recently one of the first third parties to integrate Amazon Voice Services for Alexa functionality built right into a thermostat.
To accomplish all of this, at any given time you may be working closely with developers from other teams as well as our QA, Product Management, Manufacturing, Hardware teams and third-party tech companies on integrations.
What you'll bring to the table
We've built the following list as a guideline for some of the skills and interests we've seen in Embedded Systems Development - but we strive to build our team with members from a diverse background and skill set, so we'd love to chat!
- C++ development experience
- Object-oriented design and coding skills with knowledge of data structures and design patterns
- Multi-threaded design and coding practices
- Knowledge of ARM architecture-based processors and development tools
- GUI development
- Aptitude in programming for reliability and testability
- Knowledge of Home Automation, Control Systems or Internet of Things
- Knowledge of embedded Linux systems
- Just so you know - the hired candidate will be required to complete a background check.
What happens after you apply:
Application review. It will happen. By an actual person in Talent Acquisition. We get upwards of 100+ applications for some roles, it can take a few days, but every applicant can expect a note regarding their application status.
- A 30-minute phone/video call with a member in Talent Acquisition
- A first-round virtual interview – expect technical, behavioural and situational questions
- Final Stage - Take home assignment: You will be sent a technical assignment ahead of time. You will then discuss your solution for 45 mins and the rest of the time will be Q&A.