Job Search and Career Advice Platform

Enable job alerts via email!

Principal Compiler Engineer

Huawei Technologies Canada Co., Ltd.

Markham

On-site

CAD 100,000 - 130,000

Full time

30+ days ago

Generate a tailored resume in minutes

Land an interview and earn more. Learn more

Job summary

A global technology company in York Region, Markham is seeking a senior software developer to design and optimize systems across AI, GPU, and CPU architectures. Ideal candidates should have over 8 years of experience in C++, C, or Java, with expertise in compiler or deep learning frameworks. This leadership role involves mentoring, project management, and innovative contributions to the team's development efforts.

Qualifications

  • 8+ years in large software projects with programming languages including C++, C, or Java.
  • Experience in production compiler or language runtime.
  • Knowledge of data structures, algorithms, operating systems, and computer architecture.

Responsibilities

  • Design, develop, and test software for diverse product requirements.
  • Analyze system performance and assist with software/hardware co-design.
  • Lead scrums and mentor junior developers.

Skills

C++
C
Java
Compiler development
Deep learning frameworks

Education

Bachelor's degree in Computer Science
Master’s or Ph.D. (an asset)

Tools

LLVM/Clang
TensorFlow
CUDA/OpenCL
Vulkan
Job description
About the team:

The Heterogeneous Compiler Lab, led by esteemed technical experts with extensive industry and academic experience, publishes innovative research at leading conferences. Recognized as key contributors to the LLVM Compiler Infrastructure project, this lab excels in developing diversified IP compiler collaborations, focusing on AI, GPU, and CPU architectures. Our efforts include heterogeneous compilation technology and SW-HW co-design, optimizing for AI, graphics, games, and mobile applications while tackling technological challenges through open-source community.


About the job:


  • Design, develop, and test software to satisfy business requirements in a wide range of products.

  • Analyze and optimize software system performance, and assist with software/hardware co-design.

  • Liaise with internal and external stakeholders, determine project and feature requirements, and create development plans for software productization.

  • Provide leadership in scrums, reviews, and project planning; engage in team building.

  • Mentor junior developers through education sessions, code reviews, and career development.

  • Research industry trends and paradigms, and propose new technical directions for the team.


About the ideal candidate:


  • 8+ years of experience programming in large software projects with at least one of the following: C++, C, or Java.

  • Satisfy at least two of the following:

    • Development or research experience in a production compiler (LLVM/Clang-based is an asset).

    • Development or research experience in a production language runtime (JVM-related is an asset), and/or design and implementation of a major programming language.

    • Development or research experience with deep learning frameworks and related ecosystem, such as TensorFlow, Caffe2, MXNet, ONNX, TVM.

    • Development or research of GPU drivers, such as Vulkan, OpenGL, DirectX, or CUDA/OpenCL.

    • Development or research experience with hardware accelerators such as GPUs, NPUs, or FPGAs.



  • Solid grasp of fundamental concepts related to system design, such as data structures, algorithms, and operating systems.

  • In-depth understanding of computer processor architecture.

  • Proficiency with software development tools and concepts such as source control, bug tracking, etc.

  • Bachelor's, Master\u2019s degree or Ph.D (an asset). in Computer Science, Computer Engineering, or related field.

  • The following items would be an asset: Deep understanding of IR and machine level compiler optimization techniques; experience in systems programming; proficiency in higher-level programming languages e.g. Go, Python; or an understanding of the implementation of higher-level programming languages.

Get your free, confidential resume review.
or drag and drop a PDF, DOC, DOCX, ODT, or PAGES file up to 5MB.