Striving for excellence is in our DNA. Since 1993, we have been helping the world’s leading companies imagine, design, engineer, and deliver software and digital experiences that change the world. We are more than just specialists, we are experts.
Currently we are looking for a Java Developer for our Seattle, WA office to make the team even stronger.
This position will be a key on-site resource for our clients, supporting design and development of leading edge solutions for EPAM.
Design and develop applications, coordinating with the rest of the team, working on different layers of the application;
Provide expertise in the use of best practices and design patterns within Software Engineering;
Significantly contribute to software design and architecture, develop both new applications and improve our existing ones in performance, capability, and reliability. Therefore, a commitment to collaborative problem solving, sophisticated design, and quality product is essential;
Participate in requirements gathering sessions that define what we are going to build and help develop a more detailed story as we follow Agile/Scrum framework;
Complete development projects assigned by the Application Development Manager by priority;
Contribute to the team by employing best practices in utilizing a broad platform of technologies within a cloud native development environment;
Leverage development expertise to achieve business objectives for the development of the project;
Embrace change in a dynamic environment that is tool agnostic. Be flexible enough to use the tool that will best fit the requirements;
Design, build, and maintain efficient, reusable, and reliable Java code;
Ensure the best possible performance, quality, and responsiveness of applications;
Identify bottlenecks and bugs, and devise solutions to these problems;
Help maintain code quality, organization, and automatic testing;
Participate in peer code reviews and technical meetings;
Work in an Agile Scrum team process, collaborating closely with fellow developers, team leads, and stakeholders;
Troubleshoot and support system and application problems.
6+ years’ experience (Senior Engineer preferred); Java 8 (Stream processing, Spring framework - especially Spring Boot); RESTful web services; AWS service (i.e., EC2, S3, Elastic Beanstalk, SNS, DynamoDB, IAM, Lambda, etc.); CI/CD (e.g., GoCD, Jenkins, Concourse, etc.); Docker containers Dependency Management (Maven, Gradle, etc.); Testing: TDD (preferred); Unit (JUnit) and integration testing (i.e., WireMock, Cucumber, Mockito);
Proficient in Java ecosystems;
Strong understanding of object-oriented programming;
Experience using dependency injection containers;
Familiar with various design and architectural patterns;
Knowledge of concurrency patterns in Java;
Familiarity with any major RDBMS (e.g. MySQL) and fundamental understanding of DB design;
Knack for writing clean, readable Java code;
Understanding of fundamental design principles behind a scalable application;
Experience implementing automated testing platforms and unit tests;
Proficient understanding of code versioning tools;