Files
redlineo d295c7f139
Release Please / release-please (push) Failing after 4m2s
Web CI / web typecheck + build (push) Successful in 3m39s
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 1h1m49s
CodeQL Analysis / Analyze (go) (push) Failing after 1h1m49s
init
2026-07-13 10:14:00 +03:00

21 KiB
Raw Permalink Blame History

Оценка: Bnovo — Senior Frontend разработчик

Дата: 2026-07-07 Архетип: Frontend Developer (Vue.js) — primary archetype, заявленный уровень Senior Балл: 2.5/5 URL: https://hh.ru/vacancy/134897754 PDF: не создан (балл < 3.0) Legitimacy: High Confidence


A) Резюме роли

Параметр Значение
Архетип Frontend Developer (Vue.js)
Domain SaaS-платформа для автоматизации гостиничного бизнеса (hospitality management)
Function Build + частично Lead (менторство джунов/миддлов, потенциальный tech lead трек)
Seniority Senior, заявлено "4+ года опыта Frontend-разработки"
Формат работы Санкт-Петербург, офис с возможностью удалённого формата ("удалённо" указано как доступный вариант)
Размер команды Не указан явно
Оформление Трудовой договор (ТК РФ)
Зарплата Не указана
TL;DR Senior-роль в устойчивой SaaS-компании с хорошей репутацией и подтверждённым удалённым форматом — сильное совпадение по стеку (Vue2→3 миграция, TS, WebSocket), но заявленный стаж (4+ года) и ответственность тимлид-трека выше текущего уровня кандидата.

B) Совпадение с CV

Требование JD Совпадение в CV
4+ года опыта Frontend-разработки ❌ Пробел. ~1 год 8 месяцев непрерывного коммерческого опыта (с ноября 2024) + 10 месяцев заказной разработки в 2022
Vue.js 2 и 3, миграция legacy → Vue 3/TS ⚠️ Частичное — прямого опыта миграции Vue 2→3 в CV нет, но есть работа с legacy-кодом на Vue 3 (РМК, ~6 месяцев, включая сложный баг с замыканием реактивной переменной)
JavaScript ES6+, TypeScript ✅ Прямое совпадение (стек ЕКОМ)
Vuex/Pinia ⚠️ Pinia — прямое совпадение; Vuex явно не встречается в CV, но это смежный, изучаемый инструмент того же экосистемного слоя
HTML5/CSS3/SCSS ⚠️ HTML5/CSS3 — прямое совпадение; SCSS явно не указан (Tailwind CSS используется вместо)
REST, WebSocket ✅ Прямое совпадение — WebSocket (WSS) внедрён на ЕКОМ и РМК
Архитектура компонентов по SOLID ⚠️ Не описано явно в CV, но Feature Branching и структурированный подход к ЕКОМ (стек с Pinia/Vue Router/shadcn) косвенно говорит о структурированной архитектуре
Код-ревью, тестирование (Vitest/Jest/Playwright) ✅ Прямое совпадение — Vitest, Storybook, Playwright (E2E на РМК)
Менторство junior/middle, потенциальный tech lead ✅ Частичное совпадение — обучила коллегу с 11-летним стажем работе с Git/Feature Branching; не формальное менторство, но реальный опыт передачи знаний
AI-инструменты (Copilot, Cursor) ⚠️ Не упомянуто явно в CV — не фабриковать, честно отметить как пробел

Пробелы:

  1. Стаж (4+ года vs ~1.7-2.5 года) — hard blocker, явно заявлен в требованиях. Компенсация "широтой" (3 параллельных продукта, greenfield с нуля) частично закрывает этот разрыв по факту компетенций, но не по формальному стажу, который ATS/рекрутер, вероятно, отфильтрует на скрининге.
  2. Опыт миграции Vue 2→3 — явно указан как желательный бонус в JD ("Vue 2→3 migration experience" в списке Bonuses), у кандидата нет прямого опыта миграции (только работа с уже существующим legacy Vue 3). План закрытия: честно указать опыт работы с legacy Vue 3 кодом (баг с замыканием) как смежный, не эквивалентный.
  3. Тимлид-трек/менторство на постоянной основе — JD явно упоминает "potential tech lead role" — это ответственность выше текущего уровня кандидата. План закрытия: не претендовать на тимлид-аспект роли, фокусироваться исключительно на техническом фите, если решено откликаться.

C) Уровень и стратегия

Уровень в JD: Senior, 4+ года, с элементами тимлид-трека (менторство, архитектурные решения). Естественный уровень кандидата для архетипа Frontend (Vue.js): Junior→Middle (переходный) — сильный технический стек, но не тимлид-масштаб ответственности.

План "продать senior без обмана":

  • Акцент на реальном масштабе: greenfield-продукт ЕКОМ с нуля, RBAC-дизайн, параллельное ведение legacy-проекта (РМК) — это ближе к Middle+/Senior-lite по объёму ответственности, но не по годам.
  • Честно обозначить разрыв в стаже (4+ года заявлено vs ~2 года) — учитывая, что требование явно численное, не пытаться завуалировать.

План "если понизят уровень":

  • Учитывая структуру роли (тимлид-трек, менторство), понижение до Middle с явным исключением менторских обязанностей — реалистичный сценарий, если компания заинтересуется техническим стеком кандидата, но не готова доверить Senior-ответственность.
  • Принять понижение только при компенсации на уровне таргета кандидата (100 000–120 000+ ₽/мес на руки) — учитывая, что рыночная вилка для Senior Vue в СПб выше (см. Блок D), понижение грейда не должно означать понижение ниже таргета.
  • Договориться о пересмотре через 6 месяцев с чёткими критериями (например, самостоятельное закрытие миграционных задач Vue 2→3 без сопровождения).

D) Компенсация и спрос

Зарплата не указана в JD. Рыночные данные (WebSearch, RU, июль 2026):

Источник Данные
Senior Vue-разработчики, Москва/СПб (2026) Медиана: Москва — 550 000 ₽/мес, СПб — 480 000 ₽/мес; специализированная вилка Senior Vue: 480 000–650 000 ₽/мес
Репутация компании (Habr Career, dreamjob, elsolo) Рейтинг 4.78/5 на Habr Career (96% рекомендаций), 4.7/5 на elsolo (42 отзыва) — стабильно позитивные отзывы о своевременности зарплаты и адекватном менеджменте
Негативные сигналы из отзывов Часть отзывов упоминает "низкую зарплату относительно нагрузки" и отсутствие ДМС в первый год — качественный сигнал, не количественно подтверждённый
Оформление Трудовой договор (ТК РФ) — максимальная защита, +0.3 к стабильности по правилам РФ-специфики

Оценка (gross/net): Не указано в JD, невозможно применить формулу net ≈ gross × 0.87. Заявленная рыночная вилка Senior Vue в СПб (480 000+ ₽/мес) значительно выше таргета кандидата, но это не гарантированное предложение — компания может предложить нижнюю границу вилки при пробеле по стажу, а часть отзывов сотрудников указывает на возможную зарплату "ниже ожиданий при высокой нагрузке".

E) План персонализации

# Раздел Текущее состояние Предлагаемое изменение Почему
1 Summary Общий акцент на Vue3 + Flutter dual-track Вести исключительно с Vue 3 + TS + WebSocket + опытом работы с legacy-кодом Роль явно про миграцию legacy → Vue3/TS, это точка входа
2 Legacy-опыт РМК упомянут как один из проектов Вынести РМК (legacy Vue 3, баг с замыканием) на первое место как прямое совпадение с "migrate legacy code" Единственный прямой аналог требования по миграции/поддержке legacy
3 Менторство Обучение коллеги Git/Feature Branching упомянуто вскользь Явно сформулировать как "опыт передачи технических знаний коллеге с большим стажем" Частично закрывает требование "mentor junior/middle developers"
4 AI-инструменты Не упомянуты в CV Не добавлять — честно уточнить на собеседовании реальный опыт использования Copilot/Cursor, если есть, до подачи Не фабриковать отсутствующий опыт
5 Стаж Не скрывать Явно указывать ~2 года суммарно с акцентом на масштаб задач, а не годы Численный пробел не исчезнет от формулировок — честность снижает риск отказа "на обмане" позже в процессе

F) План собеседований

# Требование JD История STAR+R S T A R Reflection
1 Работа с legacy-кодом, рефакторинг Баг с замыканием в РМК (legacy Vue 3) Клавиатура переставала работать после серии действий Найти причину в глобальном классе биндинга клавиш Диагностировала: реактивная переменная передавалась в глобальный класс без очистки Баг исправлен, задокументирован паттерн Поняла важность жизненного цикла реактивных переменных вне компонентной области Vue
2 WebSocket, real-time функциональность WSS-оповещения в РМК Не было видимости, сколько аптек онлайн в реальном времени Внедрить real-time канал оповещений с отметкой прочтения Реализовала WebSocket-канал, отслеживание прочтения по ~1200 аптекам Видимость статуса в реальном времени, почти без задержки Реальная enterprise-масштаба система, релевантна для SaaS-продукта Bnovo
3 Менторство/передача знаний Обучение коллеги с 11-летним стажем Git Flow Хаотичные релизы, отсутствие версионирования Внедрить Feature Branching и обучить команду Обучила коллегу, ввела процесс, команда перешла на еженедельные релизы Стабильный процесс релизов, меньше "зависших" фич Обучение более опытного коллеги — редкий, но ценный сигнал для tech-lead трека
4 Тестирование (Vitest/Jest/Playwright) Внедрение Playwright E2E на РМК Legacy-проект без автотестов Внедрить E2E-покрытие критичных сценариев Настроила Playwright, начала покрытие позитивных/негативных сценариев Процесс тестирования на этапе внедрения Приоритизация тестового покрытия в legacy требует больше суждения, чем в greenfield
5 Архитектурные решения, RBAC/доступ RBAC-модель в «Здесь ЕКОМ» Бэкенд не имел готовой модели прав доступа между отделами Спроектировать и объяснить ролевую модель авторизации Использовала ИБ-образование, спроектировала роли/группы/права Внедрено разграничение по отделам ИБ-бэкграунд — конкурентное преимущество в архитектурных решениях
6 Производительность/оптимизация (тяжёлые таблицы, Web Vitals) Список заказов с 9 фильтрами в ЕКОМ (TanStack Table) Неудобные таблицы 1С не справлялись с объёмом и фильтрацией заказов Спроектировать производительный интерфейс с множественной фильтрацией Реализовала на TanStack Table с 9 параметрами фильтрации Используется логистикой, клиентским отделом, техподдержкой и разработчиками Опыт с тяжёлыми таблицами данных релевантен для "heavy tables" оптимизации в Bnovo

Рекомендуемый кейс: РМК (legacy Vue 3 + WebSocket) — наиболее прямое совпадение с ключевым требованием JD "migrate legacy code... to Vue 3/TypeScript".

Вопросы-ловушки:

  • «У вас заявлено 4+ года, но по резюме меньше — как так?» → Честно: «около 2 лет коммерческого опыта, но за это время вела 3 параллельных продукта, включая greenfield с нуля и работу с legacy-кодом — по объёму задач это ближе к более опытному уровню, чем формальный стаж».
  • «Готовы менторить junior/middle разработчиков?» → «Есть опыт передачи знаний — обучила коллегу с 11-летним стажем работе с Git Flow. Формального менторского опыта пока меньше, готова расти в этом направлении, но не позиционирую себя как готового тимлида».
  • «Какой у вас опыт с AI-инструментами (Copilot/Cursor)?» → Отвечать честно по факту использования на момент интервью — не заявлять то, чего нет в CV.

Vibe команды

Судя по формулировкам JD, упоминаются код-ревью, менторство джунов/миддлов, потенциальный tech lead трек и внедрение AI-инструментов в разработку — это сигналы зрелой инженерной культуры с фокусом на рост и современный тулинг. Внешние отзывы сотрудников (Habr Career 4.78/5, elsolo 4.7/5) подтверждают позитивную атмосферу, своевременную зарплату и адекватный менеджмент, хотя часть отзывов отмечает высокую нагрузку. Бенефиты явно указывают на заботу о балансе (ДМС с психологической поддержкой, day off на день рождения, книжный клуб) — качественный сигнал гибкости и человекоцентричной культуры, хотя явных упоминаний автономии/участия в RFC в самом тексте JD нет.

G) Posting Legitimacy

Assessment: High Confidence

Сигнал Наблюдение Вес
Свежесть Опубликовано 6 июля 2026 Positive
Apply-кнопка Активна, отклик доступен Positive
Качество описания Детальный технический стек, конкретные обязанности (миграция, тестирование, менторство), реалистичные требования для Senior Positive
Компания Bnovo — аккредитованная IT-компания, SaaS-лидер в hospitality management, >200 сотрудников, >16 000 клиентов, устойчивая репутация (Habr Career 4.78/5) Positive
Company Hiring Signals WebSearch не выявил новостей о сокращениях или заморозке найма Bnovo в 2026 Positive/Neutral
Reposting По data/scan-history.tsv — первое появление этого URL в истории сканирования Neutral

Context Notes: Устойчивая, прибыльная SaaS-компания с давней историей и позитивной репутацией — сильные позитивные сигналы легитимности и стабильности.


Извлечённые ключевые слова

Vue.js, Vue 2, Vue 3, TypeScript, JavaScript ES6+, Vuex, Pinia, SOLID, миграция legacy, jQuery, HTML5, CSS3, SCSS, REST, WebSocket, Core Web Vitals, Event Loop, код-ревью, тестирование, Vitest, Jest, Playwright, менторство, tech lead, микрофронтенды, FSD, CI/CD, дизайн-система, SQL, LLM, ДМС, Санкт-Петербург, hospitality SaaS


Рекомендация

Балл 2.5/5 — ниже порога 4.0/5 (AGENTS.md, Ethical Use). Настоятельно рекомендуется не откликаться в текущем виде, при этом это наиболее "близкая" из трёх оценённых сегодня вакансий по совокупности сигналов:

  1. Стажевый пробел (4+ года заявлено vs ~1.7-2.5 года у кандидата) остаётся hard-блокером для формального скрининга.
  2. Роль включает элементы тимлид-трека (менторство, потенциальный tech lead) — ответственность выше текущего уровня.
  3. Сильные плюсы: подтверждённый удалённый формат (проходит location-политику), отличная репутация компании, реальное совпадение по WebSocket/legacy-работе/RBAC.
  4. Если кандидат готова рискнуть с честной позицией по стажу — это не безнадёжная попытка (в отличие от Selecty, где два независимых mandatory-блокера), но объективно балл ниже порога для рекомендации к отклику.