OpenVPN Inc is looking for a Software Architect with strong working knowledge of Python, JSON and REST APIs, Databases, TCP/IP Networking, and SSL VPNs. The ideal candidate will possess a solid conceptual foundation in the development of client-server software with an emphasis on network routing, load balancing, secure APIs, congestion control, reliability, performance monitoring, and reporting.
The candidate should have 5 or more years of programming experience preferably on Linux server environments. Open Source experience is a plus.
- Responsible for the requirement specifications, system specifications, software development, testing and maintenance of OpenVPN Access Server Software.
- System requirements and specifications of OpenVPN commercial software
- Development and support of Linux based server software
- Development of a Web-based API (using JSON and REST) for management of OpenVPN commercial software.
- Lead a team of other developers for development and deployment
- 10+ years of industry experience
- Should have prior Lead experience
- Knowledge of system architecture and deployment (deb and rpm), redundancy and application scaling on Linux servers
- Bachelor's degree in Computer Science or related field or equivalent work experience
- Strong networking experience on Linux including deep understanding of the Linux network stack and kernel networking modules such as xfilter/netfilter
- Strong programming experience on Python (ideally experience with Java, Boost, Ember.js, Twisted and SQLAlchemy)
- Solid experience in JSON and REST API development on both server and client side
- Experience with RDBMs (MySQL), NoSQL (Cassandra) and key-value store (Redis/Memcache)
- Hands-on work experience with Linux platforms in a networking environment (Windows and Mac OSX network client experience is a plus)
- Experience with change management tools (Git) and the standard software development cycle
- Knowledge of SSL VPNs, IP routing, BGP, and other dynamic routing protocols
- Knowledge of encryption, PKI and other security concepts
- Knowledge of the following communication protocols: TCP/IP stack (UDP and TCP), Berkeley sockets, HTTP, HTTPS, and other networking protocols
- Nice to have Java, C/C++