Backend Java — техническое интервью

60 минут, middle → senior. Java 17+, коллекции, конкурентность, Spring, SQL. Pilot-волна контента.

Вопросов
14
Live-coding
2

Разогрев: опыт и контекст

  1. Недавний проект

    ПоведенческийЛёгкий

    Расскажите о недавнем проекте, где вы были ключевым разработчиком. Что делали вы лично?

    Рубрика оценки (0–10)
    3–5: Описывает проект общими словами, свою роль называет расплывчато («участвовал в команде»).
    6–8: Конкретная задача, стек, результат; понятна личная зона ответственности.
    9–10: Контекст бизнеса, trade-offs, метрики успеха; честно говорит, что делали другие.
    Красный флаг: не может назвать ни одного решения, которое принимал сам.
    Подсказки интервьюеру
    Follow-up: что бы сделали иначе? 3–4 минуты.
  2. Мотивация смены

    ПоведенческийЛёгкий

    Почему сейчас рассматриваете новые возможности? Что ищете в следующей роли?

    Рубрика оценки (0–10)
    3–5: «Хочу роста / денег» без конкретики.
    6–8: Понятные критерии (стек, продукт, процессы); не toxic про текущего работодателя.
    9–10: Осознанный fit: что даст компания кандидату и наоборот.
    Красный флаг: только негатив про прошлые команды, обвиняет всех кроме себя.
    Подсказки интервьюеру
    Не давить — достаточно 2–3 минут.
  3. Опыт с Java

    ПоведенческийЛёгкий

    Сколько лет пишете на Java? Какие версии и фреймворки использовали в продакшене?

    Рубрика оценки (0–10)
    3–5: «Несколько лет», без версий и контекста.
    6–8: Версии (8/11/17+), Spring или другой стек, тип проекта.
    9–10: Миграции версий, модули JPMS если применимо; честно про глубину Spring.
    Красный флаг: путает Java с JavaScript на middle+.
    Подсказки интервьюеру
    2–3 минуты.

Основы Java и JVM

  1. Сложность коллекций

    ТеорияСредний

    Какая асимптотика get/contains/add для ArrayList и HashMap? Когда что выбрать?

    Рубрика оценки (0–10)
    3–5: «HashMap быстрее» без O-notation.
    6–8: ArrayList get O(1), contains O(n); HashMap O(1) average; hash collisions.
    9–10: LinkedList vs ArrayList; load factor; immutable keys; ConcurrentHashMap vs synchronized Map.
    Красный флаг: «HashMap всегда O(1)» без оговорок.
    Подсказки интервьюеру
    Follow-up: почему ключ mutable плох? 4 мин.
  2. GC и память

    ТеорияСредний

    Как в общих чертах работает сборка мусора в JVM? Что такое stop-the-world?

    Рубрика оценки (0–10)
    3–5: «GC удаляет неиспользуемые объекты».
    6–8: Heap, generational GC, STW паузы; young/old gen на бытовом уровне.
    9–10: G1/ZGC названия; tuning trade-offs; metaspace vs heap; weak references.
    Красный флаг: «GC можно отключить в проде».
    Подсказки интервьюеру
    4 минуты.
  3. volatile и happens-before

    ТеорияСредний

    Что гарантирует volatile в Java и чего он не гарантирует?

    Рубрика оценки (0–10)
    3–5: «Видимость между потоками», без деталей.
    6–8: Видимость + запрет переупорядочивания; понимает, что атомарности нет.
    9–10: happens-before, отличие от synchronized; пример где volatile недостаточен (i++).
    Красный флаг: «volatile делает операцию атомарной».
    Подсказки интервьюеру
    Follow-up: AtomicInteger / LongAdder. 4 мин.
  4. Spring DI

    ТеорияСредний

    Объясните, как Spring создаёт и внедряет бины. Чем @Component от @Bean?

    Рубрика оценки (0–10)
    3–5: «Spring сам создаёт объекты».
    6–8: Component scan, @Autowired; @Bean в @Configuration; singleton по умолчанию.
    9–10: Scope, circular deps, @Primary/@Qualifier; lifecycle interfaces.
    Красный флаг: не знает разницу component scanning vs explicit @Bean.
    Подсказки интервьюеру
    4 минуты.
  5. Транзакции Spring

    ТеорияСложный

    Как работает @Transactional? Что будет при self-invocation внутри того же класса?

    Рубрика оценки (0–10)
    3–5: «Открывает транзакцию» без proxy.
    6–8: AOP proxy; rollback on RuntimeException; propagation basics.
    9–10: Self-invocation обходит proxy; read-only; isolation levels; programmatic tx.
    Красный флаг: «@Transactional работает на private методах».
    Подсказки интервьюеру
    5 минут.

Практика: живой код

  1. Two Sum

    Задача с кодомСреднийКод

    Дан массив целых и target. Верните индексы двух чисел, сумма которых равна target. Гарантируется ровно одно решение.

    Рубрика оценки (0–10)
    3–5: Brute force O(n²) или не завершит.
    6–8: HashMap O(n); объясняет ключ/значение.
    9–10: Edge cases, immutable return, обсуждает память vs время.
    Красный флаг: модифицирует входной массив без оговорки.
    Подсказки интервьюеру
    15 минут с обсуждением.
  2. Valid Parentheses

    Задача с кодомЛёгкийКод

    Проверьте, правильно ли расставлены скобки ()[]{} в строке.

    Рубрика оценки (0–10)
    3–5: Подход неясен или только для одного типа скобок.
    6–8: Stack; закрывающая должна match верх стека.
    9–10: O(n) time/space; early exit; обсуждает ArrayDeque vs Stack.
    Красный флаг: рекурсия без base case на длинной строке.
    Подсказки интервьюеру
    10 минут.

SQL и данные

  1. Индексы и план запроса

    ТеорияСредний

    Когда индекс ускоряет SELECT и когда может замедлить систему?

    Рубрика оценки (0–10)
    3–5: «Индексы всегда ускоряют».
    6–8: B-tree basics; write amplification; selective vs full scan.
    9–10: Composite index left-prefix; covering index; EXPLAIN на бытовом уровне.
    Красный флаг: индекс на каждую колонку «для скорости».
    Подсказки интервьюеру
    4 минуты.
  2. Уровни изоляции

    ТеорияСложный

    Объясните dirty read, non-repeatable read, phantom read. Какой уровень что предотвращает?

    Рубрика оценки (0–10)
    3–5: Путает термины.
    6–8: READ COMMITTED vs REPEATABLE READ; примеры аномалий.
    9–10: Serializable cost; MVCC (PostgreSQL); mapping к Spring propagation.
    Красный флаг: «всегда ставлю SERIALIZABLE» без понимания цены.
    Подсказки интервьюеру
    5 минут.

Инженерная культура и вопросы

  1. Конфликт в команде

    ПоведенческийСредний

    Был ли случай технического или процессного конфликта в команде? Как разрешили?

    Рубрика оценки (0–10)
    3–5: «Конфликтов не было» или история без своих действий.
    6–8: Описывает ситуацию, свою позицию, итог; без обвинений.
    9–10: Фокус на данных/компромиссе; что изменил в процессе после.
    Красный флаг: «я был прав, они нет» без рефлексии.
    Подсказки интервьюеру
    Follow-up: чему научились? 4 минуты.
  2. Вопросы к нам

    ПоведенческийЛёгкий

    Какие вопросы у вас к нам про команду, продукт или процессы?

    Рубрика оценки (0–10)
    3–5: «Нет вопросов» или только про отпуск/ЗП.
    6–8: 2–3 содержательных вопроса про продукт, команду, релизы.
    9–10: Вопросы показывают, что изучил компанию; уточняет ожидания от роли.
    Красный флаг: нулевой интерес к продукту на middle+.
    Подсказки интервьюеру
    Оставить 3–5 минут в конце интервью.

Провести интервью по этому шаблону

Зарегистрируйтесь бесплатно: скопируйте шаблон в организацию, назначьте интервью и проведите его в комнате с live-coding.

Начать в FlashTalk