Software Engineer
This is an exciting
opportunity for a software engineer passionate about open source software,
Linux, and building technology for democratization of Data Centers. Help us
build the #1 bare metal cloud system, and work with the best and brightest
people in technology at Canonical!
The Ubuntu MAAS 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. MAAS is a rapidly evolving software stack written in Python and Go, and we are looking for experienced software engineers who understand performance at scale, networking, storage and usability.
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.
What you’ll do
- Design
and implement software using modern Python and Go.
- Develop
MAAS core components and features to make MAAS the #1 bare metal cloud
system.
- Shape
the architecture of MAAS to make it simpler, faster and easier to use.
- Collaborate
with other teams to ensure MAAS works well with other tools and is
released on time.
- Contribute
your improvements to our continuous integration environment, tests and
practices, to maintain fast feedback and good test coverage.
- Contribute
to documentation of current and existing features, making it world-class
resource for Data Centre operators and users.
- Provide
technical communication and collaboration with other teams where
appropriate.
- Take
personal ownership of problems and drive them to solutions.
- Travel internationally a few times a
year to meet and collaborate with your and other teams.
Who you are
- At
least 5 years of proven professional software development experience in
Python, Go or similar.
- Capacity
to learn quickly about new systems and techniques
- Excellent
logic, problem solving, and troubleshooting skills
- Strong
English language communication skills – both written and verbal
- Experience
with Linux server technologies, including but not limited to
Virtualization (KVM), Containers (LXC), etc.
- You
have a Bachelor’s or equivalent in Computer Science, STEM or similar degree
- Knowledge
of network technologies, including PXE, DHCP, TFTP, DNS, NTP
- As
a plus, some experience with Baseboard Management Controllers and
Protocols (Redfish, IPMI, AMT and others)
- As
a plus, experience with networking, storage technologies and Cloud hosting
and infrastructure.
- As
a plus, familiarity with some of the open source development tools and
methodologies used in creation of several Ubuntu projects (MAAS, Juju,
Ubuntu Server, LXD, Ubuntu Core), such as Launchpad, Debian packaging
tools (APT, dpkg) and Snapcraft.
- Ideally,
experience of large-scale physical server provisioning and automation,
including rapid deployment, configuration, management and service
orchestration.
How to Apply
We are proud to foster a workplace free from discrimination.
Diversity of experience, perspectives, and background create a better work
environment and better products. Whatever your identity, we will give your application fair
consideration.