153 lines
25 KiB
Markdown
153 lines
25 KiB
Markdown
# Оценка: Dev Company 23 — Frontend разработчик Senior
|
||
|
||
**Дата:** 2026-07-07
|
||
**Архетип:** Frontend Developer (Vue.js) — primary archetype (сильное техническое совпадение, разрыв по заявленному стажу)
|
||
**Балл:** 2.4/5
|
||
**URL:** https://hh.ru/vacancy/134920082
|
||
**Legitimacy:** Proceed with Caution
|
||
**PDF:** не сгенерирован (балл < 3.0, порог для авто-PDF)
|
||
|
||
---
|
||
|
||
## A) Резюме роли
|
||
|
||
| Поле | Значение |
|
||
|------|----------|
|
||
| Архетип | Frontend Developer (Vue.js) — primary; стек — точное попадание в архетип кандидата |
|
||
| Domain | Frontend (SPA-приложения на Vue 3, бизнес-логика на TypeScript) |
|
||
| Function | Build + частично Mentor (код-ревью, менторство junior-разработчиков) |
|
||
| Seniority | **Senior**: заявлено 4+ года опыта с Vue.js и 6+ лет общего фронтенд-опыта |
|
||
| Формат работы | Полностью удалённо, из любой точки; график 5/2, 8-часовой рабочий день |
|
||
| Размер команды | Не указано явно |
|
||
| Оформление | Трудовой договор ИЛИ договор ГПХ (кандидату предлагается выбор — обычно означает вариативность в зависимости от статуса кандидата: самозанятый/ИП/физлицо) |
|
||
| Локация | Москва (юридически), но роль полностью удалённая — конфликта с политикой кандидата «Тула, без переезда» нет |
|
||
| TL;DR | Технически один из самых точных Vue 3/TS/Pinia матчей среди всех рассмотренных вакансий, с отличной компенсацией (от 270 тыс. ₽/мес до вычета налогов) и полностью удалённым форматом — но заявленный стаж (4-6 лет) более чем вдвое превышает фактический опыт кандидата (~1.7 года), что создаёт реальный риск отсева на этапе скрининга. |
|
||
|
||
**Vibe команды** (качественный сигнал, не входит в числовую оценку): Судя по формулировке JD — «команда, которая ценит экспертизу, инициативу и желание делать крутые продукты» — явный акцент на инициативе и экспертизе, что можно трактовать как сигнал ценности автономии разработчиков. Роль явно предполагает участие в архитектурных решениях («участие в принятии архитектурных решений фронтенда») — прямое упоминание права голоса в тексте. Упоминание code review и менторства junior-разработчиков — сигнал в пользу культуры код-ревью. Прямых упоминаний гибкого графика сверх «5/2, 8 часов» нет, хотя формат полностью удалённый «из любой точки» сам по себе высокая степень гибкости.
|
||
|
||
---
|
||
|
||
## B) Совпадение с CV
|
||
|
||
| Требование JD | Совпадение с cv.md |
|
||
|---|---|
|
||
| Vue 3 (Composition API) | Прямое совпадение: «Здесь ЕКОМ» — фронтенд с нуля на Vue 3, Composition API |
|
||
| TypeScript, сложная бизнес-логика | Прямое совпадение: ЕКОМ — TS в продакшене, сложная логика фильтрации заказов по 9 параметрам |
|
||
| Pinia (state management) | Прямое совпадение: Pinia указана в стеке ЕКОМ |
|
||
| Оптимизация производительности | Частичное совпадение: постраничная загрузка в «Избранное» («Здесь Аптека») как пример оптимизации, но не на уровне SPA-архитектуры целиком |
|
||
| Участие в архитектурных решениях фронтенда | Совпадение: спроектировала RBAC-модель авторизации в ЕКОМ, самостоятельно, с презентацией бэкенд-команде |
|
||
| Код-ревью, менторство junior | Частичное совпадение: обучила коллегу с 11-летним стажем работе с Git/Feature Branching — менторский опыт есть, но не формализованное код-ревью на постоянной основе |
|
||
| JavaScript, HTML5, UX/HTML | Прямое совпадение (раздел «Навыки») |
|
||
| Nuxt | **Пробел** — Nuxt указан в cv.md только в разделе «Быстро осваиваю», нет продакшн-опыта |
|
||
| **4+ года опыта с Vue.js, 6+ лет общий фронтенд-опыт** | **Существенный пробел.** У кандидата ~1 год работы с Vue 3 (ЕКОМ) + ~6 месяцев (РМК) = менее 1.7 лет коммерческого опыта в целом, из них с Vue — даже меньше формально заявленного порога |
|
||
|
||
### Пробелы
|
||
|
||
1. **Стаж (4-6 лет vs ~1.7 года)** — hard blocker для формального ATS/HR-фильтра, хотя не невозможный для прохождения при сильном техническом собеседовании.
|
||
- Может ли кандидат продемонстрировать смежный опыт? Да — greenfield-разработка ЕКОМ с нуля, самостоятельное архитектурное решение (RBAC), одновременное ведение 3 продуктов — это глубина ответственности, которая частично компенсирует нехватку календарного стажа.
|
||
- Портфолио-проект, закрывающий пробел? Нет отдельного демо.
|
||
- Конкретный план: в сопроводительном письме явно предложить проверку через тестовое задание/техническое интервью вместо формального отсева по годам — «не соответствую по формальному стажу, но стек и глубина ответственности за ЕКОМ (greenfield с нуля) могут быть интересны для технической оценки».
|
||
2. **Nuxt** — nice-to-have (упомянут в списке требуемых навыков, но не выделен как обязательный). Стратегия: честно отметить «есть Nuxt в списке инструментов для быстрого освоения, готова закрыть за короткий срок при необходимости» — не заявлять продакшн-опыт, которого нет.
|
||
|
||
---
|
||
|
||
## C) Уровень и стратегия
|
||
|
||
**Уровень в JD:** Senior, формальный порог 4-6 лет опыта.
|
||
**Естественный уровень кандидата для архетипа Frontend (Vue.js):** Junior→Middle (переходный).
|
||
|
||
**План «продать senior без обмана»:**
|
||
- Вести с масштабом ответственности, а не с годами: «спроектировала и реализовала с нуля фронтенд системы управления заказами и логистикой для сети ~1200 аптек, включая архитектурное решение по авторизации (RBAC)».
|
||
- RBAC как дифференциатор — редкая для грейда/стажа инициатива, прямое попадание в требование «участие в архитектурных решениях».
|
||
- Честно обозначить фактический стаж (~1.7 года) без попытки скрыть или размыть цифру — контраст между малым стажем и объёмом ответственности работает в пользу кандидата только при честной подаче.
|
||
|
||
**План «если понизят уровень»:**
|
||
- Принять понижение до Middle **только** при сохранении компенсации в диапазоне ≥ таргета кандидата (100 000+ ₽/мес на руки) — учитывая, что даже нижняя граница этой вакансии (270 тыс. ₽ до вычета ≈ 235 тыс. ₽ на руки после НДФЛ) существенно выше таргета, есть большой запас для переговоров даже при понижении грейда.
|
||
- Договориться о пересмотре через 6 месяцев с конкретными критериями (закрытие архитектурных задач без сопровождения сеньора, полноценное код-ревью на постоянной основе).
|
||
|
||
---
|
||
|
||
## D) Компенсация и спрос
|
||
|
||
**Зарплата в вакансии:** от 270 000 ₽/мес, **до вычета налогов (gross)**, верхняя граница не указана.
|
||
|
||
**Пересчёт в net:** `net ≈ gross × 0.87` → от **≈234 900 ₽/мес на руки** (нижняя граница; верхняя неизвестна).
|
||
|
||
**Рыночные данные (WebSearch, RU market, июль 2026):**
|
||
|
||
| Источник | Данные |
|
||
|---|---|
|
||
| Senior Frontend, Москва (медиана, hh.ru, февраль 2026) | 287 500 ₽/мес |
|
||
| Senior Vue Developer (широкий диапазон) | 480 000–650 000 ₽/мес для сильных специалистов |
|
||
| Vue vs React | Vue-разработчики в среднем получают на 8-12% меньше React-специалистов того же грейда |
|
||
|
||
**Оценка:** Нижняя граница вилки (270 тыс. gross ≈ 235 тыс. net) заметно **выше** таргета кандидата (100 000–120 000+ ₽/мес на руки) и близка к рыночной медиане для формального Senior. Даже если реальный оффер окажется на нижней границе вилки из-за несоответствия по годам стажа, компенсация всё равно останется существенно выше целевого диапазона кандидата.
|
||
|
||
**Вывод:** Компенсация одна из сильнейших сторон этой вакансии — единственный вопрос в том, пройдёт ли кандидат формальный отсев по годам стажа до того, как компания увидит реальную глубину опыта.
|
||
|
||
---
|
||
|
||
## E) План персонализации
|
||
|
||
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|
||
|---|--------|--------------------|--------------------------|--------|
|
||
| 1 | Summary (PDF) | Общий акцент на Vue3 + Flutter dual-track | Для ЭТОЙ вакансии — вести исключительно с Vue 3 + Composition API + TS + Pinia, убрать Flutter | Роль чисто Frontend Vue Senior, Flutter не релевантен и отвлекает от сильного технического совпадения |
|
||
| 2 | Опыт — заголовок роли | «Frontend/Flutter-разработчик» | Показать как «Frontend-разработчик (Vue 3 / TypeScript)» | Прямое совпадение с точным заголовком роли повышает ATS keyword-match |
|
||
| 3 | Проектные буллеты | RBAC упомянут как один из пунктов | Вынести архитектурное решение (RBAC) на первую строку под ЕКОМ — прямое попадание в требование «участие в архитектурных решениях» | Компенсирует формальный пробел по стажу через демонстрацию реальной архитектурной ответственности |
|
||
| 4 | Ключевые слова | Vue 3, TS, Pinia уже есть | Явно добавить «Composition API», «код-ревью», «менторство» (обучение коллеги с 11-летним стажем — честный пример менторства) | Прямое совпадение с формулировками JD («код-ревью и менторство junior») |
|
||
| 5 | Сопроводительное письмо | — | Явно и честно указать разрыв по годам стажа и предложить решение через техническое собеседование/тестовое задание | Честность повышает доверие рекрутера при формальном несоответствии критериям |
|
||
|
||
---
|
||
|
||
## F) План собеседований
|
||
|
||
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|
||
|---|---|---|---|---|---|---|---|
|
||
| 1 | Участие в архитектурных решениях фронтенда | RBAC-модель в ЕКОМ | Не было модели разграничения прав между отделами (логистика/заказы) | Спроектировать и объяснить бэкенду ролевую модель авторизации | Использовала ИБ-образование, спроектировала роли/группы/права, презентовала бэкенд-команде | Внедрено разграничение по отделам, объяснено и принято командой | Архитектурная ответственность не всегда пропорциональна годам стажа — важно уметь показать это прямо, не извиняясь за малый стаж |
|
||
| 2 | Сложная бизнес-логика на TypeScript | Список заказов с фильтрацией по 9 параметрам | Неудобные таблицы 1С не позволяли эффективно отслеживать проблемные заказы | Спроектировать и реализовать интерфейс с множественной фильтрацией на TS | Реализовала фильтрацию по 9 параметрам, заменив legacy-инструмент | Используется логистикой, клиентским отделом, техподдержкой и разработчиками | Сложность бизнес-логики измеряется не только объёмом кода, но и числом заинтересованных отделов, которые полагаются на результат |
|
||
| 3 | Код-ревью / менторство junior | Обучение коллеги системе версионирования | Коллега с 11-летним стажем не работал с Feature Branching, хаотичные релизы | Обучить и внедрить процесс версионирования | Обучила коллегу, внедрила Git Flow в GitLab | Команда перешла на стабильные еженедельные релизы | Менторство «наоборот» (обучение более опытного коллеги новому инструменту) — сильный сигнал уверенности в экспертизе, несмотря на меньший общий стаж |
|
||
| 4 | Оптимизация производительности | Диагностика и фикс бага «Избранное» | Раздел не открывался — все товары грузились одним запросом | Найти причину и реализовать постраничную загрузку | Диагностировала проблему самостоятельно, реализовала pagination | Жалобы пользователей прекратились | Оптимизация производительности начинается с точной диагностики, а не только с готовых паттернов |
|
||
| 5 | Работа с state management (Pinia) | График курьеров на базе vue-cal | Расписание вносилось вручную SQL-запросами разработчиков по заявке логистики | Спроектировать интерфейс drag-and-drop с использованием Pinia для состояния | Реализовала календарь на vue-cal с управлением состоянием через Pinia | Логистика полностью самостоятельно управляет графиком без участия разработчиков | Grand-scale автономизация процесса — показатель того, что решение снимает нагрузку с целой команды, а не только с одного пользователя |
|
||
|
||
**Рекомендуемый кейс:** «Здесь ЕКОМ» целиком — greenfield-продукт, максимально близкий по масштабу и характеру задач (Vue 3 SPA, сложная бизнес-логика, архитектурные решения) к описанной в JD роли.
|
||
|
||
**Вопросы-ловушки:**
|
||
- «Мы ищем 4-6 лет опыта, у вас меньше 2 — почему претендуете на Senior?» → честно: «Формально меньше — 1.7 года, но за это время самостоятельно довела greenfield-продукт до продакшена, включая архитектурное решение (RBAC), которое обычно не доверяют разработчику с таким стажем. Готова подтвердить это на техническом собеседовании».
|
||
- «Есть опыт с Nuxt?» → честно: «Продакшн-опыта нет, но Nuxt в списке инструментов, которые быстро осваиваю; Vue 3 + Composition API — основной стек последний год».
|
||
- «Почему готовы работать по ГПХ, если это возможно?» → уточнить у рекрутера условия и разницу в защите (ГПХ vs трудовой договор) до согласия, не соглашаться вслепую.
|
||
|
||
---
|
||
|
||
## G) Проверка легитимности вакансии (Posting Legitimacy)
|
||
|
||
**Assessment: Proceed with Caution**
|
||
|
||
| Сигнал | Наблюдение | Вес |
|
||
|---|---|---|
|
||
| Свежесть публикации | Опубликована 2026-07-07 (сегодня), кнопка отклика активна («Apply button active» по данным WebFetch) | Positive |
|
||
| Качество описания | Конкретный стек (Vue 3 Composition API, TypeScript, Pinia, Nuxt), конкретные обязанности (архитектурные решения, код-ревью, менторство), явно описан формат работы и график — не шаблонный/размытый текст | Positive |
|
||
| Внутренние противоречия | Требование 4+ года Vue.js специфично — Vue 3 с Composition API как мейнстрим-стек существует не так давно (Vue 3 стабильный релиз — 2020), поэтому формальные «4+ года именно с Vue» физически предполагают опыт ещё с Vue 2/переходного периода — не противоречие, но стоит уточнить, что именно засчитывается | Neutral |
|
||
| Company Hiring Signals | Название «Dev Company 23» — WebSearch дал только частичное совпадение с другой компанией («Компания 23 программиста», Бердск/Новосибирск) — **связь не подтверждена**, это может быть просто похожее название без отношения к текущей вакансии. Прямых новостей о сокращениях/заморозке найма не найдено | Neutral (недостаточно данных для уверенного вывода) |
|
||
| Reposting Detection | По `data/scan-history.tsv` — первое появление этой вакансии/URL в истории сканирования | Neutral |
|
||
| Role Market Context | Полностью удалённая Senior Frontend Vue-роль с конкурентной компенсацией — распространённый и обычно заполняемый тип вакансии (4-8 недель), не вызывает подозрений | Neutral/Positive |
|
||
|
||
**Context Notes:** Общее впечатление о вакансии положительное с точки зрения качества текста и активности отклика — риск здесь не в «вакансии-призраке», а в формальном несоответствии заявленному стажу. Название компании не удалось однозначно идентифицировать во внешних источниках (возможно, малоизвестная или недавно зарегистрированная компания) — рекомендуется уточнить юридическое название работодателя до отклика.
|
||
|
||
---
|
||
|
||
## Извлечённые ключевые слова
|
||
|
||
Vue 3, Composition API, TypeScript, Pinia, Nuxt, JavaScript, HTML5, UX/HTML, SPA, архитектурные решения фронтенда, код-ревью, менторство, оптимизация производительности, удалённая работа, ГПХ, трудовой договор, Senior Frontend
|
||
|
||
---
|
||
|
||
## Итоговая рекомендация
|
||
|
||
**Балл 2.4/5 — ниже порога 4.0/5 (AGENTS.md, Ethical Use).** Рекомендуется **не откликаться в текущем виде без явного уточнения условий отбора**, по совокупности причин:
|
||
|
||
1. Разрыв по стажу (4-6 лет заявлено vs ~1.7 года у кандидата) — реальный риск отсева на этапе ATS/HR-скрининга, несмотря на очень сильное техническое совпадение стека (Vue 3 + Composition API + TS + Pinia — почти идеальный матч).
|
||
2. Компенсация отличная (от 270 тыс. ₽ до вычета, ≈235 тыс. ₽+ на руки) — существенно выше таргета кандидата, что делает вакансию привлекательной, если разрыв по стажу удастся преодолеть на этапе собеседования.
|
||
3. Компания не идентифицирована однозначно во внешних источниках — рекомендуется уточнить юридическое название и репутацию до вложения времени в подготовку.
|
||
|
||
**Если кандидат всё же хочет откликнуться:** делать это с максимально честной и прямой подачей разрыва по стажу, предлагая техническое собеседование или тестовое задание как способ компенсировать формальное несоответствие критериям — при полностью удалённом формате риск для кандидата минимален (нет конфликта с локационной политикой).
|