Ubuntu Desktop Software Engineer
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. We are seeking a Software Engineer to join the Desktop Team.
The desktop team work on a wide variety of packages, keeping them 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 the browsers. We support a large variety of applications and services and we are looking for someone 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 candidate 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. Travel to international destinations is required. Usually for one week at a time approximately 2-4 times per year. Locations in recent years have included Cape Town, Budapest, Taipei, Montreal, and Malta.
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 to contributing any changes back.
- Keeping packages in sync with upstream for every release
- Performing Quality Assurance
- Working on snap packaging, snap tooling, features and snap integration in the Ubuntu Desktop
- Working with other teams within Canonical to deliver agreed features and helping the Desktop Team to ensure that Ubuntu is released 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 degree in a Computer Science subject.
- A clear passion for the future of Ubuntu.
- Demonstrable contribution to an open source project.
- Strong programming experience, preferably with an open source project.
- Knowledge of some of the technology stack that makes up an 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: snapcraft, 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.