Full Time

Distributed Systems Software Engineer, Python / Go

Canonical
$90,000 - $150,000* / year (about $43–$72 an hour)

Job Description

This job was posted over 30 days ago, so it has most likely closed. See newer jobs like it.

Written by AI from the job title and company, not by Canonical, so some details may not match this job. The employer's own page has the real description.

Overview

The Distributed Systems Software Engineer at Canonical will be responsible for designing, developing, and maintaining scalable distributed systems, focusing on Python and Go programming languages. The role encompasses collaborating with cross-functional teams to enhance system performance, uphold high availability, and contribute to open-source projects. The candidate will engage in complex problem solving and contribute to the continuous improvement of the software development lifecycle while ensuring robust documentation and effective communication across all stages of project development.



Job Responsibilities

  • Design and implement scalable distributed system architectures utilizing Python and Go.
  • Collaborate with various teams including product management, operations, and security to define system requirements.
  • Optimize existing codebases and algorithms for performance and scalability.
  • Participate in code reviews and maintain high-quality coding standards.
  • Develop and automate testing processes to ensure reliability and functionality of systems.
  • Monitor system performance and troubleshoot issues in real-time.
  • Contribute to open-source software projects and engage with the community to promote Canonical’s technologies.
  • Document design processes, system configurations, and operational procedures for reference and compliance.


Qualifications

  • Bachelor’s degree in Computer Science, Software Engineering, or a related field.
  • Minimum of 3 years of experience in software engineering, with a strong focus on distributed systems.
  • Proficient in programming languages, specifically Python and Go.
  • Experience with cloud infrastructure and container orchestration (e.g., Kubernetes).
  • Strong understanding of fundamental distributed systems concepts and algorithms.
  • Familiarity with version control systems, preferably Git.
  • Excellent problem-solving skills and ability to work effectively in a team environment.


Technologies & Tools

The role of Distributed Systems Software Engineer will involve working with a variety of technologies and tools including, but not limited to, cloud services (AWS, Azure), container technologies such as Docker, orchestration platforms like Kubernetes, AND development frameworks relevant to Python and Go. Expertise with CI/CD pipelines, performance monitoring tools, and distributed database systems is also essential for streamlining operations and enhancing system efficiency.



Ideal Candidates

Ideal candidates for this position will exhibit a strong passion for distributed computing and a commitment to writing clean, maintainable code. They should possess excellent analytical skills to diagnose and resolve complex technical challenges effectively. A collaborative spirit that thrives in cross-functional teams, along with strong verbal and written communication skills, will also contribute significantly to their success in this role. Furthermore, candidates should demonstrate a proactive approach to learning new technologies and methodologies, reflecting Canonical’s culture of innovation and iterative improvement.

Over the last year, unemployment was lowest in legal jobs (1.4%) and highest in farming, fishing and forestry jobs (8.3%). For all workers it was 4.3%. Compare kinds of work →

View Similar Jobs

Matches Jobs

Similar jobs which you may be interested in. Typically using your existing skillset.