Network Systems Software Engineer
Develop distributed system software to implement Network services for a virtualized environment. Architect software to meet security, performance, scalability, reliability, and maintainability requirements. Define software architecture modules and their interfaces facilitating development by a team. Implement major software modules. Collaborate with the team to meet product milestones on time with high quality production software.
Key responsibilities:
- Architect software to deliver and manage network infrastructure services (e.g., Layer 2 services, firewall etc.) in a virtualized environment
- Implement, test, and document network virtualization and network services system software (~75% time hands-on coding)
- Collaborate with the software development team towards a common objective
- Drive software development methodologies that result in high quality, timely software
- Research relevant technologies, architectures, and standards as appropriate
- Resolve major customer technical issues with the software
- Communicate effectively with technical and management team and, as needed, customers
Required background and skills:
- MS in Computer Science (or BS with equivalent work experience)
- 4+ years experience in developing software for implementing or automating Layer 2 and Layer 3 protocol services, network infrastructure such as load balancers/firewalls, or equivalent
- 6+ years experience in developing commercial production software
- Strong knowledge in network protocols, network switching and routing, and network administration on Linux
- Strong programming skills in high level programming languages such as Python, Java on Linux
- Experienced in database programming and object relational mapping concepts
- Experience owning and delivering major software applications
- Broad knowledge across Operating Systems, Networking
- Self-directed, effective communication, great teamwork