Position Description
Established in 2005 and based in Charlotte, North Carolina, Snap One is a manufacturer and exclusive source of A/V, security, control, networking, and remote management products for professional integrators. An industry leader in the pro-install channel, Snap One helps integrators build their businesses by providing a wide range of high-quality products, easily accessible through an intuitive website and backed by award-winning service and support. With a vast catalogue of today’s most popular brands, Snap One is the premier choice for professional installers across the globe. With 28 pro stores in thee-commerce One blends the benefits of ecommerce with the convenience of local stores. Additional information about Snap One and its products can be found at www.snapone.com.
The Embedded Software Development Engineer will report to Engineering Manager and will be responsible for working with a team of Engineers and Developers to develop a range of end-customer products. The individual will contribute to solutions that cross multiple engineering disciplines and deliver the highest-quality products used every day by businesses, families, and individuals. The successful individual will help design and deliver new capabilities that will challenge yourself, while noticeably impacting people's quality of life.
Specific Responsibilities
- Develop and test complex application software in a multi-function, multi-team product environment
- Develop and test kernel and driver-level software to support user-mode applications
- Develop unit and integration test software to contribute to CI/CD automation pipeline
- Create test automation frameworks to ensure high-quality firmware
- Debug embedded software issues on hardware platforms
- Participate in Agile and Kanban development planning and meetings
Required Qualifications
- Bachelor’s degree in electrical engineering or Computer science
- 5+ years experience in embedded Linux/Android and RTOS development
- Proficient in C/C++ programming, embedded development (including micro-controllers), and test tools
- Programming background in Shell scripting
- Proficient in low-level driver development for various interfaces (I2C, SPI, Ethernet, Wi-Fi, etc.)
- Proficient in version control GIT, GIT Flow
Preferred Qualifications
- Work experience in Android BSP development for processors like NXP’s i.MX6, i.MX8
- Knowledge of porting Android on embedded devices & board bring up activities
- Understanding of Android architecture and its layers
- Work experience with Android framework/SDK and AOSP
- Work experience with Heterogeneous multicore systems (NXP i.MX7, NXP i.MX8 etc.)
- Work experience developing embedded Linux kernel software and user-space applications
- Work experience in Yocto environment
- Experience working with network technologies and protocols including IP, UDP, TCP, multicast, etc.
- Familiarity with standard embedded design hardware tools such as debuggers, oscilloscopes, logic analyzers, protocol analyzers, etc.