Software Engineer - SnapD / System Level

Canonical (Brussels, België) 1 dag geleden gepost

Software Engineer - system level

Job Title: Software Engineer

Posting Date: N/A

Keywords: agile,distributed,systems,teams,go,golang, linux, ubuntu, home, travel, open source

Reports to: Snapd Engineering Manager

Job Location: Home Based, Americas or Europe, appropriate fast internet is required

Job summary

We are currently seeking an experienced Software Engineer to join our ever growing Snapd team. Snapd and snaps are the next generation of software delivery. They are designed for safety, security and robustness, to deliver software in per-application confined containers to IoT devices, desktops and servers across multiple Linux platforms.

As a Software Engineer, you'll add new features to snapd, review code written by your peers, diagnose and fix bugs and work with the field teams to help design and deliver solutions for customers in IoT, cloud environments and other Linux distributions. This is a chance to work on, and learn about, the bits at the heart of the operating system, from the kernel, hardware and network access layers, through to confinement, security and continuous integration.

Applicants should be passionate about software development and open source. In our team we value collaboration, peer reviews, good unit/integration testing and writing maintainable code. Skills in the Go programming language and testing methodologies are required; system-level C programming and knowledge about Linux namespacing mechanisms, AppArmor and cgroups, are a plus.

Canonical has always been a home based employer, and global travel for face-to-face meetings, conferences and on-sites, has been an important way to strengthen and support that culture. When it is safe to do so, we hope to resume travelling the world together again, usually for no more than a week, 2-4 times a year. Previous locations have included Berlin, Brussels, Budapest, Cape Town, Malta, and Montréal and Salt Lake City.

Key responsibilities

  • Develop high-quality, extensible and reusable software, primarily in Go
  • Ability to collaborate remotely with a diverse set of team members and remain self-motivated, productive, and organized
  • Design, build and integrate new features, enhancements and bug fixes for snapd and Ubuntu Core
  • Participate in an engineering process with a deep-rooted culture of code and architectural reviews
  • Take ownership of problems and see them through to solutions
  • Actively engage with the open source community and commercial partners

Required skills and experience

  • Degree level education in computer science or software engineering
  • Experience with the Go programming language
  • Proven track record of at least 3+ years of professional software development using Go, Python, C, C++ or similar
  • Commitment to software testing, code reviews and maintainable code
  • Experience with Linux (any current distribution)
  • Excellent written and verbal communication skills in the English language
  • Some international travel required, usually for one week

Experience in the following is also beneficial:

  • Shell scripting for high level integration tests
  • System-level C programming
  • Linux namespaces/cgroups programming
  • AppArmor/seccomp
  • Involvement in open source projects

What Canonical Offers:

  • Learning and Development
  • Annual Compensation Review
  • Recognition Rewards
  • Annual Leave
  • Priority Pass for travel
  • Flexible working option

Canonical believes a diverse workforce enhances our ability to deliver world class software and services which meet the world’s computing needs. We are committed to ensuring equal employment opportunities to all qualified individuals. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status.

#LI-Remote @stack

Software Engineer - SnapD / System Level

Apply On Company Site
Back to search page
;