# Job Overview
As a System Software Engineer, you will have the opportunity to build upon your existing background, knowledge and expertise and contribute to I/O subsystem related Open Source projects, e.g. Linux kernel, DPDK, SPDK, Ceph, Container Storage, and etc., providing optimizations to key components and creating reference solutions. This contribution helps drive the development of world-class system software stack for architected hardware catering to different segments such as Server/Desktop/Embedded which become reference designs for futuristic solutions in the market. Be a part of brilliant Software Developers who all share a passion for wanting to stamp their mark on the future of computing, wherever it may lead. We seek individuals with exposure and knowledge of every level of the I/O subsystem software stack ranging from Kernel, common libraries and algorithms, distributed storage components and solutions.
# Responsibilities
- Collaborate with internal/external partners to understand enterprise or distributed I/O subsystem related requirements on ARM servers.
- Work with Phytium internal teams and external partners to identify missing software code and bottleneck, optimize related software stack on Phytium platforms.
- Work with open source communities to upstream patches and maintain code.
- Be flexible, with a variety of software development skills and a commitment to extend the breadth and depth of knowledge.
# Required Skills and Experience
- A strong undergraduate or postgraduate degree, ideally in Computer Science or Electronic Engineering, but other academic backgrounds will be considered with meaningful experience.
- Strong programming in C/C++.
- Proficiency in a high-level shell or scripting language such as Python.
- Strong and broad Linux kernel development experience.
- Outstanding problem-solving and collaboration skills.
- Motivated and dedicated to learning.
# Preferred Skills and Experience
- Understanding on ARM-v8 architectures. Familiar with concepts such as pipeline, cache, MMU and NUMA, and how these hardware facts impact high-level software performance. Experience in ARM based SW optimization is a good plus.
- Experience in at least one of the following areas: PCIe, block storage, object storage, and file system.
- Experience with kernel bypass (RDMA, DPDK, SPDK) is a good plus.
- Networking knowledge, including standards & protocol, is highly desirable.
- Experience in debugging and optimizing complex software systems. Familiar with Linux performance analysis tools and system level performance tuning.
- Experience with working with open-source community. We value familiarity with open-source project development cycles and contribution processes.
- Familiar with testing methodology and test automation. An awareness about the value of CI and automated test system.