Own software design, integration of components, delivery and deployment.
Lead small teams for projects.
Innovate new packages for the Julia ecosystem.
Create scalable solutions for distributed systems.
Contribute to design discussions surrounding the core system.
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.
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.
Contribute to open source packages.
Desirable Qualifications :
Experience in software engineering / development.
Ability to develop and / or deploy distributed applications.
Julia, MATLAB or Python development.
Parallel or distributed computation (e.g. Dask, Tensorflow, Apache Spark).
Basic familiarity with Machine learning, statistics, and / or optimisation.
Strong communication skills, especially with regards to requirements gathering and documentation.
Linux Containers (especially Docker).
Cloud Computing (especially AWS beyond EC2).
BSc / BEng degree in computer science or equivalent.
Please note this is an onsite role, and only remote due to current circumstances until being in the office is safe again.
We consider candidates who are willing to relocate to one of our offices in either Winnipeg, Canada or Cambridge, UK.