Roles and responsibilities
As a software engineer on the OpenStack Engineering team, you'll be building Charmed OpenStack and Ceph, a suite of open source Python based charms for deploying and managing OpenStack and Ceph. Your work will bring cloud platform technologies to a wide range of users and computing environments, from desktops to bare metal servers. This role requires a python software developer with a passion for automating infrastructure as code.
Applicants should be passionate about the future of the software defined datacenter, distributed systems, and open source. Canonical is a globally distributed team of engineers who share that passion, and you will need to work well in that context. Engineers who thrive at Canonical are mindful of the dynamics of the open source ecosystem, and equally aware of the needs of large, innovative organizations.
This job involves international travel several times a year, usually for one week at a time.
What you'll do
- Collaborate proactively with a distributed team
- Write high quality code to create new features
- Debug issues and produce high quality code to fix them
- Review code produced by other engineers
- Discuss ideas and collaborate on finding good solutions
- Ensure the success of OpenStack and Ceph on multiple architectures
- Work from home with global travel 2 to 4 weeks for internal and external events
Who you are
- You love technology and working with brilliant people
- You are curious, flexible, articulate, and accountable
- You value soft skills and are passionate, enterprising, thoughtful, and self-motivated
- You have a Bachelor's or equivalent in Computer Science, STEM or similar degree
- You have experience with Python
- You have interest and experience with two or more of the following:Ubuntu Linux - kernel or userspace, Kubernetes, OpenStack, Ceph, AI/ML, QEMU/KVM, LXC/LXD, Python, Go, C, Postgresql, Mongo, Debian packaging, scalable web services
- You have experience with non-x86 architectures, including s390, arm64, power and others
- You have experience with OpenStack, OVN, Openvswitch and other related cloud technologies
What Canonical Offers
- Learning and Development
- Annual Compensation Review
- Recognition Rewards
- Annual Leave
- Priority Pass for travel
- Flexible working option
Desired candidate profile
1. Programming Languages
- Proficiency in popular languages: Python, Java, JavaScript, C++, Ruby, C#, Swift, etc.
- Understanding of syntax, semantics, and core concepts: Variables, data types, loops, functions, and error handling.
2. Data Structures & Algorithms
- Key concepts: Arrays, Linked Lists, Trees, Graphs, Stacks, Queues, Hash Maps, etc.
- Algorithm Design: Sorting, searching, dynamic programming, recursion, etc.
- Complexity analysis: Big-O notation, performance optimization.
3. Software Development Practices
- Version Control Systems: Git, GitHub, GitLab, Bitbucket.
- Agile Methodology: Scrum, Kanban, user stories, sprints, retrospectives.
- Test-driven development: Unit testing, integration testing, automated testing frameworks (JUnit, Mocha, etc.).
4. Database Management
- SQL Databases: MySQL, PostgreSQL, Oracle, etc.
- NoSQL Databases: MongoDB, Cassandra, etc.
- Database Design: Schema design, relationships, normalization, and query optimization.
5. Software Design & Architecture
- Design Patterns: Singleton, Factory, Observer, Strategy, etc.
- System Design: High-level architecture, microservices, distributed systems, REST APIs.
- UML diagrams: Class diagrams, sequence diagrams, etc.
6. Web Development (if applicable)
- Frontend: HTML, CSS, JavaScript, frameworks like React, Angular, or Vue.js.
- Backend: Node.js, Django, Flask, Spring, Ruby on Rails, etc.
- Web Servers: Apache, Nginx, etc.
7. Cloud Computing
- Platforms: AWS, Azure, Google Cloud, etc.
- Services: Compute, storage, networking, and serverless solutions.
- CI/CD pipelines: Jenkins, CircleCI, Travis CI, etc.
8. DevOps & Automation
- Containers: Docker, Kubernetes.
- Infrastructure as Code (IaC): Terraform, Ansible, etc.
- Continuous Integration/Continuous Deployment (CI/CD).