Canonical Ubuntu Desktop Software Engineer

Posted on January 23rd, 2019

We are seeking a Software Engineer to join the Desktop Team. The Ubuntu Desktop Team is responsible for delivering Ubuntu Desktop, which is one of the most popular Linux operating systems available for desktops today. Ubuntu strives to be the best free software operating system in existence.

A particular current challenge for the Desktop Team is keeping all of the breath of packages we support up-to-date and of high quality.  From lower level packages such as Network Manager, BlueZ, PulseAudio all the way up the stack to GNOME Shell, the suite of GNOME applications and browsers.  We support a large variety of applications and services and we are looking for a Software Engineer who is excited by the idea of digging in deep right across the board to help keep Ubuntu at the forefront of Open Source.

The successful Software Engineer will be passionate about the future of Ubuntu and will be mindful of the dynamics of the open source ecosystem, and equally aware of the needs of a large but innovative organization. Strong communication and relationship skills are as important as superb technical skills in this role. This job involves international travel several times a year, usually for one week at a time.


This role will be based from home and you will ideally be in a European or east coast US time zone.

Key responsibilities & accountabilities

  • Assisting with the maintenance of some of the core components of Ubuntu Desktop, such as those mentioned above.  
    • Debugging complex problems in any of the packages we support
    • Working with upstream projects and teams to escalate bugs and get reviews for bug fixes and features with a view contributing any changes back.
    • Keeping packages in sync with upstream for every release
  • Performing Quality Assurance
  • Working on Snap packaging, Snap tooling and integration with snap packages in the Ubuntu Desktop
  • Working with other teams in Canonical to deliver agreed features and helping the Desktop Team to ensure that Ubuntu is release every 6 months on schedule.
  • When necessary, responding to and working to resolve issues raised by end users and commercial support customers.

Required Skills & Experience

  • A clear passion for the future of Ubuntu.
  • Demonstrable contribution to an open source project.
  • Strong C/C++ experience, preferably with an open source project.
  • Knowledge of some of the technology stack that makes up Ubuntu desktop (GNOME, D-Bus, Xorg/Wayland, etc.)
  • Awareness of some of the open source development tools and methodologies used in creating Ubuntu Desktop, such as: git, Launchpad, Debian packaging tools: APT, dpkg, debhelper.
  • Capacity to learn quickly about new systems and techniques.
  • Excellent logic, problem solving, and troubleshooting skills.
  • Strong English language communication skills.
  • Comfortable with online communication and collaboration such as mailing lists, IRC, wiki.
  • Ability to be productive in a globally distributed team through self-discipline and self-motivation, delivering according to a schedule.

Desirable Skills & Experience

  • Experience within the GNOME community.
  • Be an existing Debian or Ubuntu developer.
  • Awareness of agile development methodologies and tools.


Apply for this Position