The Senior Software Development Engineer will implement platform, system and application level software in Linux on various embedded devices to support the Audio Video Product Development team.
This position will interface with other application development teams to determine requirements for and contribute to hardware interfaces needed by the application. The Senior Software Development Engineer will contribute to application level software within Linux to implement specific product features offered by the platform.
This position will be required to work effectively in a fast-paced environment, have proven experience managing priorities and working effectively across internal stakeholders. The successful individual will demonstrate intellectual curiosity, accountability, attention to detail and business acumen.
- Develop and test complex application software in a multi-function, multi-team product environment
- Develop and test interfaces such as REST APIs for device control as well as interprocess frameworks for communication between cross-functional processes on device
- 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
- Debug embedded software issues on hardware platforms
- Bachelor's Degree in Computer Science or comparable discipline
- 5+ Years' Experience in embedded Linux development
- Proficient in C/C++ programming language
- Demonstrated understanding of RTOS principles such as parallel execution, synchronization and memory management
- Experience working with network technologies and protocols including IP, UDP, TCP, multicast, etc.
- Ability to read and understand technical documentation including product specifications, datasheets and schematics
- Familiarity with Agile Methodology principles
- Familiarity with standard embedded design hardware tools such as debuggers, oscilloscopes, logic analyzers, protocol analyzers, etc.
- Advanced Degree in Computer Science or comparable discipline
- Experience with Continuous Development/Integration pipelines
- Experience with automated testing of embedded software and devices
- Experience in board bring up, BSP integration
- Experience configuring/modifying Linux bootloader, kernel and device driver internals