
Флексмайнд Тех.
Senior Java developer
- Java
- SQL
- Spring Framework
- Kafka
- Elasticsearch
- Kubernetes
- Spring
- REST
- Микросервисы
- Redis
Мы ищем опытного Java-разработчика, с обязательным опытом работы в e-commerce от 2-х лет, для работы в продуктовой команде, отвечающей за создание и развитие высоконагруженной корпоративной системы.
Мы занимаемся разработкой продуктов в сфере онлайн продаж для ведущих компаний.
Чем предстоит заниматься:
- Развивать продуктовое решение;
- Участвовать в проработке архитектуры продукта;
- Выбирать оптимальные паттерны, структуры данных и инструменты их обработки;
- Проводить рефакторинг и поддерживать имеющийся функционал;
Для нас важно:
- Понимание принципов построения микросервисной архитектуры;
- Уверенные знания Java 21+.
- Понимание SOLID;
- Опыт работы с Spring Framework (Core, Boot, Security, Data);
- Опыт работы с реляционными БД (Postgresql) и NoSQL БД (Elastic, Redis, MongoDB);
- Опыт работы с брокерами сообщений (Kafka);
- Опыт разработки корпоративных систем от 3-х лет;
- Понимание сферы разработки e-commerce продуктов.
- Английский язык на уровне чтения технической документации.
Наши преимущества:
- Оформление в аккредитованную IT-компанию;
- Конкурентная заработная плата;
- Гибкий график работы: вы сможете планировать время так, как удобно вам.
- Удаленный формат работы, вы можете работать из любой точки мира.
- Сложные и интересные задачи, современный стек технологий.
Для рассмотрения вашего резюме просим:
Выполнить одно из тестовых заданий:
Тестовое задание 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 часа, онлайн;
-
Финальное интервью с руководителем проекта.