Are you applying to the internship?
Job Description
Junior Software Engineer | Canonical
The Tone:
This is an early career opportunity for a Junior Software Engineer at Canonical, with remote roles open across every global time zone. Canonical is a leading provider of open source software and operating systems, most notably Ubuntu, which is widely used in breakthrough enterprise initiatives across public cloud, data science, AI, engineering innovation, and IoT. Canonical has operated as a remote-first company since 2004, pioneering global distributed collaboration with teams meeting two to four times yearly in person at interesting locations worldwide. In this role, you will be crucial to the Ubuntu Engineering organisation, contributing to the integration, maintenance, and evolution of core open source software that powers innovation for millions of users globally, and be challenged to learn new skills and think differently.
The TL;DR
• Role: Early Career
• Type: Full-time
• Location: Remote
• Team: Ubuntu Engineering organisation, specifically within Foundations, Server, Desktop, or Debcrafters teams.
• Mission: Integrate, package, test, and ship open source software, contribute to Ubuntu’s evolution, and engineer new foundational systems and applications with a deep care for quality.
• Tech Stack: Rust, Go, Python, Flutter, C/C++
What You’ll Actually Do
• Develop & Design: Design, build, and ship new foundational systems software and applications in Rust, Go, Python, and C/C++, contributing to the future of Ubuntu.
• Package & Integrate: Package, integrate, test, and upload a vast catalog of open source software to the Ubuntu repositories using both Debian and Snap packaging.
• Maintain & Debug: Debug issues, then design and deliver robust solutions to ensure the quality, performance, and resilience of Ubuntu and its components.
• Collaborate & Document: Author and improve technical and community documentation, contribute to upstream and neighboring open source projects, and collaborate effectively within a globally distributed team.
• Automate & Evolve: Build and maintain the essential machinery responsible for the continuous building, testing, and shipping of Ubuntu, supporting its ongoing maintenance and evolution.
The Must-Haves
• Background: An exceptional academic track record from high school and university, with an undergraduate degree in Computer Science or STEM, or a compelling narrative about an alternative path. This is an early career role, suitable for new graduates or early career engineers.
• Experience: A track record of going above and beyond expectations, demonstrating a deep care for quality, performance, and resilience in software.
• Skills: Practical experience with Rust, Go, Python, Flutter, or C/C++; professional written and spoken English; and excellent communication and interpersonal skills.
• Bonus: Familiarity with Linux distributions, system debugging tools and techniques, automation tooling and CI/CD systems, and prior experience contributing to open source projects.