Participate in hardware solution selection and software-hardware integration; collaborate with hardware engineers on board debugging and validation.
Develop and maintain Linux kernel drivers when required.
Write software design documents, test reports, and related technical documentation.
Resolve software issues encountered during testing and production.
Qualifications
Bachelor's degree or higher in Electronics, Communications, Computer Science, Automation, or related fields, with at least 3 years of experience in embedded software development.
Proficient in STM32 MCU development, familiar with HAL/Standard peripheral libraries, and experienced with Keil MDK, STM32CubeMX, and other development tools.
Familiar with common peripheral interfaces: CAN, UART, SPI, 12C, PWM, ADC, USB, etc., with hands-on driver development experience.
Proficient in C/C++ programming with good coding standards and practices.
Experience with RTOS (FreeRTOS, RT-Thread, uCOS, etc.) in real-world projects.
Experience with NXP (e.g., i.MX RT, LPC series) or Infineon (e.g., Tricore, AURIX series) MCUs is a strong plus.
Experience with Linux kernel driver development (e.g., character device drivers, device tree, interrupt handling) is a strong plus.
Familiar with version control tools (Git/SVN) and a good team player.
Experience in construction machinery, automotive electronics, or robotics is a plus.