Linux Kernel Development Engineer – Live Patching
Job Description:
- Produce and maintain the Linux Kernel for Rocky Linux.
- Work with the Development team to define software requirements and lead operational and technical projects.
- Build and maintain a kernel live patch process.
- Lead the design, development, and maintenance of Linux kernel components for CIQ products and services.
- Collaborate with cross-functional teams to gather requirements and translate them into efficient and scalable kernel designs.
- Write high-quality, modular, and well-documented code in C and other relevant languages.
- Develop and maintain kernel live patching infrastructure, automation, and tools.
- Debug and resolve complex kernel-level issues, including memory management, process scheduling, and inter-process communication.
- Collaborate with hardware engineers and stakeholders to integrate kernel components with hardware platforms.
- Evaluate advancements in the Linux kernel community and relevant technologies.
- Review code submissions and provide constructive feedback.
- Conduct performance analysis and optimization of kernel components.
- Document design decisions, APIs, and processes.
- Provide guidance and mentorship to junior developers.
Requirements:
- A passion for Linux and open source software, with a strong commitment to delivering high-quality, reliable products.
- Proficiency in C programming and a deep understanding of low-level system programming concepts.
- Strong debugging and troubleshooting skills to identify and resolve complex kernel-level issues.
- In-depth knowledge of Linux kernel internals, file systems, device drivers, kernel module development, and kpatch operation.
- Familiarity with hardware platforms and architectures, including x86 and ARM, and their interactions with the Linux kernel.
- Strong problem-solving and analytical skills with the ability to propose innovative solutions to technical challenges.
- Excellent communication and collaboration skills to work effectively in a team-oriented environment.
- Self-motivated and able to work independently, manage priorities, and meet project deadlines.
- Bachelor’s or Master’s degree in Computer Science, Engineering, or equivalent Experience.
- Minimum of 5 years of experience in Linux kernel development, with a strong focus on system-level programming and device driver development.
- Extensive experience in designing and developing Linux kernel components, including process management, memory management, and inter-process communication.
- Experience with version control systems, preferably Git, and collaborative development workflows.
Benefits:
- Medical, dental, and vision insurance.
- Flexible paid time off.
- Employee stock options.
- Remote work; no travel required for most positions.