Enable job alerts via email!

Software Engineer - Distributed Database

Huawei Canada

Markham

On-site

CAD 70,000 - 110,000

Full time

30+ days ago

Generate a tailored resume in minutes

Land an interview and earn more. Learn more

Start fresh or import an existing resume

Job summary

An established industry player is seeking a Software Engineer to join their innovative team focused on developing next-generation cloud serverless products. This role involves researching and developing distributed database systems, optimizing algorithms for performance, and mentoring junior engineers. You will collaborate with architects and engineers to create proof-of-concept systems while addressing complex data challenges. If you are passionate about cutting-edge technologies and eager to contribute to a dynamic environment, this opportunity is perfect for you.

Qualifications

  • Bachelor, Master or PhD in Computer Science or related area required.
  • Proficient in C and C++ programming with strong documentation skills.

Responsibilities

  • Research and develop distributed transaction processing database management systems.
  • Mentor junior colleagues on algorithm design and software engineering.

Skills

C programming
C++ programming
algorithm design
data structure
communication skills

Education

Bachelor in Computer Science
Master in Computer Science
PhD in Computer Science

Job description

Huawei Canada has an immediate permanent opening for a Software Engineer.

About the team:
The Distributed Data Storage and Management Lab leads research in distributed data systems, aiming to develop next-generation cloud serverless products that encompass core infrastructure and databases. This lab addresses various data challenges, including cloud-native disaggregated databases, pay-by-query user models, and optimizing low-level data transfers via RDMA. Teams within this lab create advanced cloud serverless data infrastructure and implement cutting-edge networking technologies for Huawei's global AI infrastructure.

About the job:
  1. Research and development of distributed, highly available transaction processing database management system focusing on algorithms for scale up and scale out.
  2. 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.
  3. 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.
  4. Mentor junior colleagues on algorithm design, data structure and software engineering aspects, focusing on high performance scalable code.
  5. Work with QA and continuous integration teams to drive a quality overall solution through a combination of automated unit tests, functional testing and system testing of the solution.

About the ideal candidate:
  1. Bachelor, Master or PhD in Computer Science or related area.
  2. Proficient in C and C++ programming.
  3. Excellent documentation, organization and communication skills.
  4. Self-motivated; strong desire to learn on the job.
  5. Must be a team player.
  6. Experience with design and development of a distributed database, storage system, file system, or cache system is an asset.
  7. Experience in open source community is an asset.
Get your free, confidential resume review.
or drag and drop a PDF, DOC, DOCX, ODT, or PAGES file up to 5MB.