yoinka

Staff Software Development Engineer - Rust, Compilers, and GPU Systems

AMD

San Jose, CaliforniaFull TimeStaff
Sign in to applyVerified 1h ago
Location
San Jose, California
Employment
Full Time
Work model
On-Site
Level
Staff

Skills

Rust

About this role

ADVANCE YOUR CAREER. ADVANCE THE WORLD. At AMD, we believe technology can change lives for the better. It can heal us, entertain us, and make us more connected, productive, and understanding of the world around us. And we’re looking for talent who feel the same: people who want to leave the planet better than they found it, those who don’t shy away from humanity’s challenges but are determined to help solve them.   AMD is powering the next generation of supercomputing, high-performance computing, cloud, and AI. Whether you’re designing next-gen processors, enabling AI breakthroughs, or creating go-to-market plans, every role at AMD contributes to something bigger — technology that moves the world forward.

The Role

We are building next-generation systems software for AMD GPUs with Rust as a core technical direction. The work spans compilers, runtimes, low-level GPU software, firmware, developer tooling, and methods for improving the safety and correctness of complex hardware-software systems. Rust is not incidental to this role. You will help establish how Rust is used in performance-sensitive and high-trust parts of the GPU stack, including the compiler and tooling support, system interfaces, engineering practices, and validation methods required for production deployment. You will have the opportunity to influence both near-term implementations and the longer-term architecture for using Rust across current and future AMD platforms.   The Person This role is for a deeply technical compiler and systems generalist who enjoys working across abstraction layers. You may move between Rust source semantics, rustc internals, intermediate representations, MLIR and LLVM, target-specific code generation, object formats, runtimes, GPU ISA, firmware, and hardware interfaces. You should have strong judgment about correctness boundaries. Memory safety is important, but production correctness also depends on concurrency, ordering, ABI compatibility, device behavior, compiler transformations, and the assumptions between software and hardware. You will help make those assumptions explicit and build evidence that the resulting systems behave as intended. The ideal candidate has deep expertise in at least one part of this stack and the ability to become productive in unfamiliar areas. Experience with every technology listed below is not expected. A research background is not required, although the ability to read technical work, form testable hypotheses, and turn promising ideas into reliable implementations is valuable. The work sits at the intersection of Rust systems programming, production compiler infrastructure, GPU architecture, firmware, program analysis, and formal methods. Hardware-software co-design experience is highly valuable, especially when compiler, runtime, firmware, or ISA choices must evolve together.

Key Responsibilities

Lead the design and implementation of production-quality Rust components for low-level and performance-sensitive GPU systems. Help make Rust a first-class engineering language across relevant parts of the GPU software stack, including toolchain integration, libraries, coding standards, diagnostics, testing, and deployment practices. Design and implement compiler pipelines involving rustc, MIR, target-neutral intermediate representations, MLIR dialects and transformations, LLVM IR, and AMDGPU code generation. Build analyses, transformations, legalization passes, and target-specific lowering for GPU execution models, memory spaces, synchronization, capabilities, and specialized hardware operations. Define typed and auditable interfaces across compiler, host runtime, device code, firmware, and hardware boundaries. Work on ABI definition and validation, argument layout, calling conventions, linker and loader behavior, ELF and code-object metadata, and source-to-binary identity. Develop or improve bare-metal and no std Rust components where explicit state, bounded behavior, fail-closed handling,

Staff Software Development Engineer - Rust, Compilers, and GPU Systems at AMD, San Jose, California | Yoinka