EPAM Systems is seeking a Senior Java Full-Stack Developer who excels at building end-to-end solutions and making sound technical decisions. The role involves designing and developing complete features from the database layer to the user interface while contributing to the architecture of scalable systems.
Responsibilities:
- Design and develop complete features spanning the full stack, from database to UI
- Build and maintain robust, scalable, and resilient software solutions in production environments
- Design, develop, and integrate REST APIs, including connections with external services
- Make well-reasoned technical decisions and propose architectural improvements
- Ensure code quality through automated testing (unit and integration)
- Work with cloud infrastructure to support high-demand, distributed systems
- Collaborate on maintaining observability standards across services (structured logging, metrics, and tracing)
Requirements:
- 3+ years of full-stack development experience in production environments
- Proficiency in Java, with a proven track record of building end-to-end solutions
- Strong React skills (Next.js preferred)
- Hands-on experience with AWS (EKS, Lambda, S3, CloudWatch)
- Strong experience with Node.js (NestJS preferred)
- Solid understanding of design patterns and strong judgment for structuring code and projects
- Proficiency designing and developing REST APIs and integrating with external APIs
- Advanced handling of asynchronous programming (Promises, event loop, error handling)
- Experience with automated testing (unit and integration)
- Experience with both relational and non-relational databases
- Familiarity with event-driven architecture (SQS, RabbitMQ, or similar)
- Experience with Docker and a solid understanding of Kubernetes
- Knowledge of observability practices (structured logs, metrics, tracing)
- Understanding of API security (JWT, OAuth, access control)
- Experience with SSR/SSG and the judgment to choose the right strategy for each case
- Proficiency with state management (Redux, Zustand, or similar)
- Experience with UI testing (Jest, React Testing Library, or Cypress)
- Experience integrating with REST APIs and handling authentication and sessions
- Familiarity with basic performance optimization (bundle size, lazy loading)
- Proficiency in English at an Upper-Intermediate level (B2) or higher
- Experience designing scalable and resilient systems
- Knowledge of concurrency management and idempotency control