Software Engineering Lead
This is the Fast Track application process for Software Engineering Lead roles at Canonical, the company that delivers open source and Ubuntu to the enterprise.
As a global platform company we offer a wide range of software engineering challenges, from the Linux kernel up through Ubuntu server, desktop, IoT and operations tooling, from the public cloud to the edge, both open source products and internal commercial business systems. We work in low-level engineering with kernels and compilers and toolchains, we work with web technology, and many layers in between.
Our primary software engineering stack is Python, Golang, React, Rust and Kubernetes, but of course we touch so many levels of the stack that we are also a great home for people with deep skills in C, C++, Bash, HTML, and technical operations.
We are hiring engineering leadership in the following areas:
- Cloud-native development and operations (Docker, Kubernetes, CAAS, PAAS)
- Internet of things technologies and capabilities
- Containerisation and virtualization technologies
- Devsecops tooling, practices and services
- Commercial business systems for Canonical itself
- Data applications from SQL databases to big data
- AI/ML ops and technologies
- Robotics and embedded Linux in a wide variety of industries
- Security offerings, practices and services
- Storage from raw disk to filesystem to network service
- Networking from bare metal to SDN and overlays
- Distributed systems design and implementation
- Linux, the kernel and Ubuntu itself
- Desktop Linux and desktop applications on Windows and macOS
- Open-source community collaboration
We are currently expanding the number of product teams at Canonical to create new products.
On the cloud, we want to offer a full range of open-source databases, message queues, event handling, analytics, big data and identity solutions. Postgres, MySQL, Kafka, HDFS, Spark, Etcd, Redis, Cassandra, ScyllaDB, Hadoop and many more are very interesting to us. If you have deep knowledge of any open source database or data store, we likely have a role for you.
On IoT we want to expand the range of Linux devices we support and go deep into the embedded world. We’re interested in people with deep embedded Linux and RTOS experience, who understand the ARM, RISC-V and X86 architectures deeply, know boot and BIOS processes, and are keen to be part of the future of secure connected things.
Exceptional Software Lead
What will it take to be a technical lead at Canonical?
To be successful in this application you will need to show proven exceptional results at maths and sciences. You must also have proven yourself to be an outstanding software engineer at some layer of the open source stack. This particular Fast Track is for engineers who do not want management responsibility but are strong technical leads – we have parallel tracks for folks who want management too.
You will need to show that you have a gift for software design and implementation, and enjoy contributing to a highly professional environment with careful choices of technology, architecture, data design, and user interface. You should have broad-based knowledge of Linux, networking, software development, databases, API design and possibly web presentation layers.
As a lead you must demonstrate insight into performance and quality engineering practices in your field, and show how you have helped teams embrace effective disciplines on both fronts. You also need an understanding of security practices and principles and the impact that engineering choices have on product security.
We care about how usable our products are, and that starts with documentation. You must have experience producing well-documented products and working with design professionals to shape the product. You should have clearly articulated views on the ways engineering practices influence product outcomes, not just technically but in open source communities and in the marketplace.
It is an advantage to be able to point to open source work of your own which demonstrates these strengths.
This is a role for leadership, architecture, design and mentorship, but it may require periods of code spike to establish key frameworks, APIs or interfaces. You should relish the opportunity to write code while being most interested in helping an engineering team produce a great product that will be a pleasure to use and to evolve.