Summary
Celestica is looking for talented and passionate software engineers who can help drive next-generation data center and AI compute blades to join our team. You'll be responsible for designing, developing, and testing software that drives high density data center compute racks including GPUs, CPUs and AI accelerators.
Key Responsibilities
Software Development:
- Design and implement drivers, application software that drive next generation CPU and GPU
- Develop, augment and maintain software libraries for computing on GPU
- Optimize code for performance, efficiency, and low latency
- Innovate new ideas in conjunction with networking engineers to optimize overall data center efficiency
- Architect solutions for customer’s data center management needs working with multiple lower-level drivers, OS, libraries
Hardware Integration:
- Board bringup and validation of all low-level interactions with hardware
- Drivers to monitor the health of the board
- Troubleshoot and resolve hardware-software interaction issues
Security:
- Design and implement features for verification of trusted software like secure boot
- Stay up-to-date on security best practices and vulnerability remediation
Collaboration:
- Work effectively in a team environment, collaborating with engineers and peer functional leads from different disciplines to innovate solutions, triage issues and speed execution
- Work with product line management, customers and sales teams to understand requirements
- Explain the value addition software brings to technical and non-technical audiences.
Leadership:
- Mentor and coach team members on the technical skills and approaches to solve problems.
- Review and maintain quality of code going into production.
- Architect software applications that will work across multiple technology generations with minimal changes.
Knowledge/Skills/Competencies
- Strong programming skills: Proficiency in C, C++ and other low-level programming languages.
- Operating system knowledge: Experience with Linux driver kernel development is a must. Candidate should have strong experience in Linux kernel memory management, interrupts, IOMMU
- Hardware experience: Familiarity with main elements of CPU, DPU, memory, NICs, board monitoring elements is a must
- Debugging and testing skills: Ability to identify and resolve software and hardware issues.
- Problem-solving skills: Strong analytical and problem-solving abilities
- Experience with data center deployments: Prior experience in data center architectures, developing and maintaining software for deployments is a plus
- Experience with GPU programming: Prior experience GPU libraries like CUDA and ROCm is huge plus
Physical Demands
- Duties of this position are performed in a normal office environment.
- Duties may require extended periods of sitting and sustained visual concentration on a computer monitor or on numbers and other detailed data.
- Repetitive manual movements (e.g., data entry, using a computer mouse, using a calculator, etc.) are frequently required.
- Occasional travel may be required.
Typical Experience
Typical Education
Bachelor degree or consideration of an equivalent combination of education and experience.
Educational Requirements may vary by Geography