- Design, develop, and optimize embedded software components using C/C++ and Java in a Linux environment.
- Work across user space and kernel space, including development of device drivers and system-level applications.
Hardware Integration & Debugging
- Collaborate with hardware teams to bring up and debug recent boards and custom peripherals.
- Integrate and validate hardware platforms with embedded Linux OS, including bootloaders and kernel modules.
System Maintenance & Optimization
- Maintain and enhance embedded Linux systems with a focus on performance, scalability, and reliability.
- Troubleshoot and resolve low-level system issues such as kernel panics, memory leaks, and hardware/software interactions.
Build Systems & Toolchains
- Work with Linux build systems like Yocto or Buildroot for embedded image creation.
- Use cross-compilation toolchains and contribute to board bring-up processes.
Documentation & Review
- Participate in system architecture design and peer code reviews.
- Document software architecture, APIs, and system behavior clearly and effectively.