Мы ищем опытного Java-разработчика, с обязательным опытом работы в e-commerce от 2-х лет, для работы в продуктовой команде, отвечающей за создание и развитие высоконагруженной корпоративной системы.
Мы занимаемся разработкой продуктов в сфере онлайн продаж для ведущих компаний.
Для рассмотрения вашего резюме просим:
Выполнить одно из тестовых заданий:
Тестовое задание 4.1 (middle): Сервис управления конфигурациями событий (EventConfig)
Описание:
Необходимо реализовать микросервис, отвечающий за хранение и управление конфигурациями событий. Конфигурации используются другими частями системы для подписки и генерации уведомлений.
Сервис должен уметь работать с двумя хранилищами (MongoDB и Elasticsearch) и переключаться между ними.
Формулировка:
Опишите архитектуру сервиса: как организуете работу с разными хранилищами (MongoDB, Elasticsearch)?
Реализуйте REST API с возможностями:
POST /api/v1/event-config — создать конфигурацию события
PUT /api/v1/event-config/{id} — обновить конфигурацию
GET /api/v1/event-config — получить список конфигураций с фильтрацией по eventType, source, enabled
Предусмотрите возможность переключения между хранилищами (Mongo/Elasticsearch) через application.properties
Обеспечьте базовую валидацию входных данных и читаемость кода
Сущность EventConfig:
json
CopyEdit
{
"id": "string",
"eventType": "string",
"source": "string",
"enabled": true,
"createdAt": "datetime",
"updatedAt": "datetime"
}
Комментарий:
Оценка будет производиться по качеству архитектуры, коду, валидации, документации и организации проекта.
Важны читаемость, модульность, уверенное владение Spring Boot и основами работы с БД.
Тестовое задание 4.2 (senior): Конфигуратор событий + подписки + Webhook-интеграция
Описание:
Нужно разработать расширенный микросервис управления конфигурациями событий и подписками сторонних систем.
Сервис должен уметь хранить конфигурации, обрабатывать изменения, отправлять уведомления по webhook-подпискам и поддерживать работу с несколькими хранилищами.
Формулировка:
Опишите архитектуру сервиса: как выстроите переключение хранилищ, как организуете подписки и отправку webhook
Реализуйте REST API с возможностями:
POST /api/v1/event-config — создать конфигурацию
PUT /api/v1/event-config/{id} — обновить конфигурацию
GET /api/v1/event-config — получить список конфигураций с фильтрацией по полям
POST /api/v1/subscription — создать webhook-подписку на событие
POST /api/v1/notify/test — триггер для генерации webhook-события (можно имитировать Kafka event)
Реализуйте бизнес-логику:
При изменении EventConfig — генерировать событие и вызывать все подписанные callbackUrl
Сохранение подписок в отдельной сущности Subscription
Предусмотрите UI-friendly endpoint:
GET /api/v1/ui/event-configs — сгруппировать конфигурации по source и вернуть список
Сущности (можно адаптировать):
json
CopyEdit
// EventConfig
{
"id": "string",
"eventType": "string",
"source": "string",
"enabled": true,
"createdAt": "datetime",
"updatedAt": "datetime"
}
// Subscription
{
"id": "string",
"eventType": "string",
"callbackUrl": "string",
"active": true
}
Комментарий:
Важны архитектурные решения, устойчивость к ошибкам, изоляция бизнес-логики, расширяемость.
Дополнительно оценивается наличие тестов, документации, docker-compose, и обоснование архитектуры (в README.md).
Плюсом будет CI pipeline и схема архитектуры
После выполнения, просьба отправить сопроводительное письмо, в котором:
укажите ссылку или приложите файлы с результатами тестовых заданий
(оформите их в отдельном репозитории или архиве — чёткая структура проекта, README с инструкциями по запуску; допускаются Pull Request-ссылки на GitHub/GitLab);
сообщите ваш ожидаемый уровень дохода (gross/net, ₽);
опишите предпочтительный формат сотрудничества (тип оформления).
Дальнейшие этапы отбора
Техническое интервью — около 1 часа, онлайн;
Финальное интервью с руководителем проекта.
«UZUM TECHNOLOGIES»
Москва
от 400000 RUR