Description
About the Role :
We are seeking a highly skilled Embedded Software Engineer to join our expanding engineering team. The ideal candidate will possess strong expertise in Linux kernel development, Board Support Package (BSP) customization, Android system bring-up, and low-level software design for embedded devices. You will be responsible for designing, developing, integrating, and optimizing embedded software across multiple platforms, focusing on performance, reliability, and scalability.This role demands hands-on experience with Linux Device Drivers, Multimedia frameworks, and hardwaresoftware integration. You will collaborate closely with hardware engineers, system architects, and cross-functional software teams to deliver production-quality embedded solutions.
Key Responsibilities
Embedded Software Development :
- Design, implement, and maintain embedded software components using C/C++ and Python for automation, testing, and build integration.
Linux Kernel & BSP Customization
- Develop and optimize Linux Board Support Packages (BSPs), including bootloaders, kernel configurations, and system initialization for custom hardware platforms.
Device Driver Development
- Design, develop, and debug Linux device drivers for peripherals such as I2C, SPI, UART, GPIO, audio, video, and camera interfaces. Ensure performance optimization and stability across multiple SoCs.
Android Platform Development
- Work on Android HAL layers, AOSP customization, and system integration. Contribute to platform bring-up, debugging kerneluser space interactions, and validating hardware abstraction layers.
Multimedia Stack Integration
- Integrate and optimize multimedia frameworks (e.g., GStreamer, OpenMAX, or FFmpeg) for video/audio playback, capture, and streaming applications.
System Debugging & Optimization
- Utilize tools such as JTAG, GDB, perf, strace, and ftrace for debugging and performance profiling. Analyze kernel logs and optimize system boot time, memory usage, and CPU utilization.
Continuous Integration And Validation
- Develop and maintain automated test scripts and frameworks using Python or shell scripting for build validation, regression testing, and hardware testing.
Cross-Functional Collaboration
- Collaborate with hardware, firmware, and application software teams to ensure seamless integration and stability across all system layers.
Required Skills And Experience
Core Technical Skills :
- Strong programming experience in C/C++ for embedded systems.
- Proficient in Linux kernel programming and device driver development.
- Hands-on experience with BSP development and U-Boot bootloader.
- Knowledge of Android system architecture, AOSP build process, and HAL integration.
- Familiarity with Multimedia subsystems (Camera, Audio, Video codecs).
- Scripting knowledge in Python or Shell for automation and debugging.
- Solid understanding of SoC architectures, memory management, and interrupt handling.
Debugging And Tools
- Experience with GDB, JTAG, Trace32, perf, strace, and kernel logging (dmesg, logcat).
- Familiarity with Yocto, Buildroot, or OpenEmbedded build environments.
Operating Systems And Hardware Platforms
- Strong understanding of Embedded Linux, RTOS fundamentals, and cross-compilation.
- Exposure to SoC platforms such as Qualcomm, NXP, Renesas, TI, or NVIDIA Jetson.
Preferred Qualifications
- Bachelors or Masters degree in Computer Engineering, or Computer Science.
- Contributions to open-source Linux projects or Android AOSP.
- Knowledge of secure boot, firmware updates (OTA), and hardware security mechanisms.
- Experience with version control (Git), CI/CD systems (Jenkins, GitLab CI), and Agile development workflows.
(ref:hirist.tech)