Apply Now
Application opens on company website
Job Description
A Software Engineer role focused on developing and maintaining secure, updatable embedded Linux systems for IoT devices, involving low-level system programming, kernel work, and collaboration within a distributed team at Canonical.
Key Responsibilities
- Design and implement software for Ubuntu Core on various CPU architectures
- Develop and maintain boot mechanisms, bootloaders, storage partition layouts, device trees, kernels, and services
- Write high-quality, tested code to create new features and fix system-level issues
- Debug Linux system issues and produce solutions
- Collaborate with a distributed team to review code, discuss ideas, and find solutions
- Integrate diverse bootloaders and maintain gadget snaps
Requirements
- A Bachelor’s or equivalent degree in Computer Science, STEM, or a similar field
- Experience with C or Golang programming languages
- Experience with Shell scripting
- A solid understanding of Linux and a modern GNU Linux distribution, with Debian or Ubuntu preferred
- Personal or professional experience with Linux-capable devices such as Raspberry Pi
- Interest in learning or experience in low-level systems and security facilities such as Bootloaders in ARM and X86, including piboot, uboot, grub-uefi
- Knowledge of system components such as Systemd and units, udev, initrd, graphics OS level firmware daemons, and CLI applications
- Experience or knowledge of Linux security implementations such as TPM, FDE, LUKS, HSM, etc.
- Ability to write high quality code with unit tests to create new features
- Ability to debug Linux system level issues and produce high quality code to fix them
- Experience collaborating proactively with a distributed team, reviewing code produced by other engineers, discussing ideas, and collaborating on solutions
- Experience integrating diverse bootloaders and maintaining gadget snaps
- Willingness to work from home with the possibility of global travel 2 to 4 times a year for internal and external events
- Ability to work on designing and implementing software that runs on various CPU architectures, such as ARM, RISC-V, and X86, including boot mechanisms, bootloaders, storage partition layout, device trees, kernel, and services
Benefits & Perks
Compensation is based on geographical location, experience, and performance, with annual reviews and recognition rewards
Performance-driven annual bonus or commission
Distributed work environment with remote work and in-person team sprints twice a year
Personal learning and development budget of USD 2,000 per year
Annual compensation review
Annual holiday leave
Maternity and paternity leave
Team Member Assistance Program
Wellness Platform
Opportunity to travel to new locations to meet colleagues
Travel upgrades and Priority Pass for long-haul company events
Ready to Apply?
Join Canonical and make an impact in renewable energy
Stay Updated on Sustainability Jobs
Get the latest renewable energy jobs and career tips delivered to your inbox.
Job Alerts
Get notified about new sustainability jobs
More jobs at Canonical
Usability Engineer - User Science
Canonical
Remote
Full Time
6d
Senior Design Researcher - User Science
Canonical
Remote
Full Time
6d
Ubuntu Engineering Manager
Canonical
Remote
Full Time
Jan 8
More jobs in Remote
Account Executive APJ
Planet
NEW
Remote
Full Time
13h
Account Executive NATO
Planet
NEW
Remote
Full Time
13h
Account Executive NATO
Planet
NEW
Remote
Full Time
13h