# Story Bank — Романова Валерия Накопленный банк историй STAR+R, извлечённых из `cv.md` во время оценок вакансий. Цель — со временем сформировать 5-10 мастер-историй, покрывающих большинство типовых вопросов на собеседовании. Каждая запись указывает, в каких отчётах она использовалась. --- ## 1. RBAC-модель авторизации («Здесь ЕКОМ») - **S:** Не было модели разграничения прав доступа между отделами (логистика не должна видеть заказы других отделов и наоборот). - **T:** Спроектировать и объяснить бэкенд-команде ролевую модель авторизации (RBAC). - **A:** Использовала профильное ИБ-образование, спроектировала роли/группы/права, презентовала и объяснила бэкенд-разработчику принцип работы и отличие от других моделей доступа. - **R:** Внедрено разграничение по отделам в продакшене. - **Reflection:** Нестандартный бэкграунд (информационная безопасность) — реальное конкурентное преимущество для frontend-роли, а не просто интересный факт в резюме. Архитектурная ответственность не всегда пропорциональна годам стажа. - **Использовано в отчётах:** 017 (ЦФТ), 024 (Бизнес Технологии), 025 (ИП Каржева), 026 (Dev Company 23), 027 (Sakura Games), 028 (Selecty), 029 (Bnovo), 030 (Бизнес Технологии, Middle), 033 (МЕДИА ПОТОК) ## 2. Диагностика бага «Избранное» («Здесь Аптека») - **S:** Жалобы пользователей на не открывающийся раздел «Избранное» в мобильном приложении. - **T:** Найти причину без готового отчёта от QA, до эскалации. - **A:** Диагностировала: все товары загружались одним запросом; обсудила с бэкенд-разработчиком и реализовала постраничную загрузку. - **R:** Жалобы прекратились. - **Reflection:** Проактивная диагностика продакшн-багов — сигнал ценен для команды с 50+ проектами; находить причину раньше эскалации важнее, чем просто закрывать тикеты. - **Использовано в отчётах:** 017 (ЦФТ), 025 (ИП Каржева), 028 (Selecty), 030 (Бизнес Технологии, Middle), 033 (МЕДИА ПОТОК), 037 (МТС GOODOK) ## 3. Feature Branching + обучение коллеги (РМК) - **S:** Хаотичные релизы, «зависшие» фичи, отсутствие процесса версионирования. - **T:** Внедрить Git Flow / Feature Branching в GitLab и обучить команду. - **A:** Обучила коллегу с 11-летним стажем работе с системой версионирования, внедрила процесс. - **R:** Команда перешла на стабильные еженедельные релизы, сократилось количество «зависших» фич. - **Reflection:** Мягкие навыки (обучение более опытного коллеги новому инструменту) не менее значимы, чем код — сильный сигнал уверенности в экспертизе независимо от общего стажа. - **Использовано в отчётах:** 017 (ЦФТ), 024 (Бизнес Технологии), 026 (Dev Company 23), 028 (Selecty), 029 (Bnovo), 030 (Бизнес Технологии, Middle), 033 (МЕДИА ПОТОК) ## 4. Замыкание реактивной переменной (РМК) - **S:** Клавиатура переставала работать после серии действий — сложный баг в legacy-коде. - **T:** Найти причину в глобальном классе биндинга клавиш к действиям. - **A:** Диагностировала: реактивная переменная передавалась в глобальный класс, старые версии не очищались (проблема замыкания). - **R:** Баг исправлен, задокументирован паттерн. - **Reflection:** Важность понимания жизненного цикла реактивных переменных вне компонентной области Vue — глубина понимания реактивности, а не только синтаксиса. - **Использовано в отчётах:** 017 (ЦФТ), 029 (Bnovo) ## 5. WebSocket-оповещения в реальном времени (РМК) - **S:** Не было видимости, сколько из ~1200 аптек онлайн в реальном времени. - **T:** Внедрить real-time оповещения с отметкой прочтения. - **A:** Реализовала WebSocket-канал (WSS) для оповещений, интерфейс показывает, кто и когда прочитал. - **R:** Видимость статуса ~1200 аптек в реальном времени; около половины читают в первые минуты. - **Reflection:** Реальная система масштаба, близкая к enterprise-требованиям — демонстрирует способность работать с real-time инфраструктурой на нетривиальном масштабе. - **Использовано в отчётах:** 017 (ЦФТ), 028 (Selecty), 029 (Bnovo), 033 (МЕДИА ПОТОК) ## 6. График курьеров на vue-cal («Здесь ЕКОМ») - **S:** Расписание курьеров вносилось вручную SQL-запросами разработчиков по заявке логистики. - **T:** Спроектировать интерфейс drag-and-drop на базе календаря vue-cal. - **A:** Реализовала календарь с управлением состоянием через Pinia. - **R:** Отдел логистики полностью самостоятельно управляет графиком без участия разработчиков. - **Reflection:** Автоматизация процесса, снимающая нагрузку с целой команды (а не только с одного пользователя) — показатель мышления в масштабе системы, а не отдельной фичи. - **Использовано в отчётах:** 026 (Dev Company 23), 030 (Бизнес Технологии, Middle), 033 (МЕДИА ПОТОК) ## 7. Список заказов с фильтрацией по 9 параметрам («Здесь ЕКОМ») - **S:** Неудобные таблицы 1С не позволяли эффективно отслеживать проблемные заказы. - **T:** Спроектировать и реализовать интерфейс с множественной фильтрацией. - **A:** Реализовала фильтрацию по 9 параметрам, заменив legacy-инструмент. - **R:** Интерфейсом пользуются логисты, отдел работы с клиентами, техподдержка и разработчики. - **Reflection:** Сложность бизнес-логики измеряется не только объёмом кода, но и числом отделов, которые полагаются на результат. - **Использовано в отчётах:** 026 (Dev Company 23), 029 (Bnovo), 030 (Бизнес Технологии, Middle) ## 8. UI/UX-инициатива без дизайнера («Здесь Аптека») - **S:** Не было выделенного дизайнера в компании, интерфейс кнопки «Избранное» и блока информации о заказе были неудобными. - **T:** Взять на себя проектирование интерфейса. - **A:** Самостоятельно спроектировала и внедрила редизайн (крупнее кнопка, компактнее блок информации). - **R:** Улучшенная эргономика интерфейса. - **Reflection:** Готовность закрывать пробел роли (дизайн) — сигнал проактивности, полезный для команд без штатного дизайнера. - **Использовано в отчётах:** 017 (ЦФТ), 028 (Selecty), 030 (Бизнес Технологии, Middle), 037 (МТС GOODOK) ## 9. Хакатон TulaHack.Digital — «Книга рецептов» - **S:** Нужно было за ограниченное время сделать полноценное fullstack-приложение с фильтрацией и личным кабинетом. - **T:** Реализовать frontend (Vue 3, Ionic Capacitor) и backend (Express, Node.js, MongoDB) в сжатые сроки. - **A:** Построила fullstack-приложение с нуля в команде на хакатоне. - **R:** Работающий прототип с фильтрацией по ингредиентам и подсчётом калорий. - **Reflection:** Понимает базовый fullstack-цикл, но осознаёт разницу между хакатон-прототипом и production-fullstack-системой с реальной нагрузкой. - **Использовано в отчётах:** 027 (Sakura Games), 033 (МЕДИА ПОТОК) ## 10. Проект НИЦ «БиоХимТех» при ТулГУ - **S:** Нужен был программно-вычислительный комплекс с фронтендом и серверной частью для контроля концентрации загрязняющих веществ. - **T:** Реализовать фронтенд на Vue.js и часть серверной логики на Node.js. - **A:** Проработала оба слоя приложения в течение 10 месяцев заказной разработки. - **R:** Сдан рабочий комплекс. - **Reflection:** Ранний опыт показал интерес к полному циклу разработки, который затем сфокусировался на frontend в коммерческой работе. - **Использовано в отчётах:** 027 (Sakura Games) ## 11. Портирование Android → iOS («Здесь Сотрудник», «Здесь Чат») - **S:** Два внутренних приложения изначально разрабатывались только под Android. - **T:** Адаптировать оба приложения под iOS и довести до релиза в App Store. - **A:** Перепривязала токены Firebase push-уведомлений на iOS и Android, собрала iOS-сборки, спроектировала app-иконки для обоих приложений, отправила на проверку в App Store. - **R:** Оба приложения успешно прошли ревью и вышли в App Store. - **Reflection:** Полный цикл кросс-платформенного релиза (не только код, но и процесс ревью платформы) — операционная зрелость, редко доверяемая разработчику с коротким формальным стажем. - **Использовано в отчётах:** 037 (МТС GOODOK)