Java-резюме слабо не из‑за отсутствия слова Spring в каждом абзаце. Оно слабо, когда вместо поставки стоят «ООП, SOLID, коллекции, многопоточность» без сервиса, который можно открыть и запустить. Рекрутер ищет API, данные, транзакции, выкат — то, о чём можно спросить на скрининге за двадцать секунд, а не лекцию по языку. Паттерны спросят на созвоне; в файле нужен контур, который вы доводили до продакшена своими руками. Учебный CRUD с честным README сильнее выдуманных микросервисов и стены SOLID в шапке. Данные и транзакция в пулях обязательны для большинства Java-слотов на CIS-рынке.
Ниже — как собрать резюме Java-разработчика: заголовок, Spring и данные, пули, два заполненных примера, что не писать про паттерны. Каркас — в как составить резюме. Пули — в как описать опыт. Вход — в как стать Java-разработчиком. Соседний общий backend — резюме backend. Стек языка — java-roadmap. После сборки прогоните файл через проверку резюме: SOLID в шапке и отсутствие транзакции в пулях всплывают сразу. Android в этот файл не кладите.
Коротко:
- Заголовок = Java backend + Spring (если это так) + домен, не «Java/Kotlin/Android» без факта.
- SOLID и коллекции не в шапку: это ожидают на созвоне, в файле нужен сервис.
- Пули: API, БД, очередь, транзакция, тест, инцидент.
- Микросервисы пишите, если были границы сервисов и контракт, не два jar на одной VM.
- Один репозиторий со Spring-сервисом сильнее сертификата Oracle без кода.
Что смотрят на Java-отклике
На вакансиях Java-разработчика за 15 секунд:
- Backend на JVM или Android / десктоп / «немного Java в вузе»?
- Spring Boot в проде или только курс?
- Данные: JPA/JDBC, транзакции, миграции?
- Есть ли поставка: тесты, CI, не только main в IDE?
- Грейд: учебный CRUD на слот senior банка?
Карточка — резюме IT-специалиста. Стек — стек в резюме. Summary — summary. Без штата — резюме без опыта.
Структура
Шапка: Java, Spring (если есть), домен, город / UTC, ссылка. Summary: контур, 2 факта. Опыт. Навыки: язык и Spring; данные; сообщения; тесты; поставка. Не блок «знание ООП». Образование внизу. Сертификат Oracle — вниз, если сдан.
Kotlin на backend пишите, если писали. Android — отдельный файл: резюме Android. Remote — удалёнка.
Заголовок без лекции по ООП
Было. Java-разработчик. ООП, SOLID, DRY, паттерны, коллекции, многопоточность, JVM, Spring, Hibernate, Kafka, Docker, Kubernetes. Стремление писать чистый код.
Стало. Java backend, Spring Boot / PostgreSQL, заказы и статусы. 2 года. Сервис уведомлений: [ссылка]. Kafka в проде не вёл — в шапке нет. Казань / UTC+3, hybrid.
Паттерны спросят на интервью. В файле они занимают место сервиса. Вычеркните всё, к чему не готовы писать тестовое.
Как писать Spring и данные
Пули про:
- ресурс API, валидация, ошибки, безопасность если ваша;
- сущность и ограничение целостности, ленивые графы, N+1 если ловили;
- транзакция: что должно откатиться вместе;
- очередь / события: повтор, идемпотентность;
- тест: slice, интеграционный на репозиторий, контракт;
- миграция схемы, выкат, откат.
Не «использовал Spring Data JPA». «Убрал N+1 в списке заказов: список перестал открываться по 8 секунд на стейдже». Без выдуманных процентов. Канцелярит — ошибки в резюме. Проекты — проекты.
Пример 1. Junior, учебный Spring-сервис
Вакансия: junior Java, Spring Boot, REST, SQL, Git.
Junior Java, Spring Boot / PostgreSQL. Учебный сервис заказов — [ссылка]. Коммерческого штата нет.
Собрал REST: заказ, статус, отмена. Bean Validation, ошибки в едином формате. Security: basic для учебного стенда, в README ограничения.
Сущности заказ–позиция, миграции Flyway. Удалил каскад, который сносил позиции при ошибке статуса — целостность важнее «удобного save».
Тесты на отмену и повтор. Docker Compose для Postgres. В README нет Kafka и микросервисов: один модуль.
К тестовому Spring на этой неделе готов. Android и JavaFX в файле нет.
Честный объём. Надутый «интернет-магазин на микросервисах» вредит на первом вопросе про границы сервисов.
Пример 2. Middle, сопровождение и интеграции
Вакансия: Java, Spring, интеграции, SQL, очередь как плюс.
Java backend, Spring Boot / JPA / PostgreSQL. Интеграция статусов заказа со складом. 3 года. Remote, UTC+3.
Закрыл повтор вебхука склада: идемпотентность по id поставки. Второй колбэк перестал создавать вторую отгрузку.
Разобрал таймаут отчёта отгрузок: запрос без N+1, время с десятков секунд до приемлемого открытия страницы. Цифру пишите свою, если мерили; иначе — «страница перестала уходить в таймаут шлюза».
Покрыл интеграцию тестами на повтор и 409. Регресс перед релизом склада — не ручной день.
Кластер Kafka команды сопровождал другой человек: в навыках нет Kafka как «мой стек». Деплой через существующий пайплайн, job ломался — чинил yaml, кластер k8s не администрировал.
Граница вклада спасает на скрининге. Микросервисный buzzword не нужен, если это модуль в монолите — так и напишите «модуль в монолите».
Enterprise, банки, NDA
Внутренние названия платформ расшифруйте: «кредитная заявка», «обмен со складом», не «АС Прометей». Стек вендора (WebSphere и т.п.) указывайте, если вакансия про него и вы готовы. Иначе акцент на Java + SQL + интеграции.
Сертификаты и внутренние грейды «инженер 2 кат.» рынку не помогают. После сборки — проверка резюме.
Письмо и собеседование
Письмо указывает на сервис и Spring-контур: сопроводительное, без опыта, генератор. Тестовое — тестовое. Созвон часто код + SQL + устройство сервиса: interview-prep, рассказ о проекте. Тишина — почему не отвечают: часто Python-слот или Android при Java-шапке без фильтра, или junior-файл на senior-банк.