Senior Software Developer

In by

  • Location: Ottawa, ON
  • Type: Direct Hire
  • Job #32081

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.
Attach a resume file. Accepted file types are DOC, DOCX, PDF, HTML, and TXT.

We are uploading your application. It may take a few moments to read your resume. Please wait!