Apply Now
Application opens on company website
Job Description
A Software Engineer responsible for developing and maintaining secure, updatable embedded Linux systems for IoT devices, focusing on low-level system components, boot mechanisms, and device security across various CPU architectures in a remote, collaborative environment.
Key Responsibilities
- Design and implement software for various CPU architectures, including ARM, RISC-V, and X86
- Develop and maintain boot mechanisms, bootloaders, storage partition layouts, device trees, kernel, and services
- Write high-quality, tested code to create new features and fix system-level issues
- Debug Linux system-level 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 with 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 design and implement software that runs on various CPU architectures such as ARM, RISC-V, and X86, including work on 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 potential for bonuses or commissions
Work from home with global travel 2 to 4 times a year for internal and external events
Distributed work environment with twice-yearly in-person team sprints
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
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