Files
career-ops-vbleroy/reports/033-media-potok-2026-07-07.md
redlineo 9fdd27bb11
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 20s
Release Please / release-please (push) Failing after 20s
CodeQL Analysis / Analyze (go) (push) Failing after 30s
add vk, add AI, add pet project, add new vacancies
2026-07-14 11:40:07 +03:00

163 lines
23 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Оценка: ООО МЕДИА ПОТОК — Fullstack-разработчик мобильных приложений
**Дата:** 2026-07-07
**Архетип:** Fullstack Developer (Mobile + Node backend) — гибрид Mobile Developer (Flutter, secondary) / Fullstack Vue+Node (adjacent)
**Балл:** 4.1/5
**URL:** https://hh.ru/vacancy/134067445
**PDF:** output/cv-romanova-valeriya-media-potok.pdf
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Fullstack-разработчик мобильных приложений (React Native/Flutter + Node.js backend) |
| Domain | mobile + light backend |
| Function | build |
| Seniority | 1-3 года |
| Формат работы | Санкт-Петербург — офис, удалённо или гибрид (на выбор) |
| Размер команды | Не указан |
| Оформление | ТК РФ или ГПХ (по договорённости) |
| TL;DR | Fullstack-роль на мобильных приложениях (Flutter/RN + Node.js backend), полностью гибкий формат работы, требуемый стаж 1-3 года — точное попадание в фактический опыт кандидата |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| Опыт 1-3 года | ✅ ~1.5-2 года коммерческого опыта (Здравсервис, ноябрь 2024 — настоящее время) |
| React Native/Flutter/аналог | ✅ Flutter — «Здесь Аптека» (баги, редизайн), «Здесь Сотрудник»/«Здесь Чат» (порт Android→iOS) |
| JavaScript/TypeScript или Dart | ✅ TypeScript (Vue 3 проекты ЕКОМ/РМК), Dart (Flutter) |
| Node.js или backend-язык | ⚠️ Node.js/Express/MongoDB — ознакомительный уровень (хакатон TulaHack.Digital + проект ТулГУ для НИЦ «БиоХимТех») |
| REST API | ✅ REST API — ЕКОМ, РМК |
| Базы данных | ⚠️ MongoDB на хакатоне — не production-масштаб |
| Cloud-сервисы | ⚠️ Не отражено в CV |
| Git | ✅ Git, GitLab, Feature Branching (внедрила и обучила коллегу) |
| Проектирование архитектуры новых фич | ✅ RBAC-модель авторизации (ЕКОМ), drag-and-drop календарь курьеров — самостоятельное проектирование |
| Тестирование, дебаг, релиз обновлений | ✅ Vitest, Playwright E2E, релиз iOS-сборок в App Store |
**Пробелы:**
1. **Node.js backend на production-уровне** — nice-to-have, не hard blocker: JD формулирует это как "Node.js или backend-язык", а не как строгое требование продакшн-масштаба.
2. Есть ли смежный опыт? Да — хакатон (Express + MongoDB) и университетский проект (Node.js на сервере) плюс постоянная работа с WebSocket/REST на стороне бэкенд-интеграции в ЕКОМ и РМК — то есть кандидат регулярно работает на границе front/back, даже если сама не пишет backend-код каждый день.
3. Портфолио-проект, закрывающий пробел: хакатон «Книга рецептов» (Express/Node.js/MongoDB) — единственный завершённый проект с реальным backend-кодом, стоит явно упомянуть в сопроводительном.
4. **План закрытия:** в сопроводительном письме и на собеседовании подчеркнуть постоянную работу на стыке frontend/backend (RBAC-дизайн требовал понимания серверной логики; WebSocket-интеграция шла в связке с бэкенд-разработчиком) — предложить готовность быстро прокачать production Node.js в первые недели.
5. **Cloud-сервисы** — не hard blocker для роли 1-3 года, но стоит явно спросить на интервью про масштаб облачной инфраструктуры.
## C) Уровень и стратегия
**Уровень в JD:** 1-3 года — совпадает с фактическим уровнем кандидата практически один в один. Не нужно "продавать senior" — наоборот, стоит избегать занижения, честно показывая реальный масштаб: самостоятельная разработка фронтенда с нуля (ЕКОМ), а не просто участие в готовой кодовой базе.
**План "продать уровень без обмана":** Акцент на то, что кандидат уже вела 3 продукта параллельно (Vue-веб, legacy Vue-проект, Flutter-мобильное приложение) — это редкий разброс ответственности для специалиста с таким стажем, и напрямую релевантно fullstack-формату роли (мобильное + backend-соприкосновение).
**План "если предложат нижнюю вилку":** Диапазон 100 000–200 000 ₽ на руки полностью покрывает и превышает целевой диапазон кандидата (100 000–120 000+). Даже нижняя граница вилки приемлема — договориться о пересмотре через 6 месяцев по мере роста Node.js-компетенций.
## D) Компенсация и спрос
| Источник | Данные |
|---|---|
| JD | 100 000–200 000 ₽/мес на руки, выплата дважды в месяц |
| Целевой диапазон кандидата | 100 000–120 000+ ₽/мес на руки |
| Fullstack, Санкт-Петербург (рыночный ориентир) | ~170-173 тыс. ₽/мес в среднем; Junior 90-130 тыс.; Middle+ ~340 тыс. ([dreamjob.ru](https://dreamjob.ru/salary/fullstack-razrabotchik/city-sankt-peterburg), [enigmai.ru](https://enigmai.ru/salary/fullstack/fullstack-salary-2026/)) |
| Flutter-разработчик РФ (для сравнения по мобильной части) | Junior 90-130 тыс., средняя ~190 тыс. (диапазон 140-240 тыс.) ([geeklink.io](https://geeklink.io/salary-stat/flutter-razrabotchik/)) |
Вилка JD (100-200к на руки) **полностью в рынке** и на верхней границе перекрывает Middle-диапазон для СПб. Учитывая, что JD ищет 1-3 года опыта, нижняя-средняя часть вилки (120-150к) реалистична для старта, с ростом к 150-180к при подтверждении Node.js-компетенций.
**Оформление:** ТК РФ или ГПХ на выбор — по возможности стоит настаивать на ТК РФ ради больничного/отпуска/защиты при увольнении.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|---|---|---|---|
| 1 | Summary | Акцент на Vue 3 + Flutter dual-track | Добавить явную фразу про постоянную работу на стыке frontend/backend (WebSocket, REST) | JD ищет именно fullstack, не чистый frontend |
| 2 | Ключевые компетенции | RBAC на первом месте | Добавить тег "Node.js / Express / REST API" рядом с Flutter | Прямое совпадение с ключевым требованием JD |
| 3 | Опыт работы (ЕКОМ) | Буллеты про drag-and-drop и RBAC | Добавить буллет про WebSocket-интеграцию как пример работы на границе front/back | Показывает backend-осознанность без выдумывания опыта |
| 4 | Проекты | Хакатон в конце списка проектов | Поднять хакатон «Книга рецептов» (Express/Node.js/MongoDB) выше — единственный реальный backend-проект | Прямое закрытие требования Node.js |
| 5 | Skills | Node.js помечен "ознакомительный уровень" | Оставить честную маркировку, но переформулировать как "REST API интеграция с Node.js/Express (учебный + хакатон проекты)" | Конкретика вместо расплывчатого "ознакомительно" |
| 6 (hh.ru) | Отклик/сопроводительное | — | Явно указать готовность к ТК РФ и предпочтение удалённого/гибридного формата | Экономит цикл уточнений с рекрутером |
| 7 (hh.ru) | Резюме на hh.ru | Заголовок "Frontend-разработчик" | Для этого отклика — заголовок "Fullstack-разработчик (Flutter + Node.js)" | Прямое совпадение с заголовком вакансии для ATS/поиска рекрутера |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Проектирование архитектуры новых фич | RBAC-модель авторизации в ЕКОМ | Логистика и другие отделы видели чужие заказы — риск утечки данных между отделами | Спроектировать ролевую модель доступа с нуля | Самостоятельно продумала модель ролей/групп/прав, опираясь на профильное ИБ-образование, и объяснила бэкенд-команде принцип работы | Разграничение внедрено, отделы видят только свои заказы | Поняла, что объяснение архитектурного решения нетехническим языком бэкенд-команде так же важно, как сам дизайн |
| 2 | Работа с REST API и внешними сервисами | WebSocket-оповещения в реальном времени на РМК | Не было видимости, сколько аптек онлайн | Дать кассирам и менеджменту real-time статус сети | Внедрила WebSocket (WSS) в связке с бэкенд-разработчиком для двусторонней связи | Впервые видно, сколько из ~1200 аптек онлайн и кто/когда прочитал оповещение | В следующий раз заложила бы метрику задержки доставки сообщений с самого начала, а не добавляла бы её постфактум |
| 3 | Работа с backend/базами данных (nice-to-have) | Хакатон TulaHack.Digital — «Книга рецептов» | Нужно было показать полный цикл продукта за ограниченное хакатон-время | Собрать fullstack-прототип: Vue 3 + Express + MongoDB | Реализовала фронтенд на Vue3/Ionic и backend-часть на Express с MongoDB для хранения рецептов и калорий пользователя | Рабочий прототип с личным кабинетом за время хакатона | Осознала разницу между "продакшн-качеством" и "хакатон-скоростью" — для реальной роли нужно подтянуть production-паттерны Node.js |
| 4 | Тестирование, дебаг и релиз обновлений | Порт «Здесь Сотрудник»/«Здесь Чат» Android → iOS | Оба приложения существовали только под Android | Собрать и опубликовать iOS-версии | Перепривязала Firebase push-токены под iOS, собрала билды, спроектировала app-иконки, отправила на ревью в App Store | Оба приложения успешно вышли на iOS | В следующий раз заранее проверила бы Firebase-конфигурацию на обеих платформах параллельно, а не последовательно |
| 5 | Дебаг сложных прод-багов | Диагностика бага «Избранное» в «Здесь Аптека» | Пользователи жаловались, что раздел не открывается | Найти первопричину и устранить | Выяснила, что все товары грузились одним запросом; договорилась с бэкенд-разработчиком о постраничной загрузке и реализовала её на фронтенде | Жалобы полностью прекратились | Стоило сразу спросить у бэкенда про пагинацию при подключении эндпоинта, а не постфактум по жалобам |
| 6 | Чистый код / процессы разработки | Внедрение Feature Branching в GitLab | Команда работала без единой ветки-стратегии, фичи "зависали" | Внедрить процесс версионирования и обучить команду | Настроила Feature Branching, обучила коллегу с 11-летним стажем работе с системой версионирования | Команда перешла на стабильные еженедельные релизы | Поняла, что внедрение процесса важно сопровождать индивидуальным обучением, а не только документацией |
| 7 | Полный цикл разработки фичи (frontend + backend-контекст) | График курьеров на vue-cal с drag-and-drop | Расписание вносили разработчики вручную SQL-запросами по заявке логистики | Дать логистике самостоятельный инструмент управления графиком | Реализовала drag-and-drop календарь на vue-cal с полной интеграцией с backend API заказов | Логистика полностью самостоятельно управляет графиком, разработчики больше не тратят время на ручной ввод | В следующий раз заложила бы batch-редактирование сразу, так как логистика позже отдельно запросила такую фичу |
**Рекомендуемый кейс:** «Здесь ЕКОМ» целиком — единственный проект, где кандидат вела архитектуру от фронтенда до границы с backend (RBAC, WebSocket, REST), максимально близко к формату fullstack-роли.
**Вопросы-ловушки:**
- *"Почему решили сменить формат с чистого frontend на fullstack?"* — Ответ: не смена, а расширение — уже сейчас регулярно взаимодействует с backend-логикой (RBAC, WebSocket), fullstack — логичное развитие, а не смена курса.
- *"У вас нет продакшн-опыта Node.js — как быстро адаптируетесь?"* — Ответ: назвать конкретный опыт (хакатон Express/MongoDB, университетский backend-проект) и предложить конкретный план изучения в первые недели (например, начать с некритичных эндпоинтов).
---
## Vibe команды
Судя по формулировкам JD, упомянуты "гибкие условия работы" (график 4/3, время начала по договорённости) и "командная работа" — это позитивный сигнал по критерию гибкости. Явных упоминаний участия в архитектурных решениях/RFC, менторства или code review culture в тексте нет — судя по формулировкам JD, недостаточно данных, чтобы утверждать это как факт; стоит уточнить на собеседовании структуру ревью и участие джуниоров в архитектурных решениях.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть | Опубликовано 7 июля 2026 (сегодня/вчера) | Positive |
| Качество описания | Конкретный стек, конкретные обязанности, названы конкретные станции метро/адреса офиса, указана вилка зарплаты | Positive |
| Компания | ООО (юрлицо), не физлицо/ИП | Positive |
| Реалистичность требований | 1-3 года опыта — реалистичный порог для перечисленного стека | Positive |
| Увольнения/заморозка найма | Сигналов не найдено (небольшая непубличная компания, новостей нет) | Neutral |
| Повторные публикации | Данных в scan-history.tsv по этой компании нет | Neutral |
**Context Notes:** Небольшая компания без публичной репутационной истории — часть "Listed Technologies" в объявлении на hh.ru выглядит как автоматическое облако смежных ключевых слов площадки (PostgreSQL, Docker, Java, PHP, Figma и т.д.), а не буквальный список требований; при оценке ориентировались на разделы "Обязанности"/"Требования", а не на этот тег-облако.
---
## Рекомендация
**Рекомендуется откликнуться.** Балл 4.1/5 — требуемый стаж (1-3 года) практически идеально совпадает с фактическим опытом кандидата, стек (Flutter + Node.js) прямо перекрывается с CV, формат работы полностью гибкий (удалённо доступно), вилка (100-200к на руки) покрывает и превышает целевой диапазон. Основной пробел — production-уровень Node.js, но это nice-to-have, а не блокер, и закрывается конкретным планом в сопроводительном письме.
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover media-potok` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Заинтересовала fullstack-позиция на мобильных приложениях в МЕДИА ПОТОК — сочетание Flutter и Node.js-бэкенда точно совпадает с моим опытом работы на стыке frontend и backend-интеграции.
**Profile introduction**
Frontend/Flutter-разработчик с коммерческим опытом на Flutter и Vue 3 (TypeScript). С ноября 2024 года веду мобильное приложение «Здесь Аптека», параллельно спроектировала архитектуру внутренней системы ЕКОМ с RBAC-авторизацией и WebSocket-интеграцией — регулярно работаю на границе frontend/backend.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Спроектировала ролевую модель авторизации (RBAC)** для ~20 пользователей в офисе с разграничением между отделами.
- **Внедрила WebSocket для оповещений в реальном времени** — впервые в компании видно, сколько аптек онлайн прямо сейчас.
- Реализовала fullstack-прототип на хакатоне TulaHack.Digital: **Vue 3, Ionic Capacitor, Express, Node.js, MongoDB**.
- **Адаптировала билды под iOS и собрала iOS-сборки** для отправки на проверку в App Store.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие задачи по мобильным приложениям и backend-интеграции сейчас приоритетны для МЕДИА ПОТОК, и как вы бы к ним подключились?
**Closing**
Буду рада обсудить вакансию. На связи в будни (13:00-14:00, после 18:00) и в выходные — предлагаю сначала согласовать удобное время созвона в Telegram (@vbleroy) или VK (vk.com/vbleroy).
---
**Gaps flagged:**
- Node.js backend на production-уровне — только ознакомительный опыт (хакатон + учебный проект), не hard blocker по формулировке JD.
- Cloud-сервисы — не отражены в cv.md, уточнить масштаб на собеседовании.
**JD keywords to mirror** *(extracted for ATS + human read)*
Flutter, React Native, Node.js, REST API, Git, мобильные приложения, fullstack
---
*Run `/career-ops cover media-potok` to complete angles, confirm company research, and generate the PDF.*