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