We are looking for a:
Embedded Software Development Engineer
Control4 has an immediate opening for a Mid-Senior Software Development Engineer with Embedded Systems development experience. As a Software Development Engineer, you will work in the rapidly developing home automation industry. You will be developing a range of end-customer products including wireless access points, routers, wireless routers and power distribution units. You will be able to contribute to solutions that cross multiple engineering disciplines and deliver the highest-quality products used every day by businesses, families, and individuals. You will help design and deliver new capabilities that will challenge yourself, while noticeably impacting people's quality of life.
- 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 and test interfaces such as REST APIs for device control
- Develop unit and integration test software to contribute to CI/CD automation pipeline
- Debug embedded software issues on hardware platforms
- Participate in Agile and Kanban development planning and meetings
- Create test automation frameworks to ensure high-quality firmware
- Bachelor’s degree in Electrical engineering or Computer science
- 5+ years experiences in embedded Linux development
- Proficient in 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, WiFi, etc.)
- Proficient in version control GIT, GIT Flow
- Work experience implementing C software for routers, wireless routers, PDUs, wireless networking platforms
- Work experience developing embedded Linux Kernel software for networking platforms
- Programming with OpenWRT
- LUA programming experience
- 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.