Sep 08, 2020

Remote Software Engineer (Raspberry Pi + Hardware, Linux, Python)

  • pi-top
  • Global, Worldwide
Full Time

AD Description

You'll be joining the pi-topOS team - a small and fast-moving dev team, which primarily develops software for the Raspberry Pi OS derivative operating system that runs on all pi-top devices. OS development has different fronts, such as:
  • Writing/maintaining hardware drivers and user-facing API libraries for upcoming and already existing pi-top products
  • Creating UIs for user-facing applications
  • Extending functionality by researching existing software solutions and integrating them
  • Developing novel solutions to problems where no existing solutions are available
  • Enhancing pi-top ecosystem integrations (such as with Further) to add customer value
  • Building and maintaining DevOps infrastructure (CI pipelines, etc.) to support our development

The role is one that offers an unusually broad range of technologies, and so an open mind and a strong interest in learning and contributing across a wide variety of projects and technologies is a must.

As such, we are looking for a T-Shaped developer whoʼs comfortable with coding in Python and writing shell scripts (Bash), but also able to handle some DevOps responsibilities (including cloud infrastructure and build systems). We donʼt expect you to be a guru in all of these areas , but get in touch and tell us what you can do.

This is a super fun job. You'll be involved in the full development process from conception and design to coding, testing and deployment. As a result, strong communication skills and use of English are essential. Some knowledge of electronics would be beneficial, as would experience of UX and software development within an educational setting.

This position is open to people worldwide, but you must be able to work reasonably closely with UK time and have a high level of written and spoken English.

You'll work remotely but collaboratively with our software team based in the UK and the Americas, as well as within the broader cross-disciplinary engineering team.

As part of the interview process you will be required to undertake a programming test that should not last more than 2 hours.


  • Python 3 (scripting: user-space device drivers, daemons, APIs and libraries)
  • Linux shell scripting (Bash)
  • Strong version control practices; familiar with Github
  • Good knowledge and implementation of Open Source development practices
  • Passionate about problem-solving and learning
  • Happy to learn and work with new technologies as needs change with time

Desirable skills
  • Familiarity with Raspberry Pi
  • Familiarity with Web technologies - React + Typescript
  • Communicating with hardware, e.g. GPIO, Arduino, I2C, etc.
  • Familiarity with C++ (with a focus on desktop applications, using Qt and other frameworks)
  • Linux system and service management ( systemd )
  • Debian package management ( Advanced Package Tool [APT] )
  • Familiarity with continuous integration and build systems (e.g. Jenkins )
  • Software provisioning ( Ansible )
  • Google Cloud
  • JIRA


  • Great workplace culture - casual but hard-working
  • X days of holiday + X days of sick leave
  • Remote work

  • Contract hourly based work or permanent (depending on location)
  • Minimum 40 hours per week
  • Minimum 2 hours per weekday during business hours in London, UK
  • Minimum 2 hours per weekday during business hours in Santiago, Chile