Software Engineer - Java with Data Structures & Algorithms
We are seeking a Software Engineer with expertise in Java and Data Structures & Algorithms to join our engineering team and help develop scalable, high-performance applications.
Responsibilities
- Serve as part of a software engineering team, contributing to builds using consistent development practices
- Identify and fix basic software defects through debugging
- Support the development, monitoring, and maintenance of software across test, integration, and production environments
- Streamline deployments through automation in test or production settings
- Comply with security and regulatory standards
- Contribute to designing and implementing APIs
- Implement best practices in automated unit, integration, and regression testing
- Review pull requests to maintain high-quality code standards
- Contribute to an Agile team's software development efforts while shaping team goals and overall architecture
- Maintain infrastructure that is scalable, reliable, and safely extensible while meeting SLAs for internal and external users
- Deliver software solutions that are maintainable, testable, and user-friendly
Requirements
- 4 to 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 proficiency in Java 8, Data Structures & Algorithms, and Microservices architecture
- Solid experience with REST APIs, JSON, and Kafka
- Familiarity with RDBMS and NoSQL databases such as MongoDB, Redis, and PostgreSQL
- Hands-on experience with Spring Boot, Maven, and GIT
- Knowledge of Jenkins, GitHub Actions, and Agile methodologies
- Strong understanding of Linux/Unix systems and Gradle/Maven build tools
- Proven ability to build scalable, low-latency applications using multi-threaded, asynchronous, and reactive programming
- Practical experience deploying containerized applications to cloud platforms using Kubernetes and Docker
- Deep understanding of high availability strategies, profiling, and performance tuning
- Strong command of Design Patterns, System Design, and Problem-Solving techniques
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.)