Core Developer
Matching Teams
Winnipeg, MB

Search: Core Developer

Location: Winnipeg, Canada

As a Core Developer, you will work on building the software components of a distributed machine learning system. In this role, you will collaborate very closely with Machine Learning Researchers to identify use cases and design maintainable long-term solutions that scale, address current needs while also anticipating future requirements.

Role Description

  • Contribute to design discussions surrounding core systems.
  • Contribute to open source projects.
  • Identify the needs of the research team.
  • Aim to exceed user expectations, ensuring that usability, performance, and correctness are given equal consideration during design and development.
  • Improve the computational performance of the system.
  • Build the software components of the system, including libraries for:
  • Expressing, distributing, and executing complex machine learning pipelines.
  • Complex data querying and preprocessing.
  • Asynchronous communication with other systems.
  • Utility packages supporting the above.
  • Review proposed code and provide feedback.

Minimum Requirements

  • Developing and/or deploying a distributed system.
  • Developing and/or deploying large-scale machine learning and/or optimisation systems.
  • Designing or contributing to frameworks for large-scale processing (Dask, Tensorflow, Apache Spark), especially combined with machine learning.
  • Several years of experience in software engineering/development role.
  • BSc/BEng degree in computer science.

Additional Desirable Experience:

  • Julia development.
  • Parallel processing.
  • Machine learning, statistics, and/or optimisation.
  • Strong communication skills, especially with regards to requirements gathering and documentation.
  • Remote, asynchronous communication across multiple time zones.
  • Linux Containers (especially Docker).
  • Cloud Computing (especially AWS beyond EC2).

Job Type: Full-time

Location:

  • Winnipeg, MB (Preferred)