ENIGMA AI
ENIGMA AI

Расскажите, над какими задачами вы работали в последнее время и что было наиболее интересным?

встречается 1× junior behavioral

Как ответить

В последнее время я работал над pet-проектом — веб-приложением для управления личными задачами. Наиболее интересным для меня стало проектирование системы аутентификации и авторизации пользователей с использованием JWT, потому что я впервые столкнулся с реализацией безопасности на бэкенде и хотел сделать это правильно.

Проект собран на стеке: бэкенд на Flask с SQLAlchemy и PostgreSQL, фронтенд на React с React Router, всё завернуто в Docker для локальной разработки. Основная функциональность — CRUD для задач, фильтрация по статусу и срокам, а также ролевая модель (админ и обычный пользователь).

Самая сложная часть — аутентификация. Я реализовал регистрацию и логин с выдачей access и refresh токенов, защиту эндпоинтов с помощью декораторов, обработку истечения токена и обновление через refresh. Столкнулся с проблемой хранения refresh токена на клиенте: первоначально хранил в localStorage, но после прочтения рекомендаций OWASP переделал на httpOnly cookie для уменьшения риска XSS. Это потребовало переписать логику на бэкенде и добавить CORS-настройки для работы с куками.

Ещё интересной была задача оптимизации запроса для получения задач с пагинацией и сортировкой по нескольким полям. Без индексов база тормозила на 1000 записей — добавил составные индексы в PostgreSQL, и время выполнения сократилось с 1.2 сек до 30 мс. На этом примере я глубже понял, как работают планы запросов и EXPLAIN ANALYZE.

Из менее технического — настройка CI/CD через GitHub Actions: автотесты, линтинг и деплой на бесплатный хостинг (Railway). Это было интересно, потому что раньше я не автоматизировал развертывание, и теперь вижу, как это сокращает рутину.

  • Реализовал JWT-аутентификацию (access/refresh) с хранением refresh в httpOnly cookie.
  • Оптимизировал пагинированный запрос с сортировкой через составные индексы (ускорение в 40 раз).
  • Настроил CI/CD на GitHub Actions: тесты, линтер, автодеплой.
  • Переписал клиентское хранение токенов с localStorage на httpOnly cookie по соображениям безопасности.
  • Изучил работу с Docker и docker-compose для локального запуска бэкенда и БД.

Ключевые тезисы

  • Работал над pet-проектом — веб-приложение для управления задачами с бэкендом на Flask и фронтендом на React.
  • Наиболее интересным было реализация JWT-аутентификации и решение проблемы безопасности хранения токенов.
  • Оптимизировал SQL-запрос с помощью составных индексов, что ускорило его в 40 раз.
  • Настроил CI/CD через GitHub Actions (тесты, линтер, деплой).
  • Упомянул использование Docker для локальной разработки и PostgreSQL.

Что спросят дальше

  • — Почему вы выбрали httpOnly cookie вместо localStorage? Как это повлияло на архитектуру клиент-серверного взаимодействия?
  • — Расскажите подробнее про оптимизацию запроса: какие именно поля индексировали и как вы проверяли результат?
  • — Какие сложности возникли при настройке CI/CD и как вы их решили?

Готовьтесь к собеседованию с ENIGMA AI

AI-суфлёр подсказывает ответы прямо на собеседовании в реальном времени — незаметно для интервьюера.

Скачать приложение