22 Oct
|
BMW TechWorks
|
Bengaluru
22 Oct
BMW TechWorks
Bengaluru
About the Role
We are looking for a Senior Embedded C++ Engineer with 8 - 12 years of experience to join our automotive software development team.
The role involves Individual contributor in designing, developing, integrating, debugging, and maintaining reliable and high-quality embedded software for automotive systems. The candidate will work closely with software architects, system engineers, testers, and cross-functional development teams to deliver robust, production-ready solutions.
The ideal candidate should have solid hands-on experience in Embedded C/C++, Linux systems programming, microcontrollers, debugging, and automotive communication protocols.
Key Responsibilities
1. Design, develop, integrate, and maintain embedded software using C++/C.
2. Analyze software requirements and translate them into robust and scalable software solutions.
3. Develop software for embedded systems, microcontrollers, and automotive ECUs.
4. Debug and resolve complex software issues across multiple software components.
5. Perform unit, component, and integration testing.
6. Participate in code reviews, technical discussions, and software design activities.
7. Investigate and resolve compiler, build, static-analysis, and integration issues.
8. Ensure adherence to defined coding standards, development processes, and quality guidelines.
9. Support software integration, releases, and continuous improvement activities.
10. Collaborate with cross-functional teams including architects, system engineers, testers, and other software teams.
11. Mentor junior engineers and contribute to technical best practices within the team.
12. Take ownership of software components/features from requirement analysis through implementation, testing, and delivery.
Required Technical Skills
Programming & Embedded Development
1. 8 - 12 years of experience in embedded software development.
2.
Strong hands-on programming experience in Modern C++ / C.
3. Good understanding of Object-Oriented Programming (OOP) and embedded software design.
4. Experience with microcontrollers and System-on-Chip (SoC) platforms.
5. Strong debugging and troubleshooting skills.
6. Experience with state machines, asynchronous processing, timers, callbacks, and multithreading.
7. Good understanding of Linux and Linux Systems Programming.
8. Experience with Python programming for scripting, automation, or development support.
Automotive Communication & Protocols
1. Experience with automotive communication protocols such as:
2. CAN / CAN Bus
3. LIN
4. I²C
5. Serial Communication
6. Understanding of automotive ECU software development and integration.
7. Knowledge of AUTOSAR and automotive diagnostics is desirable.
Tools & Development Environment
1. Experience with Git and modern software development workflows.
2. Familiarity with build systems such as CMake or Bazel.
3. Experience with Docker-based development environments.
4. Knowledge of QEMU or similar embedded virtualization/emulation environments.
5. Experience with unit testing, integration testing, and debugging tools.
6. Familiarity with static-analysis tools such as Coverity or equivalent.
Coding Standards & Processes
1. Knowledge of coding standards such as MISRA and/or AUTOSAR C++14,17,20.
2. Good understanding of software development processes and quality practices.
3. Exposure to ISO 26262 and Automotive SPICE (ASPICE) is an advantage.
Preferred / Nice-to-Have Skills
1. Experience in automotive embedded software development.
2. Hands-on experience with CI/CD pipelines.
3. Experience working with Docker and containerized development environments.
4. Experience with QEMU and embedded system simulation/emulation.
5. Knowledge of automotive diagnostics and related protocols.
6. Experience working in Agile development environments.
7. Previous experience mentoring engineers or owning complete software components.
8. Strong analytical, problem-solving, and communication skills.
Key Competencies
1. Strong analytical and problem-solving abilities.
2. Excellent debugging and troubleshooting skills.
3. Strong communication and collaboration skills.
4. Ability to work independently and take ownership of deliverables.
5. Ability to analyze complex technical problems and provide effective solutions.
6. Strong focus on software quality, maintainability, and reliability.
7. Ability to mentor and support junior team members.
Seniority Expectations The candidate is expected to:
1. Independently own software features/components from requirement analysis to final delivery.
2. Contribute to software architecture and design decisions.
3. Develop maintainable, scalable, testable, and production-ready code.
4. Take ownership of complex technical issues and drive them to resolution.
5. Collaborate effectively with cross-functional and global engineering teams.
6. Support and guide junior engineers through technical mentoring and knowledge sharing.
Minimum Qualification
B.Tech / B.E. in Computer Science, Electronics, Electrical Engineering, Embedded Systems, or a related engineering discipline.
Hand on Experience: 8 - 12 Years
Role: Senior Embedded C++ Engineer
Domain: Automotive / Embedded Software
📌 Senior Embedded C++ Engineer (Bengaluru)
🏢 BMW TechWorks
📍 Bengaluru