Какие общие темы стоит освежить перед собеседованием?
- Убедитесь, что вы уверены в основах алгоритмов, структур данных, принципов ООП и типов данных. Также важно понимать, как работает Всемирная паутина (World Wide Web) в целом и в деталях.
- Крайне важно продемонстрировать хорошие знания JavaScript и TypeScript. Мы редко задаем каверзные вопросы по JavaScript, но нас всегда интересует ваше понимание таких вещей, как цикл событий (event loop) и внутренние механизмы работы языка.
- Будьте готовы рассказать как минимум о нескольких принципах/паттернах проектирования и о том, как вы их применяете в повседневной работе. Поделитесь своим подходом к ревью кода (включая лучшие практики и стандарты), юнит-тестированию, рефакторингу и оптимизации.
Какой стек технологий должен знать кандидат?
- Мы и наши клиенты в основном сосредоточены на React, Angular и Vue. Будьте готовы поделиться своими знаниями об организации кодовой базы, управлении состоянием, работе с формами.
- Для опытных разработчиков необходимо иметь практический опыт с одной или несколькими функциями, охватывающими все приложение, такими как локализация, интернационализация, доступность (accessibility), аутентификация и безопасность.
- Для full-stack разработчиков требуется хорошее понимание Node.js, архитектуры back-end приложений, межсервисного взаимодействия. Базовый опыт в DevOps приветствуется, как и некоторый опыт работы с облачными провайдерами. Также важно иметь глубокие знания баз данных, уметь оптимизировать SQL-запросы и объяснить, как работают индексы и транзакции.
Какие вопросы не технического характера могут быть заданы?
- Вас могут попросить поделиться опытом руководства командой и контроля за прогрессом, включая разработку технических дизайнов/архитектурной документации, отслеживание хода разработки и помощь в процессе поставки.
- Если применимо, могут быть вопросы о выявлении корневых причин проблем/ошибок, методах оценки задач различной сложности.
- Будьте готовы продемонстрировать свои навыки решения проблем и объяснить, как вы декомпозируете сложные задачи.
Используете ли вы live coding для проверки знаний?
- Да, в большинстве случаев мы это делаем, особенно когда острые навыки программирования критически важны для должности.
- Убедитесь, что вы готовы написать код для простой задачи, используя актуальный стек технологий.
- Мы не ожидаем идеального и отшлифованного кода, нам важно увидеть ваш подход к задаче и насколько вы можете справиться с ней в разумные сроки.
Какие советы вы дадите тем, кто планирует собеседование в ближайшее время?
- Убедитесь, что ваше оборудование готово: микрофон и веб-камера работают, ноутбук подключен к сети или имеет достаточно заряда для проведения ~2-часового видеозвонка.
- Проверьте стабильность интернет-соединения.
- Забронируйте достаточное количество времени, чтобы вас ничего не отвлекало (никаких доставок/звонков).
- Прочтите и примите к сведению требования к вакансии, включая широту технического стека и его глубину, софт скиллы, уровень английского и т.д.
- Будьте готовы рассказать о своем карьерном пути, прокомментировать каждый проект, указанный в вашем резюме, и поделиться, какую проблему вы решили, предложив свое решение.
- Будьте готовы объяснить свои амбиции/цели/ожидания в отношении новых мест работы/проектов, свою мотивацию, включая причины ухода из текущей компании и поиска нового места, причины смены компаний (например, отсутствие работы, проблемы и т.д.), значительных изменений стека технологий или должностей, возможных перерывов в работе.
- Подготовьте список вопросов/тем, которые вы хотите обсудить с нами.
- Не стесняйтесь уточнять или повторно задавать вопросы по любой теме, которую мы недостаточно раскрыли.