About the Role
About The Team & Mission
The SDV Software Engineer will create applications that operate within vehicles, collecting and processing vehicle data. We are looking for someone who deeply understands the automotive domain and can collaboratively design and build vehicle software with a robust and scalable architecture.
Responsibilities
- Design, develop, and maintain vehicle applications (agents).
- Implement features for collecting, processing, storing, and transmitting vehicle data.
- Analyze vehicle domain and requirements, designing them into models and structures.
- Implement communication, authentication, and security features for cloud integration.
Qualifications
- Experience designing and developing production applications in C++.
- Deep understanding of object-oriented design and ability to write structured code.
- Ability to analyze complex requirements and domains, designing them into models and boundaries.
- Understanding of socket programming and network communication (TCP/TLS, etc.).
- Understanding of authentication and security (certificates, PKI, etc.) and cloud integration structures.
- Interest in Rust and willingness to learn, with an understanding of concepts like ownership and memory safety.
Preferred Qualifications
- Experience developing applications based on automotive software or platforms (QNX, AUTOSAR, Automotive Linux, etc.).
- Experience developing production code in Rust or migrating C++ code to Rust.
- Experience applying domain modeling methodologies such as Domain-Driven Design (DDD) in practice.
- Experience with asynchronous and concurrent programming.
- Understanding of HW control and embedded environments.
- (Senior) Experience designing and developing reusable frameworks or platforms in C++.
- (Senior) Ability to design modular structures and interfaces considering scalability and maintainability.
- (Senior) Experience leading design direction and ensuring code quality within the team.
Requirements
C++ Development
Experience designing and developing production applications in C++.
Object-Oriented Design
Deep understanding of object-oriented design and ability to write structured code.
Complex Requirement Analysis
Ability to analyze complex requirements and domains, designing them into models and boundaries.
Network Communication
Understanding of socket programming and network communication (TCP/TLS, etc.).
Security Understanding
Understanding of authentication and security (certificates, PKI, etc.) and cloud integration structures.
Rust Interest
Interest in Rust and willingness to learn, with an understanding of concepts like ownership and memory safety.
Nice to Have
Experience developing applications based on automotive software or platforms.
Experience developing production code in Rust or migrating C++ code to Rust.
Experience applying domain modeling methodologies such as Domain-Driven Design (DDD) in practice.
Experience with asynchronous and concurrent programming.
Understanding of HW control and embedded environments.