Distributed Systems Software Engineer, Python / Go

Canonical

Remote

Full-time

Re-posted 3 days ago


Job description

Job Summary:
Canonical is seeking a software engineer with a passion for building and validating resilient distributed systems. The role involves developing CI pipelines, enhancing cloud integration testing, and contributing to initiatives such as expanding deployment capabilities and developing AI/ML pipelines for automatic analysis of test results.
Responsibilities:
• Create automated testing approaches and infrastructure for validating reliability, performance, and resilience of cloud orchestration tools and applications
• Enable engineering teams across Canonical to develop software with confidence by making distributed system testing tooling available across the company
• Enhance continuous integration pipelines for deploying and testing Canonical's cloud native products such as Kubeflow
• Deploy, manage, and debug highly distributed systems
• Monitor and report on automated testing efforts
• Collaborate daily with a globally distributed team
Qualifications:
Required:
• Solid background in modern test processes and strategies
• Experience with Python or Go development
• Strong object oriented development skills
• Ability to develop and ship production grade modern web applications
• Working knowledge of continuous integration tools such as Jenkins, CircleCI, GitHub CI
• Knowledge of networking technologies and fundamentals
• Solid understanding of Linux system architecture
• A capacity for complex abstract thinking
• Capability for 2-4 weeks of international travel travel per year
Preferred:
• Collecting and analyzing large multidimensional datasets
• Operating data platforms: key-value stores, relational or document databases, event buses
• Work with cloud technologies such as OpenStack, Kubernetes, Terraform and AWS
• Developing AI/ML pipelines
Company:
Canonical, the publisher of Ubuntu, delivers trusted open source for everyone and provides security, support and services to enterprises. Founded in 2004, the company is headquartered in London, GBR, with a team of 1001-5000 employees. The company is currently Late Stage.


Frequently asked questions

Q: What skills or qualities help someone succeed as a Python Engineer?

A: To succeed as a Python Engineer, key technical skills include proficiency in Python programming language, experience with popular libraries and frameworks such as NumPy, pandas, and Flask or Django, as well as knowledge of data structures, algorithms, and software design patterns. Additionally, strong problem-solving skills, attention to detail, and the ability to collaborate effectively with cross-functional teams are essential soft skills that contribute to success in this role. By combining technical expertise with strong communication and teamwork skills, Python Engineers can effectively design, develop, and deploy scalable and efficient software solutions, driving career growth and effectiveness in the field.

Q: What is the career path for a Python Engineer?

A: A Python Engineer's typical career progression involves starting as a Junior Python Developer, where they focus on writing clean, efficient, and well-documented code, and collaborating with cross-functional teams to deliver projects. As they gain experience, they can move into mid-level roles such as Senior Python Developer or Technical Lead, where they take on more complex projects, mentor junior engineers, and contribute to technical architecture decisions. Ultimately, senior Python Engineers can transition into leadership positions like Engineering Manager or Technical Director, or pursue specialized roles like Data Scientist or DevOps Engineer, leveraging their expertise in Python and software development to drive business growth and innovation.