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.
- 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.
- 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