Software Engineering Internship (Canada)

Winnipeg, Canada /
Internships /
Intern
Length: 6 months or longer
Location: Hybrid (office based for a part of the time)

Invenia Labs uses machine learning to optimise the electricity grid, ensure demands are met at least-possible prices and minimum pollution. Our work helps to reduce emissions and pollution, improve the reliability of the grid and increase economic efficiency.

We are accepting applications for intern positions on an ongoing basis. Software Development internships are typically between 6 and 18 months in length. As an intern at Invenia Labs you will be involved in any of a variety of projects depending on what our development team is focusing on during your time at Invenia and your skills and interests.

As a Software Development Intern at Invenia Labs you will assist with work on building the software components of the deployment of an ML system and other systems used to maintain a successful production environment. In this role you will collaborate closely with your team and occasionally across teams 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.
    • Improve the computational performance of the system.
    • Aim to exceed user expectations, ensuring that usability, performance, and correctness are given equal consideration during design and development.
    • Review proposed code and provide feedback.
    • Contribute to open source packages.

    • Build the software components of the system, including software for:
    • Expressing, distributing, and executing complex machine learning pipelines.
    • Complex data querying and preprocessing.
    • Asynchronous communication with other systems.
    • Utility packages supporting the above.

Desirable Experience

    • Experience in software engineering/development.
    • Strong communication skills, especially with regards to requirements gathering and documentation.
    • Ability to develop and/or deploy distributed applications.
    • Ability to learn quickly and propose new solutions to existing problems.
    • Containers (especially Docker).
    • Cloud Computing (especially AWS).
Please note that while this is a flexible hybrid role, it cannot be performed fully remotely. We only consider candidates who already live, or are willing to relocate to our office locations in either Winnipeg, Canada or Cambridge, UK.