Canonical - We deliver open source to the world faster, more securely, and more cost-effectively than any other company. We develop Ubuntu, the world’s most popular enterprise Linux from cloud to edge, together with a passionate global community of 200,000 contributors. Ubuntu means 'humanity to others. We chose it because it embodies the generosity at the heart of open source, the new normal for platforms and innovation. Together with a community of 200,000, we publish an operating system that runs from the tiny connected devices up to the world's biggest mainframes, the platform that everybody uses on the public cloud, and the workstation experience of the world's most productive developers. Secure and reliable, elegant and intuitive, and open for innovation - Ubuntu is the future of open source, which is why it's the fastest-growing Linux in the world despite already being the most widely deployed.
We are recruiting to fill the position of:
Job Title: Software Engineer - Ubuntu Core
Location: Lagos (Remote)
The Position
Redefine embedded Linux and drive the future of secure appliances with our fully-containerized Ubuntu Core. This is an opportunity for a senior software engineer passionate about open source software, Linux, security and the developer experience. This challenging role demands a high degree of technical skill with low-level operating system, kernel and device firmware.
Ubuntu Core is the next generation secure embedded Linux operating system. Just as we are proud to make Ubuntu Desktop the simplest, most secure platform for desktop Linux, our mission with Ubuntu Core is to allow everyone to build robust IoT, industrial and consumer devices on a wide range of hardware, from RaspberryPi to large X86 servers. Ubuntu Core redefines the operating system experience by containerizing the OS, the kernel and all applications into a set of snaps, ensuring reliability and security through modern kernel capabilities driven by the snap system.
Ubuntu Core also defines a reliable and secure set of device recovery mechanisms that enable device manufacturers to simplify and standardise the field operations for fleets of heterogenous appliances.
As an Ubuntu Core team member, you’ll be designing and implementing software that runs on various CPU architectures, such as ARM, RISC-V and X86. You will work on boot mechanisms, bootloaders, storage partition layout, device trees, kernel, systemd init and services and userspace applications to manage hardware via RESTful APIs.
Build a rewarding, meaningful career working with the best and brightest people in technology at Canonical, a growing international software company.
What You’ll Do
Collaborate proactively with a distributed team
Write high quality code with unit tests to create new features
Debug issues and produce high quality fixes
Review code produced by other engineers
Discuss ideas and collaborate on finding good solutions
Work from home with global travel 2 to 4 times a year for internal and external events
Integrate diverse bootloaders and maintain gadget snaps
Develop system daemons with REST APIs in Golang
Who You Are
You have a Bachelor’s Degree or equivalent in Computer Science, STEM (Science, Technology, Engineering, and Mathematics) or similar Degree
You love technology and working with brilliant people
You are curious, flexible, articulate, and accountable
You value soft skills and are passionate, enterprising, thoughtful, and self-motivated
You have experience with Golang, C, and Shell
You have a solid understanding of Linux and a modern GNU/Linux distribution, Debian or Ubuntu preferred
You have experience or interest in low-level system and security facilities such as:
Bootloaders in ARM and X86, such as piboot, uboot, grub-uefi
Systemd and units, udev, initrd, graphics
OS level firmware daemons and CLI applications
Linux security implementations - TPM, FDE, LUKS, HSM, etc.
You have experience with API design and development - REST/gRPC or similar.