Software Engineer for R&D – Distributed Systems (New Graduate)

  • 10 Aviva Way, Markham, ON L6G 1B3, Canada
  • Full-time

Company Description

About Huawei

With 194,000 employees and operating in more than 170 countries and regions, Huawei is a leading global creator and provider of information and communications technology (ICT) infrastructure and smart devices. Integrated solutions span across four key domains – telecom networks, IT, smart devices, and cloud services. Huawei is committed to bringing digital to every person, home and organization for a fully connected, intelligent world.

About Huawei Canada

Huawei Canada focuses on fundamental research and development aimed at solving complex technical problems in emerging technologies like 5G, AI, Human Computer Interaction and Autonomous Driving. With ongoing research initiatives with 10 Universities across Canada and strategic collaboration agreements with several Universities, we support Canada’s rich research community.  In 2020, Huawei Canada ranked among the Top 20 corporate R&D investors in the country with a huge 40% increase in R&D investment year over year. Huawei Canada was established in 2008 and now has a total workforce of 1,200 in our six research centers across Canada.

“Huawei will continue to be an important contributor to Canada’s knowledge-based economy,” “Openness and diversity are Canada’s great strengths. They help attract global talent and business. Huawei Canada’s R&D spending creates jobs, trains talents, supports fundamental research, and accelerates knowledge-to-impact in Canada. We are proud of all of that.”

Changtian Cai, President, Huawei Canada R&D.

Job Description

Job Description

Huawei Canada is looking for talented and enthusiastic individuals to join the Distributed Data Storage and Management Lab, based in Markham, Ontario.  The Lab's mission is to lead and leverage distributed and AI technologies to create new Huawei products and services, plus improve the performance of existing products—from 5G network equipment to mobile phones, and from smart home appliances to cloud services.

To achieve these goals, we conduct research and development in a variety of areas including, but not limited to, Distributed Systems, Distributed Storage Systems, and Artificial Intelligence Platforms.  This exciting position is a great opportunity to grow your skill set while solving real-world problems in a fast-paced, agile environment.  Both senior and junior positions are available.

Responsibilities

  • Design, develop, and test software in a wide range of products, including (but not limited to):
  • 1.       Concurrent systems, both parallel systems and distributed systems
  • 2.       Distributed storage/data systems
  • Analyze and optimize software system performance
  • Participate in scrums and sprint planning
  • Learn and adopt new technologies; research, survey, and present industry trends to the team
  • Generate innovative ideas and new patent applications

Qualifications

Minimum Qualifications:

  • Proficient programming in C++
  • Experience in distributed systems
  • Solid grasp of fundamental concepts related to system design, such as data structures, algorithms, and operating systems
  • Experience in Linux development environment
  • Experience with software development tools (IDE, git) and software development life cycle
  • Bachelor’s Degree in Computer Science, Computer Engineering, or another relevant discipline
     

Preferred Qualifications:

  • Extensive knowledge of memory manipulation, data structures, and concurrency algorithms
  • Experience in other programming languages is an asset: shell scripting, Java, Go, Python
  • Academic publications
  • Open source Distributed System project contributor
  • Bachelors, Masters or Ph.D degree in Computer Science, Computer Engineering, or another relevant discipline

We thank all applicants for their interest, however only those candidates selected for interviews will be contacted.

Privacy Policy