Senior Java-разработчик, микросервисы
Компания Swordfish Security разрабатывает AppSec.Hub — enterprise-платформу класса ASPM/ASOC: оркестрация сканеров безопасности (SAST/DAST/SCA и др.), дедупликация и приоритизация уязвимостей по всему конвейеру разработки. Продукт компании Appsec Solutions.
Ищем инженера, который понимает платформу на уровне JVM, а не только аннотации фреймворка.
Чем предстоит заниматься:
- Проектировать и разрабатывать микросервисы ядра на Java 17 / Micronaut (без Spring).
- Работать с event-driven-обменом: вся межсервисная связь через брокер сообщений, async-first, database-per-service, eventual consistency.
- Решать задачи высоконагруженной обработки: многопоточность, неблокирующий I/O, оптимизация под GC и JIT.
- Работать с данными: PostgreSQL (через MyBatis), аналитика на ClickHouse, кэш и read-модели на Redis.
- Закрывать observability (метрики/логи/трейсинг).
- Активно использовать AI-ассистированную разработку (Claude).
Стек и архитектура:
- Ядро: Java 17 + Micronaut (без Spring), встроенный Netty.
- Обмен: асинхронный, через брокер (LavinMQ / AMQP) — async-first, database-per-service, eventual consistency.
- Данные: PostgreSQL (MyBatis), ClickHouse, Redis.
- Контракты: Protocol Buffers (сообщения) + OpenAPI 3.1 (REST).
- Эксплуатация: Docker / Kubernetes.
Требования:
Платформа Java:
- Java 17 на уровне платформы; Micronaut 4.x (без навязанной зависимости от Spring).
- I/O: io / nio / nio2; понимание встроенного HTTP-сервера (Netty).
- Stream API.
- Многопоточность и concurrency, понимание JMM.
- Понимание JIT и GC, умение диагностировать и оптимизировать.
- GraalVM / native-image.
Данные:
- Уверенная работа с реляционными БД и понимание их внутреннего устройства: транзакции и изоляция, индексы, планировщик, пул соединений. Основная PostgreSQL (MySQL / другая реляционка — без разницы, важна модель).
- MyBatis (поверх JDBC) и миграции (Liquibase).
- ClickHouse (аналитика / eventstore).
- Redis (кэш, read-модели CQRS).
Распределённые системы:
- AMQP: LavinMQ / RabbitMQ — продюсеры/консьюмеры, exchange-типы (direct/topic/fanout).
- Паттерны надёжности: идемпотентность, at-least-once, ретраи, eventual consistency, backpressure.
- Protocol Buffers (proto3) как сериализация сообщений (не gRPC-RPC).
- HTTP/1.1 и HTTP/2.
Инфраструктура:
- Docker, Kubernetes.
- Observability: метрики, логи, распределённый трейсинг.
- Vibecoding: промпт-инжиниринг под Claude, использование skills и subagents.
Обязательное условие отбора: принести живой, непримитивный проект на Java — будем разбирать его вместе.
Условия:
- Опыт работы: более 6 лет.
- Занятость: полная.
- График: 5/2, рабочие часы: 8.
- Формат работы: на месте работодателя, удалённо или гибрид.
- Конкурентоспособный уровень вознаграждения (обсуждается с успешным кандидатом).
- Работа в сильной динамичной команде.
- Удалёнка (на территории РФ), гибрид или офис.
- ДМС со стоматологией после успешного прохождения испытательного срока.