Full Time

Distributed Systems Software Engineer, Python / Go

Canonical
$100,000 - $150,000* / year (about $48–$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

Canonical is seeking a highly skilled Distributed Systems Software Engineer proficient in Python and Go to join our innovative team. In this role, you will be instrumental in the design, development, and implementation of distributed systems that enhance the capabilities and efficiency of our software products. You will collaborate with cross-functional teams to create scalable, reliable, and performant solutions while employing best practices in software development and testing. Your expertise will help ensure that our systems can handle vast amounts of data and user interactions seamlessly.



Job Responsibilities

  • Design, implement, and maintain distributed systems and microservices architectures using Python and Go.
  • Collaborate with product managers and engineering teams to define system requirements and specifications.
  • Develop robust APIs and back-end services that can support high-throughput and low-latency operations.
  • Perform code reviews and contribute to engineering best practices to ensure high-quality deliverables.
  • Identify and resolve performance issues while ensuring the scalability of applications.
  • Continuously monitor, analyze, and enhance system performance through appropriate instrumentation and metrics.
  • Provide technical guidance and mentoring to junior engineers and interns.


Qualifications

  • Bachelor’s or Master’s degree in Computer Science, Engineering, or a related field.
  • Proven experience in software development, particularly with Python and Go.
  • Strong understanding of distributed systems, cloud architecture, and microservices.
  • Experience with containerization and orchestration technologies such as Docker and Kubernetes.
  • Familiarity with databases and data storage solutions, both relational and non-relational.
  • Excellent problem-solving skills and a strong attention to detail.
  • Ability to work collaboratively in a remote team environment.


Technologies & Tools

The Distributed Systems Software Engineer will work with a variety of technologies and tools, including but not limited to Python, Go, Docker, Kubernetes, AWS or Azure cloud services, Git for version control, and CI/CD pipelines. Familiarity with networking concepts and data serialization formats like JSON and Protocol Buffers will also be advantageous in this role, as will experience with monitoring tools and distributed tracing systems.



Ideal Candidates

The ideal candidate will demonstrate a keen passion for software development and a strong desire to innovate within the realm of distributed systems. They will possess a collaborative spirit and a proactive attitude, capable of tackling challenges creatively. Excellent communication skills are essential, along with the ability to articulate complex technical concepts to diverse audiences. A commitment to quality, continuous improvement, and adaptability to fast-evolving technologies will also distinguish the best candidates for this position.

In the St. Louis, MO-IL metro area, the middle pay across its 1.3 million jobs was $49,990 a year in May 2025, says the Bureau of Labor Statistics. Pay calculator →

View Similar Jobs

Matches Jobs

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