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
As a Distributed Systems Software Engineer at Canonical, you will be at the forefront of designing and developing robust, scalable software solutions that propel our distributed systems framework. This role entails collaborating with cross-functional teams to innovate and improve existing architectures while utilizing your expertise in Python and Go to tackle complex engineering problems. Your contributions will be critical in enhancing system performance and reliability, ultimately benefiting a vast range of users across the globe.
Job Responsibilities
- Design and implement distributed systems architecture to ensure high availability and scalability.
- Collaborate with engineers to develop microservices using Python and Go.
- Troubleshoot and resolve performance issues across various distributed components.
- Participate in code reviews and provide constructive feedback to team members.
- Develop and maintain documentation for system design and operational processes.
- Engage in regular communication with stakeholders to align engineering efforts with business objectives.
- Implement best practices for software development and deployment pipelines.
Qualifications
- Bachelor’s or Master’s degree in Computer Science, Software Engineering, or a related field.
- Minimum of 3 years of experience in software development with a focus on distributed systems.
- Proficiency in Python and Go programming languages.
- Strong understanding of microservices architecture and RESTful APIs.
- Experience with containerization technologies such as Docker and orchestration tools like Kubernetes.
- Knowledge of cloud platforms (AWS, GCP, Azure) and their services.
- Familiarity with databases and data processing frameworks.
Technologies & Tools
The role will require proficiency in a variety of technologies and tools that support distributed system development and management. Key technologies include Python and Go programming languages for applications, Docker for containerization, and Kubernetes for orchestration. Additionally, familiarity with cloud computing services, such as AWS, will be vital for deploying scalable applications. Experience with version control systems (such as Git) and CI/CD tools will also be essential for maintaining efficient workflows.
Ideal Candidates
The ideal candidate for this position is someone who is not only technically proficient but also possesses strong problem-solving skills and a collaborative mindset. A successful applicant will demonstrate a passion for developing innovative software solutions and a keen interest in staying abreast of advancements in distributed systems technologies. Excellent communication skills and the ability to work effectively within a team are crucial, as is the readiness to take ownership of projects and deadlines. The candidate should be adaptable, enthusiastic about continuous learning, and committed to delivering high-quality work in a fast-paced environment.
The two or three lines under your name say who you are before anyone reads the rest. Type your job and a few facts, and our summary writer gives you five to pick from. Write a summary →
View Similar Jobs
Similar jobs which you may be interested in. Typically using your existing skillset.