Обзор
Мы ищем опытного и квалифицированного Senior Full Stack Java Developer / Developer, который присоединится к нашей команде разработки. Идеальный кандидат будет иметь прочную основу в объектно-ориентированном программировании, большой опыт работы с Spring Framework и практический опыт фронтенд-разработки с использованием React JS.
Эта роль требует коллаборативного подхода, острого внимания к деталям и интереса к разработке высококачественных, масштабируемых и поддерживаемых программных систем.
Ключевые обязанности
- Проектирование, разработка, тестирование и поддержка высокопроизводительных, повторно используемых Java-приложений.
- Разработка и поддержка адаптивных фронтенд-компонентов с использованием React JS, JavaScript и сопутствующих технологий.
- Разработка и оптимизация SQL-запросов для реляционных баз данных, таких как DB2 или Oracle.
- Работа с системами обмена сообщениями, такими как RabbitMQ.
- Разработка масштабируемых решений с использованием архитектуры микросервисов для обеспечения модульности, доступности и простоты развертывания в распределенных системах.
- Создание и использование RESTful API для обеспечения интеграции бэкенда и фронтенда.
- Анализ требований и предложение эффективных технических решений с учетом функциональных и нефункциональных требований.
- Участие в полном цикле разработки программного обеспечения (SDLC), включая проектирование, реализацию, тестирование, развертывание и поддержку.
- Написание автоматизированных модульных и интеграционных тестов с использованием JUnit и Mockito.
- Написание и поддержка документации по программным компонентам и коду.
- Проведение и участие в коллегиальных проверках кода и обсуждениях дизайна.
- Обеспечение производительности, безопасности и доступности приложений.
- Выявление и устранение технических рисков и проблем; предложение и реализация практических решений.
- Проведение демонстраций и содействие обсуждениям с владельцами продуктов для валидации результатов.
- Поддержание проактивного подхода к изучению и внедрению новых инструментов и фреймворков.
Требуемые навыки и квалификация
- Общий опыт работы более 5 лет
- Степень в области компьютерных наук, инженерии или смежной области, или эквивалентная профессиональная ИТ-квалификация.
- Подтвержденный опыт разработки на Java, предпочтительно с Java 17 (минимум Java 8).
- Глубокие знания Spring Framework 6, Spring Boot 3.
- Опыт в разработке на основе тестов (TDD) и разработке на основе поведения (BDD) с практическим применением JUnit и Mockito.
- Демонстрируемый опыт фронтенд-разработки с использованием React JS и JavaScript.
- Практический опыт работы с реляционными базами данных, DB2 или Oracle.
- Твердое понимание принципов проектирования RESTful API.
- Опыт работы с архитектурой микросервисов.
- Практический опыт работы с системами обмена сообщениями, такими как RabbitMQ, IBM MQ.
- Опыт работы с Maven, Docker и Jenkins.
- Опыт работы с Git и понимание стандартных стратегий ветвления (Release Flow или GIT flow).
- Понимание стандартов безопасного кодирования (например, OWASP, CWE, SEI CERT).
- Широкий опыт работы над ИТ-проектами и понимание архитектуры корпоративных систем.
- Знание DevOps инструментов/практик будет преимуществом.
- Сильные навыки решения проблем, аналитические навыки и навыки отладки.
- Внимание к деталям с приверженностью к достижению высококачественных результатов.
- Эффективные навыки коммуникации и сотрудничества, включая проверку кода и обмен знаниями.
Желательно
- Опыт работы с Apache Camel или другими интеграционными фреймворками.
- Опыт работы в банковской сфере или сфере платежей.
- Уверенность в работе в Agile/Scrum средах с использованием инструментов, таких как JIRA, HP ALM и т.д.
- Понимание фреймворков автоматизированного тестирования, готовность учиться, вносить вклад и поддерживать постоянное совершенствование набора для автоматизированного тестирования.
В Endava мы стремимся создавать открытую, инклюзивную и уважительную среду, в которой каждый чувствует себя в безопасности, ценится и имеет возможность проявить себя наилучшим образом. Мы приветствуем заявки от людей любого происхождения, опыта и взглядов — потому что мы знаем, что инклюзивные команды помогают нам предоставлять более умные и инновационные решения для наших клиентов. Решения о найме основаны на заслугах, навыках, квалификации и потенциале. Если вам требуются корректировки или поддержка в процессе найма, пожалуйста, дайте нам знать.