Compiler Backend Engineer
Required skills
- compiler backend
- LLM inference
- scheduling
- memory planning
- code generation
- fusion
- dispatch
- hardware co-design
- profiling
- validation
Nice to have
- C++
- Rust
- PyTorch compilation stack
- TorchDynamo
- FX
- Inductor
Role summary
Normal Computing is seeking a Compiler Backend Engineer to design and build custom compilation for their novel AI hardware, focusing on LLM inference. This role involves optimizing code generation, scheduling, memory planning, and fusion to maximize hardware utilization and minimize latency. You will work closely with hardware architects on pre-silicon chips, validating optimizations through simulators, FPGAs, and silicon. Fluency in Python and familiarity with C, C++, or Rust are required. Experience with ML compilers, non-von Neumann architectures, and performance simulators is a plus.
Normal Computing | Build with Us
Normal is an applied AI company solving the hardest problems in AI and silicon. We build foundational hardware and software for the semiconductor industry, critical AI infrastructure, and the broader systems that power our world, in partnership with the world's most advanced institutions. We work as one team across New York City, Silicon Valley (Mountain View), London, Copenhagen, and Seoul.
The Role
Normal's hardware runs the most memory-bound parts of large-model inference inside memory itself, rather than shuttling weights to a processor. The software that makes this programmable doesn't exist yet in any standard form. Getting a model correct on that hardware is the frontend's job; making it fast is yours. Our hardware does not look like a CPU or GPU, so its compiler backend can't be borrowed from one. As a Compiler Engineer focused on the backend, you will help design and build the custom compilation that maps LLM inference onto it, from scheduling and memory planning to the code our hardware actually executes.
You will work at the boundary between the compiler and the hardware, closely enough to know when an optimization belongs at a different layer, or when the right answer is a new abstraction. Our chip is pre-silicon, so you will measure your work against our simulators and FPGA prototypes first, and against silicon as it arrives.
What You Will Own
Code Generation: Build the passes that turn lowered programs into the code our hardware executes, designing new compilation approaches where conventional ones don't fit. Success means correct, efficient code for every operation our models need.
Scheduling and Memory Planning: Own how work and data are scheduled and placed across our hardware's resources, measured by utilization and end-to-end latency on LLM inference.
Fusion and Dispatch: Own fusion and dispatch decisions for LLM inference, so the hardware spends its time computing rather than moving data.
Hardware Co-Design: Work the abstraction layer between the compiler and the hardware, and feed compiler constraints back to our hardware architects while the design can still change.
Profiling and Validation: Validate every optimization with measured results from simulators, FPGA prototypes, and then silicon, and maintain a performance regression suite the team trusts.
Cross-Team Handoffs: Take lowered programs from our frontend compiler engineers, and decide with the team which operations the compiler generates and which use hand-tuned kernels.
What Makes You a Great Fit
Deep experience with compiler optimization or code generation for accelerators or other non-CPU targets: scheduling, tiling, fusion, or resource allocation
Comfort working close to hardware: you think in terms of memory bandwidth and utilization as well as asymptotic complexity
Willingness to design compilation approaches from first principles when existing ones don't fit the hardware
Track record of shipping optimizations that moved a measured performance number
Comfort building software for hardware that is still evolving, from simulation through bring-up
Fluency in Python, and familiarity with C, C++, or Rust
Bonus Points
Experience with PyTorch's compilation stack (TorchDynamo, FX, Inductor, torch.export) or other ML compilers, such as IREE, TVM, or XLA
Experience compiling for in-memory, spatial, or other non-von-Neumann compute targets
Background in hardware design tools such as logic synthesis or place-and-route
Experience building or using cycle-level or performance simulators to guide optimization decisions
Contributions to open-source compiler or kernel infrastructure (e.g., PyTorch, Triton, TVM, MLIR, LLVM)
Publishing or presenting compiler or performance work at venues such as MLSys, ASPLOS, or CGO
Equal Employment Opportunity Statement
Normal Computing is an Equal Opportunity Employer. We celebrate diversity and are committed to creating an inclusive environment for all employees. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, veteran status, or any other legally protected status.
Accessibility Accommodations
Normal Computing is committed to providing reasonable accommodations to individuals with disabilities. If you need assistance or an accommodation due to a disability, please let us know at accommodations@normalcomputing.com.
Privacy Notice
By submitting your application, you agree that Normal Computing may collect, use, and store your personal information for employment-related purposes in accordance with our Applicant Privacy Notice.
Similar roles
- Custom Memory Design EngineerNormal Computing · Mountain View, CA · Onsite
- AI Research Resident (Algorithms Codesign)Normal Computing · New York, NY · Onsite
Apple GPU Compiler Backend EngineerApple · Cupertino, CA · Onsite
Senior Backend EngineerChief · New York, NY · Hybrid- Staff Backend Engineer, Financial EngineeringOpenAI · San Francisco, CA · Hybrid
Principal Backend Engineer, Enterpise PlatformHorizon3.ai · Remote · Remote
