Position: Senior Back-end Java Engineer
Company: Svitla Systems
Category: Java
Experience required: 5y
English level: intermediate

**Requirements:**
Active involvement in the design and building of scalable and performing data-driven software applications;
Strong capability in Java, Java EE, RESTful Web Services (JAX-RS), Microsoft SQL Server and Azure SQL Database; 
Experience working with applications within an Azure cloud environment would be advantageous;
Understanding and adhering to developing secure code meeting OWASP standards;
Experience working in a continuous integration and deployment environment; 
Experience practicing Scrum/Kanban and ability to adapt to Scrum values; 
Good analytical and problem-solving skills;
Works effectively & independently in a dynamic team environment;
Proven time management, organizational and follow-up skills to meet deadlines;
Quality-orientation with passion for customer satisfaction;
Excellent interpersonal and communication skills; 
Demonstrated initiative to learn & experiment with new technologies and processes;
Strong work ethic and professionalism;
Java 8 and above;
Java EE 7, Microprofile (Spring Boot experience is ok too);
REST Web APIs (JAXRS) and Data API (OData);
Messaging systems and AMPQ (eg. Azure Service Bus, Rabbit MQ or Redis);
Distributed systems;
Docker, Kubernetes, OpenShift and similar;
Caching, familiar with Cache-Aside pattern and Redis clients like  Redisson, Jedis or Lettuce;
Security and Secure Coding, OWASP top 10, OpenID Connect and/or OAuth2.
Education:
BS in Computer Science, or STEM (Science, Technology, Engineering, and Math) or equivalent work experience.

**Responsibilities:**
Participate in Agile software development (Scrum/Kanban) from concept design to full-stack code and testing; 
Write concise code, clear, well-tested, well-documented and with quality that adheres to industry best practices;
Code for quality, performance, scalability, efficiencies, and security; through testing, code scanning, refactoring, and monitoring;
Collaborate with the team to define/refine requirements, break down into development tasks, estimate effort, and plan milestones & deliverables;
Develop and maintain UI applications (web, mobile, etc.) and/or web APIs (RESTful & messaging-based);
Proactively get your code reviewed with a view to learning and adapting any suggestions;
Advocate for simplicity, reliability, manageability, scalability, extensibility, reusability, and performance;
Be a proactive team member who contributes, collaborates, and demonstrates positive behavior;
Always strive to learn new ideas and innovative practices from within your team and external sources;
Ability to identify and address technical debt – communicate your findings, especially when it becomes a risk to the quality or timely delivery of our software;
Carry out root cause analysis on defects to ensure fixes are happening in the right way.