Перейти к содержимому
Егор Веретенников

Егор Веретенников

Python developer

Middle Офис Удалённо Гибрид Санкт-Петербург, Россия
4 г. опыта 32 навыка

О себе

Меня зовут Егор, я Python-разработчик с 4-летним опытом в backend-разработке (FastAPI, Django) и практическим опытом внедрения ML/LLM-решений в продакшн — от RAG-пайплайнов до function calling на базе GigaChat. Умею закрывать полный цикл: проектирование API, работа с БД, авторизация и безопасность, CI/CD и мониторинг. Мне откликается возможность применить опыт на стыке backend и ML в вашей команде — уверен, смогу быстро погрузиться в задачи и приносить пользу продукту. Буду рад обсудить детали на созвоне. Резюме и контакты прилагаю.

Опыт работы

PIK Group

06.2022 — 02.2024 1 г. 8 мес.

python backend middle developer

Платформа для управления заявками на обслуживание ЖКХ Проект представляет собой платформу для автоматизации процесса обработки заявок жителей домов на обслуживание, ремонт, устранение аварий и другие запросы, связанные с жилым фондом. Платформа предоставляет систему для эффективного взаимодействия между жильцами, управляющей компанией и подрядчиками, а также анализирует и оптимизирует процессы обслуживания. Разработал часть REST API для создания заявок на обслуживание. Задача включала создание эндпоинта, который принимает запрос с данными о заявке (описание проблемы, приоритет и тип), сохраняет информацию в базе данных PostgreSQL и возвращает подтверждение о создании заявки. Валидация входных данных осуществлялась с использованием библиотеки Pydantic. Разработал продюсер, который отправлял событие о статусе заявки в очередь Kafka. Создан Consumer, который обрабатывал это событие и отправлял уведомление пользователю через FastAPI. Использован MongoDB для хранения шаблонов уведомлений и настроек предпочтений пользователей. Участвовал в разработке своей части микросервиса, который использует MongoDB для хранения агрегированных данных. API был реализован с помощью FastAPI. Для аналитики использовалась библиотека Pandas для обработки данных и генерации отчетов в формате JSON. Интеграция с Grafana для отображения дашбордов и визуализации данных. Разработали (вместе с 2 другими разработчиками) микросервис аутентификации с использованием FastAPI и JWT для безопасной аутентификации пользователей. Реализована система ролей и прав доступа, которая позволяла управлять доступом к различным частям платформы в зависимости от роли пользователя. Использован Redis для кэширования токенов и управления сессиями. Написаны автоматизированные тесты для проверки безопасности и правильности работы системы прав доступа.

  • Реализовал интеграцию с сервисом уведомлений через Kafka, что позволило автоматизировать процесс уведомления пользователей о статусах их заявок, повышая скорость реакции на изменения и улучшая пользовательский опыт.
  • Оптимизировал процесс обработки аналитических данных с использованием MongoDB и Grafana, что позволило значительно улучшить визуализацию данных для пользователей и ускорило формирование отчетов по заявкам, повышая оперативность принятия решений.
  • Разработал систему логирования для микросервисов с использованием Kibana и Elasticsearch, что позволило улучшить мониторинг и диагностику ошибок. Это обеспечило централизованное хранение логов, ускорило время реагирования на инциденты на 40% и улучшило отслеживаемость работы системы.
  • Оптимизировал работу с базой данных PostgreSQL, внедрив индексацию, что позволило сократить время выполнения операций по извлечению заявок на 20%.

Octoberweb

03.2024 — по н.в. 2 г. 4 мес.

python backend middle+ developer

О проекте: платформа для совместного планирования и бронирования путешествий. Создал эндпоинт /trips с использованием FastAPI, который принимает параметры фильтрации через запрос. Настроил запрос на ОРМ для формирования запросов к PostgreSQL. Добавил фильтры по дате, категории и числу участников. Реализовал пагинацию для ограничения количества данных на один запрос. Покрыл эндпоинт unit-тестами с использованием pytest, чтобы проверить корректность фильтров. Реализовал систему аутентификации и авторизации на основе JWT. Создал модели для управления ролями в PostgreSQL, добавив таблицу roles и связи с пользователями. Настроил middleware в FastAPI для проверки прав доступа перед выполнением запросов. Разработал декораторы для ограничения доступа к эндпоинтам на основе ролей. Например, только администраторы могли управлять мероприятиями. Настроил PostgreSQL с расширением PostGIS для работы с географическими данными. Обновил модель мероприятий, добавив поле для хранения координат (Point). Создал индексы для ускорения географических запросов (GIST). Разработал эндпоинт /events/nearby с параметрами координат центра и радиуса. Запросы использовали функцию PostGIS ST_DWithin, чтобы находить мероприятия в заданном радиусе. Использовал кэширование в Redis для популярных точек поиска (например, крупных городов). Тестирование: Провел нагрузочное тестирование с помощью Locust, чтобы убедиться, что поиск работает стабильно при 10 000 запросах в минуту. Оптимизировал сложные запросы, снизив их время выполнения с 1.5 секунд до 200 мс.

  • Разработал и внедрил REST API для просмотра и фильтрации поездок на FastAPI, реализовав пагинацию, валидацию данных с помощью Pydantic и покрытие юнит-тестами, что обеспечило стабильную работу ключевого функционала платформы и снизило количество регрессионных багов.
  • Спроектировал и реализовал систему уведомлений (email + push) с интеграцией внешних сервисов, обеспечив асинхронную и надёжную доставку статусов бронирований, что повысило оперативность информирования пользователей и улучшило UX платформы.
  • Разработал и доработал административную панель на Django Admin, добавив уникальные фильтры, массовое редактирование данных и визуализацию статистики, что упростило управление мероприятиями и ускорило работу администраторов.
  • Спроектировал и внедрил систему авторизации и контроля доступа: аутентификация через JWT, ролевая модель в PostgreSQL, кастомный middleware в FastAPI, что обеспечило надёжную защиту данных, безопасность API и гибкое разграничение прав доступа для разных ролей пользователей.
  • Разработал чат-бота для планирования поездок на базе LLM GigaChat с использованием LangChain: спроектировал систему промптов и реализовал RAG-пайплайн по базе знаний из ~40 документов о направлениях и маршрутах, обеспечив пользователям релевантные и контекстно точные ответы.
  • Настроил function calling для чат-бота: LLM извлекала параметры запроса пользователя и передавала их в функции для выборки данных из БД, что позволило возвращать точные результаты по поездкам прямо в диалоге. Обернул решение в REST API на FastAPI, внедрил батчинг и кэширование запросов для оптимизации нагрузки на LLM API, обеспечив стабильную работу бота при нагрузке до 100 пользователей и ~500 сообщений в день.
  • Настроил CI/CD-пайплайн на GitLab CI с multi-stage Docker build (кэширование слоя зависимостей), что сократило время деплоя на 40%. Внедрил мониторинг производительности API (RPS) с помощью Prometheus + Grafana, что позволило быстрее обнаруживать и устранять баги в отдельных ручках (эндпоинтах).

Ожидаемая зарплата

1 200 000 KZT

Навыки

fastapi redis docker rabbitmq CI/CD тестирование Backend автотесты python celery bash postgresql kafka apache airflow mogo db github llm gitlab docker-compose nginx aws pydantic django tornado grafana kibana prometheus pytest sentry sqlalchemy alembic jira

Языки

Английский B2 — Выше среднего
Русский Родной
Ссылка скопирована