Ответ
Поиск нового проекта фокусируется на возможностях для технического роста и работе в здоровой инженерной среде.
Основные приоритеты:
- Современный технологический стек: Java 17+, Spring Boot 3, облачные нативные технологии (K8s, Docker), системы обмена сообщениями (Kafka, RabbitMQ), актуальные БД.
- Качество кода и процессы:
- Наличие и соблюдение стайл-гайдов.
- Обязательное ревью кода.
- Высокий процент покрытия автоматическими тестами разных уровней.
- Автоматизированные сборка и деплой (CI/CD).
- Инженерная культура команды: Коллеги с экспертизой, готовность делиться знаниями, focus на качестве, а не только на скорости.
- Архитектурная ясность: Четкое разделение ответственности между сервисами (в случае микросервисов) или модулями, документированные контракты API.
- Избегание рисков: Стараюсь минимизировать рассмотрение проектов, застрявших на устаревших версиях Java (например, 8) без планов миграции, с большим объемом legacy-кода без тестов и с ручными процессами деплоя.
Индикатор зрелого проекта:
# Наличие declarative конфигурации (например, для K8s или CI)
apiVersion: apps/v1
kind: Deployment
metadata:
name: order-service
spec:
replicas: 3
selector:
matchLabels:
app: order-service
template:
metadata:
labels:
app: order-service
spec:
containers:
- name: app
image: registry.company.com/order-service:latest
env:
- name: SPRING_PROFILES_ACTIVE
value: "prod"