What the interviewer wants
- Layering and the interfaces between layers
- How drivers handle blocking, timing and concurrency on bare metal and under an RTOS
- How you test drivers without hardware
Constraints
- C99, no dynamic allocation after init
- Must work with polling, interrupt or DMA bus transfers
- Some sensors share a bus; some need GPIO (reset, data-ready)
- Teams keep their vendor SDKs
If you ask the interviewer
- Can we use C++? No. C only for this layer.
- Do drivers need to run in an ISR? No, but data-ready interrupts must be supported.
- Is Zephyr's driver model acceptable? Only on Zephyr products. Others need the same driver code.
How it's graded
The rubric a senior interviewer would use. Each item is scored 0 to 3 and weighted.
| Layering and interfaces | weight 3 |
| Blocking and async model | weight 3 |
| Shared buses and concurrency | weight 2 |
| Driver API quality | weight 2 |
| Testing without hardware | weight 2 |
How to structure your answer
- Requirements and assumptions: the numbers that drive the design.
- Architecture: blocks, tasks, data flow, memory.
- Key decisions and trade-offs, with the alternatives you rejected.
- Failure modes and recovery.
- Testing and validation.
More design rounds
Write your design in five sections and get it graded against this rubric, with a follow-up question from the AI interviewer.
Answer this round