At a Glance
- Tasks: Solve complex problems in a dynamic Linux environment and collaborate with global teams.
- Company: Join Canonical, a leader in open source software and innovation.
- Benefits: Enjoy remote work, a personal development budget, and travel opportunities.
- Why this job: Make an impact in tech while working with cutting-edge tools and brilliant minds.
- Qualifications: Strong Linux experience and programming skills in Python, Go, C or C++.
- Other info: Flexible, diverse workplace with excellent career growth and learning opportunities.
The predicted salary is between 36000 - 60000 £ per year.
Canonical is a leading provider of open source software and operating systems to the global enterprise and technology markets. Our platform, Ubuntu, is widely used in public cloud, data science, AI, engineering innovation and IoT. Our customers include the world's leading public cloud and silicon providers, and industry leaders in many sectors. Canonical is founder‑led, profitable, and growing, with more than 1,200 colleagues in 75+ countries and very few office‑based roles.
We are hiring a Software Maintenance Engineer to work in a dynamic Linux‑based infrastructure and application engineering role, covering all layers of the stack: bare metal, virtualization (KVM), containerization (Docker/LXC/LXD), storage (Ceph, Linux filesystems), networking (OVS, OVN, Core networking), OpenStack, Kubernetes and the open source applications that run on top of them. The role requires a broad engineering skill set and the ability to work at any level of the stack, including kernel and a variety of programming languages.
Key responsibilities include:
- Resolve complex customer problems related to Ubuntu, Kernel, Ceph, OpenStack, Kubernetes and other open source software.
- Maintain a close working relationship with Canonical’s Field, Support and Product Engineering teams.
- Participate in upstream communities, develop bug fixes, backport patches, and work with upstream for inclusion.
- Review code produced by other engineers.
- Demonstrate good judgment in technical methods and techniques.
- Prioritize work and manage time effectively against those priorities.
- Participate in team discussions to improve processes, tools and documentation.
- Maintain clear, technical and concise communications.
- Work from home and travel internationally up to 10% of work time for team meetings, events and conferences.
What we are looking for:
- Exceptional academic track record.
- Background in Computer Science, STEM or similar field.
- Strong experience with Linux and open source software.
- Experience with at least one of Python, Go, C or C++ on Linux.
- A drive to learn unfamiliar technology and deep‑dive difficult issues.
- Willingness to travel up to 4 times a year for internal events.
Nice‑to‑have skills:
- Passion for technology and working with brilliant people.
- Curiosities, flexibility, articulation and accountability.
- Soft skills, enterprising, thoughtful and self‑motivated.
- Interest or willingness to learn about Ubuntu kernel, Kubernetes, OpenStack, Ceph, QEMU/KVM, LXC/LXD, PostgreSQL, MongoDB, Debian packaging, distributed systems.
Benefits and compensation:
- Distributed work environment with twice‑yearly team sprints in person.
- Personal learning and development budget of USD 2,000 per year.
- Annual compensation review and recognition rewards.
- Annual holiday leave, maternity and paternity leave.
- Employee Assistance Programme & Wellness Platform.
- Opportunity to travel to new locations to meet colleagues.
- Priority Pass and travel upgrades for long‑haul company events.
Location: This is a remote role with teams in all time zones. Canonical is an equal opportunity employer. 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.
Software Maintenance Engineer employer: Canonical
Contact Detail:
Canonical Recruiting Team
StudySmarter Expert Advice 🤫
We think this is how you could land Software Maintenance Engineer
✨Tip Number 1
Network like a pro! Reach out to folks in the industry, especially those at Canonical. Use LinkedIn or tech meetups to connect with current employees and get the inside scoop on the company culture and what they look for in candidates.
✨Tip Number 2
Show off your skills! If you’ve got a GitHub or personal project that showcases your coding chops, make sure to highlight it during interviews. It’s a great way to demonstrate your experience with Linux and open source software.
✨Tip Number 3
Prepare for technical interviews by brushing up on your problem-solving skills. Practice coding challenges related to Python, Go, C, or C++. We recommend using platforms like LeetCode or HackerRank to get in the zone.
✨Tip Number 4
Don’t forget to apply through our website! It’s the best way to ensure your application gets seen by the right people. Plus, it shows you’re genuinely interested in joining the Canonical team.
We think you need these skills to ace Software Maintenance Engineer
Some tips for your application 🫡
Tailor Your CV: Make sure your CV reflects the skills and experiences that match the Software Maintenance Engineer role. Highlight your Linux expertise and any experience with programming languages like Python or C++. We want to see how you fit into our dynamic team!
Craft a Compelling Cover Letter: Your cover letter is your chance to shine! Use it to explain why you're passionate about open source software and how your background aligns with our mission at Canonical. Keep it concise but engaging – we love a good story!
Show Off Your Problem-Solving Skills: In your application, don’t shy away from showcasing specific examples of how you've resolved complex technical issues in the past. We’re looking for engineers who can think critically and tackle challenges head-on, so let us know what you've done!
Apply Through Our Website: We encourage you to apply directly through our website. It’s the best way to ensure your application gets into the right hands. Plus, you’ll find all the details about the role and our company culture there!
How to prepare for a job interview at Canonical
✨Know Your Stack
Make sure you have a solid understanding of the entire stack mentioned in the job description. Brush up on your knowledge of Linux, Kubernetes, OpenStack, and the programming languages like Python or C++. Being able to discuss these topics confidently will show that you're ready for the role.
✨Show Your Problem-Solving Skills
Prepare to discuss specific examples of complex problems you've resolved in the past, especially related to open source software. Think about how you approached the issue, the steps you took, and the outcome. This will demonstrate your analytical skills and ability to tackle challenges head-on.
✨Engage with Upstream Communities
Familiarise yourself with the upstream communities relevant to the technologies you'll be working with. If you've contributed to any projects or have insights from community discussions, be ready to share them. This shows your commitment to collaboration and continuous learning.
✨Communicate Clearly and Concisely
Practice articulating your thoughts clearly, especially when discussing technical concepts. Canonical values clear communication, so being able to explain complex ideas in a straightforward manner will set you apart. Consider doing mock interviews to refine this skill.