Публичное PHP-собеседование с разбором опыта кандидата и технических вопросов от ООП и MySQL до кэширования, масштабирования и очередей. В конце — обратная связь и рекомендации по дальнейшей практике.
Открытое техническое собеседование PHP-разработчика Даниила: он рассказывает о работе в Дальневосточном федеральном университете, переходе к изучению Laravel и Vue.js и текущем поиске работы. Основная часть посвящена вопросам по архитектуре, ООП, MySQL, кэшированию, масштабированию, поисковым движкам и RabbitMQ, включая устный и кодовый пример паттерна «Стратегия». В финале интервьюер отмечает хорошую теоретическую базу кандидата, а кандидат и интервьюер обсуждают ограничения тестовых заданий и пользу практики с ментором.
Для интервью полезно чётко отделять реальный опыт поддержки модульного монолита от опыта проектирования системы с нуля: кандидат прямо сказал, что в основном занимался рефакторингом и поддержкой готового проекта.
Нужно уметь сравнить монолит и микросервисы не только по кодовым базам и деплою, но и по масштабированию, согласованности данных и операционным сложностям.
Стоит подготовить короткий кодовый пример Strategy: общий интерфейс, отдельные реализации и внедрение нужной реализации через dependency injection.
Повторить различия PRIMARY KEY, UNIQUE и внешних ключей в MySQL, включая NULL, составные ключи, ссылочную целостность и действия при изменении или удалении записи.
Для задач с тяжёлым запросом и одновременным истечением кэша нужно объяснять защиту от cache stampede: один процесс обновляет значение, остальные не запускают тот же запрос; обновление можно поддерживать фоновым процессом или cron-задачей.
Нужно уметь объяснить практические роли RabbitMQ: вынесение тяжёлых задач из синхронного запроса, очереди при нагрузке и передача событий между микросервисами.
По мнению интервьюера, кандидату полезно добрать практику Laravel и поисковых движков Sphinx/Elasticsearch; оба собеседника считают, что сложные реальные задачи с обратной связью ментора дают больше для обучения, чем типовые тестовые задания.