Lead Software Architect

Job description

OpenVPN Inc is looking for a Lead 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.

 

RESPONSIBILITIES

  • 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

Requirements

QUALIFICATIONS

  • 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)
  • Experience in programming application UI and web UI (HTML/CSS and Javascript)
  • Solid experience in JSON and REST API development on both server and client side
  • Experience with RDBMs (MySQL), NoSQL (MongoDB) 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++