Canonical 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 of software. 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. Most colleagues at Canonical have worked from home since our 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.
We are recruiting to fill the position below:
Job Title: Linux Devices Software Engineer - snapd
Location: Lagos
About the Role
We are hiring a Linux Devices Software engineer on our SnapD team to work on mission-critical Golang code, focused on software delivery, containers, security sandboxing, telemetry and device management.
Snaps are next-generation software packaging and delivery for Linux. They are designed for safety, security and robustness, with application-specific confinement of containers optimised for IoT devices, desktops and servers. Our goal is that snaps work across multiple Linux flavors to ensure that publishers have the simplest way to reach the whole Linux world.
This role requires an obsession with quality and performance, for work at the heart of the operating system. It also requires an interest in the software publishing and consumption experience.
Applicants should be passionate about open source software development. We value collaboration, peer reviews, good unit/integration testing and maintainable code. General knowledge and experience with Linux as a developer platform is required. Having previous experience with Golang is very nice to have.
This role will be based remotely in the EMEA or Americas regions
Responsibilities
The role entails:
Collaborate proactively with a distributed team
Write high quality code to create new features
Debug Linux system level issues and produce high quality code to fix them
Review code produced by other engineers
Discuss ideas and collaborate on finding good solutions
Obsess over how to achieve robustness despite unexpected events like power outages
Work from home with global travel for up to two weeks, twice a year
Requirements
What we are looking for in you:
You have a Bachelor’s or equivalent in Computer Science, STEM or similar degree
You love technology and working with brilliant people
You are curious, flexible, articulate, and accountable
You value soft skills, are thoughtful and self-motivated
You have professional software development experience using Go, Python, C, or C++
You know Linux system-level fundamentals, e.g. cgroups, namespaces, AppArmor
Commitment to software testing, code reviews and maintainable code
What we offer colleagues
We consider geographical location, experience, and performance in shaping compensation worldwide. We revisit compensation annually (and more often for graduates and associates) to ensure we recognize outstanding performance.
In addition to base pay, we offer a performance-driven annual bonus or commission. We provide all team members with additional benefits which reflect our values and ideals. We balance our programs to meet local needs and ensure fairness globally.
Distributed work environment with twice-yearly team sprints in person
Personal learning and development budget of USD 2,000 per year
Annual compensation review
Recognition rewards
Annual holiday leave
Maternity and paternity leave
Team Member Assistance Program & Wellness Platform
Opportunity to travel to new locations to meet colleagues
Priority Pass and travel upgrades for long-haul company events