Staff Embedded Software Engineer, Autonomy
Rivian
Palo Alto, United States of America
1 month ago
Role details
Contract type
Permanent contract Employment type
Full-time (> 32 hours) Working hours
Regular working hours Languages
English Experience level
SeniorJob location
Palo Alto, United States of America
Tech stack
Testing (Software)
ARM
Bash
Profiling
Code Review
Computer Programming
Continuous Integration
Software Debugging
Embedded C
Embedded Software
Ethernet
FreeRTOS
Integrated Development Environments
Joint Test Action (IEEE Standards)
Python
Lua
Multiprocessing
Real-Time Operating Systems
Software Engineering
Transmission Control Protocol (TCP)
Multithreading
Scripting (Bash/Python/Go/Ruby)
Information Technology
Job description
As a Staff Software Engineer specializing in safety-critical self-driving embedded software, 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.
- Develop software working on real-time operating systems for resource efficient systems (FreeRTOS, Zephyr, etc.) on a distributed and heterogeneous system (multiple processors, multi-core, multi-threaded) including in-house developed silicon
- Develop necessary tools to support development, building, observability, debugging, and testing
- Create early project definitions, set up build system and compiler tooling, solving complex problems and develop infrastructure along the way to allow for more efficient development from the team
- 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
- Identify gaps in development process and technical implementations to address and improve the quality and pace of team deliverables
- Coordinate with application development and cross-functional teams to enable and support vehicle and ADAS features
Requirements
Do you have experience in Software testing?, * B.S. / M.S. in Computer Science, Engineering, or a related field
- 6+ years of experience developing production-grade software for safety and function critical applications in automotive, aerospace, robotics, or related fields
- Strong embedded C programming skills
- Experience GCC/Clang compilers + linkers
- Experience with Bazel or other large-project build systems
- Strong triage and problem solving skills
- Experience with resource-constrained architectures
- Experience with real-time applications and kernels
- Experience writing, profiling, and debugging multi-threaded software
- Demonstrated success working in fast-paced, continuous integration / continuous development environment
- Familiarity with at least one scripting language (for example Bash, Lua, Python)
Preferred Qualifications:
- Experience with Ethernet + TCP/IP networking
- Experience with CPU performance measurement and profiling
- JTAG, logic analyzer debugging
- Timesync
- ARM Cortex R (Armv8-R), Infineon TriCore, similar
- Functional Safety experience (ISO-26262, IEC-62304, DO-178C, etc.)