Strong understanding of system design concepts including data structures, algorithms, and operating systems.
Familiarity with LLVM and MLIR, including writing passes and analytical cost models.
Experience with various architectures including GPUs, CPUs, and LLMs.
Knowledge of modern ISA design and memory models.
Proficient in C++ and experienced with frameworks like PyTorch and TensorFlow.
Education: Bachelor's, Master's, or Ph.D. in Computer Science, Computer Engineering, or related field.
Responsibilities
Design, develop, and test compilers for next-generation mobile, network, or server hardware.
Create language runtimes for new programming languages.
Optimize deep learning frameworks for system performance.
Develop concurrent programming frameworks and scalable distributed systems.
Engage in scrums and project planning as an active team player.
Research and present new technologies and industry trends to the team.
Benefits
Immediate permanent opening for stability in employment.
Opportunity to work on cutting-edge technologies in the compiler and AI domains.
Collaboration in a team-oriented environment to enhance professional growth.
Full Job Description
Huawei Canada has an immediate permanent opening for a Compiler Engineer.
About the job:
Design, develop, and test software to satisfy business requirements in a wide range of products, possibly including (but not limited to):
Compilers targeting next-generation mobile, network, or server hardware;
Language runtimes for new programming languages;
System-level optimization of deep learning frameworks;
Concurrent programming frameworks and distributed systems that can scale from embedded devices to cloud services.
Analyze and optimize software system performance.
Actively participate in scrums and project planning; be a team player.
Learn and adopt new technologies; research, survey, and present industry trends to the team. The total target annual compensation for this position ranges from $106,000 to $156,000 depending on education, experience, and demonstrated expertise.
About the ideal candidate:
2-5 years of experience in compiler development.
Solid grasp of fundamental concepts related to system design, such as data structures, algorithms, and operating systems.
Knowledge of LLVM and MLIR compiler infrastructures, with experience in writing passes, dialects, and analytical cost models.
Experience with compiler stacks and a solid understanding of LLM architectures, attention mechanisms, GPU, CPU, HPC, gaming, mobile systems, and heterogeneous systems.
Understanding of modern heterogeneous architectures and familiarity with ISA design, memory models and advanced compute paradigms.
Proficient in C++ programming and experience with PyTorch, TensorFlow, JAX, OpenCL, Vulkan, OpenGL, and SYCL.
Education: Bachelor's, Master's, or Ph.D. in Computer Science, Computer Engineering, or a related field.