Position Summary
As a Linux Kernel Development Engineer, you will produce and maintain the Linux Kernel for Rocky Linux. You need to be familiar with various aspects of kernel support, including embedded and virtualization. You will work with the Development team to define software requirements and lead operational and technical projects.
Responsibilities
- Lead the design, development, and maintenance of Linux kernel components for our products/services at CIQ.
- 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, adhering to coding standards and best practices.
- Develop and maintain kernel-specific testing and automation tools to improve how we build, test, and release kernels.
- Debug and resolve complex kernel-level issues, including memory management, process scheduling, and inter-process communication.
- Collaborate with hardware engineers and other stakeholders to ensure seamless integration of kernel components with hardware platforms.
- Stay updated with the latest advancements in the Linux kernel community and evaluate their potential impact on our products.
- Review code submissions from team members and provide constructive feedback to maintain code quality.
- Conduct performance analysis and optimization of kernel components to meet specified performance targets.
- Document design decisions, APIs, and processes for future reference and knowledge sharing.
- Provide guidance and mentorship to junior developers.
Required Qualifications
- 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, and kernel module development.
- Familiarity with hardware platforms and architectures, including x86 and ARM.
- Strong problem-solving and analytical skills with the ability to propose innovative solutions.
- Excellent communication and collaboration skills.
- Self-motivated and able to work independently, manage priorities, and meet project deadlines.
Education and Experience
- 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.