Embedded Software Engineer (Kernel & BSP)
Experience
3+ years
Open Position
2
Key Responsibilities
- Board Bring-Up: Perform initial board bring-up on new, custom-designed processor boards (custom ARM/RISC-V).
- Linux Kernel/BSP Development: Customize, configure, and maintain the Linux kernel, bootloader (U-Boot), and Board Support Package (BSP) for custom hardware.
- Driver Development: Write, debug, and optimize low-level Linux device drivers for on-chip and off-chip peripherals (e.g., I2C, SPI, UART, PCIe, Ethernet, GPIO).
- Device Tree: Develop and maintain Device Tree Source (DTS/DTB) files to map hardware peripherals to Linux drivers.
- System Optimization: Optimize system boot time, memory usage, and performance on constrained custom hardware.
- Debugging: Troubleshoot complex system crashes, kernel panics, and hardware-software interaction issues using JTAG, oscilloscopes, and logic analyzers.
- Build Systems: Create and maintain custom embedded Linux distributions using Yocto Project or Buildroot.
Required Skills & Qualifications
- Education: Bachelor’s or Master’s degree in Electrical Engineering, Computer Engineering, or a related field.
- Experience: 3-7+ years of professional experience in embedded Linux software development.
- Languages: Strong proficiency in C/C++ programming for embedded systems; scripting experience in Python or Bash.
- Kernel Knowledge: Deep understanding of Linux kernel internals, including memory management, interrupts, and concurrency management.
- Hardware Familiarity: Ability to read hardware schematics and component datasheets to derive software solutions.
- Tools: Proficient with Git, GDB, and JTAG debugging tools.
Preferred Qualifications
- Experience with ARM Cortex-A/M or RISC-V architectures.
- Experience contributing to the mainline Linux kernel or open-source community.
- Knowledge of secure boot and hardware security modules (HSM).
- Experience with real-time Linux patches (PREEMPT_RT).
Job Title
Embedded Software Engineer (Kernel & BSP)
Industry Category