Are you applying to the internship?
Job Description
About Canonical
Canonical is a global leader in open source software and operating systems, serving the enterprise and technology markets worldwide. Our flagship platform, Ubuntu, is instrumental in breakthrough enterprise initiatives across public cloud, data science, AI, engineering innovation, and IoT. We proudly count the world’s leading public cloud providers, silicon vendors, and industry giants among our customers.
As a pioneer in global distributed collaboration, Canonical boasts a diverse team of over 1200 colleagues spanning more than 75 countries, with very few office-based roles. Our teams foster strong bonds and align on strategy and execution by meeting two to four times annually in person, at engaging locations around the globe.
Founded and led by its visionary, Canonical is a profitable and steadily growing company, committed to excellence and innovation in the open source world. We have been a remote-first company since our inception in 2004, offering a challenging yet rewarding environment that encourages smart work, continuous learning, and professional growth.
The Opportunity: Junior Software Engineer, Ubuntu
We are actively seeking talented Junior Engineers to join our vibrant Ubuntu Engineering organization. This is an exceptional opportunity for individuals who possess a deep passion for software quality, performance, and resilience. As an Ubuntu Engineer, you will be involved in designing and engineering new software, as well as packaging, integrating, testing, and shipping the vast catalog of open source software within the Ubuntu repositories.
Our engineers are at the forefront of integrating the freshest open source software, developing robust upgrade paths, and engineering the future of Ubuntu. More than just the world’s most deployed open source operating system, Ubuntu is a powerful platform that fuels innovation for millions of users, from students and hobbyists to high-performance engineering and creative teams in corporate and academic environments.
Key Ubuntu Engineering Teams
You’ll have the chance to contribute to one of four pivotal teams that drive the development and delivery of Ubuntu:
- Foundations: Dedicated to maintaining foundational software components, including architectures, package managers, compilers, toolchains, bootloaders, filesystems, and core utilities.
- Server: Leading the design, evolution, and future direction of our Ubuntu Server distribution.
- Desktop: Spearheading Ubuntu Desktop development, focusing on our future immutable desktop (Ubuntu Core Desktop), WSL integration, gaming technology, and crafting a suite of modern desktop applications with Flutter.
- Debcrafters: A new team responsible for the forward movement, maintenance, and overall health of the Ubuntu archive—one of the most abundant repositories of open source software available today.
Potential Areas of Work
Bring your existing expertise and cultivate new skills within one of the most prolific open source projects. As an engineer working on Ubuntu, your responsibilities could span any or all of the following categories:
- Development: Design, build, and ship new foundational systems software and applications primarily using Rust, Go, Flutter, and Python.
- Architecture: Engineer the seamless integration of open source components, from boot firmware to cloud application deployment.
- Packaging: Utilize a combination of Debian and Snap packaging to effectively ship software within the distribution.
- Automation: Construct and maintain the critical machinery responsible for building, testing, and shipping Ubuntu releases.
- Distro Engineering: Engage in the ongoing maintenance and evolution of a leading Linux distribution and its expansive repositories.
This role is ideal for new graduates and early-career engineers eager to build a career in open source. If you possess skills in these areas, or if you believe your unique skills can contribute to Ubuntu, we encourage you to apply.
Responsibilities of an Ubuntu Engineer
Based on initial interviews, you will be matched with specific teams for further discussions. Our engineers consistently:
- Design, build, and ship high-quality software using languages such as Rust, Go, Python, and C/C++.
- Package, integrate, test, and upload open source software to the Ubuntu repositories.
- Debug complex issues, then design and deliver robust, lasting solutions.
- Author and improve both technical and community documentation.
- Actively contribute to upstream and neighboring open source projects.
- Collaborate effectively as part of a globally distributed team.
- Continuously learn and progress their technical and professional skills.
What We Are Looking For (Requirements)
- An exceptional academic track record from both high school and university.
- An Undergraduate degree in Computer Science or STEM, or a compelling narrative showcasing an alternative, equivalent path.
- Demonstrated drive and a track record of going above and beyond expectations.
- A genuine passion for open source software.
- Experience with programming languages such as Rust, Go, Python, Flutter, or C/C++.
- Professional written and spoken English.
- Excellent communication and interpersonal skills.
- Ability to travel twice a year for company events, each up to two weeks in duration.
Nice-to-Have Skills
- Familiarity with various Linux distributions.
- Familiarity with system debugging tools and techniques.
- Familiarity with automation tooling and CI/CD systems.
- Prior experience contributing to open source projects.
What We Offer You (Benefits)
Canonical is committed to offering competitive compensation worldwide, which is shaped by geographical location, experience, and performance. Compensation is revisited annually (and more frequently for graduates and associates) to ensure outstanding performance is recognized. In addition to base pay, we provide a performance-driven annual bonus and a comprehensive suite of benefits designed to reflect our values and support our global team members.
- A distributed work environment with engaging twice-yearly in-person team sprints.
- A generous personal learning and development budget of USD 2,000 per year.
- Annual compensation reviews.
- Recognition rewards for exceptional contributions.
- Ample annual holiday leave.
- Comprehensive maternity and paternity leave.
- Access to a Team Member Assistance Program & Wellness Platform.
- Exciting opportunities to travel to new locations to meet colleagues.
- Priority Pass and travel upgrades for long-haul company events.
Canonical is an Equal Opportunity Employer
We are profoundly proud to cultivate a workplace free from discrimination. We firmly believe that diversity of experience, perspectives, and background fosters a superior work environment and leads to the creation of better products. Regardless of your identity, we guarantee fair and thorough consideration of your application.