Are you applying to the internship?
Job Description
Junior Engineer, Ubuntu Engineering | Canonical
The Tone:
This is an early career role at Canonical, located remotely across all time zones. Canonical is a leading, founder-led, and growing provider of open source software and operating systems to global enterprise and technology markets. Its platform, Ubuntu, is very widely used in breakthrough initiatives like public cloud, data science, AI, and IoT, serving leading public cloud and silicon providers. This role is crucial for junior engineers dedicated to ensuring the quality, performance, and resilience of software, encompassing everything from designing new systems to packaging, integrating, testing, and shipping the extensive catalog of open source software provided by Ubuntu repositories. Engineers will contribute to Ubuntu’s evolution as the world’s most deployed open source operating system and a platform enabling innovation for millions globally.
The TL;DR
• Role: Early Career
• Location: Remote
• Team: Ubuntu Engineering organization, with opportunities to work across Foundations (maintaining foundational software, architectures, package managers, toolchains), Server (leading the design and evolution of Ubuntu Server), Desktop (driving Ubuntu Core Desktop, WSL, gaming technology, and Flutter applications), or Debcrafters (responsible for the forward movement, maintenance, and overall health of the Ubuntu archive).
• Mission: To integrate the freshest open source software, provide robust upgrade paths, and engineer the future of Ubuntu, ensuring quality, performance, and resilience across its vast repository.
• Tech Stack: Rust, Go, Flutter, Python, C/C++
What You’ll Actually Do
• Software Development: Design, build, and ship new foundational systems software and applications, primarily using Rust, Go, Python, and C/C++.
• Open Source Integration: Package, integrate, test, and upload a wide catalog of open source software to the Ubuntu repositories, utilizing both Debian and Snap packaging.
• System Engineering: Debug complex issues across the distribution, from boot firmware to cloud applications, and design and deliver robust, resilient solutions.
• Documentation & Community: Author and improve technical and community documentation, while actively contributing to upstream and neighboring open source projects.
• Distribution Maintenance: Build and maintain the automated machinery responsible for the building, testing, and shipping of Ubuntu, contributing to its continuous maintenance and evolution.
The Must-Haves
• Background: An exceptional academic track record from both high school and university, holding an undergraduate degree in Computer Science or a STEM field, or presenting a compelling narrative about an alternative educational path.
• Experience: Demonstrated drive and a track record of consistently exceeding expectations in prior roles or projects, coupled with practical experience using programming languages such as Rust, Go, Python, Flutter, or C/C++.
• Skills: A profound passion for open source software, professional written and spoken English for effective global communication, excellent interpersonal skills for collaborative teamwork, and the ability to travel twice a year for company events, each up to two weeks.
• Bonus: Familiarity with various Linux distributions, experience with system debugging tools and techniques, knowledge of automation tooling and CI/CD systems, or a history of contributing to open source projects.