3+ years of professional firmware development experience in embedded systems.
Strong proficiency in Embedded C and C++ for low-level and real-time applications.
Hands-on experience developing firmware for ARM Cortex-M, STM32, NXP, TI, Microchip, or similar microcontroller families.
Experience creating low-level peripheral drivers for SPI, I2C, UART, CAN, GPIO, ADC/DAC, and Timers/PWM.
Familiarity with hardware debugging tools including oscilloscopes, logic analyzers, and JTAG/SWD debuggers.
Ability to read and interpret schematics, datasheets, reference manuals, and interface specifications.
Experience using Git and modern source-control practices in collaborative engineering environments.
Knowledge of embedded software development workflows including cross-compilation, debugging, and automated builds.
Experience supporting board-level hardware validation and bring-up activities on custom hardware.
Bachelor's degree in Electrical Engineering, Computer Engineering, Computer Science, or a related technical discipline.
Experience with RTOS-based development (e.g., FreeRTOS, Zephyr, ThreadX, or similar real-time operating systems).
Exposure to FPGA or SoC integration concepts including AXI interfaces, memory-mapped registers, DDR memory, DMA engines, and IP cores.
Knowledge of embedded Linux concepts, including driver-level or userspace development.
Experience with communication interfaces such as Ethernet, LVDS, MIPI, and PCIe in embedded contexts.