Please apply if you are innovative and ambitious individual who wants to help build an organization 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.
- Contribute to design discussions surrounding 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.
- 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.
- Experience in software engineering/development.
- BSc/BEng degree in computer science or equivalent.
- Ability to develop and/or deploy distributed applications.
Additional Experience (Optional)
- 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.
- Containers (especially Docker).
- Cloud Computing (especially AWS beyond EC2)