
Want to know if this job is worth applying to?
Ann Arbor, Michigan, United States
Hybrid
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.
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.
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
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)