Стоит ли обсуждать опыт разработчика на техническом (хард) интервью?

Ответ

Да, но строго в релевантном и сжатом виде. Основное время посвящено решению задач и глубоким техническим вопросам. Опыт упоминается для контекста.

Правильный подход:

  1. Связывайте опыт с текущей задачей. Например, перед решением задачи по оптимизации можно кратко сказать: «На прошлом проекте я сталкивался с похожей проблемой N+1 запросов в ORM и решал её через...».
  2. Демонстрируйте глубину понимания. Вместо «Использовал Redis» объясните: «Для снижения нагрузки на БД кэшировал сессионные данные в Redis с политикой LRU, что дало падение latency на 40%».
  3. Избегайте длинных историй. Приведите конкретный факт или технологию, имеющую прямое отношение к обсуждаемой теме интервью.

Пример уместного упоминания:

«Для асинхронной обработки заказов в high-load сервисе мы использовали CompletableFuture в Java, что позволило избежать блокировок:

CompletableFuture.supplyAsync(this::fetchOrder)
    .thenApplyAsync(this::validate)
    .thenAcceptAsync(this::notify);

Ключевой trade-off был между сложностью отладки и выигрышем в пропускной способности.»

Цель: Показать, что теоретические знания подкреплены практикой и осознанным выбором решений.

Ответ 18+ 🔞

Ну, слушай, а вот этот твой вопрос про опыт на собеседовании — это вообще, блядь, отдельный вид искусства, хуй с горы. Все эти HR-шники и тимлиды ждут, что ты сейчас начнёшь им про свою жизнь рассказывать, как в анекдоте про «а я в 5 лет уже на ассемблере писал».

Так вот, пиздец, главное правило — не превращайся в бабку на лавочке, которая вспоминает, как она в 45-м году картошку сажала. Никому не интересно, что ты «10 лет в IT» или «прошёл путь от джуна до сеньёра». Это всё вода, блядь.

Правильный подход, ёпта, такой:

  1. Привязывай свой опыт к задаче, которая сейчас на столе. Сидит чувак, спрашивает про оптимизацию. Ты не начинай с «ой, я 5 лет работал...». Ты сразу врежь: «Слушай, на прошлом проекте была похожая ебля с N+1 запросами в Hibernate. Мы там так и сяк, впендюрили batch fetching и вот эту вот... да, @EntityGraph аннотацию. Сразу на 30% отклик улучшился». И всё. Коротко, ясно, по делу. Чистая техническая польза, а не автобиография.
  2. Показывай, что ты не просто кнопки нажимал. Любой мудак может сказать «я использовал Redis». А ты вломи: «Мы засунули в Redis сессионные данные с TTL и политикой вытеснения LFU, потому что у нас паттерн доступа был такой-то. В итоге нагрузка на основную БД упала вполовину, а latency — с 200 мс до 50». Вот это — осознанное решение, а не просто «использовал». Разница, блядь, как между пилотом и пассажиром.
  3. Никаких длинных историй, ёб твою мать! Тебе дали 45 минут, а не 45 серий сериала. Если твой опыт не влезает в три предложения и не ведёт прямо к решению их проблемы — он нихуя не нужен. Выкинь его.

Вот смотри, как это звучит красиво и по-взрослому:

«Да, сталкивался. На высоконагруженном сервисе заказов мы долбили асинхронность через CompletableFuture в Java, чтобы не блокировать главный поток. Получилось что-то такое:

CompletableFuture.supplyAsync(this::fetchOrder)
    .thenApplyAsync(this::validate)
    .thenAcceptAsync(this::notify);

Основной trade-off, блядь, был в том, что отладка превратилась в пиздец, но зато пропускная способность выросла в три раза. Пришлось заморачиваться с нормальным логгированием через MDC».

Видишь? Ни слова лишнего. Я показал, что знаю инструмент, понимаю его цену и последствия, и привёл конкретный пример кода. После такого у собеседующего волнение ебать — он уже мысленно тебя в команду записывает.

А если начать: «Ну, во-первых, я 7 лет работаю, во-вторых, на первом месте у нас был Spring, на втором — микросервисы...» — это прямой путь в игнор. Цель-то не похвастаться стажем, а доказать, что ты можешь решить их проблему, используя свой багаж. Всё остальное — пиздопроебибна и трата времени.