Python разработчик

Уровень зарплаты: от 10 000 руб.
Местоположение: Россия, Москва и область (МСК +0ч)

Резюме: Python разработчик

О СЕБЕ​

Python-разработчик. Работаю с асинхронным фреймворком (Fastapi). Мой основной фокус - создание
чистого, эффективного и хорошо структурированного кода. Понимаю работу сетевых протоколов и ​
технологий (DNS, TCP/IP, HTTP/HTTPS, SSL). Умею писать SQL запросы без использования ORM и понимаю,
как они будут выполняться. Не ограничиваясь рамками конкретного стека, с удовольствием изучаю новые для
себя технологии. Каждый проект я рассматриваю, как постоянно развивающийся продукт, где я научилась
целенаправленно изучать и применять лучшие практики (Pydantic, Docker, CI/CD, pytest), чтобы мой код
соответствовал стандартам. Я заинтересована в долгосрочном сотрудничестве и готова активно учиться у
команды, а ещё я адекватно реагирую на критику и умею брать на себя ответственность за задачи. Буду рада
присоединиться к команде проекта, улучшающего жизнь людей.

ОПЫТ РАБОТЫ
Backend-разработчик, 10.2023 - по н.в.​
Проектная занятость (фриланс и pet-проекты)

ЗАДАЧИ
• ​Разработка API, работа с очередями задач и БД (SQLite, PostgreSQL). Интеграция с внешними API.
•​ Проектирование и реализация REST API.
•​ Покрытие кода тестами, поддержка и доработка внедрённых решений.
•​ Оптимизация и рефакторинг существующего кода.

РЕЗУЛЬТАТЫ РАБОТЫ
Telegram-бот с FSM

•​ Стек: Python 3, pyTelegramBotAPI (TeleBot), FSM (Finite State Machine), SQLite, pycountry, logging.
•​ Спроектировала и реализовала бота с использованием конечного автомата (FSM) для управления многоэтапным
сценарием опроса. Бот обрабатывает текстовые сообщения, контакты и callback-запросы ​
от inline-кнопок, обеспечивая гибкость ввода и устойчивость к пропуску шагов.
•​ Организовала пошаговый сбор данных (имя, возраст, страна, город, телефон) с изоляцией логики для
•​каждого этапа, что исключает смешивание состояний разных пользователей и упрощает поддержку кода.
•​ Интегрировала библиотеку pycountry для валидации и нормализации ввода стран, реализовала ​
динамическую подгрузку списка городов из БД SQLite в виде инлайн-кнопок, что улучшило UX и минимизировало
ошибки ручного ввода.
•​ Реализовала механизм пропуска необязательных шагов (например, номера телефона) с помощью
reply-клавиатуры, не ломая общий flow диалога.
•​ Настроила детальное логирование пользовательских действий и системных событий для упрощения ​
отладки и анализа поведения пользователей.
•​ Roadmap проекта (следующие этапы):​
- внедрение Pydantic для строгой проверки входящих данных (возраст, имя) на стороне сервера;​
- миграция с SQLite на PostgreSQL для хранения результатов опросов и отработки работы с СУБД;​
- контейнеризация приложения с помощью Docker и настройка CI/CD (GitHub Actions) для автоматизациитестирования и деплоя;

Высокопроизводительный веб-сервис для поиска по иерархическим данным (FastAPI)
•​ Стек: Python 3, FastAPI, Uvicorn, pytest, collections.defaultdict, асинхронные обработчики.
•​ Спроектировала и реализовала RESTful API на FastAPI для поиска данных в древовидной структуре. Сервис
принимает файл с данными и обрабатывает поисковые запросы по локациям с учетом их вложенности ​
(поиск по родительским и дочерним элементам).
•​ Выбрала и реализовала структуру данных на основе defaultdict для хранения связей «локация -> список
площадок», что обеспечивает скорость поиска, близкую к O(1). Реализовала два режима поиска (up, down) с
обходом иерархии путей.
•​ Разделила бизнес-логику (класс AdService) и слой API (FastAPI роутеры), что упрощает тестирование и
поддержку.
•​ Реализовала асинхронные эндпоинты для обработки файлов и запросов, чтобы не блокировать сервер на
операциях I/O.
•​ Полностью покрыла код юнит- и интеграционными тестами (pytest), включая тесты на корректность загрузки
данных, оба режима поиска и обработку крайних случаев.
•​ Настроила автоматическую генерацию интерактивной документации API через Swagger UI (/docs).
•​ Roadmap проекта (следующие этапы):​
- внедрение Redis для кэширования результатов частых запросов и снижения нагрузки;​
- миграция с хранения данных в памяти на PostgreSQL с использованием ltree-модуля или других подходов для
эффективной работы с иерархиями;​
- добавление Pydantic для валидации, пагинации ответов API, а также контейнеризация (Docker) и настройка
CI/CD для автоматического тестирования и деплоя;

Рефакторинг кода (учебное задание)
•​ Стек: Python 3, рефакторинг, работа со структурами данных (списки, словари), обработка исключений.
•​ Провела разбор и переработку функции на Python, предназначенной для фильтрации входного списка
разноплановых данных и преобразования подходящих элементов в единый формат словарей:​
- вникла в проблему исходного кода, некорректно обрабатывалющего типы данных;​
- формализовала требования: оставить словари, преобразовать строки и числа в вид {element: element};
• Осознанно отказалась от использования рекурсии. Реализовала решение с использованием итерации по списку и
проверки типов с помощью isinstance().
•​ Разделила логику на две функции: create_dict() для обработки одного элемента и data_preparation() для обработки
всего списка. Это повысило читаемость, тестируемость и позволило избежать дублирования кода.

Моделирование системы на основе ООП (учебное задание)
•​ Стек: Python 3, ООП (инкапсуляция, композиция), классы, методы;
•​ Разработала объектно-ориентированную модель сельскохозяйственной системы для симуляции роста растений с
целью отработки и демонстрации ключевых принципов ООП на Python.
• Разделила ответственность между классами:​
- класс Potato инкапсулирует состояние (стадия зрелости) и поведение (рост) одного объекта; ​
- класс PotatoGarden управляет коллекцией объектов Potato и реализует операцию роста для всех объектов сразу
(демонстрация композиции);
•​ Реализовала логику роста и проверки зрелости в виде методов, а не внешних функций.
•​ Использовала словарь для описания стадий зрелости, что упрощает изменение и добавление новых стадий.
•​ Продемонстрировала, как объекты разных классов взаимодействуют друг с другом: PotatoGarden вызывает метод
grow() у каждого объекта Potato в своем списке.

ПРИЧИНА ПОИСКА РАБОТЫ
Стремление продолжить развитие и перейти на полную занятость в качестве Python-разработчика.

Посмотрите похожие резюме

Junior python программист
Зарплата: 20 000 руб.
Python Backend Developer
Зарплата: 250 000 руб.
Стажер-разработчик Python
Зарплата: 3 000 руб.
Стажер-разработчик JAVA
Зарплата: 3 000 руб.