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.
Job Overview
Canonical is seeking a skilled Distributed Systems Software Engineer with a strong background in either Python or Go programming languages. The successful candidate will play a critical role in designing and developing robust distributed systems that enhance the performance and scalability of our software offerings. The engineer will collaborate with cross-functional teams to deliver innovative solutions while ensuring high availability and fault tolerance in our distributed infrastructure. This position provides an exciting opportunity to work on cutting-edge technologies and contribute to the future of open-source software.
Job Responsibilities
- Design, implement, and maintain distributed systems and microservices architecture.
- Collaborate with product managers and other engineers to gather requirements and provide technical expertise.
- Conduct performance analysis and optimization to enhance system efficiency and reliability.
- Develop automated tests and deployment pipelines to support continuous integration and delivery.
- Investigate and resolve production issues, ensuring minimal downtime and optimal service quality.
- Contribute to open-source projects and community engagement to promote advancements in distributed systems.
Qualifications
- Bachelor's degree in Computer Science, Engineering, or a related field.
- At least 3 years of experience in software development with a focus on distributed systems.
- Proficiency in Python and/or Go programming languages.
- Strong understanding of distributed systems concepts, microservices architecture, and cloud technologies.
- Experience with containerization and orchestration tools such as Docker and Kubernetes.
- Familiarity with databases, message queues, and various data storage technologies.
- Demonstrated ability to write clean, maintainable, and efficient code.
Technologies & Tools
In this position, the Distributed Systems Software Engineer will work with a variety of technologies and tools designed to streamline development and enhance system performance. Key technologies include Python and Go programming languages, as well as cloud platforms such as AWS, Google Cloud, or Azure for deployment and scalability. Familiarity with containerization tools like Docker and Kubernetes is essential, along with experience using CI/CD tools to maintain efficient development workflows. Additionally, knowledge of relational and non-relational databases, as well as messaging systems like RabbitMQ or Kafka, will be invaluable in building robust distributed systems.
Ideal Candidates
Ideal candidates for the Distributed Systems Software Engineer position are those who demonstrate strong problem-solving skills and a passion for building scalable systems. They possess excellent communication and collaboration abilities, enabling them to work effectively within a diverse team environment. An aptitude for continuous learning and adaptation to new technologies is essential, as is a commitment to open-source principles and community contributions. Candidates should also exhibit attention to detail and a proactive approach to challenges, ensuring that projects are delivered successfully and on time.
Unemployment rose most in Finland: from 8.4% in 2024 to 9.5% in 2025, by the International Labour Organization’s estimates. Every country, ranked →
View Similar Jobs
Similar jobs which you may be interested in. Typically using your existing skillset.