Canonical
Open Source Networking Software Engineer - ToR Switch / SmartNIC / DPU
- Posted 5d ago
- Remote
- Full Time
Job Description
Software has moved to play a central role in network technology. From outstanding routing implementations like Bird and FRR to overlay networking technology such as OVN/OVS and Cilium, from kernel with SwitchDev to userspace with DPDK, from P4 to OpenFlow, the relationship between network innovation and software continues to deepen. We are building teams to bring the very best open source networking software to market in a well integrated and opinionated stack that brings the latest hyperscaler innovation to end users and enterprise customers.
We work with networking silicon providers to optimize Ubuntu and related applications for their ASICs, boards and appliances. We aim to provide a complete open source stack for data center networking, from bare metal through virtualization, container and serverless, and also to address IoT networking systematically.
You will have a good chance of success if you are an outstanding software engineer, passionate about networking, with a special interest in the interface of hardware ASICs for acceleration and software for innovation and control. We value experience in open switch initiatives such as SoNIC and DENT, and upstream experience with components such as routing, kernel networking, eBPF, DNS, firewalls and load balancers. Our selection process is rigorous and requires work from the candidate as six to eight interviews over a period of months. We look for excellent academic results and a commitment to quality, resilience, documentation, security and performance in your work.
At Canonical you will have the opportunity to engage with the broader open-source community and industry leading partners in developing future-proof networking solutions. We're looking for individuals who can help build a thriving community, contribute to a broad range of technologies, and contribute to the deployment of Ubuntu, Ubuntu Core, Private Clouds, MAAS and Kubernetes across a broad range of devices and use cases.
Location: we have network software engineering roles in EMEA and Americas time zones
What your day will look like
- Work with the most advanced operating systems and network application technologies available
- Participate upstream and deliver the Ubuntu SoNIC or DENT stacks
- Collaborate with public clouds and network silicon providers
- Design and implement the best software-defined networking experience for the data center
- Write high-quality, well-designed, fast, secure and well-documented software
- Debug issues and produce high-quality fixes
- Collaborate proactively with a globally distributed organization
- Contribute to technical documentation to make it the best of its kind
- Display technical leadership internally, towards our partners, and in the open source communities
- Influence open-source projects and communities
- Work from home, with global travel twice a year for company events of up to two weeks duration
What we are looking for in you
- An exceptional academic track record
- Undergraduate degree in Computer Science or STEM, or a compelling narrative about your alternative path
- Drive and a track record of going above-and-beyond expectations
- Knowledge of networking: architecture, design, and protocols
- Understanding of Linux networking, from kernel to user space
- Fluency in C/C++ and at least one of Rust, Python or Golang
- Professional written and spoken English
- Experience with Linux
- Excellent interpersonal skills, curiosity, flexibility, and accountability
- Passion, thoughtfulness, and self-motivation
- Excellent communication and presentation skills
- Result-oriented, with a personal drive to meet commitments
- Ability to travel twice a year, for company events up to two weeks each
Additional skills that you might also bring
- Familiarity with existing open source networking technologies: SONIC / SAI, DENT, kernel (e.g. eBPF, AF_XDP), DPDK, Switchdev, OVN, Open vSwitch.
- Familiarity with data path hardware acceleration protocols and interfaces, such as RDMA, RoCE, iWARP, NVMe, SR-IOV
- Computer architecture knowledge of x86, ARM, and RISC-V
- Experience in complex IP network engineering and implementation
- Experience with virtualization technologies, e.g., QEMU, KVM, etc.
- Previous contribution to open source projects and community involvement
- Performance engineering and security experience
What we offer you
We consider geographical location, experience, and performance in shaping compensation worldwide. We revisit compensation annually (and more often for graduates and associates) to ensure we recognise outstanding performance. In addition to base pay, we offer a performance-driven annual bonus. We provide all team members with additional benefits, which reflect our values and ideals. We balance our programs to meet local needs and ensure fairness globally.
- Distributed work environment with twice-yearly team sprints in person
- Personal learning and development budget of USD 2,000 per year
- Annual compensation review
- Recognition rewards
- Annual holiday leave
- Maternity and paternity leave
- Employee Assistance Programme
- Opportunity to travel to new locations to meet colleagues
- Priority Pass, and travel upgrades for long haul company events
About Canonical
Canonical is a pioneering tech firm at the forefront of the global move to open source. As the company that publishes Ubuntu, one of the most important open source projects and the platform for AI, IoT and the cloud, we are changing the world every day. We recruit on a global basis and set a very high standard for people joining the company. We expect excellence - in order to succeed, we need to be the best at what we do. Canonical has been a remote-first company since its inception in 2004. Working here is a step into the future, and will challenge you to think differently, work smarter, learn new skills, and raise your game.
Canonical is an equal opportunity employer
We are proud to foster a workplace free from discrimination. Diversity of experience, perspectives, and background create a better work environment and better products. Whatever your identity, we will give your application fair consideration.
Hard Skills Required
- Networking Knowledge
- C/C++ Fluency
- Rust/Python/Golang
- Linux
Soft Skills Required
- Interpersonal Skills
- Collaboration Skills
- Communication Skills
- Result-Oriented
Job Schedule
- Shift Work