Are you applying to the internship?
Job Description
Junior Engineer | Canonical
The Tone:
This is an early career engineering role at Canonical, available remotely across all time zones. Canonical is a leading provider of open source software, primarily Ubuntu, which underpins breakthrough enterprise initiatives in public cloud, data science, AI, engineering innovation, and IoT globally. This role is crucial for junior engineers to contribute across the Ubuntu Engineering organization, ensuring the quality, performance, and resilience of the Ubuntu platform by designing, packaging, integrating, testing, and shipping its vast catalog of open source software.
The TL;DR
• Role: Early Career
• Type: Full-time
• Location: Remote
• Team: Ubuntu Engineering organization, potentially within Foundations, Server, Desktop, or Debcrafters.
• Mission: Design, build, package, and maintain software within the Ubuntu ecosystem, contributing to the platform’s evolution and health for millions of users.
• Tech Stack: Rust, Go, Python, Flutter, C/C++
What You’ll Actually Do
• Develop Foundational Software: Design, build, and ship new foundational systems software and applications using modern languages like Rust, Go, Flutter, and Python, or traditional languages such as C/C++.
• Integrate and Ship Open Source: Package, integrate, test, and upload the extensive catalog of open source software to the Ubuntu repositories, providing robust upgrade paths.
• Maintain and Evolve Ubuntu: Engineer the future of Ubuntu, maintain its repositories, and ensure the overall health of the distribution, from boot firmware to cloud application deployment.
• Ensure Quality and Stability: Debug complex issues and then design and deliver robust, high-performance, and resilient solutions, also building and maintaining automation for testing and shipping.
• Engage with Community: Author and improve technical and community documentation, contributing actively to upstream and neighboring open source projects as part of a globally distributed team.
The Must-Haves
• Background: Early career engineer or new graduate, possessing an undergraduate degree in Computer Science or a STEM field, or providing a compelling narrative about an alternative educational path. Candidates should demonstrate an exceptional academic track record from both high school and university.
• Experience: Demonstrated drive and a clear track record of consistently exceeding expectations in previous academic or professional endeavors.
• Skills: Proficiency in at least one of these programming languages: Rust, Go, Python, Flutter, or C/C++. Strong professional written and spoken English, coupled with excellent communication and interpersonal skills for effective collaboration in a distributed team.
• Bonus: Familiarity with Linux distributions, system debugging tools and techniques, and automation tooling like CI/CD systems. Prior experience contributing to open source projects is also beneficial.