Senior Software Developer - Embedded (Job Req #2026-039)
Ross Video
Job overview:
The ideal candidate is part of our software team creating world-leading next generation broadcast video processing technology including compressed video streaming. They coordinate with the product manager on overall product vision and leads a team in the design of new products and the improvement of existing products. Our team is Agile and DevOps aligned, with a focus on continuous learning and automation. We hold backlog refinements and post-mortems, regularly tackle technical debt and reserve time for innovation. If you've ever watched live television, news, sports, or entertainment, you've seen our products in use. Major award shows, most professional sports teams, and many of the largest broadcasters in the world use Ross Video technology. Get behind the scenes and learn about what it takes to make live events possible.
Who you report to: Director TPM, Edge Technologies
What the job is all about:
- Participate in Agile FaST ceremonies like retrospectives, refinement, planning and FaST meetings
- Participate in a daily sync-up meeting and work with team members afterward to resolve a blocking integration issue
- Work with an FPGA designer to help debug a lab issue and create code to help gather additional telemetry and status information
- Participate in a design/code review of a field system update software and provide your feedback on how to better handle a fault condition
- Review test coverage strategy and provide feedback to further improve coverage or to scale back based on acceptable risk
- Work with a hardware and software designer to resolve a FIFO overflow issue
- Implement in C++ a driver that controls a hardware accelerator to perform color correction for high dynamic range video
- Document an API to support integration with another software team
- Design a thread safe register interface module for a high-speed register interface
- Host a post-mortem, capture the feedback, and make plans for changes
- Discuss the implementation of a new customer requested feature with the marketing team and product manager
- Work with the project manager to identify key project milestones and integrations
- Help maintain the Linux R&D build server and create a script to add a new feature to our build automation flow
- Meet with software and RTL designers to propose a lab integration strategy
- Teach a new hire how to analyze network packets with Wireshark
- Perform other related duties as required
As an intermediate/senior developer, the candidate is expected to oversee the following:
- Propose a vision or theme for the work cycle
- Review the backlog, add stories and prioritize
- Coordinate with the design team, other cross functional teams, suppliers and customers to ensure the overall design and each specified sub-system meets all requirements according to an established project plan
- Provide significant technical leadership to design review preparation, execution, and timely action item closure for complex issues
- Document the design to a high standard for internal and customer review
- Effectively communicate technology applications and benefits to a wide audience including customers and design partners.
- Coach and mentor team members to attain breakthrough results in assigned deliverables
Who you are:
- Bachelors degree in computer science, computer engineering, software engineering or related discipline
- Experienced with C and C++
- Experience leading software and mixed discipline development teams
- Experience with ARM multi-processor systems within an embedded Linux environment
- Possess experience developing under Linux with GNU tool chain
- Experience working with scripted tool flow (tcl, perl, sh), source control
- Experience working with lab equipment to debug complex designs that could involve multiple people.
- Knowledge of TCP/IP networking including familiarity with UDP, TCP, HTTP, FTP, SLP, Zeroconf.
- Knowledge of software design for embedded system with a mix of application, library and driver development is an asset
- Ability to resolve memory leaks and deadlocks
- Knowledge of creating hardware stubs for simulated testing
- Experience performing static code analysis
- Knowledge of revision control systems, branching and tagging methodologies
- Expertise in software debugging through JTAG interfaces and logic analyzers
- Familiarity with hardware integration and lab tools
