Software Engineer, Compiler (Middle-end)
FuriosaAIJob Title
Software Engineer, Compiler (Middle-end)
Role Summary
The middle-end compiler engineer designs and implements optimizations and planning algorithms that map tensor programs to efficient execution on FuriosaAI hardware. Work focuses on IR, lowering, scheduling, and performance modeling within the production compiler.
Own problems from real models and production workloads, turn insights into general compiler solutions, and integrate validated passes into the compiler stack.
Experience Level
Mid-level. Specific years of experience not stated.
Responsibilities
Primary responsibilities include designing IR and optimization passes, building analyses and planners, and validating performance on production workloads.
- Design and evolve IR abstractions, semantics, and lowering transformations.
- Develop global optimization and execution-planning algorithms (tiling, fusion, data layout, hardware mapping).
- Implement scheduling and hardware resource allocation optimizations.
- Build program analyses (dependence, alias), verification checks, and race detectors.
- Develop performance models and search/solver techniques for planning and optimization.
- Integrate, test, and validate compiler passes on real models and production workloads.
- Provide compiler and workload feedback for hardware/software co-design and evaluate proposed architectures.
Requirements
Must-have technical skills and abilities required for the role; preferred items listed after.
- Foundational knowledge of compiler design and optimization passes.
- Ability to abstract complex hardware/software constraints into algorithms and solve problems through rigorous reasoning.
- Experience identifying and owning compiler problems in real models or production workloads.
- Proficiency in programming, debugging, and integrating compiler passes into a production codebase.
Nice-to-have
- Experience with LLVM or MLIR.
- Experience developing code generators, instruction schedulers, or high-performance kernels for NPUs/GPUs/accelerators.
- Experience applying search, constraint solving, or mathematical optimization (ILP, SMT, dynamic programming, heuristic search) to compilation or scheduling.
- Experience building analytical or learned performance models for hardware.
- Experience applying program analysis techniques to optimize performance or ensure correctness.
- Familiarity with functional programming languages in large-scale software design.
Education Requirements
Minimum: Bachelor's degree in Computer Science, Mathematics, or a related technical field. Preferred: Master's or PhD in Programming Languages, Compilers, Program Analysis, or related fields.
About the Company
Company: FuriosaAI
Headquarters: Seoul, South Korea
FuriosaAI develops high-performance, energy-efficient AI inference hardware and software. Founded in 2017 by semiconductor and AI engineers, the company builds AI-native compute platforms to reduce AI energy and operational costs and operates globally with offices in Korea, Silicon Valley, and an R&D lab in Lisbon.
