We are seeking a skilled Linux Kernel Developer to join our team, specializing in C programming, Linux kernel development, and memory management libraries.
This role will focus on building, optimizing, and maintaining kernel-level components and memory management libraries to ensure robust system performance, efficiency, and reliability.
Key Responsibilities:
Develop, modify, and maintain Linux kernel modules using C, with a focus on performance, scalability, and maintainability.
Implement and optimize memory management functions and libraries, improving efficiency in memory allocation, deallocation, and data integrity.
Design and develop new kernel components and features, particularly related to memory management and low-level system operations.
Debug and troubleshoot kernel-level issues, using tools like gdb, strace, and other debugging utilities.
Perform code reviews, optimize existing code, and adhere to best practices in kernel development.
Collaborate closely with system architects, embedded software engineers, and hardware engineers to ensure seamless integration and optimal performance.
Contribute to documentation, including technical specifications, code documentation, and user guides for kernel components and memory management libraries.
Qualifications:
Bachelor's or Master's degree in Computer Science, Software Engineering, or related field, or equivalent practical experience.
Relevant experience in C programming, with strong skills in low-level programming and understanding of memory management.
Proficiency in Linux kernel development, including experience with kernel internals, modules, drivers, and debugging techniques.
Solid understanding of memory management principles within the Linux operating system (paging, caching, memory mapping, etc.).
Familiarity with tools and libraries used in Linux kernel development, such as GCC, Make, Git, and patch utilities.
Knowledge of data structures, algorithms, and optimization techniques for performance-critical code.
Ability to write clear, maintainable, and well-documented code.
Strong problem-solving skills and experience troubleshooting issues at the kernel level.
English required
Preferred Skills:
Experience with virtualization technologies, system calls, and hardware interface knowledge.
Contributions to open-source projects, especially within the Linux kernel community.
Understanding of multi-threading, synchronization, and concurrency issues in low-level software.