Интересно ли работать с инфраструктурой, сетью и базами данных
Что проверяют
Это вопрос о мотивации с техническим подтекстом: в командах, где его задают, разработчик часто сам разбирает инциденты, настраивает пул соединений и смотрит на графики. Интервьюер хочет понять, не станет ли это для вас неприятным сюрпризом и есть ли база. Следом обычно просят рассказать случай, когда проблема оказалась не в коде.
Как отвечать
Ответьте прямо и обозначьте границы. «Интересно, но я разработчик, а не администратор» тоже нормальный ответ, если объясните, где проходит граница. Подкрепите его конкретикой из Java-стека:
- базы данных: пул HikariCP (по умолчанию
maximumPoolSizeравен 10, ожидание соединения 30 секунд), N+1 в Hibernate, чтениеEXPLAIN ANALYZE, миграции через Flyway или Liquibase, уровни изоляции транзакций; - сеть: таймауты у HTTP-клиентов (
RestClient,WebClient,java.net.http.HttpClient), keep-alive и пулы соединений, TLS и truststore, кэширование DNS внутри JVM; - инфраструктура: Docker, Kubernetes, JVM в контейнере с
-XX:MaxRAMPercentage, health-чеки через Spring Boot Actuator, метрики Micrometer в Prometheus и Grafana.
Лучший аргумент это история: «запросы начали падать по таймауту, в коде ничего не менялось, по метрикам пул был исчерпан, причиной оказалась транзакция, которая держала соединение во время вызова внешнего API». Нужна ваша история и ваши цифры, придуманные рассыпаются на втором уточнении.
Если опыта мало, скажите, что знаете на уровне разработчика и что хотели бы освоить. Это честнее, чем перечислять технологии, которые видели только в чужом docker-compose.yml.
Где спотыкаются
Говорят «да, всё интересно» без единого примера. Для интервьюера это пустой ответ.
Отвечают «это задача DevOps». Если в команде нет выделенных админов, такой ответ фактически закрывает вакансию.
Приписывают себе ускорение «в десять раз», но не могут назвать, какой запрос тормозил и что показал план выполнения.