Principal Software Engineer - Linux/BSP
Role details
Job location
Tech stack
Job description
The Principal Software Engineer is responsible for developing embedded software including design and development for safety critical automotive computer vision-based applications. The candidate must have programming experience with Linux Device drivers, Linux OS bring up, Board Support Package, ARM architecture, C/C++ on QNX or Linux operating systems, using a formal software process model like ASPICE., * Development (design, implement, test and debug) of core and/or application specific software requirements for automotive embedded electronic module serial production projects
- Develop software in compliance with a formal ASPICE/Comma based Global Engineering Process (GEP)
- Perform work assignments as a highly competent software engineer, requiring independent design, implementation and testing of the software components.
- Interface with product development teams located in various geographical locations
- Ability to adapt to changing software release schedules and multitask in a fast-paced environment
- Real-time embedded software using C for 32/64-bit multicore SoC/microcontrollers like NVIDIA, Qualcomm or TI, As part of our commitment to a fair, consistent, and efficient recruitment process, we may use artificial intelligence (AI) tools to assist in the initial screening of applications submitted through our Workday system.
These tools help identify qualifications and experience that align with the role requirements. Please note that AI is used solely to support our recruiters. Final decisions are always made by the hiring manager and the hiring team.
Importantly, no applicant data is shared externally through these AI tools. All information remains securely within our systems and is handled in accordance with our privacy and data protection policies.
Requirements
- Experience in developing Linux device drivers, Board bring up,
- Strong understanding of Image Quality Metrics and Test Patterns, camera MTF tests
- Camera image quality tuning for Automotive applications like Internal cabin, external cameras, Machine Vision, Human Vision, etc.
- Experience with OS/BSP, Camera device driver development
- Experience with design, implement, test and debug of embedded software for automotive electronic modules
- Experience with developing software in compliance with a formal ASPICE based Global Engineering Process (GEP)
- Hardware/Software (HW/SW) integration, Software configuration management, Full software life-cycle development
- ISO26262 Functional safety software development experience
- Ability to successfully contribute to multi-disciplined teams, * Bachelor's degree in computer engineering / software engineering / electrical engineering / computer science or equivalent (Master's preferred), * 5 years or more relevant experience for development Linux Device drivers, PCIe, Device Tree, Board Bring up, etc. software development, * Excellent knowledge of writing Camera drivers, tuning ISPs using Embedded C++ or C including Linux/QNX/RTOS environment
- knowledge of GPU, C6x/C7x DSP core architecture, OpenVX, OpenGL ES
- Excellent knowledge of product development engineering practices in automotive field
- Experience using the following tools or related tools:
- Requirements management (PTC/Reqtify),
- Architect & Design (Enterprise Architect),
- Static Analysis (QAC), Debuggers,
- Unit Testing (VectorCAST, GTest),
- Configuration Management (PTC Integrity/Git),
- QNX/Linux Development environment,
- GUI software development,
- Open mind to work in constantly changing requirements and schedules
- Able to work effectively in a global environment.
- Able to adapt to different tools to conform to processes
- Able to represent technical design topics internally and externally
- Travel (domestic and international) may be needed
- Able to demonstrate self-motivation, tenacity, and determination (these skills are very useful in this position)
- Able to work independently with no supervision
- Able to teach and mentor other engineers