Location: Flexible. If home based, reliable broadband connectivity required.

Role Summary

Do you want to be one of the engineers building the infrastructure at the heart of the cloud revolution?

At Canonical we’re developing technologies that are key to the transition to the cloud, with Ubuntu as the number one cloud operating system. We are looking for a fun, talented software engineer whose ingenuity, self-motivation and engineering skill have contributed to a shining track record of successful projects.

Alongside four or five other engineers, you’ll be part of an agile engineering squad, in Canonical’s Launchpad team, working in either a new development or maintenance role on a different cloud-related project every six to nine months. Your work will touch projects such as OpenStack, MAAS, AWSome and the Launchpad SaaS developer tools platform.

To succeed you’ll need to share our love of hard work and our passion for free software, Ubuntu and the cloud.

Your energy and enthusiasm will be key to delivering the project, and to making the squad fun to be a part of.

Key Skills and Accountabilities

  • Develop new features in existing web or cloud applications or even start new ones from scratch.
  • Participate in the maintenance of the portfolio of applications maintained by the Launchpad team (a group of six development squads).
  • Collaborate within a small team of four to five engineers to design and deliver agreed features on an established schedule.
  • Ensure high quality results from across the team by participating in established team practices such as code review and testing.
  • Maintain readable developer-oriented documentation.
  • Coordinate regularly with the rest of the Launchpad team.

Required Skills and Experience

  • You have extensive experience in development of web applications using a major object or oriented application framework
  • You are proficient with the technologies powering the web such as Python, HTTP, HTML, CSS and JavaScript
  • You live and breathe open source technology.  You know the industry, understand the community and share the ideals.  You know your OpenStack from your intel, your ARM from your aaS and your Bugzilla from your Git
  • You are well experienced with at least one web application framework, such as Rails, Django, Zope/Plone, Pyramid, Turbogears, Web Objects, etc
  • You are well experienced with at least one JavaScript library/framework such as YUI 3/2, jQuery, Dojo, MooTools, or Prototype
  • You love easy to use software and pay particular attention to making your applications a joy to use
  • You have created stellar user interfaces using JavaScript, HTML and CSS
  • You’re skilled in object-oriented programming in the Python language
  • How people solve complex problems in software fascinates you.  You also know that reliable and maintainable code are essential to long-term success.  You’re familiar with writing about what needs to be done, as well as test-driven development and other “agile methods
  • You have strong spoken English communication skills, and can communicate clearly in writing, including email and IRC environments.
  • You have a good sense of humour and enjoy building a fun working environment with your colleagues.
  • You are willing to travel internationally, for periods of one or two weeks and occasionally longer, for conferences, developer-oriented meetings and sprints

Desired Skills and Experience

  • You are familiar with interaction design and have contributed to the user interface of a leading web application.
  • You have built and managed a community around an open source project
  • You have contributed code to an open source project
  • You understand the basics of one or more of the following:
    • laaS platforms such as OpenStack, AWS, Eucalyptus
    • Ubuntu Server, particularly in cloud contexts
    • ARM server
    • Services Oriented Architecture
    • Message-passing systems
    • Distributed version control systems
    • A form of Linux packaging, such as .deb or .rpm
  • You are familiar with Agile/Lean development practices
  • You enjoy exploring new languages like Go, Haskell or Clojure
  • You have system programming experience in C
  • You worked as part of a distributed software engineering team and can demonstrate the self-motivation and discipline required in such an environment

Apply online, or talk to us in #launchpad-dev if you want to see what we do!

Read more