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