We are seeking a highly skilled Senior Software Engineer with expertise in Packet Processing to join our team. The ideal candidate will have extensive experience in designing and optimizing high-performance network systems, with a strong background in developing scalable, low-latency solutions for data-intensive environments. In this role, you will work on cutting-edge technologies to enhance network protocols and packet processing frameworks. Your contributions will play a key role in delivering robust, reliable, and efficient network operations, ensuring our systems meet the evolving demands of modern infrastructure.
Main Responsibilities:
- Collaborate with experienced engineers in the design, coding, testing, and maintenance of software applications.
- Develop and maintain embedded software modules using programming languages such as C++ and Python .
- Design and implement high-performance packet processing applications using DPDK and similar frameworks.
- Optimize network functions for maximum throughput and minimal latency.
- Develop and maintain packet processing pipelines for various network functions.
- Troubleshoot complex performance issues in packet processing applications.
- Assist in the implementation of networking solutions to ensure seamless communication between software components.
- Contribute to the development of software tools, libraries, and frameworks to enhance overall product quality and efficiency.
- Participate in code reviews and provide constructive feedback to improve code quality and adherence to coding standards.
- Collaborate with the team to troubleshoot and resolve software defects and technical issues.
- Support the integration of software components on Linux operating systems.
- Assist in the testing and validation of software features to ensure functionality and performance meet specified requirements.
- Utilize cloud technologies to enhance software deployment and management.
- Collaborate with cross-functional teams, including product managers and designers, to understand requirements and contribute to technical discussions.
- Maintain clear and organized documentation of software designs, processes, and development tasks.
- Demonstrate effective teamwork and communication skills, both orally and in writing.
- Lead the design, development, and implementation of advanced satellite ground segment software systems, ensuring high performance, scalability, and reliability.
Education & Experience Required:
- Bachelor's or Master's degree in Computer Science , Computer Engineering , Electrical Engineering , or a related field.
- In-depth knowledge of packet processing development .
- Experience with the Vector Packet Processing (VPP) framework is a plus.
- Deep understanding of DPDK architecture and APIs .
- Familiarity with modern NIC features (e.g., RSS, checksum offload, scatter-gather).
- Experience with AF_XDP or similar kernel bypass technologies.
- Strong understanding of Linux-based network stacks , kernel modules, and performance optimization.
- Ideally 8+ years of experience in C/C++ for low-level network programming and high-performance packet processing.
- Solid understanding of networking concepts and protocols, including TCP/IP , UDP , VXLAN , GRE , etc.
- Familiarity with cloud technologies is a plus.
- Strong analytical and problem-solving skills.
- Ability to collaborate effectively within a diverse team.
- Excellent oral and written communication skills.
- Enthusiasm for learning new technologies and tools.
- Detail-oriented with a commitment to producing high-quality software.
- Ability to design software with consideration for hardware resource constraints.
- Experience in software development for satellite communication systems is a plus.