The ideal candidate has a deep understanding of Linux internals, strong proficiency in C/C++, and experience working with open-source technologies to build high-performance software.
Key Responsibilities
- Kernel & Driver Work: Develop, debug, and maintain kernel code, device drivers, and middleware.
- Performance Optimization: Analyze and optimize software algorithms and system performance, particularly for embedded systems.
- Debugging & Troubleshooting: Use debugging tools (GDB, Valgrind, strace) to identify and resolve complex system stability and performance issues.
- Collaboration: Work with cross-functional teams (hardware engineers, QA) to integrate software with hardware, utilizing Git for version control.
- System Maintenance: Monitor system performance, implement security measures, and ensure high availability.
- Documentation: Create technical documentation for system architecture and software specifications.
Skills, Knowledge and Expertise
- Languages: Expert-level proficiency in C is essential, with strong skills in C++ and scripting languages like Python or Bash.
- Linux Internals: In-depth knowledge of the Linux operating system, kernel architecture, memory management, and file systems.
- Embedded Systems (If applicable): Experience with ARM-based processors, bootloaders (uBoot), and Yocto Project.
- Tools: Familiarity with GCC, Makefiles, and Git.
- Education: Bachelor’s or Master’s degree in Computer Science, Computer Engineering, or a related field.
Nice to have:
- Experience with virtualization technologies (QEMU, KVM, Docker).
- Understanding of network protocols (TCP/IP, Socket programming).
- Active contribution to open-source projects.
- Relevant certifications: RHCSA (Red Hat Certified System Administrator) or LFCS (Linux Foundation Certified System Administrator).
