Latest Jobs at Canonical

Software Engineering Jobs, ICT Jobs, New Job Openings,

Golang System Software Engineer – Containers / Virtualisation

What you will focus on

  • Design, implement and document system level Go code
  • Model data, design database schema and implement data storage in a dqlite (SQL) database
  • Maintain code quality through static analysis, unit and system tests
  • Collaborate proactively with a distributed team
  • Discuss ideas and collaborate on finding good solutions
  • Work from home with global travel 2 to 4 weeks/year for internal and external events

What we are looking for in you

  • You have experience programming in Go and C
  • You are knowledgeable in networking and storage technologies
  • You have experience with two or more of: cloud computing, virtualisation, containers, distributed systems, open source community
  • You are curious, flexible, articulate and accountable
  • You value soft skills and are enterprising, thoughtful and self-motivated
  • You have a bachelor’s or equivalent in Computer Science, STEM or similar degree

Software Engineering Manager – Container and Virtualisation Infrastructure

  • As an engineering manager at Canonical you must have a solid technical background, but your responsibility is to run an effective team and develop the colleagues you manage. You are expected to help them grow as engineers, do important work, do it outstandingly well, find professional and personal satisfaction, and work well with colleagues and the community. Technical leadership experience and a background in software engineering are necessary prerequisites for this role. You will be expected to lead, challenge, and develop engineers, positively influence the culture, facilitate technical delivery, and work with your team on strategy and execution.
  • The successful candidate will have experience leading successful, collaborative engineering teams, and demonstrate the ability to solve challenging distributed systems problems and deep knowledge of Linux.

Location: This is a remote position available in EMEA and the Americas.
What you will focus on

  • Lead a team of remote engineers
  • Develop talent through coaching, mentoring, feedback and hands-on career development
  • Set and manage expectations with other engineering teams, senior management, and external stakeholders
  • Advocate and advance modern software development practices
  • Participate in the engineering process through code and architectural review
  • Engage with teams at Canonical, the open source community and partners
  • Work from home with global travel for 4 to 6 weeks per year for internal and external events

What we are looking for in you

  • You understand modern Linux cloud computing technologies, including networking, storage, containers and K8s
  • You love developing and growing people and have a strong track record of doing it
  • You are focused on success and the delivery of timely, high quality software
  • You have a Bachelor’s or equivalent in Computer Science, STEM or similar degree
  • You have strong written and verbal technical communication skills
  • You have experience programming in C and/or Go.

Linux Desktop Support Associate (Remote – EMEA)

  • You will be accountable for delivering an outstanding technical support experience to our employees and customers. From problem qualification to full resolution, you will own and manage your cases. When needed, you will transfer your cases to your colleagues or involve senior engineers.
  • Your day to day job is to provide technical expertise, be an excellent communicator and a service-oriented professional. Every day you will have to make judgement calls to prioritise customer issues and maximise your effectiveness. You will also need to set time aside to learn about our new products and technologies and evolve as a professional. You will participate in various training sessions, team gatherings and Company events.

Location: This role will be based remotely in EMEA region
What your day will look like
Your day to day duties will include:

  • Work from your remote home office and provide technical support for employees.
  • Provide technical onboarding support for new employees.
  • Provide technical and infrastructure support during international events.
  • Be available to take ownership of new cases via telephone, email and web
  • Act as an internal customer advocate keeping them updated in a timely manner
  • Ensure that each support request owned by you is handled as per our Service Level Agreement (SLA) and to the highest possible customer satisfaction by setting the right expectations and fulfilling your commitments
  • Contribute your findings to a common knowledge base and keep it up to date
  • Draft and distribute technical notices for internal and external communication.
  • Prioritise your work in order to accomplish the most important and urgent tasks first
  • Keep on learning as our products and services grow and evolve
  • Maintain regular communication and information exchange with the rest of the team, locally and remotely
  • Identify and suggest any opportunities to provide a better service

What we are looking for in you

  • Bachelors or equivalent four year degree in a technical field from an accredited college or university. Preferable majors: Computer Science, MIS, Electrical Engineering, etc.
  • Experience in a Linux based environment gained through university subjects or work experience
  • Linux knowledge including the installation, troubleshooting and basic configuration of recent Ubuntu Desktop releases
  • Basic desktop Linux usage (desktop tools for editing files, browsing the Web, managing Internet connectivity, setup of printers/services/packages/external storage devices/etc. utilising command line tools for exploring and manipulating the file system)
  • Basic troubleshooting (collecting logs, basic fine-tuning by editing configuration files)
  • Familiarity with safely installing, uninstalling, reinstalling and repartitioning machines with multiple operating systems and troubleshooting to recover broken installations
  • Understanding of Gmail, Google Calendar, Google Applications and Single Sign-On.
  • Ability to learn quickly, thrive on change and handle the pressure of a customer facing job
  • Written and verbal English communication skills
  • Willingness to travel up to 4 times a year for internal events

Additional Skills That You Might Also Bring

  • Some knowledge of programming (bash, Perl, Ruby, Javascript, C or C++, Go)
  • Basic troubleshooting of Mac and Windows operating systems.
  • Customer support experience is a plus

Software Engineer – Python/Golang – Kubernetes

What you will focus on

  • Write high-quality code to create new features
  • Debug issues and interact with a vibrant community
  • Collaborate proactively with a distributed team
  • Work with helpful and talented engineers including experts in many fields
  • Work from home with global travel 2 to 4 weeks for internal and external events

What we are looking for in you

  • You are a Golang developer also fluent in Python
  • You have experience with Kubernetes
  • You have strong written and verbal communication skills
  • You have a Bachelor’s or equivalent in Computer Science, STEM or similar degree
  • You love technology and working with brilliant people

C, Golang Software Engineer Working on dqlite, a Raft Extension for SQLite

  • You will design and implement enhancements to the libraft, dqlite and go-dqlite components which we consume in MicroK8s, LXD and other projects. Work includes development in those pieces of software as well as responding to issues and user inquiries.
  • This is an excellent opportunity for someone who wants to have a meaningful impact on modern computing technologies. Canonical offers a fast-paced team environment and a career full of learning and development opportunities.
IMPORTANT: Write a Perfect Cover Letter in minutes and start getting interviews! Get expert advice as you write.) Use These Examples Proven to Work.

Location: This is a remote position available in EMEA
What you will focus on

  • Design and implement features across dqlite
  • Debug and fix issues encountered by your users
  • Improve Jepsen tests, traditional HA database automated testing and stress tests
  • Participate in our engineering process through code and architectural review
  • Engage with the open source community and commercial partners

What we are looking for in you

  • Experience with distributed systems (preferably with Raft)
  • Good C programming experience
  • Solid understanding of asynchronous programming and concurrency patterns a plus
  • Capacity to learn quickly about new systems and techniques
  • Strong written and verbal communication skills
  • Bachelor’s or equivalent in Computer Science, STEM or similar degree

Linux Desktop Support Engineer (Remote – EMEA)

  • You will be accountable for delivering an outstanding technical support experience on the full Desktop and Server technical stack at Canonical. From problem qualification to full resolution, you will own and manage your cases. When needed, you will transfer your cases to your colleagues or involve senior engineers.
  • Your day to day job is to provide technical expertise, be an excellent communicator and a service-oriented professional. Every day you will have to make judgement calls to prioritise customer issues and maximise your effectiveness. You will also need to set time aside to learn about our new products and technologies and evolve as a professional. You will participate in various training sessions, team gatherings and Company events.

Location: This role will be based remotely in the EMEA region
What your day will look like
Your day to day duties will include:

  • Work from your remote home office and provide technical support for employees.
  • Be available to take ownership of new cases via telephone, email and web
  • Act as an internal customer advocate keeping them updated in a timely manner
  • Ensure that each support case owned by you is handled according to our Service Level Agreement (SLA) with the highest possible customer satisfaction by setting the right expectations and fulfilling your commitments.
  • Contribute new knowledge base articles and maintain existing articles, ensuring shared knowledge and lessons learned are available to customers.
  • Draft and distribute technical notices for internal and external communication.
  • Prioritise your work in order to accomplish the most important and urgent tasks first
  • Keep on learning as our products and services grow and evolve
  • Understanding Ubuntu development process to be able to set customer expectations correctly on timeline for a fix.
  • Maintain regular communication and information exchange with the rest of the team, locally and remotely
  • Identify and suggest any opportunities to provide a better service
  • Participate in a regular weekend working rotation.

What we are looking for in you

  • Bachelors or equivalent four year degree in a technical field from an accredited college or university. Preferable majors: Computer Science, MIS, Electrical Engineering, etc.
  • Advanced troubleshooting of Mac and Windows operating systems, and multi OS machines
  • Experience with system performance troubleshooting
  • Experience with Linux troubleshooting (collecting logs and stack traces, fine-tuning by editing configuration files)
  • Experience with Linux integration with other environments (authentication/directory services, network file systems, etc.)
  • Experience with Linux server administration
  • Programming fundamentals in any language (bash, Perl, Ruby, Javascript, C or C++, Go)
  • Ability to learn quickly, thrive on change and handle the pressure of a customer facing job
  • Strong written and verbal English communication skills
  • Willingness to travel up to 4 times a year for internal events

Additional Skills That You Might Also Bring

  • Experience supporting virtualized environments (KVM, Virtual Box, VMWare)
  • Experience with other open-source desktop technologies
  • Active contribution to open-source projects/forum/code
  • Experience with Linux Kernel

Engineering Manager

  • An Engineering Manager is responsible for line management and career guidance. The ability to develop engineering talent, to represent your team and product from a technical perspective, and to drive collaboration with other teams and customers are all critical to success in this role.

We have open manager roles across a wide range of engineering domains, including:

  • Python and Golang
  • C / C++ / Rust
  • Data infrastructure
  • HTML / CSS / JavaScript / Typescript / React
  • Flutter
  • Distro packaging and systems
  • SAAS and web microservices
  • Kernel
  • Servers
  • Graphics, Browser and Desktop
  • Silicon enablement and embedded devices
  • Product Security

If your domain of expertise isn’t listed above, yet you feel it’s relevant to Canonical, then feel free to apply anyway. We will route you to the most suitable team.
Location: we have engineering management positions open in every time zone
What you’ll do

  • Lead and develop a team of engineers, ranging from graduate to senior
  • Work remotely in a single major time zone, sometimes two
  • Coach, mentor, and offer career development feedback
  • Identify and measure team health indicators
  • Implement disciplined engineering processes
  • Represent your team and product to stakeholders, partners, and customers
  • Develop and evangelise great engineering and organisational practices
  • Plan and manage progress on agreed goals and projects
  • Be an active part of the leadership team, collaborating with other leaders

What we’re looking for in you

  • An exceptional academic track record from both high school and university
  • Undergraduate degree in Computer Science or STEM, or a compelling narrative about your alternative path
  • Drive and a track record of going above-and-beyond expectations
  • Excellent verbal and written communication skills in English
  • A love of developing and growing people and a track record of it
  • Experience in leading, coaching and mentoring software developers
  • Organised and able to ensure your team delivers timely, high quality results
  • Well-organised, self-starting and able to deliver to schedule
  • Professional manner interacting with colleagues, partners, and community
  • You have advanced expertise in your own domain
  • You are knowledgeable and passionate about software development
  • You have solid experience working in an agile development environment
  • You have a demonstrated drive for continual learning
  • Builds trust, relationships and confidence
  • Result-oriented, with a personal drive to meet commitments
  • Ability to travel twice a year, for company events up to two weeks each

Additional Skills We Value

  • Experience in a developer advocacy or community role
  • Ops and system administration experience
  • Performance engineering and security experience

Developer Relations Engineer

  • A Developer Relations Engineer is a technical expert, strategist and communicator with deep empathy for developers. This discipline combines practical engineering skills with firm diplomacy across organisational boundaries, in both directions. Like our audience, a Developer Relations Engineer is never satisfied with the status quo, and is driven by an insatiable curiosity to find better ways to get things done. They are problem-solvers and inventors, who understand people’s needs and love the way that tools can be adapted to meet them. They stay current with tech trends and provide insights and guidance while fostering innovation.

Location: we are building our initial DevRel team in Europe, Middle East, African and American time zones
What your day will look like
In a typical day, a developer relations engineer might:

  • take part in team product meetings, at levels from strategy to day-by-day development progress, contributing insight and expertise
  • maintain conversations with developer community members wherever they may be found – IRC, social media, product forums, meet-ups and more
  • work with colleagues in other teams in the company, as part of efforts to help establish commonality and consistent approaches
  • help solve specific technical problems that users or colleagues have identified
  • contribute to technical documentation to ensure that developer users’ needs are met there
  • work on technical articles, presentations or workshops
  • identify new opportunities and directions for improvement in the developer experience we provide
  • present at conferences, meetups or technical events

What we are looking for in you
A strong candidate

  • is a programmer or developer with a demonstrable passion for and engagement in open-source software
  • has worked with real-world challenges developing and deploying software using Linux
  • has practical hands-on experience of Linux software packaging (including Snaps, debs, charms, rocks, PIP, containers)
  • understands current software packing issues and trends in the Linux ecosystem
  • has been a contributor to open-source communities, software and documentation
  • is an engaging, vivacious speaker and presenter
  • can work effectively, tactfully, empathetically and confidently in contexts where different parties have different perspectives, needs and understanding
  • builds trust, relationships and confidence
  • is willing to travel globally twice a year for company events, as well as to upstream and partner events

Additional Skills That You Might Also Bring

  • previous experience in a developer advocacy or community role
  • in-depth familiarity with Ubuntu and the Canonical ecosystem of products

Use the link(s) below to apply on company website.

UN Jobs Salary Scale | United Nations Salary Range

× Let's Chat on WhatsApp