Запись фейкового frontend-собеседования: опыт кандидата, React-стек и серия теоретических и практических вопросов по TypeScript и JavaScript. В конце разбирается алгоритмическая задача на поиск символов в заданном порядке.
Это фейковое собеседование на позицию senior frontend-разработчика, стилизованное под интервью в Сбербанке. Кандидат рассказывает о четырёх годах коммерческого опыта, работе с React, TypeScript, командном взаимодействии, Git, сборкой, CI/CD и тестами. Техническая часть охватывает Service Workers, Web Workers, типизацию и практические задачи по TypeScript и JavaScript, включая поиск упорядоченной подпоследовательности в строке.
Кандидат описывает Rebase Flow: перед вливанием в релизные ветки команда использовала rebase, чтобы сохранять линейную историю; merge-коммиты рассматривались как альтернативный подход.
В его проектах сборка в основном не требовала глубокой ручной настройки; для UI Kit он упоминает Vite и отмечает как преимущество быстрый запуск, но также проблемы с отдельными библиотеками и отслеживанием изменений.
По ответу кандидата, frontend-разработчику полезно понимать CI/CD, Jenkins, Docker и уметь диагностировать или точечно править пайплайны, хотя полноценная поддержка инфраструктуры может быть задачей других специалистов.
Кандидат различает unit-, integration- и E2E-тесты; его оценка желательного покрытия в 85–90% и примерное распределение тестов — личное мнение, а не правило интервьюеров.
Service Workers обсуждаются как механизм фонового кэширования и обновления данных для офлайн-режима; кандидат прямо уточняет, что сам их не писал.
Кандидат считает, что собственный код стоит типизировать TypeScript, а глубину типизации и цену внедрения нужно соотносить со сроком жизни и масштабом проекта.
В финальной JavaScript-задаче интервьюеры подводят к решению за один проход: сравнивать символы основной строки с искомой подпоследовательностью, увеличивать счётчик совпадений и затем сопоставлять его с длиной подстроки; они подтверждают сложность O(n) по времени и O(1) по дополнительной памяти.