A Software Engineer role focused on developing and maintaining secure, embedded Linux systems for IoT devices, involving low-level system programming, kernel work, and cross-architecture support within a remote, collaborative environment.
Key Responsibilities
Write high-quality code with unit tests to develop new features
Debug Linux system-level issues and implement fixes
Collaborate proactively with a distributed team on software development
Review code produced by other engineers
Design and implement software for various CPU architectures, including ARM, RISC-V, and X86
Work on boot mechanisms, bootloaders, storage partition layout, device trees, kernel, and services
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 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 in collaborating proactively with a distributed team, reviewing code produced by other engineers, discussing ideas, and collaborating on solutions
Experience in integrating diverse bootloaders and maintaining gadget snaps
Willingness to work remotely in the EMEA region and travel 2 to 4 times a year for internal and external events
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
Travel upgrades and Priority Pass for long-haul company events
Ready to Apply?
Join Canonical and make an impact in renewable energy