Software Engineer for R&D – Distributed Systems

  • 10 Aviva Way, Markham, ON L6G 1B3, Canada
  • Contract

Company Description


Job Description


  • 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


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


Privacy Policy