Старший Java разработчик в платформу бизнес-приложений

Дата размещения вакансии: 29.10.2024
Работодатель: Яндекс
Уровень зарплаты:
з/п не указана
Город:
Казань
Требуемый опыт работы:
От 3 до 6 лет

Старший Java разработчик в новую платформу бизнес-приложений

Проект ИКО планируется как группа приложений для управления договорами, заключёнными между компаниями группы Яндекс. Таких договоров много, их структура и условия сильно различаются. Проект будет состоять из двух частей: платформы и конкретных бизнес-приложений для заказчиков (бухгалтеров, юристов).

Платформа будет набором компонентов, абстрактным слоем и инфраструктурной обвязкой. В каждом проекте мы будем добавлять в платформу новые функции. Основная цель подхода — передавать функциональность пользователю в кратчайшие сроки.

Бизнес-приложения хотелось бы писать в относительно декларативном стиле, максимально переиспользуя код платформы. Кроме того, уже есть ряд близких по смыслу прикладных проектов в продакшн у соседних команд, к которым по необходимости можно обращаться за вдохновением, примерами, инфраструктурными наработками.

Наш стек технологий: Java, Spring, Spring Boot, Spring Security, PostgreSQL.

Какие задачи вас ждут:

  • Участие в в проектировании архитектуры новой платформы
    В рамках новой платформы в области внутренних финансов и документооборота необходимо заложить архитектуру, технические процессы, выбрать детали стека. Вы будете продумывать возможные точки расширения, создание контрактов для общей функциональности и реализацию интеграций. Кроме того, предстоит писать код самой платформы и прикладных приложений, покрывать его юнит-тестами и подключать в мониторинг.
  • Работа с базами данных и их оптимизация
    Вы будете составлять и оптимизировать OLTP- и OLAP-запросы, проектировать схемы баз данных и составлять сложные SQL-запросы.
  • Тестирование и отладка
    Предстоит написание и поддержка модульных и интеграционных тестов, исправление багов, найденных в процессе тестирования или в рабочем окружении.
  • Деплой платформы
    Подготовка и поддержка инфраструктуры каждого проекта — неотъемлемая часть работы над ним. Так как мы оптимизируем именно время работы над прикладным проектом, в эту часть надо будет также вложиться и сократить время подготовки окружений для прикладных проектов до минимума. У нас уже есть автоматизация сборки, развёртывания, типовой пайплайн для проектов, но это только начало. Мы рассматриваем варианты как одновременной работы нескольких прикладных проектов в одной инсталляции (multitenant-схема), так и подъёма окружения по кнопке.
  • Участие в общении с заказчиками и смежниками
    Каждый проект — это много специфичной бизнес-логики и интеграций для конкретного заказчика. Для разработки важно понимать большую картину происходящего и отделять важное от второстепенного.

Мы ждем, что вы:

  • Занимались коммерческой разработкой на Java более пяти лет
  • Разрабатывали высоконагруженные или критичные к ошибкам приложения с использованием Spring Boot
  • Работали с безопасностью приложений, включая кастомизацию авторизационных механизмов с помощью Spring Security
  • Оптимизировали сложные запросы, занимались построением индексов и планов запросов для улучшения производительности
  • Знаете архитектурные паттерны и лучшие практики при использовании Spring-экосистемы
  • Умеете проектировать архитектуру сложных систем с акцентом на масштабируемость, отказоустойчивость и производительность
  • Знаете, что отличает хорошие тесты от плохих и когда они не нужны

Будет плюсом, если вы:

  • Разрабатывали финансовые системы
  • Работали с нестандартными типами данных PostgreSQL, такими как JSON и JSONB
  • Использовали в работе jOOQ
  • Создавали и документировали API с использованием OpenAPI-спецификаций, генерировали серверный и клиентский код на основе OpenAPI-контрактов, обеспечивали совместимость API между версиями, занимались поддержкой версионирования и обратной совместимости