Embedded Software Engineer
Job Summary
Develop and maintain system-level and low-level embedded software interfacing with operating systems and hardware. Diagnose and resolve complex software and hardware issues across embedded Linux and Android AOSP environments. Collaborate with engineering teams to enhance system performance and platform integration.
Responsibilities
- Develop system-level and low-level software
- Design and maintain embedded software components
- Diagnose and fix embedded Linux issues
- Work with engineers to enhance system performance
Required Skills
- 6+ years embedded software development
- Expertise in C/C++, Python, and Bash
- Experience with Android AOSP and embedded Linux
- Knowledge of Qualcomm or comparable SoC platforms
Job Details
Responsibilities:
- Develop system-level and low-level software that interfaces closely with the operating system and hardware
- Design, implement, and maintain embedded software components, providing ongoing support as needed
- Diagnose and fix issues across embedded Linux and its associated software layers
- Investigate and resolve complex software issues using a combination of software and hardware debugging tools
- Work closely with fellow engineers to support continuous development and enhance system performance
- Contribute to platform integration, stabilization, and ongoing maintenance efforts
- Assist in creating technical documentation and sharing knowledge as needed
Qualifications:
- Over 6 years of experience in embedded software development
- Expertise in C/C++, with strong proficiency in Python and Bash for build automation
- Practical experience working with Android AOSP in embedded systems environments
- Strong understanding of Android system architecture and its source code
- Experience developing Android for embedded systems, including AOSP and vendor-modified Android variants
- Familiarity with Android HALs and system services, along with experience using Android tools such as adb and fastboot
- Strong experience with embedded Linux, including low-level system development, Linux kernel debugging and modification, Device Tree configuration, and bootloader interaction (e.g., U-Boot)
- Solid understanding of networking fundamentals, including Ethernet, IP, TCP, and UDP
- Hands-on experience with Qualcomm or comparable SoC platforms