Senior principal AI software stack engineer/Architect for R&D

Information Technology
Direct Hire
Markham, Ontario
Job ID:

We are looking for a Senior Principal Engineer/Architect, leading the AI research team in Toronto Distributed Data Storage and Management Lab, with research and development experience in AI software stack technology.


  • As a team leader, you will lead the team in the whole technology research and development cycle from definition to implementation, cooperating with the team in headquarters.
  • Research and identify key AI technologies, use cases, and trends
  • Design and develop the best AI framework in the world
  • Design and develop machine learning/deep learning core component based on heterogeneous chip architectures, including CPU/GPU/ARM/AI chip etc.
  • Keep tracking the technical trend of industry and academe, contribute to the technical strategy definition(Business plan/Strategy plan)


  • MS or PhD in Computer Science, mathematics, statistics, or have equivalent research experiences. At least 8 years of experience in related fields
  • Excellent complex software design and coding skills. Solid skill in C/C++/Python/go. Experience in concurrency, multithreading and synchronization.
  • Strong problem-solving, and excellent verbal and written communication skills
  • Self-motivated learner; strong desire to learn on the job and apply the state of the art technology

At least one of the desired skills

  • Deep experience in ML framework development such as TensorFlow, MXNet, Caffe, autoML, coreML, TVM etc.
  • Deep experience in implementing various types of Neural Networks (NN)including but not limited to Convolutional Neural Networks (CNNs) and/or Recurrent Neural Networks (RNNs)
  • Deep understanding of distributed system and cloud technologies such as virtualization/container, cloud infrastructure, load balancing, networking, and distributed data storage
  • Experience with Linux containers management system, like mesos, kubernetes etc.
  • Deep understanding of computer architecture, including x86 CPU or ARM or GPU or FPGA or ASIC. Knowledge of GPU programming with CUDA.
  • Hands on experience in programming on heterogeneous system, performance optimization
  • Experience with GEMM/CONV