Skip to content

🚘 BMW Interview Experience

Role: Senior Embedded Engineer (C++ / Linux)
Mode: Virtual (Teams)
Rounds: 2 Technical + 1 Managerial + 1 HR ⬅️ Back


💻 Technical Round 1: C++ Programming & Linux Concepts

Focus Areas: - Core C++ logic building - Memory allocation & pointers - Linux basics & build system (CMake) - Standard C++ syntax (no STL focus) - Problem-solving & debugging approach

Sample Questions: 1. Write a C++ function to find the greatest of three numbers. 2. Reverse a three-digit number using a function. 3. (Asked in follow-up) Write a function to check if a number is palindrome. 4. (Asked in continuation) Swap two numbers without using a temporary variable. 5. Explain memory allocation in C++ (new/delete vs malloc/free). 6. What is a dangling pointer? How to avoid it? 7. What is a memory leak and how would you detect/prevent it?


🧱 Technical Round 2: Linux & Build Systems

Focus Areas: - CMake fundamentals - Linux debugging - Shell command basics - File permissions and access - Multithreading and synchronization (basic)

Sample Questions: 1. What is the purpose of CMakeLists.txt? How does the CMake workflow operate? 2. What are the differences between fork() and exec() in Linux? 3. How do you debug a C++ application in Linux without using an IDE? 4. Explain how you would implement a mutex lock for accessing shared resources. 5. What is the difference between stack and heap memory? 6. What does chmod 755 mean? 7. Write a minimal CMakeLists.txt to compile a multi-source C++ project.


📊 Managerial Round

Topics: - Team coordination in Agile/Scrum - Ownership of module-level features - Troubleshooting under tight deadlines - Leading feature implementation across sprints - Reporting issues and review process


💬 HR Round

Topics: - Career growth expectations - Willingness to relocate or hybrid mode - BMW team culture & org structure - Expected CTC vs current - Joining timeline and past experience details


🧠 Takeaways

  • Heavy focus on logical thinking in C++ without libraries
  • Linux build system & memory management concepts crucial
  • Ideal for engineers comfortable with low-level debugging and function writing under constraints
  • CMake knowledge expected for day-to-day build workflows

📚 Suggested Preparation

  • Practice writing C++ logic for small functions without using STL
  • Get hands-on with memory allocation, pointers, and basic file operations in Linux
  • Learn CMake from scratch: targets, linking, build trees
  • Revisit system-level concepts like file descriptors, fork/exec, shell utilities
  • Understand stack vs heap usage, and memory debugging tools like Valgrind