Резюме Java-разработчика: как писать про стек и опыт
Java-вакансии собирают сотни откликов, и первый отбор идёт быстро. У читающего есть минута и один вопрос: этот человек про наш стек и наш уровень или нет.
Беда типичного резюме в том, что оно отвечает списком технологий. Java, Spring, Spring Boot, Hibernate, JPA, Maven, Gradle, Kafka, RabbitMQ, Docker, Kubernetes — через запятую, без единого намёка, что из этого человек делал руками.
Разберём, чем занять те же строки.
Общие правила — структура, формулировки, что отсеивает на скрининге — в статье про резюме программиста. Здесь про Java-специфику.
Что читают первым
Заголовок, текущее место, первые три-четыре строчки опыта.
Оттуда пытаются понять: какой у вас профиль (сервисы под нагрузкой, интеграции, легаси, десктоп), какая версия Java в работе и какого масштаба системы вы трогали.
Версия важнее, чем кажется. Человек, который последние пять лет живёт на восьмой Java, и человек с двадцать первой — это разный разговор про стримы, рекорды и виртуальные потоки. Указывайте прямо.
Стек: не список, а роль в проекте
Простое правило: рядом с каждой технологией должно стоять, что вы на ней делали.
Было: «Spring Boot, Hibernate, PostgreSQL, Kafka».
Стало: «Сервис на Spring Boot с REST-API для мобильного приложения, данные в PostgreSQL через Hibernate, обмен событиями с биллингом через Kafka — около двух миллионов сообщений в сутки».
Одно предложение, а из него видно и стек, и масштаб, и тип задач. При этом ни одного слова не прибавилось по сравнению со списком.
Второй пример. Было: «Оптимизация производительности». Стало: «Разобрал деградацию на пиках: профилировал, нашёл N+1 в выдаче заказов и лишние аллокации в маппере. Время ответа на девяносто пятом перцентиле упало вдвое».
Опыт: задачи, нагрузка, ответственность
В блоке опыта работают три вещи, которых обычно нет.
Задача, а не обязанность. «Разрабатывал микросервисы» ничего не говорит — сервисы бывают разные. «Сделал сервис расчёта лимитов: считает по расписанию и по запросу, отдаёт результат в личный кабинет» говорит.
Масштаб. Сколько пользователей, сколько запросов, какого размера база, сколько сервисов в системе. Без цифр читающий не отличит нагруженную систему от внутренней админки на десять человек.
Ответственность. Что было именно на вас: дежурства, релизы, ревью, общение с заказчиком, наставничество над джуном. Это отличает исполнителя от инженера, которому можно отдать кусок целиком.
Грейд: чем джун отличается от мидла в тексте
Читающий определяет уровень не по слову «middle» в заголовке, а по типу решений в описании.
У джуна в опыте задачи: сделал форму, поправил баг, написал эндпоинт. У мидла появляются решения: выбрал схему хранения, вынес общую логику, переделал интеграцию, чтобы она переживала отказ соседа.
Если решения были, их надо назвать. Одна фраза «предложил и сделал» весит больше, чем три строчки про участие.
Обратное тоже верно: заявленный сеньор, у которого в опыте только закрытые тикеты, вызывает вопросы ещё до звонка.
Если весь код остался у работодателя
Обычная ситуация, и она не смертельна: у большинства Java-разработчиков публичного кода нет вовсе.
Что помогает вместо репозитория. Подробное описание архитектуры того, что вы делали, без раскрытия внутренностей компании: какие сервисы, как общаются, где узкое место, что переделывали и почему. Такое описание в резюме занимает три строки, а на собеседовании превращается в двадцать минут содержательного разговора.
Пет-проект тоже работает, но только доведённый до конца: поднимается одной командой, есть тесты, README с запуском. Полуфабрикат хуже, чем его отсутствие.
Что отсеивает на скрининге
Стена технологий без опыта под ней. Сорок ключевых слов и три строки про работу.
Одинаковое описание всех мест работы. Значит, писали один раз и копировали.
Отсутствие цифр вообще: ни нагрузки, ни размера команды, ни сроков.
Заявленный Kubernetes и Kafka, за которыми стоит «читал документацию». Это вскрывается первым же уточняющим вопросом, и дальше разговор идёт со скепсисом ко всему остальному.
Проверка перед отправкой
Прочитайте свой блок опыта и попробуйте по нему угадать систему, над которой вы работали. Если получается описание любого проекта на свете, текст ещё общий.
Второй тест: сколько уточняющих вопросов вызовет каждый пункт. Хорошее резюме их вызывает — именно за этим и зовут на разговор.
Дальше начинается техническая часть, и там спрашивают коллекции, многопоточность, JVM и Spring. В Сеньорчике собраны вопросы с реальных собеседований по одиннадцати ролям, включая Java: вопрос с вариантами, сразу разбор и движок, который возвращает темы, где вы ошибаетесь. Десять минут в день в Telegram, начать можно бесплатно.