Position: Senior Java Software Engineer
Company: EPAM
Experience required: 5y
English level: intermediate

Responsibilities
- Design, develop and implement new functionality, as well as build enhancements, modifications, and corrections to existing software
- Contribute to the test-driven development (TDD), high levels of code coverage and automation
- Review code and establish best practices
- Look out for latest technologies and match up with use case
- Participate in knowledge sharing and contribute to the overall growth of the collective knowledge of the team
- Ensure code quality

Requirements
- 5+ years of experience in Java development
- Hands-on experience with Java 8 with exposure to OpenJDK 11
- Advanced TDD skills
- Vast knowledge of secure coding practices
- Ability to write clean code and create clean design
- Knowledge of and keeping to SOLID principles
- Experience with Spring & Spring Cloud
- Strong Microservices knowledge
- Good command of data structures and algorithms
- Problem-solving skills
- Ability to write an optimized code

Nice to have
- Exposure to or willingness to learn and gain experience on PCF
- Fundamental knowledge of Docker and Kubernetes
- Knowledge of Scaling Up and Down
- Pair programming experience & BDD
- Knowledge of Linux basic commands to browse the logs and understand the issues better

Technologies
- Java 8/11
- Spring Boot
- JUnit/Mockito
- MySQL
- Apache Kafka
- Apache Avro
- Git
- Jenkins
- PCF
- DDD/BDD/TDD

We offer
- Sane work hours
- Growth assignments so that you learn while you work
- Accelerated and personalized career growth
- Great learning culture, access to various learning portals, lots of internal trainings
- Active communities and technical events, hackathons, code retreat and dojos
- Term life insurance and group medical insurance
- Vacation donation policy in case of emergency
- Internal mobility policy for associates to relocate to different locations
- Lots of fun activities