Adaptive training for embedded engineers
Know your real level in embedded systems
Practice C, Cortex-M, peripherals, RTOS, embedded Linux, IoT connectivity, security and more. Every question adapts to your skill, and every answer comes with a clear explanation.
The level test needs no account. 13 questions, about five minutes.
This loop waits for the ISR to set the flag. What is wrong?
1static uint8_t rx_done = 0;23void UART_IRQHandler(void) {4 rx_done = 1;5}67int main(void) {8 uart_start_receive();9 while (rx_done == 0) { }10 process_data();11}
- 13
- topics
- 1100+
- original questions
- 5
- question types
Technologies covered
The tools and platforms a firmware engineer meets every day.
How it works
Answer questions
Start with a short session. Pick your platforms and rate yourself, or let the questions find your level.
Get an honest estimate
A rating system, similar to chess Elo, measures your level in each topic separately.
Improve efficiently
Difficulty adapts to you, weak topics get priority, and reviews return before you forget.
What you can practice
13 topics covering the daily work of embedded, IoT and embedded Linux engineers. Your level is tracked separately in each one.
C for Embedded
Pointers, volatile, const placement, bit manipulation, unions and bitfields, integer promotion, static, and memory layout (.text/.data/.bss/stack/heap).
MCU Architecture
Cortex-M core, registers, memory map, clock tree, startup code, linker scripts, and the vector table.
Peripherals
GPIO, timers, PWM, input capture, ADC/DAC, RTC, and the watchdog.
Interrupts
NVIC, priorities, preemption, ISR design rules, race conditions, and atomicity.
Communication
UART, SPI, I2C, CAN, USB basics, framing, and error handling.
DMA
Channels, circular mode, cache coherency, and double buffering.
RTOS
Tasks, scheduling, priority inversion, mutex vs semaphore, queues, and stack sizing.
Power Management
Sleep modes, wake sources, and current budgeting.
Debugging & Tooling
SWD/JTAG, hard fault analysis, logic analyzers, and binutils (objdump, nm, size).
Hardware Interface
Pull-ups, level shifting, decoupling, signal integrity basics, and reading datasheets and timing diagrams.
Embedded Linux
Device tree, U-Boot, kernel modules and drivers, sysfs and device nodes, Yocto and Buildroot, read-only root filesystems, A/B updates, PREEMPT_RT.
IoT & Connectivity
MQTT and CoAP, TLS on constrained devices, device identity and provisioning, OTA updates, BLE GATT, LoRaWAN and cellular IoT, cloud device shadows, power versus connectivity.
Embedded Security
Secure boot and firmware signing, anti-rollback, debug port locking, key storage and secure elements, TrustZone and MPU isolation, memory-safe parsing, side channels and fault injection.
Questions cover general Cortex-M and C, with platform-specific ones for STM32, Nordic nRF and ESP32. You choose your platforms at the start.
Real engineering questions
No trivia. Every question tests something you actually use on the job, and every answer teaches you something.
Multiple choice
Four options, all plausible. Every wrong option comes with a reason why it is wrong.
Code reading
A short C snippet with syntax highlighting. You predict what it prints or what ends up in a register.
Find the bug
A small driver or interrupt handler with a real embedded bug. You click the faulty line.
Register calculation
Numeric answers with tolerance. Prescalers, baud rates, voltage dividers, current budgets.
Short answer
Free text, checked for the key concepts rather than exact wording.
On top of the question types
Spaced repetition
Any of these questions can come back later. The ones you struggled with return right before you would forget them, so the review schedule covers every type above.
Find out where you stand
A few minutes of questions gives you an honest picture of your strengths and your gaps.
Take the level test