RTOS, Build Process and Startup Code
Brightskies interview question (Egypt) · stage: Technical Interview · domain: Embedded · role: Embedded Engineer · difficulty: Hard · asked twice, last in May 2026
What they ask
A second cluster of questions in the embedded technical round goes below the application layer. The Embedded Linux openings are the ones candidates rate hardest, and this is where the difficulty lives. Questions in this area, for example:
RTOS. Task states and what a context switch saves. Preemptive vs cooperative vs round-robin scheduling, and what priority based preemption means for a low priority task. Mutex vs semaphore, and what priority inversion is and how priority inheritance fixes it. What you may and may not call from an ISR.
Build process. What the preprocessor, compiler, assembler and linker each produce. What .text, .data, .bss and the stack and heap are, and how a linker script places them in flash and RAM. Why a global initialised array increases both flash and RAM usage while an uninitialised one only increases RAM.
Startup code. What happens between reset and main(): the vector table, the reset handler, copying .data from flash to RAM, zeroing .bss, setting up the stack pointer, clock initialisation, then the jump to main. For Linux roles the same question becomes: bootloader, kernel, device tree, root filesystem, init.
What they look for
Whether you can explain the boot sequence and memory map from memory, and reason about scheduling bugs (a missed deadline, a deadlock between two tasks) rather than recite definitions.