Summary
Celestica is looking for a 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 runs on SmartNICs, enabling high-performance networking and offloading critical workloads from the main CPU.
Key Responsibilities
Software Development:
- You'll be responsible for designing, developing, and testing software that runs on SmartNICs, enabling high-performance networking and offloading critical workloads from the main CPU.
- Optimize code for performance, efficiency, and low latency
- Innovate new ideas in conjunction with networking engineers to optimize overall data center efficiency
Hardware Integration:
- You'll be responsible for designing, developing, and testing software that runs on SmartNICs, enabling high-performance networking and offloading critical workloads from the main CPU.
- Troubleshoot and resolve hardware-software interaction issues
Performance Optimization:
- Analyze and optimize network performance, identifying bottlenecks and implementing solutions.
- Develop and implement performance testing methodologies and tools.
Security:
- Design and implement security features for SmartNIC software, ensuring data integrity and confidentiality
- 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
Leadership:
- Mentor and coach team members on the technical skills and approaches to solve problems.
- Review and maintain quality of code going into production.
Knowledge/Skills/Competencies
- Strong programming skills: Proficiency in C, C++, P4 and other low-level programming languages.
- Networking knowledge: Deep understanding of networking protocols (TCP/IP, Ethernet, etc.) and concepts
- Operating system knowledge: Experience with Linux driver kernel development is a plus
- 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 GPU programming: Prior experience GPU libraries like CUDA and ROCm is huge plus
- Experience with SmartNICs: Prior experience developing software for SmartNICs and understanding of cloud computing architectures and services is the 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 higher education in Engineering