PrepBro
Профессии
PrepBro
Профессия:

Подготовка

  • Вопросы580
  • Задачи17

Аналитика

  • hh статистика
  • Анализ резюме

Практика

  • Тестовое собеседование
  • Mock-собеседование
  • Менторы

Поддержка / отзывы

Telegram админа
Профессия:

Подготовка

  • Вопросы580
  • Задачи17

Аналитика

  • hh статистика
  • Анализ резюме

Практика

  • Тестовое собеседование
  • Mock-собеседование
  • Менторы

Поддержка / отзывы

Telegram админа
Все 24 профессии
Android DeveloperData AnalystSystem Analyst1С DeveloperiOS DeveloperBusiness AnalystJava DeveloperData ScientistQA EngineerQA AutomationPHP BackendC/C++ BackendDevOps EngineerIT Project ManagerFrontend DeveloperNode.js BackendUnity DeveloperC# BackendProduct AnalystFlutter DeveloperPython DeveloperIT Product ManagerGo DeveloperData Engineer

© 2026 PrepBro. Все права защищены.

Telegram-бот

Задачи по System Analyst

Декомпозировать требования для экрана мобильного приложения
2.0 Middle🔥 23💬 1

Декомпозиция экрана оформления заказа в приложении доставки еды

1. Описание процесса работы экрана

Экран оформления заказа — это финальный шаг в воронке покупки, где пользователь подтверждает выбранные блюда, применяет скидки, выбирает условия доставки и способ оплаты.

Основной процесс:

  1. Пользователь видит список уже выбранных блюд из ресторана (из предыдущего экрана)
  2. Может изменить количество каждого блюда (+/-) или удалить его
  3. Вводит промокод для получения скидки
  4. Выбирает адрес доставки из сохранённых адресов или вводит новый
  5. Выбирает время доставки (АСАП, конкретный час, конкретное время)
  6. Выбирает способ оплаты (карта, кошельки, наличные при доставке)
  7. Видит автоматически рассчитанную итоговую стоимость с учетом:
    • Суммы блюд (с учётом изменённого количества)
    • Скидки от промокода
    • Стоимости доставки
    • Налогов (если применимо)
  8. Нажимает кнопку "Оформить заказ" для создания заказа
Читать полностью ->
Описать нефункциональные требования для высоконагруженной системы
1.8 Middle🔥 22💬 1

Нефункциональные требования для высоконагруженной системы бронирования билетов

КОНТЕКСТ

  • 1 млн активных пользователей
  • Пиковая нагрузка: 100,000 одновременных запросов при открытии продаж
  • Критична точность данных (не могут быть проданы два одинаковых билета)
  • Система должна работать 24/7

1. ПРОИЗВОДИТЕЛЬНОСТЬ (Performance)

NFR-101: Время отклика (Response Time)

Требования по типам операций:

ОперацияP50 (медиана)P95P99 (99-й процентиль)Максимум
Поиск мероприятий200 ms500 ms1 sec2 sec
Просмотр доступных билетов300 ms800 ms1.5 sec3 sec
Бронирование билета500 ms1.5 sec3 sec5 sec
Оплата билета1000 ms2 sec4 sec8 sec
Подтверждение заказа200 ms500 ms1 sec2 sec
Читать полностью ->
Описать интеграцию четырёх систем для процесса выдачи банковской карты
1.0 Junior🔥 19💬 1

Интеграция четырёх систем для выдачи банковской карты

Обзор архитектуры

Процесс выдачи карты включает 4 последовательных этапа с различными требованиями к интеграции:

  1. Приём заявки (Форма заявки)
  2. Оценка риска (Скоринг)
  3. Производство (Печать карты)
  4. Доставка (Логистика)

1. Типы интеграции и обоснование

Форма заявки → Скоринг: Синхронная интеграция (REST API)

Обоснование:

  • Требуется немедленный результат (одобрена/отклонена заявка)
  • Клиент ждёт ответа на экране
  • Процесс не должен быть заблокирован на долгое время
  • Очень быстрое выполнение (обычно 2-5 секунд)

Реализация:

Форма заявки --[HTTP POST]-> Скоринг
              <-[JSON ответ]--

Таймаут: 10 секунд

Скоринг → Печать карты: Асинхронная интеграция (Message Queue)

Читать полностью ->
Провести анализ изменения интеграции при добавлении новых полей
1.7 Middle🔥 17💬 1

Анализ изменения интеграции

1. Что изменится

API расширяется двумя обязательными полями place_of_work и income. Контракт меняется v1→v2. ESB требует обновления маршрутов.

2. Затронутые системы

Веб-сервис Клиенты, Скоринг, ESB, БД, Отчётность, Мониторинг.

3. Обратная совместимость

Вариант 1: API versioning (v1, v2 отдельно) Вариант 2: новые поля опциональны в старой версии Реализация: ESB проверяет версию, подставляет default-значения

4. План миграции

Недели 1-2: подготовка, документация Недели 2-4: разработка, обновление БД Недели 4-5: staging тесты Недели 5-6: production с бэкапом Недели 6-8: мониторинг

5. Тесты

Unit: валидация, маппинг, алгоритм Интеграционные: v1 e2e, v2 e2e Функциональные: новый клиент, миграция Регрессионные: v1 работает Performance: 1000 req/sec Data migration: целостность, rollback

Читать полностью ->
Спроектировать REST API для интернет-магазина книг
1.3 Junior🔥 16💬 1

REST API для интернет-магазина книг

Общие принципы проектирования

Базовый URL: https://api.bookstore.com/v1

Аутентификация: JWT токен в заголовке Authorization: Bearer {token}

Формат ответов: JSON

1. Эндпоинты работы с книгами

Получение списка всех книг

GET /books
Параметры:
- page (int): номер страницы (по умолчанию 1)
- limit (int): количество книг на странице (по умолчанию 20)
- sort (string): сортировка (price_asc, price_desc, title, rating)
- author (string): фильтр по автору
- search (string): полнотекстовый поиск

Ответ 200 OK:
{
  "data": [{"id": "uuid", "title": "Война и мир", "author": "Лев Толстой", "isbn": "978-5-17-070490-8", "price": 599.99, "stock": 45, "rating": 4.8}],
  "pagination": {"page": 1, "limit": 20, "total": 156}
}

Получение книги по ID

GET /books/{id}

Ответ 200 OK:
{
  "id": "uuid",
  "title": "Война и мир",
  "author": "Лев Толстой",
  "isbn": "978-5-17-070490-8",
  "price": 599.99,
  "stock": 45
}
Читать полностью ->
Спроектировать процесс авторизации через SMS-код
1.0 Junior🔥 15💬 1

Решение: Проектирование процесса авторизации через SMS-код

Sequence Diagram

User (Мобильное приложение) -> Backend: 1. POST /auth/send-sms {phone: "+79991234567"}
Backend -> SMS-шлюз: 2. Отправить SMS с кодом
SMS-шлюз -> SMS-шлюз: 3. Генерирует код (6 цифр), сохраняет в очередь
SMS-шлюз -> SMS Provider: 4. Отправляет SMS на оператора
SMS Provider -> User: 5. SMS доставлена на телефон
User -> Backend: 6. POST /auth/verify-sms {phone, code}
Backend -> Backend: 7. Проверяет код (валиден ли, не истёк ли, лимит попыток)
Backend -> Database: 8. Создаёт сессию пользователя / JWT токен
Backend -> User: 9. Возвращает токен доступа (access_token, refresh_token)
User -> Backend: 10. Дальнейшие запросы с Authorization: Bearer {token}

Системы-участники

  1. Мобильное приложение (iOS/Android)
    • Интерфейс для ввода номера телефона
    • Интерфейс для ввода SMS-кода
    • Сохранение токенов в secure storage
Читать полностью ->
Написать SQL-запрос для отчёта по продажам
1.6 Junior🔥 15💬 1

SQL-запрос для отчёта по продажам

Основное решение

SELECT 
  c.id,
  c.name AS category_name,
  ROUND(SUM(oi.quantity * oi.price)::numeric, 2) AS total_sales
FROM categories c
INNER JOIN products p ON c.id = p.category_id
INNER JOIN order_items oi ON p.id = oi.product_id
INNER JOIN orders o ON oi.order_id = o.id
WHERE o.status = 'completed'
  AND o.created_at >= NOW() - INTERVAL '1 month'
GROUP BY c.id, c.name
ORDER BY total_sales DESC
LIMIT 5;

Анализ запроса

Структура соединений: Запрос связывает категории с продуктами, продукты с элементами заказов, элементы с самими заказами. Это позволяет получить полную информацию о каждой покупке.

Фильтрация данных:

  • o.status = 'completed' отбирает только завершённые заказы
  • o.created_at >= NOW() - INTERVAL '1 month' ограничивает данные последним месяцем
Читать полностью ->
Проанализировать требования и найти противоречия
1.0 Junior🔥 13💬 1

Анализ противоречий в требованиях для системы управления складом

Найденные противоречия

Противоречие 1: Реальное время vs периодическая синхронизация

  • Маркетинг (Req 1): клиенты видят точное количество в реальном времени
  • Логистика (Req 2): обновление раз в час
  • IT (Req 4): файловый обмен с 1С раз в сутки

Маркетинг требует real-time, но IT и Логистика дают данные с задержкой от 1 часа до 24 часов. Клиент может видеть устаревшие остатки.

Противоречие 2: Резервирование vs актуальность данных

  • Продажи (Req 3): резервировать товар на 30 минут при добавлении в корзину
  • Логистика (Req 2): данные обновляются раз в час
  • Финансы (Req 5): нельзя продать то, чего нет

Если остатки обновляются раз в час, а резервирование идёт в реальном времени — возможна ситуация, когда товар зарезервирован, но по факту его уже нет на складе.

Читать полностью ->
Написать SQL-запрос с использованием оконных функций
1.0 Junior🔥 13💬 1

SQL-запросы с оконными функциями

1. Зарплата и средняя зарплата по отделу

SELECT
    e.name,
    d.name AS department,
    e.salary,
    ROUND(AVG(e.salary) OVER (PARTITION BY e.department_id), 2) AS avg_salary_by_dept
FROM employees e
INNER JOIN departments d ON e.department_id = d.id
ORDER BY e.department_id, e.salary DESC;

Объяснение:

  • PARTITION BY e.department_id — разделяет данные по отделам
  • AVG(e.salary) OVER (...) — считает среднюю зарплату для каждого отдела
  • ROUND(..., 2) — округляет до 2 знаков

2. Топ-3 сотрудников по зарплате в каждом отделе

Читать полностью ->
Написать User Story для функции регистрации пользователя
1.2 Junior🔥 13💬 1

User Story: Регистрация пользователя в мобильном приложении банка

Основная история

Как новый пользователь, я хочу зарегистрироваться в приложении банка через номер телефона, чтобы получить доступ к основным услугам мобильного банка и управлению своим счётом.


Критерии приёмки (Acceptance Criteria)

Сценарий 1: Успешная регистрация

Дано: Пользователь находится на экране регистрации
Когда: Пользователь вводит корректный номер телефона (+7 9XX XXX XX XX) и нажимает кнопку «Продолжить»
Тогда:

  • На номер телефона отправляется SMS-код из 6 цифр
  • Появляется экран подтверждения с полем для ввода кода
  • Запускается таймер обратного отсчёта на 5 минут
  • Отображается текст: «Код отправлен на номер XXX-XX-XXXX»
Читать полностью ->
Выбрать архитектуру для нового проекта
1.0 Junior🔥 12💬 1

Выбор архитектуры для сервиса онлайн-обучения

1. Выбор: МОНОЛИТ на старте

Для этого проекта выбираю монолит, потом эволюция к микросервисам.

2. Обоснование

MVP за 3 месяца - монолит разрабатывается в 2x быстрее Команда 5 человек - микросервисы требуют 12+ людей Нагрузка 1000 users - монолит легко выдержит Операционная простота - 1 приложение vs 5-7 сервисов Риск MVP - может не прижиться, не инвестировать в сложность

3. Факторы решения

  • Time-to-market (40%) - монолит +++
  • Размер команды (30%) - монолит +++
  • Начальная нагрузка (15%) - монолит +++
  • Operations (10%) - монолит ++
  • Бизнес-риск (5%) - монолит +

Общий score: Монолит 85% vs Микросервисы 15%

4. Когда переходить на микросервисы

Критерии:

  • Масштаб: 50K+ users (сейчас 1K)
  • Команда: 15+ разработчиков (сейчас 5)
  • Разные требования: видео, платежи требуют отдельной оптимизации
  • Независимость: платежи и видео должны быть надёжны

Таймлайн: Месяц 12-18

Читать полностью ->
Спроектировать диаграмму состояний для сущности Заказ
1.0 Junior🔥 11💬 1

State Machine Diagram для сущности "Заказ"

1. Текстовое описание диаграммы состояний

┌─────────────────────────────────────────────────────────────────────┐
│                        ЖИЗНЕННЫЙ ЦИКЛ ЗАКАЗА                        │
└─────────────────────────────────────────────────────────────────────┘
Читать полностью ->
Написать ТЗ на модуль уведомлений
1.0 Junior🔥 9💬 1

ТЗ: Модуль уведомлений для корпоративного портала

1. Цели в бизнес-показателях

Основная цель: Повысить вовлечённость пользователей и своевременность реагирования на задачи.

KPI:

  • User Engagement: увеличить активность на 30% (метрика: daily active users)
  • Task Resolution Time: сократить время выполнения на 20% (с 5 дней → 4 дня)
  • Deadline Compliance: повысить соблюдение дедлайнов на 25% (с 75% → 100%)
  • Communication Efficiency: уменьшить письма по задачам на 40% (за счёт уведомлений)
  • Notification Opt-in Rate: 80% пользователей активируют уведомления
  • Email Open Rate: > 45% (industry standard 20-25%)
  • Push Click-Through Rate: > 15%

2. Ролевая модель

Администратор портала:

  • Настраивать глобальные параметры уведомлений
  • Отключать/включать уведомления для отдельных пользователей
  • Просмотр статистики
  • Управление шаблонами уведомлений
Читать полностью ->
Обработать конфликт требований между стейкхолдерами
1.0 Junior🔥 9💬 1

Решение

1. Методология

Применяю структурированный подход - разделение интересов (interests) и позиций (positions)

2. Вопросы к отделу продаж

  • Для какой конкретной задачи нужна финансовая информация?
  • На каких этапах менеджеру нужны эти данные?
  • Критична ли точная сумма или достаточно статуса платежа?
  • Для всех менеджеров или только для части?
  • Какие бизнес-последствия отсутствия доступа?

3. Вопросы к безопасности

  • Какой конкретный риск вы видите?
  • Какие регуляторные требования применяются?
  • Какой уровень логирования вас удовлетворит?
  • У кого уже есть доступ в других системах?
  • Какой тип данных наиболее критичен?

4. Компромиссные решения

Вариант A: RBAC (Role-Based Access Control)

  • Младший менеджер → только статус оплаты
  • Старший менеджер → суммы и истории
  • Руководитель → всё Плюсы: сбалансирован

Вариант B: Data Masking

  • Менеджеры видят количество сделок и диапазоны
  • Полная информация только через запрос Плюсы: контекст без рисков
Читать полностью ->
Смоделировать бизнес-процесс оформления заказа в BPMN
1.0 Junior🔥 9💬 1

Решение: BPMN-модель процесса оформления заказа

Описание архитектуры процесса

Бизнес-процесс оформления заказа в интернет-магазине представляет собой сложный процесс взаимодействия между несколькими участниками. Процесс начинается с инициирующего события (покупатель переходит на сайт) и завершается либо успешной доставкой товара, либо отклонением заказа.

Участники процесса (Swimlanes)

Процесс разделён на 5 участников:

  • Покупатель — инициирует процесс, выбирает товары, оплачивает
  • Система магазина — управляет логикой, проверяет доступность
  • Платёжная система — обрабатывает платежи
  • Склад — резервирует и отпускает товары
  • Служба доставки — доставляет заказ

Основной поток процесса

  1. Начальное событие: Покупатель открывает корзину (Start Event)

  2. Добавление товаров: Покупатель добавляет товары в корзину (Задача в lane Покупателя)

  3. Оформление заказа: Покупатель заполняет данные доставки и подтверждает заказ (Задача)

Читать полностью ->
Написать Use Case для процесса возврата товара
1.2 Junior🔥 6💬 1

Use Case: Возврат товара в интернет-магазине

1. Название

Return Product (UC-05: Возврат товара)

2. Акторы

Первичные акторы:

  • Покупатель — инициирует процесс возврата товара
  • Система интернет-магазина — обрабатывает логику возврата

Вторичные акторы:

  • Склад — проверяет состояние товара, обновляет инвентарь
  • Платёжная система — обрабатывает возврат денежных средств
  • Курьерская служба — доставляет товар обратно
  • Бонусная система — начисляет бонусы вместо возврата денег
  • Служба поддержки — может отклонить возврат при нарушениях

3. Предусловия

  1. Покупатель авторизован в системе
  2. У покупателя есть активный заказ
  3. Товар был доставлен покупателю
  4. Прошло не более 14 дней с момента доставки
  5. Товар находится в оригинальной упаковке (или почти новый)
  6. Товар не относится к категории "невозвратное" (например, бельё, косметика)
  7. У покупателя нет активного спора по этому товару

4. Постусловия

Читать полностью ->
Спроектировать модель данных для системы управления задачами
1.3 Junior🔥 6💬 1

Решение: ER-диаграмма системы управления задачами

Обзор архитектуры модели данных

Система управления задачами требует многоуровневой иерархии сущностей с поддержкой совместной работы. Ключевая особенность — назначение нескольких исполнителей на задачу и категоризация через метки (tags), что требует использования отношений N:M.

Описание сущностей и их атрибуты

1. Users (Пользователи)

PK: user_id (UUID)
Атрибуты:
- user_id: UUID (первичный ключ)
- username: VARCHAR(255) UNIQUE NOT NULL
- email: VARCHAR(255) UNIQUE NOT NULL
- password_hash: VARCHAR(255) NOT NULL
- full_name: VARCHAR(255)
- avatar_url: TEXT
- is_active: BOOLEAN DEFAULT true
- created_at: TIMESTAMP WITH TIMEZONE
- updated_at: TIMESTAMP WITH TIMEZONE
Читать полностью ->