Software Engineer - Distributed Database

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

Company Description

About Huawei
Huawei is a leading global provider of information and communications technology (ICT) infrastructure and smart devices. With integrated solutions across four key domains – telecom networks, IT, smart devices, and cloud services – we are committed to bringing digital to every person, home and organization for a fully connected, intelligent world.
At Huawei, innovation focuses on customer needs. We invest heavily in basic research, concentrating on technological breakthroughs that drive the world forward. We have more than 180,000 employees, and we operate in more than 170 countries and regions. Founded in 1987, Huawei is a private company fully owned by its employees.

About Huawei Canada
Huawei Canada helps connect Canadians to world-leading high-speed wireless Internet – and supplies them with cutting-edge smart devices. In partnership with Canadian telecommunications providers, we work to bring the benefits of a reliable and secure digital experience to every person, home and organization, including those in rural and remote areas of the country. Huawei first came to Canada in 2008. Today, the company employs more than 1,100 Canadians in research and development, IT, sales and other fields. Huawei Canada is an active supporter of many charitable and community initiatives from coast to coast.

Job Description

Huawei Canada is looking for talented software engineers to join the Distributed Data and Storage Lab, based in Markham, Ontario. The Lab's mission is to leverage technologies on distributed systems to improve the performance of Huawei products—from 5G network equipment to mobile phones, and from smart home appliances to cloud services.
 
Our product is one of the fastest growing database management systems in an evolving market. Our team has started up in Markham recently with less than 10 developers, but is in rapid growth mode. 
We are looking for talented and motivated individuals who can join us to tackle challenging problems and develop new technologies onto distributed database management system.

Responsibilities

  • Research and development of distributed, highly available share nothing transaction processing database management system focusing on algorithms for scale up and scale out 
  • Work with a team of architects and engineers to develop proof-of-concept systems and components across the data manager, buffer manager and transaction processing components.
  • Investigate and design new data structures and algorithms focusing on lockless and NUMA aware approaches on the latest and state of the art hardware technology
  • Continuous enhancements on the AI-native distributed database system to fulfill customer requirements utilizing AI techniques for self-tuning under differing workload conditions
  • Mentor junior colleagues on algorithm design, data structure and software engineering aspects. Focusing on high performance scalable code
  • Work with QA and continuous integration teams to drive a quality overall solution though a combination of automated unit tests, functional testing and system testing of the solution

Qualifications

Minimum Qualifications

  • Bachelor, Master or PhD major in computer science or related area
  • Proficient with C and C++ programming
  • Solid understanding of fundamental concepts related to system design, such as data structures, algorithms, and operating systems.
  • Excellent documentation, organization and communication skills 
  • Must be highly collaborative, self-motivated and possess a strong drive/ ability to learn & grow

Preferred Qualifications

  • Experience with design and development of a distributed database, or storage system, or file system, or cache system
  • Experience with Microsoft SQL Azure/Aws RDS Aurora/Oracle RAC/IBM Db2 pureScale
  • Experience working within open source community

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