Please apply if you are innovative and ambitious individual who wants to help build an organisation that makes a positive global impact on society and the environment.As a Software Engineer at Invenia Labs you will work on building the software components of a distributed machine learning system. In this role you will collaborate 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 the core system.
- 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.
- 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.