Network Software Engineer
As a Network Software Engineer at Network Perception, you will lead the design and implementation of a state-of-the-art network modeling solution that is a core part of our software products. This position combines in-depth knowledge about networking protocols and access control algorithms with extensive software engineering practice and the ability to implement reliable software modules with highly-usable APIs.
Responsibilities:
- Lead the implementation of a network modeling module
- Analyze complex requirements and identify efficient design options
- Build reusable code and libraries for future use
- Optimize the application for maximum speed and scalability
- Implement security and data protection
- Design and implement data storage solutions
- Collaborate as a full time member of the software development team
- Participate in code reviews and research discussions
- Support quality assessment operations and technical requests from developers and users
Qualifications:
- Strong analytical and problem solving skills
- In-depth knowledge about networking protocols and the TCP/IP stack
- Perfect understanding of access control lists, address translation, tunneling, and standard routing protocols
- Expert in a high-performance programming language such as C++ or Golang
- Fluent with Unix toolset, Git, and Python
- Solid experience with test-driven development
- BS or MS in Computer Science (or related) with at least 5 years of relevant experience
Additional experience highly desirable:
- Experience with high-performance computing, scalable memory allocation, and/or task scheduling
- Excellent ability to effectively communicate product architectures, design proposals and discuss options
- Strong knowledge of formal methods and software verification
- Experience with computer security and secure programming