Senior Software Engineer - Network Systems
Position Overview
We are seeking a Senior Software Engineer - Network Systems with strong proficiency in C/C++ and Python, and solid experience in the networking domain. The ideal candidate will be responsible for designing, developing, and maintaining software systems that power next-generation networking solutions, with a focus on performance, scalability, and reliability. Having hands-on experience in virtualized environments (VMs) - including setup, configuration, and network integration - along with the ability to design and develop robust, scalable networking software is also an essential requirement.
Key Duties and Responsibilities:
- Design and develop software modules using C/C++ for high-performance network applications.
- Part of the software also involves integrating with Python based modules.
- Work on L2-L7 networking protocols such as Ethernet, IP, TCP/UDP, BGP, OSPF, MPLS, and others.
- Collaborate closely with architecture and QA teams to define and deliver robust software components.
- Debug and resolve complex issues across multiple layers (application, transport, and network).
- Analyze crash files and debug with the team to resolve them
- Configure and troubleshoot virtual networking in virtual machine (VM) environments - bridges, TAP/TUN interfaces, VLANs, and virtual switches (like OVS).
- Deploy and test networking software inside VMs or virtualized test environments (e.g., KVM, VMware, VirtualBox, or cloud VMs).
- Collaborate with DevOps and QA teams to ensure seamless deployment, configuration, and testing workflows.
- Participate in design and code reviews, enforcing best practices for maintainable, high-quality code.
- Mentor junior engineers and contribute to technical design discussions and documentation.
Requirements:
- Bachelor's or Master's degree in Computer Science, Electronics, or related discipline.
- 7-10 years of hands-on software development experience in C/C++ and Python.
- Strong understanding of networking concepts and protocols - IPv4/IPv6, ARP, VLAN, TCP/IP stack, routing, switching, or network virtualization.
- Experience with Linux based systems - system programming, socket programming, and multithreading.
- Hands-on experience with packet capture/analysis tools (Wireshark, tcpdump, etc.).
- Exposure to DPDK/VPP, SDN/NFV, or network appliances is a strong plus.
- Experience integrating software with network management systems (NMS), SNMP, or REST APIs.
- Familiarity with CI/CD pipelines, Git, Jenkins, Docker, Kubernetes preferred.
- Excellent problem-solving and debugging skills in distributed systems.
- Good understanding of software design patterns and performance optimization techniques.
- Strong analytical thinking and attention to detail.
- Good communication skills and ability to work in a collaborative environment.
- Proven track record of delivering production-quality software in fast-paced teams.
Preferred / Good to Have:
- Experience with VPP (Vector Packet Processing) or DPDK-based applications.
- Strong understanding of networking concepts - TCP/IP stack, routing, switching, VLANs, ARP, IPv4/IPv6.
- Proven experience with Linux/Unix systems, socket programming, and multithreaded applications.
- Hands-on experience in setting up and managing virtual machines and virtual networks -
- including KVM, libvirt, VMware, or VirtualBox.
- Familiarity with configuring bridges, vSwitches, TAP/TUN interfaces, and NAT or host-only networking.
- Exposure to OpenConfig, NETCONF/YANG, gRPC, or telemetry systems.
What We Offer:
- Competitive salary
- Equity options
- Performance-based bonus opportunities
- Medical, Dental and Vision benefits
- Life Insurance
- Flexible PTO policy
- 401(k) plan