Role SummaryAs a Software Engineer specializing in safety-critical self-driving middleware, you will play a vital role in the design, development, and deployment of software that underpins essential self-driving features. Your responsibilities encompass a range of technical tasks, from software development to architecture analysis, all contributing to the successful implementation of robust and reliable self-driving solutions.
Responsibilities- Design, develop, and deploy software within hardware abstraction middleware to enable safety-critical self-driving features
- Develop software working on Linux as well as real-time operating systems (QNX, FreeRTOS, etc.)
- Develop software working on a distributed and heterogeneous system (multiple processors/HW engines)
- Develop necessary tools to support development, debugging, and testing
- Assist in software-design and code reviews while assisting other developers on technical issues, design choices, and decision making
- Analysis of requirements, architecture, design, development, code review, quality assurance, and deployment of entire software engineering life cycle
- Coordinate with application development and cross-functional teams to enable and support middleware integration
Qualifications- B.S. / M.S. in Computer Science, Engineering, or a related field
- 5+ years of experience developing production-grade software from requirements gathering
- Strong C++ programming skills
- Familiarity with at least one scripting language (for example Bash, Lua, Python)
- Experience in automotive or robotics software development
- Experience in software development for x86_64 and ARM architectures
- Experience working on heterogeneous systems with various types of hardware accelerators (GPU, ISP, Encoder, etc.)
- Experience using and/or building libraries for hardware accelerators (CUDA, TensorRT, OpenCL, etc.)
- Experience contributing to middleware and/or building abstraction layers
- Familiar with OpenCV, OpenVX, or relevant acceleration frameworks in perception applications
- Experience contributing to software tooling (for code auto-generation, test automation, fault injection, etc.)
- Good team player with great communication skills to drive cross-functional efforts in a fast-paced development environment
- Passionately motivated to take ideas from R&D phase to a product
- Software Development life cycle experience: from requirements gathering through to implementation and maintenance.
Pay DisclosureSalary Range for California Based Applicants: [$162,000.00 - $203,000.00] (actual compensation will be determined based on experience, location, and other factors permitted by law).
Benefits Summary: Rivian provides robust medical/Rx, dental and vision insurance packages for full-time employees, their spouse or domestic partner, and children up to age 26. Coverage is effective on the first day of employment.