Senior Software Engineer - Java
EPAM Systems
Responsibilities
- Design, develop, and maintain scalable, high-throughput web services using Java
- Collaborate with front-end engineers to integrate web services cleanly into web applications
- Implement RESTful APIs that ensure reliable client-side to server-side communication
- Ensure web services are robust, dependable, and secure by applying best practices and standards
- Optimize performance and scalability using techniques such as caching, load balancing, and database optimization
- Coordinate with product managers, architects, and QA engineers to deliver high-quality software solutions
- Participate in code reviews and provide actionable feedback while enforcing coding standards
- Stay up to date on modern Java development and web services trends
- Hands-on IT experience of 5+ years, including 5+ years of strong Java expertise
- Solid understanding of web services development, including RESTful APIs
- Practical experience with frameworks such as Spring Boot for building and deploying web services
- Proven track record implementing security best practices, including authentication and authorization using Spring Security and JWT
- Working knowledge of SQL queries and stored procedures, plus ORM frameworks like Hibernate for database interaction
- Strong command of Linux commands for day-to-day development and troubleshooting
- Deep understanding of web security principles and industry best practices
- Experience using version control systems such as Git and ADO
- Working knowledge of Azure DevOps (Sprint board, PR, Jenkins, Docker & Kubernetes, etc.)
- Ability to work with Swing, AWT, JavaFX, and Java Desktop Applications when needed
- Excellent problem-solving and analytical skills
- Ability to collaborate effectively within a team environment
- English proficiency at Upper-Intermediate (B2) or higher
- Bachelor's degree in Computer Science, Engineering, or a related field
- Knowledge of Angular
- Experience with microservices architecture
- Familiarity with cloud platforms such as AWS, Azure, or Google Cloud Platform
- Knowledge of containerization technologies like Docker and orchestration tools like Kubernetes
- Background in Agile development methodologies, with certification in Java programming or related technologies