Top Embedded Engineer Interview Questions Every Interviewer Should Ask
This article outlines the essential embedded‑engineer interview questions—covering pointers, memory management, interrupts, peripheral protocols, debugging strategies, and system design—while explaining the reasoning behind each question and what answers reveal about a candidate's depth of knowledge.
When interviewing embedded engineers, the most revealing questions focus on fundamental concepts and practical problem‑solving rather than rote memorization.
1. Pointers and Memory
Ask "What is the difference between a pointer and an array?" The expected answer should note that an array name decays to a pointer in most expressions but not when using sizeof, and that arrays occupy contiguous stack space while a pointer is merely an address.
Follow up with "What is the difference between const char *p and char * const p?" to probe understanding of the C type system.
Request a simple callback example to assess familiarity with function pointers, a common pattern in drivers and interrupt handlers.
2. Memory Management and Optimization
Question "What are the differences between stack and heap, and when would you use each?" This opens discussion on stack size limits, heap fragmentation, and memory‑leak detection.
Present a scenario: "If your MCU has only 64 KB of RAM, how would you optimize memory usage?" Look for answers such as reducing global variables, using union to reuse memory, placing constant data in flash, and aligning data structures for efficient access.
Example from the author: on an STM32 image‑processing project a 20 KB buffer exhausted RAM; the solution involved converting structures to bit‑fields and moving lookup tables to flash, dramatically lowering RAM consumption.
3. Interrupts and Real‑Time Considerations
Ask "What is the difference between interrupt‑driven and polling approaches, and when would you choose each?" Candidates should discuss interrupt latency, context‑switch overhead, and the trade‑off when interrupt frequency is high.
Follow with "What can you do inside an ISR and what must you avoid?" Expected points include avoiding blocking calls, mutexes, and long‑running operations; ISR should return quickly.
Another classic: "How does the system handle two simultaneous interrupts?" This tests knowledge of interrupt priority, nesting, and masking.
4. Peripherals and Communication Protocols
Typical question: "What are the differences between I²C and SPI, and when would you use each?" Candidates should mention wire count, speed, and typical use‑cases.
For CAN bus experience, ask "Explain CAN arbitration and the meaning of dominant and recessive bits." Real‑world anecdotes about bus contention and baud‑rate mismatches help verify hands‑on experience.
5. Debugging and Troubleshooting
Prompt with "If a program crashes intermittently, how would you investigate?" Look for a systematic approach: reproduce the issue, narrow the scope, locate the root cause, and validate the fix.
Ask for the most difficult bug they have solved. The author shares a watchdog reset caused by an ISR that ran too long, illustrating the importance of timing analysis in real‑time systems.
6. System Design and Architecture
For senior candidates, pose a design problem such as "Design a smart temperature‑control system." Expect discussion of sensor selection, data acquisition, control algorithms, communication interfaces, and power management.
Further ask about modular design and code maintainability, prompting topics like layered architecture, hardware abstraction layers, and interface abstraction.
Overall, the interview aims to identify engineers who not only know theory but have applied it to solve real embedded challenges.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Liangxu Linux
Liangxu, a self‑taught IT professional now working as a Linux development engineer at a Fortune 500 multinational, shares extensive Linux knowledge—fundamentals, applications, tools, plus Git, databases, Raspberry Pi, etc. (Reply “Linux” to receive essential resources.)
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
