JOB DETAILS: As a Senior Software Engineer you will: 1. Develop tools used in the field by Canonical Engineers, customers, and internal CI for deploying Canonical's cloud products
2. Create new automated testing infrastructure, process and strategies
3. Deploy, manage, and debug highly distributed systems
4. Execute, monitor, and report on automated testing efforts
5. Collaborate daily with a globally distributed team
Successful candidates will have: 1. Bachelor's degree in a technology field, or equivalent experience
2. Strong Python development skills
3. Strong Object oriented development skills
4. Solid background in modern test processes and strategies
5. Solid understanding of Linux system architecture
6. Working knowledge of continuous integration tools such as Jenkins, Travis, or CircleCI
7. Knowledge of networking technologies and fundamentals
8. Capability for 2-4 weeks of international travel travel per year
Exceptional candidates will have experience with: 1. Collecting and analyzing large of amounts of data
2. Developing AI/ML pipelines
3. Developing modern web applications
4. Distributed databases and big data
5. Cloud technologies such as OpenStack, Kubernetes, and AWS
6. Deploying distributed software at scale
Key responsibilities 1. Maintain and develop new features to our Python based test automation tools like Checkbox, used by both in-house teams and industry partners.
2. Invent new ways to enable remote, automated testing.
3. Help build the software counterpart to in-house designed testing hardware to help test device enablement (graphics, hotplug, bluetooth, etc).
4. Write functional and performance tests to support hardware enablement and to protect from regressions.
5. Participate in meetings involving international travel 2-3 times per year.
Required Skills And Experience 1. Knowledge of Python programming language.
2. Quality oriented, pragmatic approach to software design and implementation.
3. Interest in test automation methodologies.
4. Previous experience working with Ubuntu or other Linux distributions.
5. Ability to be productive in a globally distributed team.
Desired Skills And Experience 1. Passion for tinkering: you are a maker.
2. Experience working in an agile environment.
3. Hardware testing experience, for example in the IoT space.
4. Familiarity with the C programming language.
JOB DETAILS:
What your day will look like The data platform team is responsible for the automation of data platform operations. This includes ensuring fault-tolerant replication, TLS, installation, and much more; but also provides domain-specific expertise on the actual data system to other teams within Canonical. This role is focused on the creation and automation of features of data platforms, not analysing the data in them.
Collaborate proactively with a distributed team 1. Write high-quality, idiomatic Python code to create new features
2. Debug issues and interact with upstream communities publicly
3. Work with helpful and talented engineers including experts in many fields
4. Discuss ideas and collaborate on finding good solutions
5. Work from home with global travel for 2 to 4 weeks per year for internal and external events
What we are looking for in you 1. Proven hands-on experience in software development using Python
2. Proven hands-on experience in distributed systems
3. Have a Bachelor's or equivalent in Computer Science, STEM, or a similar degree
4. Willingness to travel up to 4 times a year for internal events