Full-time
This job posting has expired and is no longer accepting applications. Check out similar jobs
Job description
Canonical is a leading provider of open source software and operating systems to the global enterprise and technology markets. Our platform, Ubuntu, is very widely used in breakthrough enterprise initiatives such as 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.
The company is a pioneer of global distributed collaboration, with 1100+ colleagues in 75+ countries and very few office based roles. Teams meet two to four times yearly in person, in interesting locations around the world, to align on strategy and execution. The company is founder led, profitable and growing.Canonical is building a new generation of Ubuntu-based container images to simplify open-source application deployment across the world.
These container images will be free to use with long-term security commitments, and engineered for performance, security and usability. As with Ubuntu, we will work in the open and welcome community participation.In this role, you'll be developing the tools and technology for building and maintaining this new generation of container images. You'll be working with multiple teams, both inside and outside Canonical, to ensure we deliver container images with the highest quality whilst maintaining a seamless Ubuntu user experience.
You will also be highly involved in the implementation and maintenance of the Continuous Integration and Continuous Delivery automation around these container images, for which you are expected to demonstrate deep insights into container-based DevOps.You will be contributing to fast-moving products like Rocks (OCI images) and Chisel, and thus have the chance to help steer and consolidate this new team. You'll gain experience with numerous container technologies and participate in exciting and exploratory tasks, where your feedback will be critical for the decision-making process. As an engineer, your seniority will be based on your software development background and ability to lead junior team members.Come build a rewarding, meaningful career working with the best and brightest people in technology at Canonical.
This is an exciting opportunity for experienced software engineers looking for a place to leave their mark, who are passionate about shaping an open source product with the highest quality, with and for the community!LocationEMEAResponsibilitiesBuild robust, scalable, leading-edge container imagesWork on automated Ci/CD processes for building, testing and publishing our container imagesWrite tools and tests for assessing security compliance and cloud-native compatibilityWork in Go to deliver new functionalities to our container-building toolsParticipate in strong engineering process through code and architectural reviewProvide technical feedback for the team's decision-making processEngage with the open-source community as a subject-matter expertGrow our knowledge base and write documentationWork in a collaborative, agile and globally distributed environmentMentor and help hiringWork from home with global travel up to 15% for internal and external eventsQualificationsYou are knowledgeable and passionate about software developmentYou are a team player and have experience in collaborative developmentYou have worked with CI/CD systems (e.g. Jenkins, GitHub Actions, Concourse CI, etc.)You have a track record of delivering timely, high-quality softwareYou have experience with container images and containerised operationsYou master at least one container management/orchestration tool (e.g. Docker, Kubernetes, etc.)You have significant experience with GoYou are experienced with Linux systems administration and package managementYou have strong written and verbal communication skills to convey technical conceptsYou bring clarity to technical and engineering discussionsYou are someone who strongly believes that sharing is caring, and knowledge is powerYour skills range from those of a Graduate to a mid-senior Software EngineerYou have a Bachelor's or equivalent in Computer Science, STEM or a similar degreeBenefitsDistributed work environment with twice-yearly team sprints in personPersonal learning and development budget of USD 2,000 per yearAnnual compensation reviewRecognition rewardsAnnual holiday leaveMaternity and paternity leaveEmployee Assistance ProgrammeOpportunity to travel to new locations to meet colleaguesPriority Pass, and travel upgrades for long haul company eventsAbout CanonicalCanonical is a pioneering tech firm at the forefront of the global move to open source.
As the company that publishes Ubuntu, one of the most important open source projects and the platform for AI, IoT and the cloud, we are changing the world on a daily basis. We recruit on a global basis and set a very high standard for people joining the company. We expect excellence — in order to succeed, we need to be the best at what we do.
Canonical has been a remote-first company since its inception in 2004. Working here is a step into the future, and will challenge you to think differently, work smarter, learn new skills, and raise your game.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.J-18808-Ljbffr
Frequently asked questions
Q: What skills or qualities help someone succeed as a Software Engineer?
A: To succeed as a Software Engineer, key technical skills include proficiency in programming languages such as Java, Python, or C++, as well as expertise in software development methodologies like Agile and version control systems like Git. Additionally, strong problem-solving skills, attention to detail, and the ability to learn and adapt quickly are essential soft skills, along with effective communication and collaboration skills to work with cross-functional teams. These technical and soft skills enable Software Engineers to design, develop, and maintain high-quality software applications, driving career growth and effectiveness in the role.
Q: What is the career path for a Software Engineer?
A: A Software Engineer's typical career progression involves starting as a Junior Software Engineer, where they focus on coding and contributing to existing projects, then advancing to a Mid-Level Software Engineer role, where they take on more complex tasks, lead smaller projects, and mentor junior team members. As they gain experience, they can move into Senior Software Engineer positions, where they lead large-scale projects, architect software systems, and make technical decisions that impact the organization. With continued growth, Software Engineers can pursue leadership roles, such as Technical Lead or Engineering Manager, or transition into specialized areas like DevOps, Product Management, or Technical Consulting.
