Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related field.
8+ years of extensive experience in software development with a strong foundation in various software engineering principles.
Proven experience in designing and architecting complex software systems across different technologies and platforms.
Expert proficiency in C++ with strong debugging skills in multiple environments.
Solid understanding of Linux internals, including system calls, processes, memory management, and basic device driver concepts.
Architect-level understanding of QNX OS internals, including microkernel architecture and inter-process communication.
Exceptional analytical and problem-solving skills in architectural design and hands-on debugging.
Demonstrated experience providing technical leadership in AOSP or similar embedded Android/QNX contexts.
Responsibilities
Define and evolve the architectural roadmap for software products, aligning with business goals and industry practices.
Lead the design of complex software systems and maintain comprehensive architectural documentation.
Evaluate new technologies and conduct technical feasibility studies to identify risks and strategies.
Recommend new technologies and tools to enhance development efficiency and product quality.
Design and execute QNX virtualization concepts and ensure optimal system performance.
Provide technical guidance and mentorship to software engineers, promoting technical excellence and innovation.
Act as the primary technical contact for complex issues, leading efforts in debugging and root cause analysis.
Communicate technical progress and architectural decisions clearly to both technical and non-technical stakeholders.
Benefits
Opportunities for technical skill development and knowledge sharing.
Collaborative work culture promoting continuous learning and innovation.
Exposure to cutting-edge technologies and methodologies in software architecture.
Active mentorship from industry experts in the field of embedded systems.
Full Job Description
Job Description
Core Responsibilities:
Architectural Vision & Strategy: Define, evolve, and communicate the architectural roadmap for various software products and platforms, ensuring alignment with business goals, product requirements, and industry best practices.
System Design & Documentation: Lead the design of complex software systems, components, and interfaces across different technology stacks. Create and maintain comprehensive architectural documentation (e.g., design documents, architectural diagrams, API specifications).
Technical Feasibility & Risk Assessment: Evaluate new technologies, frameworks, and approaches. Conduct technical feasibility studies and identify potential risks and mitigation strategies for architectural decisions.
Technology Selection: Recommend and justify the adoption of new technologies, tools, and methodologies that enhance development efficiency and product quality.
Virtualization and System Performance: Design and execute QNX virtualization concepts for Cluster, ADAS and IVI functionalities as well as ensure optimal system performance of defined concepts
Technical Guidance & Mentorship: Provide expert technical guidance, mentorship, and support to a team of software engineers. Foster a culture of technical excellence, continuous learning, and innovation within the platform domain.
Problem Solving & Troubleshooting: Act as the primary technical point of contact for complex issues, leading debugging efforts and root cause analysis within the AOSP stack, and guiding the team in resolving critical challenges.
Technical Communication & Reporting: Effectively communicate technical progress, challenges, and architectural decisions (especially those related to platform and AOSP work) to both technical and non-technical stakeholders, ensuring clarity and alignment.
Technical Skill Development: Identify and promote opportunities for technical skill development within the team, sharing knowledge and best practices for platform and AOSP development.
Qualifications
Required Qualifications:
Education: Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related field.
Software Engineering Experience: 8+ years of extensive experience in software development, with a strong foundation in diverse software engineering principles.
Architectural Expertise: Proven experience in designing and architecting complex software systems, demonstrating a breadth of knowledge across different technologies and platforms.
Programming Languages: Expert proficiency in C++ with strong debugging skills in multiple environments.
Linux Expertise: Solid understanding of Linux internals, including system calls, processes, memory management, and basic device driver concepts.
QNX Expertise: Architect-level understanding of QNX OS internals, including microkernel architecture, message passing, process models, drivers, and inter-process communication (IPC).
Problem-Solving: Exceptional analytical and problem-solving skills, with the ability to tackle complex technical challenges in both architectural design and hands-on Android/QNX debugging.
Technical Leadership: Demonstrated experience in providing technical leadership and guidance to engineering teams, particularly within AOSP or similar embedded Android/QNX contexts.
Communication: Excellent verbal and written communication skills, with the ability to articulate complex technical concepts to diverse audiences, from junior engineers to executive stakeholders.
Preferred Qualifications:
Experience with other embedded systems development.
Experience with performance optimization and profiling tools for Android/Linux/QNX.
Understanding of security best practices in the Android/QNX ecosystem.
Prior experience in embedded cockpit or infotainment development.