Full time jobsIBMLatest Private jobs

Software Development Engineer – Post-Silicon Validation at IBM India Systems Development Lab

Introduction to the Company
IBM India Systems Development Lab (ISDL), a key part of IBM’s global technology development division, is at the forefront of cutting-edge innovations in the systems domain. Established in 1996, ISDL is headquartered in Bengaluru, India’s Silicon Valley and startup hub. The lab also has a significant presence in Pune and Hyderabad. ISDL’s role spans the entire IBM Systems portfolio, covering technologies from z Systems, Power/OpenPOWER Systems, and Storage. The team at ISDL is dedicated to advancing innovations across the entire technology stack, from processor design and firmware development to operating systems and software-defined storage.

As a major contributor to IBM’s technological advancements, ISDL plays a key role in driving innovations in various domains, including cognitive computing, cloud, mobile, social, and security. The lab is known for its contributions to over 400+ patents, marking its leadership in technology inventions. Additionally, ISDL has been instrumental in adopting and advancing new development models such as Agile, Design Thinking, and DevOps to improve the efficiency and effectiveness of its software development processes.

Role Overview
IBM is looking for an experienced Software Development Engineer (SDE) to join its team at ISDL. The primary responsibility of this role will be to design, develop, and implement algorithms for Post-Silicon Validation of next-generation IBM server processors, SOCs (System on Chips), and ASICs (Application-Specific Integrated Circuits). The successful candidate will work closely with hardware and firmware design teams, lab teams, performance teams, and characterization teams during the processor bring-up phase, focusing on key debugging activities.

The ideal candidate will bring substantial experience in software development, particularly in tools development, firmware development, or validation tools development. This role requires an individual with a deep understanding of complex systems, excellent communication skills, and a keen ability to collaborate across diverse teams to drive successful outcomes.

Key Responsibilities
The candidate will be expected to:

Post-Silicon Validation of IBM Processors and ASICs:
The candidate will design and develop algorithms for the Post-Silicon Validation process for IBM’s next-generation server processors, SOCs, and ASICs. This involves working with complex systems and ensuring the proper functionality of processors in real-world scenarios.

Processor Bring-up Activities:
One of the key responsibilities will be taking part in processor bring-up activities. The candidate will play an active role in the power-on phase, working with teams to debug and resolve any issues that arise.

Collaboration Across Teams:
The role demands close interaction with various stakeholders, including hardware design teams, lab teams, performance teams, and characterization teams. The candidate will be involved in discussions and decision-making processes to ensure that the validation process proceeds smoothly.

Test Plans and Coverage Closure:
A critical aspect of this role is driving the coverage closure process. This involves developing comprehensive test plans and strategies to ensure complete coverage during validation. The candidate will work collaboratively with verification teams and design teams to meet coverage goals.

Automation and Optimization:
The candidate must be proficient in scripting languages like Python or Perl to automate and optimize the test scenarios. Writing complex test scenarios will be an essential task to ensure the efficiency and thoroughness of the validation process.

Multi-Processor Cache Coherency and Memory Subsystems:
The candidate must have experience in verifying multi-processor cache coherency and memory subsystems, ensuring the seamless operation of complex systems. This includes understanding how processors communicate and manage memory in a multi-core environment.

FPGA/Emulator Validation (Preferred):
While not mandatory, proficiency in emulator environments and FPGA validation is highly preferred. Familiarity with these tools helps in simulating and testing hardware systems before actual physical deployment, ensuring that potential issues are identified early in the process.

Required Technical and Professional Expertise
The ideal candidate for this role should possess the following skills and experience:

Proficiency in C and C++ Programming:
The candidate should have over 10 years of hands-on experience in software development using C and C++. A deep understanding of these programming languages is essential for developing algorithms and test scenarios for hardware validation.

Scripting Skills (Python/Perl):
Strong scripting skills, particularly in Python and Perl, are essential for automating test scenarios and optimizing the validation process.

In-depth Knowledge of Computer Architecture:
A thorough understanding of computer architecture is required, including processor core design specifications, instruction set architecture, and logic verification. This knowledge ensures that the candidate can effectively validate hardware at a low level.

Experience with Multi-Processor Cache Coherency:
The candidate should have experience in verifying multi-processor cache coherency and memory subsystems. This ensures that processors in multi-core systems communicate and manage memory in a seamless and efficient manner.

Experience with Operating Systems and Concepts:
At least 2 years of experience with operating systems, especially in areas such as multithreading, context switching, and memory management, is required. These concepts are integral to understanding how processors manage resources and execute tasks in complex systems.

Experience in Post-Silicon Validation:
Experience in post-silicon validation, especially in the context of server processors and ASICs, is essential. The candidate should have a proven track record of working on real-world hardware validation projects, ensuring the correctness and reliability of processors after fabrication.

Preferred Qualifications
While the above skills are essential, the following qualifications would be highly advantageous:

Exposure to IO Device Drivers and Firmware:
Experience with IO device drivers, especially for devices like NIC controllers and PCIe device controllers, is a plus. Additionally, exposure to firmware development for ASICs is highly desirable.

Familiarity with ARM and RISC-V Architectures:
Experience with ARM and RISC-V architectures is beneficial. These architectures are widely used in modern computing systems, and knowledge of their design and validation processes can be an asset.

Experience with Simulation Tools (Spike, QEMU):
Familiarity with simulation tools such as Spike (RISC-V simulator) and QEMU (generic emulator) is a valuable skill. These tools allow for the simulation and testing of processors and hardware designs in a virtual environment before physical hardware is available.

Preferred Education
The ideal candidate should hold a Master’s Degree in Computer Science, Electrical Engineering, or a related field. A strong educational background will complement the practical experience and technical expertise needed for the role.

Soft Skills
In addition to technical expertise, the following soft skills are critical for success in this role:

Communication Skills:
Effective communication is crucial for collaborating with diverse teams. The candidate must be able to clearly convey complex ideas and solutions to both technical and non-technical stakeholders.

Problem-Solving and Debugging Skills:
The ability to approach complex problems with a structured and logical mindset is essential. Debugging issues during the bring-up and validation phases requires patience, persistence, and the ability to think critically.

Agility and Adaptability:
The candidate should be comfortable working in an Agile development environment. An eagerness to learn and adapt to new technologies and methodologies will help the candidate thrive in the dynamic and fast-paced environment at ISDL.

Curiosity and Eagerness to Learn:
A strong curiosity about technology and a willingness to continuously learn and improve are essential. This role involves working with cutting-edge technologies, and the ideal candidate should be passionate about exploring new advancements in the field.

Conclusion
Joining IBM’s India Systems Development Lab (ISDL) offers an exciting opportunity to contribute to the development and validation of next-generation server processors, SOCs, and ASICs. As part of a dynamic team working on the forefront of technology, the successful candidate will play a critical role in ensuring the reliability and functionality of some of the world’s most advanced computing systems.

If you have the skills, experience, and passion for working on cutting-edge hardware and software technologies, we encourage you to apply for this position and join a team that values innovation, collaboration, and continuous learning.

Apply

Leave a Reply

Your email address will not be published. Required fields are marked *