Files
career-ops-vbleroy/interview-prep/story-bank.md
T
redlineo 12483fe7af
CodeQL Analysis / Analyze (go) (push) Has been cancelled
CodeQL Analysis / Analyze (javascript-typescript) (push) Has been cancelled
Release Please / release-please (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
new
2026-08-13 16:33:26 +03:00

105 lines
13 KiB
Markdown

# 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 (МЕДИА ПОТОК), 206 (VK MAX)
## 2. Диагностика бага «Избранное» («Здесь Аптека»)
- **S:** Жалобы пользователей на не открывающийся раздел «Избранное» в мобильном приложении.
- **T:** Найти причину без готового отчёта от QA, до эскалации.
- **A:** Диагностировала: все товары загружались одним запросом; обсудила с бэкенд-разработчиком и реализовала постраничную загрузку.
- **R:** Жалобы прекратились.
- **Reflection:** Проактивная диагностика продакшн-багов — сигнал ценен для команды с 50+ проектами; находить причину раньше эскалации важнее, чем просто закрывать тикеты.
- **Использовано в отчётах:** 017 (ЦФТ), 025 (ИП Каржева), 028 (Selecty), 030 (Бизнес Технологии, Middle), 033 (МЕДИА ПОТОК), 037 (МТС GOODOK), 206 (VK MAX)
## 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 (МЕДИА ПОТОК), 206 (VK MAX)
## 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 (МЕДИА ПОТОК), 206 (VK MAX)
## 6. График курьеров на vue-cal («Здесь ЕКОМ»)
- **S:** Расписание курьеров вносилось вручную SQL-запросами разработчиков по заявке логистики.
- **T:** Спроектировать интерфейс drag-and-drop на базе календаря vue-cal.
- **A:** Реализовала календарь с управлением состоянием через Pinia.
- **R:** Отдел логистики полностью самостоятельно управляет графиком без участия разработчиков.
- **Reflection:** Автоматизация процесса, снимающая нагрузку с целой команды (а не только с одного пользователя) — показатель мышления в масштабе системы, а не отдельной фичи.
- **Использовано в отчётах:** 026 (Dev Company 23), 030 (Бизнес Технологии, Middle), 033 (МЕДИА ПОТОК), 206 (VK MAX)
## 7. Список заказов с фильтрацией по 9 параметрам («Здесь ЕКОМ»)
- **S:** Неудобные таблицы 1С не позволяли эффективно отслеживать проблемные заказы.
- **T:** Спроектировать и реализовать интерфейс с множественной фильтрацией.
- **A:** Реализовала фильтрацию по 9 параметрам, заменив legacy-инструмент.
- **R:** Интерфейсом пользуются логисты, отдел работы с клиентами, техподдержка и разработчики.
- **Reflection:** Сложность бизнес-логики измеряется не только объёмом кода, но и числом отделов, которые полагаются на результат.
- **Использовано в отчётах:** 026 (Dev Company 23), 029 (Bnovo), 030 (Бизнес Технологии, Middle), 206 (VK MAX)
## 8. UI/UX-инициатива без дизайнера («Здесь Аптека»)
- **S:** Не было выделенного дизайнера в компании, интерфейс кнопки «Избранное» и блока информации о заказе были неудобными.
- **T:** Взять на себя проектирование интерфейса.
- **A:** Самостоятельно спроектировала и внедрила редизайн (крупнее кнопка, компактнее блок информации).
- **R:** Улучшенная эргономика интерфейса.
- **Reflection:** Готовность закрывать пробел роли (дизайн) — сигнал проактивности, полезный для команд без штатного дизайнера.
- **Использовано в отчётах:** 017 (ЦФТ), 028 (Selecty), 030 (Бизнес Технологии, Middle), 037 (МТС GOODOK), 206 (VK MAX)
## 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)