Skip to content

Engineer - Distributed Computing

Kingston, Ontariolu48r

Job description

Our team has an immediate permanent opening for an Engineer.
  • Define and develop programming models to abstract and efficiently utilize new architectures in Beyond-Moore Computing: Heterogeneous and distributed systems (GPUs, Tenor Processing Units, SoCs, single and multi-node)
  • Design, adapt, and implement tools & frameworks to support software engineers in debugging, optimization, portability of high-performance, parallel applications
  • Optimize software and hardware co-design, to offload data-intensive workloads using with novel scheduling techniques and maximize device utilization efficiency
  • Design, implement and assess application programming APIs and runtime systems software for future architectures 
  • Support the integration process of novel software frameworks on in-house hardware platforms and research topics (e.g. performance modeling, analysis of future computing architectures, resource allocation and management, scheduling, fault tolerance and resiliency, communication and shared memory)
  • Write and submit patentable inventions, research papers
  • Meet top industry leaders and experts around the world, collaborate with other researchers and students, consult with Engineering teams across diverse domains, and publish work in far-reaching and impactful areas

Job requirements

What you’ll bring to the team:

  • BA, MS or PhD Degree in Computer Science, Electrical & Computer Engineering, Machine Learning, or equivalent relevant domains
  • Solid understanding in any of these areas: Computer Architecture, Distributed Computing, Parallel Computing, Heterogeneous Systems, Compilers, Operating Systems, Networks
  • Familiarity with Software Engineering fundamentals and basic tools (git, perf, valgrind), used any frameworks belonging in any of the aforementioned areas (Spark, Ray, Flink etc.for Distributed, or OpenMP, ISPC etc. for Compilers)
  • Programming experience with ML applications (PyTorch/ Tensorflow) is an asset
  • Solid experience with C/C++ and/or one scripting language (e.g., Python, Bash) or data analysis (R)
  • Have an inquisitive mindset, proven research and communication skills (conference and journal publications, written articles/blogs are a plus), can conduct investigations and experiments independently, and can interpret data and present results clearly and concisely
  • Ability to evaluate, apply, and mature published research to real-world problems on prototype systems