Senior Firmware Engineer, Validation Platform
WHO ARE WE LOOKING FOR?
The ideal candidate for this role comes from a strong embedded software engineering background. This individual would have experience working with modern C++, Linux O.S. or Real-Time Operating Systems, and exposure to programming FPGAs using System Verilog.
We are looking for software engineers who are excited to help build a state-of-the-art automotive platform that is “software first”. We envision the Arene platform will change the way vehicles are made. Our team is developing tools and systems using modern software techniques, and we need software engineers who excel at building robust software systems to solve challenging problems at scale.
RESPONSIBILITIES
-
Mentor and coach Software Engineers towards building production grade software
-
Develop and own software frameworks written in Modern C++ for our in-house runtime API. This includes middleware components such as scheduling for real-time systems, inter-process communication, and operating system abstractions
-
Leverage experience in FPGA programming to contribute to the enhancements of existing features or new features.
-
Leverage experience to develop solutions with sound design principles, extensibility, maintainability, and safety in mind
-
Set the roadmap by working with Vehicle Integration, Cloud Services, Hardware, Embedded, and Autonomy software teams, and influence strategic decisions within and globally outside the team
-
Be a leader, support best software practices, and mentor junior engineers
-
Use strong triage skills to root-cause issues across a complex software stack, and develop processes to streamline unknown future issues smoothly
-
Develop solutions for software to be run in a CI test environment, with a strong emphasis on automation to prevent regressions
-
Write clear and comprehensive documents including: proposals, specifications, design documentation, user documentation, tutorials, and post mortems
-
Design and deliver SystemVerilog HDL for automotive test equipment.
MINIMUM QUALIFICATIONS
-
BS, MS, or PhD in Computer Science or related field
-
Strong Modern C++ programming and working knowledge of at least one scripting language like Python, Bash, JavaScript, or Ruby
-
Record of building software frameworks that are fast, simple, and error-free
-
Strong background in object oriented programming and writing reusable C++ code
-
Good understanding of inter-process communication, Linux userspace development, and knowledge of Linux kernel development
-
Ability to operate effectively and autonomously across multiple teams, and navigate technical ambiguity with only high level direction
-
Ability to evaluate approaches and choose the best one based on fundamental qualities and supporting data
-
Good communication skills. Ability to explain technical concepts through design documents and reviews
PREFERRED QUALIFICATIONS
-
Experience with electrical and software architectures used in automotive engineering.
-
Insight into real-time, distributed, parallel computing, and low-level hardware
-
Developing safety critical/hard real time applications (aerospace, automotive, robotics, etc.)
-
Familiarity with automotive or embedded processor architectures (ARM/x86)
- Development experience with either Verilog OR SystemVerilog HDL.