We are seeking a highly skilled Senior Software Developer with expertise in Networking to join our team. The ideal candidate will have a strong background in developing software solutions for network infrastructure, protocols, and routing algorithms. This position requires a deep understanding of networking concepts and hands-on experience in designing and implementing scalable and efficient networking software.
Main Responsibilities
- Design, develop, and maintain software components for networking and routing systems, including protocol stacks, routing algorithms, and network management tools.
- Collaborate with cross-functional teams, including network architects, product managers, and quality assurance engineers, to gather requirements and ensure the successful delivery of networking software solutions.
- Implement and optimize network protocols such as TCP/IP, OSPF, IS-IS, MPLS, and Segment Routing to enhance network performance, reliability, and scalability.
- Develop software for Metro Ethernet Forum (MEF) services, including E-Line, E-LAN, and E-Tree, transported over pseudowires.
- Create software modules for network configuration, monitoring, and troubleshooting, leveraging tools and frameworks such as SNMP, NetConf, and YANG.
- Analyze and improve the performance of networking software, identifying bottlenecks and implementing optimizations to reduce latency and increase throughput.
- Contribute to the design and development of distributed systems and microservices architectures for large-scale network deployments.
- Write clean, maintainable, and well-documented code, following best practices and coding standards.
- Participate in code reviews, providing constructive feedback and ensuring code quality and adherence to coding guidelines.
- Investigate and resolve complex networking issues, collaborating with network operations and support teams to troubleshoot and identify root causes.
Education & Experience Required
- Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related field.
- Strong proficiency in software development, with a focus on networking and routing technologies.
- Strong programming skills in languages such as C++ and Python.
- Deep understanding of networking concepts, protocols, and architectures, including TCP/IP, VLANs, and routing protocols (e.g., OSPF, IS-IS, MPLS), as well as network virtualization (e.g., SDN, NFV).
- Experience with network simulation and emulation tools like NS-3, OPNET, or GNS3 (preferred).
- Strong experience in developing fast path packet processing software using DPDK/VPP and PMD drivers (strongly desired).
- Knowledge of network security principles, including secure communication protocols (e.g., SSL/TLS, IPsec) and network access control mechanisms.
- Familiarity with software development methodologies, such as Agile and Scrum.
- Excellent problem-solving and debugging skills, with the ability to analyze complex network scenarios and propose efficient solutions.
- Strong communication and collaboration skills, with the ability to work effectively in a team environment and convey technical concepts to both technical and non-technical stakeholders.
- Passion for continuous learning and staying up-to-date with emerging trends and technologies in the networking domain.