The code
Embedded C for Cortex-M. It compiles. There are 4 real bugs in it: the kind that pass a bench test and fail in the field.
typedef struct {
uint8_t type;
uint32_t length;
uint16_t crc;
} frame_hdr_t;
void on_frame(const uint8_t *buf, size_t len)
{
if (len < sizeof(frame_hdr_t)) return;
const frame_hdr_t *h = (const frame_hdr_t *)buf;
uint32_t n = h->length;
process(buf + sizeof(frame_hdr_t), n);
}What an interviewer expects
- Point to each line you'd stop in a code review.
- Say what actually breaks: the failure mode, not just the rule it violates.
- Fix it, then defend the fix when asked the follow-up.
The bugs, reference fixes and the follow-up question are in the practice app, after you've tried it.
Companies that test this
Matched on the skills each company's embedded roles emphasise.
ArmChipmaker · India hiring: MediumBoschAutomotive supplier · India hiring: HighDensoAutomotive supplier · India hiring: MediumInfineonChipmaker · India hiring: MediumMicrochipChipmaker · India hiring: HighSchneider ElectricIndustrial · India hiring: HighSiemensIndustrial · India hiring: HighTeslaAutomotive OEM · India hiring: Low
Related challenges
Integer promotion trapsMemory & C · Medium · 3 bugs · ~5 minStrings on the stackMemory & C · Warm-up · 3 bugs · ~4 minArray helpers with memcpyMemory & C · Warm-up · 3 bugs · ~4 minHeap use in a message handlerMemory & C · Medium · 3 bugs · ~5 minSerial command parserProtocols · Warm-up · 3 bugs · ~4 minRegister access macrosMemory & C · Warm-up · 3 bugs · ~4 min
Flag the lines, say what breaks, then fix it and build it with clang in your browser.
Find the bugs