Position: Senior Linux Kernel Software Engineer
Company: PLVision
Category: C++
Experience required: 3y
English level: intermediate

If you have a solid understanding of Linux kernel driver development and upstreaming processes with emphasis on networking hardware, do not hesitate to apply.

PLVision works on the cutting edge of technology, so you won't need to deal with some outdated legacy code. Join our mature expert community and take your professional growth to the next level.

Project Definition
You will join a Linux Switch team working directly with the netdev Linux Kernel community and maintaining the "mlxsw" upstream driver for Spectrum ASICs. The "mlxsw" driver provides offload capability for the switch/router ASIC families.

The upstream Linux kernel switch/router offload infrastructure is a state-of-the-art product, aiming to modernize switch/router software support for networking offloads and the networking operation system (NOS).

Client profile
Our customer is an Israel-based leader in the network equipment market, recently acquired by a multinational technology corporation. PLVision has been working with the customer since 2015, and the team, as well as the variety of projects, is constantly expanding.

About PLVision
PLVision is a software product development services company specializing in computer networking, embedded systems, and the Internet of Things Connectivity. Operating in the global market since 2007, we help networking industry leaders and ambitious startups launch innovative products.

Vacancy responsibilities:
- Design and develop upstream low-level switch/router networking infrastructure and offload driver in Linux
- Provide solutions to complex networking offloads and hardware control logic to work seamlessly with the rest of the ASIC networking pipeline
- Enhance software requirements and influence the hardware design of future networking ASICs
- Solve complex technical issues within the cross-boundary team
- Define, implement, and upstream kernel-user APIs

Vacancy requirements:
- Master's or Bachelor's degree in Computer Science or Computer Engineering
- 5+ years of experience in C
- Good Python and Bash programming skills
- Understanding of basic programming primitives, data structures, multithreading, and memory management techniques
- Excellent analytical and problem-solving skills
- Strong verbal and written communication skills, self-motivation

Vacancy plus options:
- Proven experience in analyzing and solving complicated multi-layer embedded platform issues
- Experience with Berkeley Packet Filter (BPF) programming
- Familiarity with networking offload engines