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
-
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.)