На данный момент у нас в компании я также участвую в проведении технических собесов. Я всегда стараюсь перед собеседованием немного подготовиться. Читаю резюме кандидата, накидываю интересующие меня вопросы в документ, чтобы собеседование было более живым и не похожим на экзамен.
Стандартные вопросы по теории golang, базы и пр. тоже есть, но они больше для общего понимания уровня кандидата. Это те стандартные вопросы, которые все зубрят (горутины, каналы, индексы и пр.). Часто кандидаты отвечают на данные вопросы очень хорошо, это и неудивительно. В данных вопросах интерес в том, чтобы стараться уводить разговор в глубину знаний (можно даже одного вопроса), и вот тут уже виден реальный уровень кандидата. Конечно, это не серебряная пуля, но может показать кандидата с хорошей стороны.
Но сейчас не про это, сейчас речь про то, что пишут у себя в резюме кандидаты. Открыл резюме и увидел у кандидата 4 организации, в которых он работал, 8 лет опыта по резюме. Бросилось в глаза: в описании обязанностей в других организациях практически копипаста, но я особо не придал этому значения. Посмотрел ещё, увидел такие фразы, как "отказоустойчивость", "проектирование распределённых систем", "масштабируемость", "проектирование архитектуры". Отлично, подумал я, вроде кандидат достаточно опытный, и будет интересно поболтать про его опыт. Я составил примерно такой список вопросов, которые можно задать (можно и не задавать, тут как пойдёт беседа) кандидату.
🔵 Кандидат написал: "Разработка высоконагруженного backend-а: распределённая архитектура, отказоустойчивость, масштабируемость".
🔸Отлично, можно спросить про то, как добивались отказоустойчивости. Какие-то кейсы из жизни и т. д.
🔵 "Проектирование БД и оптимизация SQL" + у кандидата был сертификат, связанный с оптимизацией SQL-запросов(правда, ссылки не было на него)
🔸 Супер, можно спросить про оптимизацию SQL. Как он сам оптимизирует запросы.
🔵 "Написание строго типизированного PHP-кода и современного Go-кода с соблюдением лучших практик)"
🔸 Замечательно, можно поговорить про практики, которые соблюдает кандидат. Как соблюдали эти практики в команде и т. д.
🔵 "Вёл команды, принимал архитектурные решения" и "Опыт в проектировании архитектуры" + какой-то сертификат, связанный с микросервисной архитектурой
🔸 Вообще шик, можно поболтать про то, как принимал архитектурные решения.
✳️ Во время собеседования первая часть всегда — знакомство. Мы со своей стороны рассказываем, кто мы такие и какой у нас формат (да, нас всегда 2 человека из разных команд присутствуют), и дальше небольшой рассказ кандидата. Кандидат рассказал про себя, и мы начали задавать вопросы про проекты, в которых он работал, и параллельно спрашивать вопросы, которые я подготовил. К сожалению, меня ждало разочарование. Кандидат прямым текстом говорил, что архитектурные решения не принимал, опыта в проектировании у него нет. При этом я бы понял, если было бы обозначено, что прошёл курсы, какую-то теорию знаю. SQL-запросы он оптимизировал только одним способом - добавлял индексы. Вопросом по отказоустойчивости также не занимался. При срабатывании алертинга либо правил баг, либо писал девопсам "чтобы поправили" (тут цитата).
На самом деле это было только в 15-20 минут нашего общения, дальше так же были разного рода интересные моменты, когда кандидат внезапно начал очень громко читать вслух условие задачи.
💬 Вывод какой тут можно сделать: если пишете что-то в резюме, умейте хотя бы объяснить это на пальцах. Не нужно пихать всё, что есть в других резюме или то, что выдал chatGPT. При живом общении всё станет понятно.