Staff System Software Engineer
Job description
About the role
Graphcore is seeking a seasoned Staff System Software Engineer to join a new team focused on integrating system software components. You will be instrumental in defining test strategies, establishing best practices, and tackling intricate technical challenges with a hands-on approach. This role involves close collaboration with development and quality assurance teams to ensure the delivery of high-quality, scalable, and dependable solutions. You will own the end-to-end quality of system software integrations, acting as a technical leader who drives clarity and execution in complex environments. The position requires a deep understanding of system-level interactions to validate functionality and reliability across the stack. You will play a pivotal role in bridging the gap between implementation details and high-level system requirements through rigorous testing and analysis. Your work will directly influence the stability and performance of products by catching issues before they reach production. This is an opportunity to shape the testing culture and processes for a growing integration team from the ground up.
Key facts
What you'll do
- Lead the design and implementation of test infrastructure and features to validate system software behavior across diverse hardware and software configurations.
- Develop, execute, and report on comprehensive tests that verify correct system initialization, runtime behavior, and failure modes under stress conditions.
- Create reusable and scalable pipeline solutions for component teams to ensure consistent test execution and reporting across the organization.
- Design, build, and maintain internal tools that streamline the process of test creation, execution, debugging, and result analysis for engineers and QA staff.
- Take ownership of complex technical areas to achieve extensive feature coverage, ensuring that critical system paths are exercised and validated.
- Perform initial debugging and triage of issues by analyzing logs, traces, and system states to isolate root causes in firmware, drivers, and application layers.
- Review and enhance team processes for design, coding, and implementation to improve efficiency, reliability, and maintainability of testing efforts.
- Collaborate with developers and QA to understand component interactions and map out integration points that require verification and validation.
- Develop system tests based on stakeholder use cases, translating high-level requirements into concrete test scenarios and automation scripts.
- Communicate technical concepts effectively to diverse audiences, including engineers, product managers, and executive stakeholders, using clear and precise language.
- Investigate root causes of issues and drive long-term corrective actions by working closely with cross-functional teams to implement and verify fixes.
- Mentor junior engineers and promote high standards in quality and coding through code reviews, knowledge sharing sessions, and documentation of best practices.
Requirements
- A minimum of 10 years of experience in low-level system testing and integration, demonstrating a track record of handling complex system-level validation tasks.
- Proven experience with Real-Time Operating Systems (RTOS) and intricate boot processes, including the ability to debug initialization sequences and hardware dependencies.
- Experience working with Linux and device drivers, including writing, debugging, and validating driver integrations in real-world scenarios.
- Proficiency in test development using Python and C/C++, with the ability to write robust, maintainable, and efficient test code.
- Experience with CI/CD pipelines, including tools like GitHub, GitLab, or Jenkins, to automate test execution and integrate testing into development workflows.
- Familiarity with build and integration tools, and modern testing methodologies, to ensure comprehensive test coverage and reliable results.
- Strong analytical and problem-solving abilities, with a history of resolving complex cross-layer issues that span hardware, firmware, and software domains.
- Excellent communication and documentation skills, with the ability to produce clear reports, test plans, and technical documentation for both technical and non-technical audiences.
Nice to have
- Experience with server-class systems, including multi-socket configurations and high-throughput I/O subsystems.
- Familiarity with openBMC or Zephyr, including the ability to write tests and integrations for these frameworks.
- Experience with QEMU or similar emulation environments, including using them for early validation and prototyping.
Skills & tools
- Python
- C/C++
- Linux
- Device Drivers
- RTOS
- CI/CD (GitHub, GitLab, Jenkins)
- Build and Integration Tools
- Testing Methodologies
- openBMC (preferred)
- Zephyr (preferred)
- QEMU (preferred)
Practical notes
Graphcore offers a competitive salary and benefits package. We are committed to building an inclusive work environment and provide equal opportunities. We can accommodate reasonable adjustments for interviews. This role is based in Bengaluru, India, and is offered as a full-time engagement. Travel may be required occasionally to support integration activities, team meetings, or client visits as dictated by project needs. Candidates must be authorized to work in India for this position, and the hiring process will comply with all local employment regulations and visa requirements where applicable. Deadlines for application review will be managed on a rolling basis, so early submission is encouraged to ensure full consideration.