# Оценка: 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-блокера), но объективно балл ниже порога для рекомендации к отклику.