- Company Name
- Canonical
- Job Title
- Ubuntu Software Engineer
- Job Description
-
**Job Title**
Ubuntu Software Engineer
**Role Summary**
Mid‑level engineer responsible for designing, building, testing, and shipping core Ubuntu software components across foundations, server, desktop, and debcrafter tracks. Works with cross‑disciplinary teams to integrate open source, maintain distribution health, and improve packaging and automation pipelines. Engages with global community and upstream projects while mentoring peers.
**Expectations**
- Deliver high‑quality, performant, and resilient software for Ubuntu.
- Participate in all phases of development: design, implementation, testing, deployment.
- Proactively identify and resolve system‑level issues.
- Contribute to documentation, community outreach, and upstream projects.
- Collaborate within a distributed, remote team and attend periodic in‑person events.
**Key Responsibilities**
1. **Software Development** – Design, code, test, and ship foundational systems and applications in Rust, Go, Python, (optional Flutter or C/C++).
2. **Packaging & Distribution** – Create, maintain, and publish Debian and Snap packages; ensure robust upgrade paths.
3. **Automation & Tooling** – Develop and maintain build, test, and release pipelines for Ubuntu.
4. **Distro Engineering** – Manage and evolve Ubuntu’s core components: package managers, compilers, toolchains, bootloaders, filesystems, and utilities.
5. **Debugging & Performance** – Investigate system‑level bugs, optimize performance, and enforce security best practices.
6. **Documentation & Outreach** – Author clear technical docs, contribute to community forums, and participate in upstream collaboration.
7. **Mentorship & Process Improvement** – Coach junior colleagues, refine engineering processes, and share knowledge across teams.
**Required Skills**
- Proficiency in Rust, Go, and Python (Flutter, C/C++ experience welcome).
- Strong understanding of Linux distribution architecture and package management.
- Experience with build systems, cross‑compilation, and automation tools.
- Excellent written and spoken English; clear technical communication.
- Self‑motivated, detail‑oriented, and collaborative in a global environment.
**Required Education & Certifications**
- Bachelor’s degree in Computer Science, Engineering, or related STEM field, or a demonstrable alternative path with equivalent experience.
- No mandatory certifications, but familiarity with open‑source licensing and distribution standards is a plus.