Position: Java Engineer
Company: OpenVPN
Category: Java
Experience required: 5y
English level: upper

You should have a strong working knowledge of Java, REST APIs, and databases, excellent in understanding security topics, be familiar with TCP/IP networking, SSL VPN, and distributed systems, possess a solid conceptual foundation in the development of distributed and cloud-computing systems, and have network programming understanding on Linux development environments.

You will join a team that is responsible for the requirement specifications, system specifications, software development and maintenance of several critical security-related cloud services.

  Required skills
• 4+ years of commercial programming experience;
• 4+ years of experience with Java;
• Experience of developing modern REST services on Spring Boot;
• Security topics hands-on with Spring Security (SAML, OAuth2);
• Сommon understanding of networks theory, traffic shaping, network security;
• Experience with RDBMS, NoSQL storages (MongoDB);
• Experience with deployment on Docker and AWS;
• At least upper-intermediate English, both spoken and written;
• Excellent communication abilities.

   As a plus
• Experience with messaging in Java (Kafka, RabbitMQ, etc.);
• Experience working with AWS SDK in Java;
• Hands-on with plain Java sockets or WebRTC / WebSockets;
• Hands-on work experience with Linux platforms;
• Experience in the security space, specifically PKI, encryption, x.509 certificates, SSL;
• Experience with performance testing (Apache Benchmark, JMeter, Gatling);
• Open Source experience.

We offer
Our philosophy is that we are a small, closely-knit team and we care deeply about you:

• Competitive salary;
• Great new office space;
• Flexible working schedule, partially remote work possible;
• Working directly with colleagues from Silicon Valley and around the world;
• Team trips, certification and events compensation, medical insurance, sports etc.;
• Last but not least, we are really fun to work with!

Responsibilities:
• Full-cycle development of Linux-based distributed server software, including development from scratch and maintaining existing services;
• Development of a web-based API (using JSON and REST) for management of product systems;
• Collaboration with other developers on development and deployment.