Software Lead/Architect

Job description

OpenVPN Inc is looking for a hands-on Java Architect with in-depth knowledge of Java, JSON and REST APIs, Databases, TCP/IP networking, SSL VPN, Routing protocols and Distributed systems. The ideal candidate will possess a solid conceptual foundation in the design and development of distributed and cloud-computing systems with an emphasis on high availability systems, cloud management and provisioning, network routing, load balancing, secure APIs, congestion control, reliability, performance monitoring, and reporting. The candidate should have 5 or more years of network programming experience on Linux development environments. Open Source experience is a plus.


RESPONSIBILITIES

  • Expert-level Architect responsible for designing scalable architectural systems for the company's current and future software application needs
  • Responsible for the requirement specifications, system specifications, software design, development, testing and maintenance of the backend for several upcoming OpenVPN products
  • Development and support of a Linux based backend services layer to support our front end teams for our products
  • Development of a web-based API (using JSON and REST) for operation and management of OpenVPN systems
  • Strong Lead skills who will be responsible for onsite and offshore co-ordination
  • Lead a team of Backend developers for development and deployment

Job requirements

REQUIRED SKILLS

  • 8+ years of industry experience
  • Previous experience as a Software or Java Architect
  • Knowledge of system architecture and deployment (containers, deb and rpm), redundancy and application scaling on Linux servers
  • Strong hands-on programming skills on Java and JavaScript (ideally technologies like Spring, Hibernate)
  • Solid experience in JSON and REST API development on both server and client side
  • Experience with NoSQL (MongoDB) and key-value store (Redis/Memcache)
  • Experience with notification and message queuing systems (Kafka, SNS/SQS)
  • Hands-on work experience with Linux platforms in a networking environment (Debian)
  • Experience with change management tools (Git) and the standard software development cycle
  • Experience with deployment on Docker and AWS
  • Bachelor's degree in Computer Science or related field or equivalent work experience

DESIRED SKILLS

  • Knowledge of SSL VPNs, IP routing, BGP and other dynamic routing protocols
  • Knowledge of encryption, PKI and other security concepts
  • Knowledge of authentication mechanisms such as SAML and OAuth
  • Knowledge of the following communication protocols: TCP/IP stack (UDP and TCP), Berkeley sockets, HTTP, HTTPS and other networking protocols
  • C/C++ experience