Position: Platform Software Developer
Company: Luxoft
Category: QA
Experience required: 3y
English level: upper

Project Description:
Cisco Nexus 9000 line of products are switches designed for Data Centers which run the Cisco NX-OS operating system.
NX-OS is a Linux-based OS. There are multiple variants of NX-OS, depending on the hardware platform, as well as two modes: Application Centric Infrastructure (ACI) mode and plain NS-OS (standalone) mode. The ACI mode provides functionality for integrating within the Cisco ACI solution.


This software developer role is focused on Open Source Software (OSS) customization, including customizing the Linux Kernel, other operating system layers, as well as some of the OSS libraries used by the application level developers.
These customization range from changes to support networking specific features, to fixing security issues, such as Common Vulnerabilities and Exposures (CVEs).

Technologies:
- Linux Kernel development
- Yocto
- Embedded C
Responsibilities:
Responsibilities
1. Work in fast paced cross function organization
2. Design, develop and maintain high quality, state of the art embedded software
3. Timely resolution of security threats and customer issues according to Cisco's policy
4. Work with the hardware, platform, application software, QA and technical support teams to ensure on time delivery of releases


Linux kernel customization
1. Porting newer version of kernel on target platforms
2. Address open CVEs
3. Introduce new kernel features and configurations
4. Plan and assist application teams adopt new kernel versions and features
5. Debug kernel, patches, KLMs, use space libraries and apps problems
6. Perform comparative kernel performance analyses
7. Perform comparative kernel memory footprint analyses
8. Perform comparative in service software upgrade analyses


Yocto distribution customization
1. Adoption of new distributions and open-source component version
2. Address open CVEs
3. Debug application compatibility problems
4. Introduce new features
5. Plan and assist application teams adopt new open-source components and features
6. Perform comparative performance analyses
7. Perform comparative memory footprint analyses
8. Perform comparative in service sw upgrade analyses
9. Enhance build and release automation framework and process
Mandatory Skills Description:
- Experience setting up the YOCTO Linux build toolchain
- Experience in Linux kernel development and configuration
- Experience in Linux application development
- C/C++ programming skills
- Experience with the GNU toolchain (gcc, gdb, make, autotools, binutils)
- Experience with cross compilation
- Excellent communication skills
Nice-to-Have Skills:
- Experience with Buildroot
- Experience designing and configuring software build systems in general
- Scripting experience in Python, Bash
- Experience with performance profiling tools
- Experience in boot time optimization
Languages:
English: B2 Upper Intermediate
	VR-73410