Artificial Intelligence
ML Compiler Engineer Job Description
An ML Compiler Engineer builds the software that turns a model written in PyTorch, JAX or TensorFlow into fast code for a specific chip: GPUs, TPUs, AWS Trainium and custom AI accelerators. The work covers graph capture, lowering through intermediate representations such as MLIR, operator fusion, tiling, memory planning and autotuning, plus the tests that keep optimized models numerically correct. These engineers work on compiler teams at chip designers, cloud providers, AI labs and framework projects. BLS does not track the title separately; its nearest occupation, software developers, had a May 2025 median of $135,980, with the 10th to 90th percentile running from $82,460 to $214,670.
Last updated
Role at a glance
- Typical education
- Bachelor's degree in computer engineering or computer science; a master's or PhD in compilers or architecture is an option for research-leaning teams.
- Typical experience
- As a rough guide, two to five years of compiler, GPU programming or performance work before an ML compiler role.
- Key certifications
- Merged open-source compiler work and shipped backends demonstrate skill.
- Top employer types
- AI chip designers, cloud providers with in-house accelerators, AI labs and open-source ML framework projects.
- Growth outlook
- BLS projects 10% growth from 2025 to 2035 for software developers, QA analysts and testers; it does not track ML compiler engineers separately.
- AI impact (through 2030)
- AI agents that draft kernels are an active research and conference topic; correctness checks, autotuning and integration of that code are compiler engineering work.
Duties and responsibilities
- Design and implement compiler passes for operator fusion, loop tiling, vectorization and buffer planning that cut memory traffic on GPU and accelerator targets.
- Lower framework graphs from PyTorch, JAX or ONNX through MLIR dialects or another multi-level IR down to target-specific instructions and runtime calls.
- Define new MLIR dialects, operations and rewrite patterns when a hardware feature or model operator has no clean representation in existing IR.
- Build and maintain autotuning systems that search tile shapes, pipeline depth, warp counts and memory layouts for each kernel and input shape.
- Profile compiled models with tools such as Nsight Compute or vendor profilers, then trace stalls and bandwidth waste back to specific compiler decisions.
- Integrate the compiler backend with torch.compile, XLA or a vendor runtime so model authors get speedups without rewriting their model code.
- Work with hardware architects before tape-out to judge which instructions, memory features and data types the compiler can actually exploit.
- Investigate numerical mismatches introduced by fusion, reordered reductions or low-precision lowering by bisecting passes and comparing IR dumps against references.
- Write unit tests for individual passes, end-to-end model regression suites and performance gates that run on every supported hardware target.
- Review code, write design documents and RFCs, and contribute fixes upstream to open-source projects such as LLVM, MLIR, Triton or OpenXLA.
Overview
An ML Compiler Engineer writes the software that turns a model defined in PyTorch, JAX or TensorFlow into instructions a particular chip can run quickly. The input is a graph of tensor operations: matrix multiplies, attention, normalizations, elementwise math. The output is a set of kernels and a schedule tuned for one target, whether that is an NVIDIA or AMD GPU, a Google TPU, an AWS Trainium chip or a startup's custom accelerator. Everything in between is the compiler, and this engineer owns some slice of it.
The lowering pipeline
The center of the job is lowering. A framework hands over a graph, and the compiler moves it down through a stack of intermediate representations, each one closer to the hardware. MLIR, the multi-level IR framework maintained inside the LLVM project, underpins several ML compiler stacks. The MLIR project's own list of users names OpenXLA, whose XLA, StableHLO and Shardy projects use MLIR to represent and transform models from frameworks such as JAX, TensorFlow and PyTorch; IREE, an end-to-end MLIR-based compiler and runtime for machine-learning models; and Hexagon-MLIR, an open-source compiler stack for Qualcomm Hexagon NPUs that lowers Triton kernels and PyTorch models through Hexagon-specific dialects.
What a working week looks like
The tasks are concrete. One day an engineer writes a pass that folds a bias add and activation into the preceding matrix multiply, so the intermediate tensor never leaves on-chip memory. Another day goes to tile-size selection for an attention kernel, choosing block shapes that fit shared memory or a scratchpad and keep the matrix units busy. Another goes to a numerical bug: a model that matches its reference in fp32 drifts after a pass reorders a reduction in bf16, and the fix means bisecting IR dumps until the offending rewrite turns up.
Kernel languages and autotuners
Kernel languages sit next to the compiler proper. Triton describes itself as a language and compiler for parallel programming, with a Python-based environment for writing custom compute kernels for GPUs. NVIDIA describes cuTile as a parallel programming model for NVIDIA GPUs and a Python-based DSL, and its cuTile Python package generates kernels based on Tile IR. An ML compiler engineer may build the code generator behind a language like these, write the autotuner that searches its configuration space, or connect it to a framework so model authors never call it directly.
Who they work with
The role is collaborative by design. Compiler engineers talk to hardware architects about what an instruction set exposes and what each feature costs, to framework teams about graph capture and dynamic shapes, and to model teams about which operators matter for the next release. On a chip company's team the compiler is how customers' models reach the new silicon at all. At a cloud provider or AI lab, the same skills are judged on throughput, memory footprint and serving cost.
Good results show up on a benchmark dashboard, but they rest on correctness. A fusion that speeds up a kernel and silently changes its output is a regression, so reference implementations, tolerance checks and regression suites are as much a part of the job as the optimizations.
Qualifications
Education. As a rough guide, the path starts with a bachelor's degree in computer engineering, computer science or electrical engineering, with coursework in compilers, computer architecture and operating systems. A master's or PhD focused on compilers, programming languages or architecture is a further option, particularly for research-leaning teams, while production teams weigh shipped work. For the broader occupation, BLS says software developers typically need a bachelor's degree in computer and information technology or a related field, and that some employers prefer to hire developers who have a master's degree.
Experience. As a rough guide, people move into ML compiler roles after two to five years of compiler, GPU programming or systems performance work, and senior or staff roles expect ownership of a full backend or a major subsystem such as autotuning or graph capture. One entry route is a general compiler job, for example on an LLVM backend, followed by a move to an ML team.
Compiler fundamentals. Expect to be tested on:
- SSA form, dataflow analysis, dominance and the pass pipeline model
- Loop transformations: tiling, interchange, unrolling, software pipelining and vectorization
- Instruction selection, register allocation and scheduling, including for VLIW or SIMD targets
- MLIR concepts: dialects, operation definitions in ODS and TableGen, pattern rewriting, conversion passes and progressive lowering
ML systems knowledge. Compiler work is easier when the engineer understands the workloads:
- How attention, convolution and mixture-of-experts layers map onto matrix units and memory
- Precision formats such as bf16, fp8 and integer quantization, and where each loses accuracy
- Graph capture in torch.compile (TorchDynamo, AOTAutograd, TorchInductor), JAX tracing and StableHLO
- The difference between training and inference compilation, including dynamic shapes and batching
Hardware. GPU execution model, shared memory and caches, tensor cores or equivalent matrix engines, DMA engines and scratchpads on custom accelerators, and enough interconnect knowledge to reason about multi-chip sharding.
Languages and tools. C++ is the working language of LLVM and MLIR, and Python drives framework integration, test harnesses and autotuning scripts. CUDA, HIP or a vendor kernel language helps for writing reference kernels. Build systems such as CMake and Bazel, plus profilers like Nsight Compute and Nsight Systems, round out the kit.
Credentials. Evidence of skill is the code itself: merged patches to LLVM, MLIR, Triton or OpenXLA, a published benchmark study, or a backend brought up on real hardware.
Interview signals. Strong candidates can walk through one optimization end to end: the IR before and after, the legality conditions, how correctness was tested and what the profiler showed. They can also explain a design tradeoff in a compiler they have used, such as when to fuse and when fusion hurts.
Career outlook
BLS does not publish counts or projections for ML compiler engineers. The closest official signal is the broader group of software developers, quality assurance analysts and testers. In its Occupational Outlook Handbook, BLS counts 1,905,400 jobs in that group in 2025 and projects employment to grow 10% from 2025 to 2035, which it labels much faster than average, an employment change of 185,400. That is direction for a very large workforce, not a forecast for this specialty.
More hardware, more backends
The more useful signal is the number of chips that need a compiler. Each new accelerator needs a path from PyTorch and JAX to its instruction set, and that path is built and maintained by compiler engineers. Recent examples are concrete. On Oct. 20, 2026, AWS launched the public beta of TorchNeuron, an open source native PyTorch backend for its Trainium chips that keeps compatibility with eager execution, torch.compile and standard PyTorch APIs, and integrates with the Neuron Kernel Interface (NKI) for custom operators. At PyTorch Conference North America 2026, held Oct. 20 to 21 in San Jose, the program listed a Meta session on Helion, PyTorch's high-level kernel-authoring DSL, gaining two new compiler backends, CuteDSL for recent NVIDIA GPUs and Pallas for TPUs, so one kernel source can target very different hardware.
Compiler teams sit at several kinds of employer: chip designers that must ship a software stack with their silicon, cloud providers with in-house chips, AI labs that tune training and serving on several hardware generations, and the open-source framework projects that tie it together. Each group has its own mix of research and production work.
Where AI tools fit
The same conference program described its kernel engineering track as spanning the DSLs, autotuners, and hand- and agent-written kernels that squeeze more performance out of every GPU cycle, so machine-written kernels sat on the program next to hand-written ones. Where generated code enters a stack, someone still has to build the verification, autotuning and integration layers that decide whether it is correct and fast enough to ship, and that is compiler work.
How to stay employable
The durable skills are the fundamentals: IR design, dependence analysis, memory hierarchy, numerical behavior of low-precision formats and disciplined performance measurement. On top of that, depth in at least one production stack (TorchInductor and Triton, XLA, IREE or a vendor compiler) and experience bringing a model up on more than one kind of hardware make a candidate portable across employers. Watching the LLVM and PyTorch communities, through their developer meetings, forums and conference talks, is a practical way to see which abstractions teams are adopting.
Where the work leads
Senior compiler engineers can grow into roles that set compiler architecture across a product line, move toward hardware architecture, where knowing what a compiler can exploit shapes the next chip, or take on framework and runtime leadership. Each path draws on the same mix of IR design, performance analysis and cross-team negotiation.
Sample cover letter
Dear Hiring Manager,
I am applying for the ML Compiler Engineer role on your accelerator software team. For the past four years I have worked on the compiler for an edge inference chip at Northfield Systems, where I own the MLIR lowering path from our Linalg-level representation down to the vector unit and DMA engine.
The project I am proudest of started as a customer complaint. A speech model ran correctly but slowly on our part, and the profile showed the vector unit idle while the DMA engine shuttled the same activation tiles in and out of the scratchpad. I rewrote our tiling pass to choose tile shapes from a cost model of scratchpad capacity and DMA latency instead of fixed defaults, then fused the following normalization so the tile stayed resident. The model hit the customer's latency target, and the pass now handles every convolution and matrix-multiply layer we ship.
The harder lesson came a month later, when the same fusion broke numerical parity on a quantized vision model. Tracking it down meant bisecting pass by pass and comparing every intermediate tensor against a reference run. The fix was small, but I came out of it convinced that test infrastructure is part of the compiler, not an afterthought, and I built the per-pass parity harness our team now runs on every change.
Before Northfield I spent two years on a GPU driver team writing CUDA reference kernels and learning to read hardware counters, which still shapes how I debug.
Your team's public work on retargeting a shared IR across several chip generations is exactly the problem I want to spend the next few years on. I would welcome the chance to talk through how my backend experience could help with your next bring-up.
Sincerely, Jordan Reyes
Frequently asked questions
- What does an ML Compiler Engineer do?
- An ML Compiler Engineer builds the software that turns a model written in PyTorch, JAX or TensorFlow into fast code for a specific chip: GPUs, TPUs, AWS Trainium and custom AI accelerators. The work covers graph capture, lowering through intermediate representations such as MLIR, operator fusion, tiling, memory planning and autotuning, plus the tests that keep optimized models numerically correct. These engineers work on compiler teams at chip designers, cloud providers, AI labs and framework projects. BLS does not track the title separately; its nearest occupation, software developers, had a May 2025 median of $135,980, with the 10th to 90th percentile running from $82,460 to $214,670.
- What are the main duties of an ML Compiler Engineer?
- Core duties include: design and implement compiler passes for operator fusion, loop tiling, vectorization and buffer planning that cut memory traffic on GPU and accelerator targets; lower framework graphs from PyTorch, JAX or ONNX through MLIR dialects or another multi-level IR down to target-specific instructions and runtime calls; and define new MLIR dialects, operations and rewrite patterns when a hardware feature or model operator has no clean representation in existing IR.
- How is an ML Compiler Engineer different from a traditional compiler engineer?
- Both work with intermediate representations, optimization passes and code generation, but a traditional compiler engineer works on front ends for languages such as C++ or Rust and on CPU code generation. An ML Compiler Engineer starts from a graph of tensor operations and targets parallel hardware where memory movement, tiling and data types decide performance. The math of the model also matters: a valid rewrite in integer code can change results in floating point.
- Can AI agents write the kernels an ML compiler produces?
- For some operators, research systems now try. A paper at MLSys 2026 described TritorX, an agentic system that generated Triton kernels and wrappers for 481 unique ATen operators that passed all corresponding PyTorch OpInfo tests, over 20,000 in total, and the pipeline works with Meta's MTIA silicon as well as hardware simulation for next-generation devices. The system pairs large language models with a custom linter, JIT compilation and a PyTorch OpInfo-based test harness, so the checking infrastructure around the model is part of the system.
- What separates compiler work from kernel engineering?
- A kernel engineer hand-writes and tunes specific routines, such as an attention or matrix-multiply kernel, for one or a few chips. A compiler engineer writes the system that generates many kernels automatically from a model graph, decides when to fuse operations, and handles shapes nobody tuned by hand. On small teams one person may do both, and the skills overlap.
- How does an ML compiler engineer build a public track record?
- Open-source compiler projects make work visible: patches and code reviews in LLVM and MLIR, design discussions on the LLVM Discourse forum, and contributions to Triton, OpenXLA, IREE or TorchInductor. A merged pass with tests and a benchmark tells a hiring team more than a course list. Writing up a performance investigation, with before and after IR, serves the same purpose.
- Is ML compiler work only about NVIDIA GPUs?
- No. Compiler teams also target Google TPUs, AMD GPUs, AWS Trainium, Meta's MTIA, mobile and edge NPUs, and accelerators from startups, each with its own memory hierarchy and instruction set. Portability is a large part of the job: getting the same PyTorch model to run correctly and fast on hardware that looks nothing alike.
Sources
Salary figures and role details on this page were checked against the following sources. Dates show when each was last reviewed.
- Software Developers, BLS Occupational Employment and Wage Statistics (May 2025)Checked Nov 10, 2026
- Semiconductor and Other Electronic Component Manufacturing (NAICS 334400), BLS Occupational Employment and Wage Statistics (May 2025)Checked Nov 10, 2026
- Software Developers, Quality Assurance Analysts, and Testers, Occupational Outlook Handbook, U.S. Bureau of Labor Statistics (modified August 27, 2026)Checked Nov 10, 2026
- Users of MLIR, MLIR Project (LLVM) (2026)Checked Nov 10, 2026
- AWS announces TorchNeuron: native PyTorch support for AWS Trainium (public beta), Amazon Web Services (October 20, 2026)Checked Nov 10, 2026
- Open Research, Tooling & Optimization at PyTorch Conference North America 2026, PyTorch Foundation (September 16, 2026)Checked Nov 10, 2026
- Agentic Operator Generation for ML ASICs, Proceedings of Machine Learning and Systems 8 (MLSys 2026)Checked Nov 10, 2026
- cuTile Python documentation, NVIDIA (2026)Checked Nov 10, 2026
- cuTile Python (project README), NVIDIA (2026)Checked Nov 10, 2026
- Triton documentation, Triton project (2026)Checked Nov 10, 2026
- XLA overview, OpenXLA Project (2026)Checked Nov 10, 2026
- MLIR: Multi-Level IR Compiler Framework, MLIR Project (LLVM) (2026)Checked Nov 10, 2026
Related job descriptions
See all Artificial Intelligence jobs →- ML Infrastructure Engineer$145K–$230K
ML Infrastructure Engineers design, build, and operate the computational systems that enable machine learning at scale — GPU clusters, distributed training pipelines, model serving platforms, and the data infrastructure that feeds them. They sit at the intersection of systems engineering and machine learning, translating research requirements into production-grade infrastructure that can train foundation models, serve billions of inferences per day, and maintain reliability under rapidly shifting workloads.
- ML Platform Engineer$130K–$210K
ML Platform Engineers design, build, and operate the infrastructure that lets data scientists and ML engineers train, evaluate, deploy, and monitor machine learning models at scale. They sit at the intersection of software engineering, distributed systems, and applied ML — owning the pipelines, compute orchestration, feature stores, and serving layers that turn research models into production systems. The role has emerged as one of the most in-demand engineering specializations in the AI industry.
- AI Automation Engineer$82K–$215K
An AI Automation Engineer builds software that hands routine business work to AI models: pipelines that read documents, route tickets, update internal systems and pass uncertain cases to a person. The job sits inside software engineering, between application development, data engineering and the operations teams whose processes get automated. Employers include AI product companies, software publishers, IT consultancies, banks, health systems and government agencies. BLS does not track the title; for software developers, its closest occupation, the May 2025 median wage was $135,980, with the 10th percentile at $82,460 and the 90th at $214,670. As of 2026 the job also covers agent design: which tools a model may call and what it may never do without a person.
- AI Developer Advocate$82K–$215K
An AI Developer Advocate is a working engineer who helps outside developers succeed with an AI company's models, APIs, SDKs and agent tooling. The job sits in a developer relations team, and its output is code and teaching: sample apps, quickstarts, tutorials, conference talks, community support and structured feedback to the product team. It is not a sales job; the audience is the developers building on the platform, not a buyer in a deal. BLS does not report developer advocates separately. For the nearest occupation, Software Developers, the May 2025 national pay band ran from $82,460 at the 10th percentile to $214,670 at the 90th, with a median of $135,980.
- AI Infrastructure Engineer$82K–$215K
An AI Infrastructure Engineer builds and runs the compute platform that machine learning teams train and serve models on: GPU servers, high-speed fabrics, parallel storage, job schedulers and the monitoring that holds it together. The role sits between platform engineering and ML research, working inside AI labs, cloud providers, large enterprise technology groups and university research computing centers. BLS does not track the title separately, so pay here uses its nearest occupation, Software Developers: a May 2025 median of $135,980, with the 10th and 90th percentiles at $82,460 and $214,670.
- AI Systems Engineer$82K–$215K
An AI Systems Engineer designs, builds and operates the production systems that put AI models to work: the data pipelines, retrieval layers, serving endpoints, guardrails, evaluation suites and monitoring that surround a model. The role sits where software, data and machine learning engineering meet, at AI product companies, cloud providers, software publishers and enterprises running their own AI applications. Federal wage data has no line for the title. The closest occupation, Software Developers, paid $135,980 at the May 2025 median, $82,460 at the 10th percentile and $214,670 at the 90th.