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 Senior Java Developer for our Mountain View, CA office to make the team even stronger.
As a Senior Java Developer, you will be a key on-site resource for our clients, supporting design and development of cutting-edge solutions at EPAM. This initial, specific project is related to building a Data Management API which allows a programmatic access to huge amounts of complex data.
Design and develop applications and coordinate 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 requirement;
Design, build, and maintain an 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.
5-10 years of Java experience, including anything from back-end services to client-end counterparts;
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 a 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;