Senior Software Developer - Embedded (Job Req #2025-294)
Ross Video
Job Overview
We are seeking a skilled Embedded Software Engineer to join our software team and play a critical role in designing and developing software for embedded systems. This position involves taking ownership of the software lifecycle, from initial requirements to production deployment and post-production support. You will be responsible for creating efficient, stable, and scalable system solutions while collaborating closely with hardware design teams to ensure seamless integration.
The ideal candidate will have hands-on experience in developing and troubleshooting embedded systems, Bootloaders and Linux device drivers, with a deep understanding of ARM-based SoC platforms, C and C++, alongside expertise in development frameworks like Yocto.
This role offers the opportunity to work on cutting-edge embedded technologies, including bootloaders, interfaces like PCIe and USB, and network components. Candidates with a proactive approach to problem-solving, strong collaboration skills, and a passion for embedded software innovation will thrive in this position.
Who you report to: Senior Manager, Embedded Software Development
What the job is all about:
- Design and implement software for embedded devices and systems, from requirements to production and commercial deployment.
- Develop, code, test, and debug system software.
- Review code and design, focusing on improving efficiency, stability, and scalability of system resources.
- Integrate and validate new product designs.
- Develop, integrate, and troubleshoot bootloaders and Linux device drivers.
- Work with ARM-based embedded processors, particularly System-on-a-Chip (SoC) devices like Altera SoC and Xilinx Zynq.
- Utilize experience with Marvell switches and network protocols such as TCP/IP, UDP, VLAN.
- Demonstrate knowledge of related interfaces and technologies, including IP stack, storage, USB, I2C, SPI, PCIe, and DMA systems.
- Leverage embedded Linux development frameworks such as Yocto and Buildroot, along with related cross-compilation tools.
- Support software QA efforts and optimize I/O performance.
- Provide post-production technical support for products.
- Collaborate with hardware design and development teams to ensure seamless system integration.
- Assess and integrate third-party and open-source software solutions.
Who you are:
- Bachelor’s degree in Computer Science, Engineering, or a related field.
- Proven experience in software engineering, particularly in embedded systems design with preemptive, multitasking real-time operating systems.
- Proficiency in programming languages such as C or C++.
- Hands-on experience in the development and troubleshooting of embedded systems and Linux device drivers.
- Familiarity with software configuration management tools, defect tracking systems, and peer review processes.
- Strong understanding of OS coding techniques, IP protocols, interfaces, and hardware subsystems.
- Ability to interpret schematics and data sheets for hardware components.
- Excellent documentation and written communication skills.