Canonical Software Engineer - MAAS

Posted on March 7th, 2019

Job Location: North America / Western Europe - your home, given appropriate facilities including broadband Internet.

Ubuntu is the fastest growing Linux distribution, with over 20 million users in just a few years. The project is aimed on reducing barriers to innovation globally by providing free access to an open technology platform.

The Ubuntu MAAS Core team is responsible for delivering our Metal As A Service hyperscale provisioning technology. Ubuntu strives to be the most scalable, cloud ready server distribution and MAAS is our platform to get it there.

Applicants should be passionate about the future of Ubuntu and be able to show technical leadership with a globally distributed team of engineers who share that passion. This position requires international travel several times a year.

Key responsibilities and accountabilities

  • Assist in or lead the development and maintenance of MAAS core components and features.
  • Lead and collaborate with the creation of technical specifications for new development initiatives.
  • Engage in bug-fixing across the wide variety of MAAS components, as well as prioritizing and driving the bug-fixing work for the rest of the team.
  • Assist in the pre-release testing.
  • Collaborate with other teams and team members to ensure the timely delivery of new MAAS features and releases.
  • Assist in the development and maintenance of quality and continuous integration tests and practices.
  • Assist with the release management during each development cycle.
  • Collaborate with engineers of different engineering teams, community members, or upstream developers where appropriate, to ensure that the project’s goals are taken into account by other projects.
  • Assist management in the planning of MAAS features, both by sharing new ideas and advising about work being done elsewhere.
  • Assist in the documentation of current and existing features.
  • Provide technical communication and collaboration with other teams where appropriate.
  • When necessary, respond to and work to resolve technical issues within the team, or issues raised by end users or commercial customers.
  • When necessary, provide Level 3 support.
  • Take personal ownership of problems and drive them to solutions.

Required skills and experience

  • BS/MS in Computer Science or a related field, or equivalent experience, with at least 5+ years of proven professional software development experience in Python, Go, C/C++ or similar.
  • At least 3 years of experience in Python development.
  • Web development experience in AngularJS and/or ReactJS.
  • Experience with Linux server technologies, including but not limited to PXE, DHCP, TFTP, DNS, NTP, Proxy, Virtualization (KVM), Containers (LXC), etc.
  • Experience with Baseboard Management Controllers and Protocols (IPMI, AMT, DRAC, iLo and others.)
  • Capacity to learn quickly about new systems and techniques
  • Excellent logic, problem solving, and troubleshooting skills
  • Strong English language communication skills
  • Experience with Large-scale physical server provisioning and automation, including rapid deployment, configuration, management and service orchestration.
  • Experience with other server provisioning technologies, including but not limited to Cobbler, Crowbar, Fuel, etc.

Desired skills and experience

  • Strong experience with networking a plus.
  • Strong experience with storage technologies a plus.
  • Strong experience with Cloud hosting and infrastructure a plus.
  • Experience with deploying and maintaining other non-Ubuntu operating systems, including ESXi, Windows and CentOS/RHEL, etc, a plus.
  • Familiarity with some of the open source development tools and methodologies used in creation of several Ubuntu projects (MAAS, Juju, Ubuntu Server, LXC, Ubuntu Core), such as Launchpad, Bazaar, Git, Debian packaging tools (APT, dpkg, debhelper and CDBS) and Ubuntu snaps.

Travel

  • Must be able to travel internationally typically for 2-6 times a year, for a week at a time. Travel destinations typically include North America (US/Canada), Europe (Germany, France, Spain, Belgium, Romania, Hungary, etc) and South Africa occasionally.

Keywords: python, twisted, golang, postgresql, sql, zope, agile, linux, ubuntu, home, remote, travel, open source, maas

Apply for this Position