Staff Software Systems Engineer
CT19
Our client has developed the next generation of Tensor Processing Units. Custom-designed AI accelerators, which are optimised for training & inference of large AI models. With working prototypes already, they are now looking to scale the business as quickly as possible.
We’re seeking a highly skilled & motivated Staff Software Systems Engineer to join our multi-disciplinary team. You’ll play a crucial role in developing, integrating, & testing our high-performance machine learning platforms. This position requires deep expertise in low-level systems programming, hardware/software integration & performance optimization.
Role: Staff Software Systems Engineer
Location: London
Salary: DOE / Competitive + benefits
Responsibilities:
- Work within a multi-disciplinary team to develop, integrate, & test machine learning HPC (High Performance Compute) platforms.
- Collaborate cross-functionally with software, hardware, architecture, & support teams to deliver system software for AI platforms, including Linux drivers, PCIe drivers, & user space libraries.
- Develop hardware abstraction layers for Flux Computing hardware in a highly distributed architecture involving multiple chips, cards, & racks.
- Perform triage & debugging of various software issues, ensuring robust system integration of embedded systems with silicon, firmware, & software.
- Optimise performance & low-latency data transfer between I/O devices & memory.
- Participate in the development & shipping of low-level system software for both x86 & ARM architectures.
Skills & Experience:
- 15+ years of experience in software systems engineering or a similar role.
- Degree in Computer Science, Electrical/Computer Engineering, Mathematics, Physics, or equivalent.
- Extensive experience developing low-level performant systems in C++. Experience in Rust & Python is a plus.
- Proven expertise in developing high-performance, low-latency runtime software on distributed systems.
- Prior experience with low latency data transfer between I/O devices & memory is advantageous.
- Proficiency in debugging large, complex distributed system software.
- Knowledge of performance optimization, hardware/software integration, & low-latency IPC over a network.