Software Engineer - Java with Data Structures & Algorithms
We're seeking a Software Engineer with expertise in Java and Data Structures & Algorithms to join our engineering team and support the creation and delivery of scalable, high-performance applications.
Responsibilities
- Work as part of a software engineering team, contributing to builds through consistent development practices
- Identify and debug basic software components to resolve code defects
- Support the development, monitoring, and maintenance of software across test, integration, and production environments
- Automate deployment processes in test or production environments
- Comply with security and regulatory requirements
- Design and help implement APIs
- Apply best practices for automated unit, integration, and regression testing
- Take part in pull request reviews to maintain code quality
- Contribute to software development within an Agile team, influencing team goals and overall architecture
- Keep infrastructure safely extensible, scalable, and reliable while meeting SLAs for internal and external users
- Deliver software solutions that are testable, intuitive, and easy to maintain
Requirements
- 4-6 years of experience in software development, testing, and implementation
- Bachelor's or Master's degree in Computer Science, Engineering, Information Systems, or a related STEM discipline
- Strong understanding of Java 8, Data Structures & Algorithms, and Microservices
- Solid experience with REST APIs, JSON, and Kafka
- Working knowledge of RDBMS and NoSQL technologies such as MongoDB, Redis, and PostgreSQL
- Proficiency with Spring Boot, Maven, and GIT
- Familiarity with Jenkins, GitHub Actions, and Agile development practices
- Strong understanding of Linux/Unix and Gradle/Maven
- Proven ability to build scalable, low-latency applications using multi-threaded, asynchronous, and reactive programming
- Hands-on experience deploying containerized applications to cloud environments using Kubernetes and Docker
- Solid knowledge of high availability techniques, profiling, and performance analysis
- Strong capabilities in Design Patterns, System Design, and Problem Solving
Benefits
Opportunity to work on technical challenges that may impact across geographies
Vast opportunities for self-development: online university, knowledge sharing opportunities globally, learning opportunities through external certifications
Opportunity to share your ideas on international platforms
Sponsored Tech Talks & Hackathons
Unlimited access to LinkedIn learning solutions
Possibility to relocate to any EPAM office for short and long-term projects
Focused individual development
Benefit package:
- Health benefits
- Retirement benefits
- Paid time off
- Flexible benefits
Forums to explore beyond work passion (CSR, photography, painting, sports, etc.)