Александр Костяков - Python-разработчик
Навыки
- Django
- Docker
- FastAPI
- Flask
- Pandas
- pydantic
- Python
- RabbitMQ
- SQLAlchemy
Опыт работы
Проектная деятельность
Python разработчик - 03.2023Обновление и расширения площадки для объявлений по продаже автозапчастей Aopt.ru. (в настоящий момент в работе)
Применяемый стэк — Laravel, MySQL, Vue, FastAPI, PostgreSQL, Redis, RabbitMQ, Celery, Docker
Сервис был запущен 3 года назад и с тех пор не обновлялся и не сопровождался. Backend-часть написана на laravel, frontend-часть гибрид vue 2 и php.Краткосрочная задача — обновить функционал поиска, добавить поиск по различным атрибутам объявлений.
Долгосрочная задача — полностью обновить ресурс, переписав на современный фреймворк, заложить новый функционал. архитектуру, с перспективой расширения.
В моей зоне ответственности все работы по frontend и backend частям по краткосрочной задаче, и весь backend функционал по долгосрочной задаче.
На текущий момент времени краткосрочные задачи закрыты, в работе разработка архитектуры обновленного приложения, основанная на принципах чистой архитектуры.Реализован парсер приложения Getcontact. (ноябрь 2023 — январь 2024)
Применяемый стэк — FastAPI, PostgreSQL, Appium, Docker
Разработанная система осуществляет многопоточный парсинг номеров телефона с помощью приложения Getcontact. Основа функционала: API на FastAPI.
— Реализовал CRUD для аккаунтов и настроек эмулятора.
— Приложение принимает базу номеров и количество потоков, каждый поток работает на своем эмуляторе Android устройства.
— Вся подготовка устройства построена через ADB из python
— Все взаимодействие с целевым приложением осуществляется с помощью фреймворка Appium.
— Весь код упакован в Docker контейнер.Разработка backend части интернет-магазина товаров для конного спорта. (сентябрь 2023 — декабрь 2023)
Применяемый стек — Django DRF, PostgreSQL, Nginx, Docker.
— Реализовал API для взаимодействия с front-частью, аутентификация на JWT токенах, а также SSO аутентификация через VK, Google и Mail.ru.
— Создал панель администратора с управлением товарами и товарными остатками, а также администрирование зарегистрированных пользователей.В настоящий момент backend-часть реализована полностью, front-часть еще в разработке, полноценно сервис не запущен.
Реализация backend-часть сайта для удаления водяных знаков с использованием модели нейросети. Pixelboom.ru (октябрь 2023 — январь 2024)
Применяемый стек — Django DRF, SQLite, Nginx, Docker.
— Создал API для взаимодействия с front-частью, аутентификация на JWT токенах, а также SSO авторизация через mail.ru и Google.
— Реализовал панель администратора со статистикой пользования сервисом.
— Выполнил деплой front-части и back-части на VPS сервер клиента.
— Back-часть упаковал в Docker-контейнер, настроил nginx, сертификат, dns-сервера у хостинг-провайдера домена.Реализовал парсер Wildberries. (март 2023 — апрель 2023)
Применяемый стэк — Tkinter, pandas, aiohttp.
В рамках разработки были выполнены:
— Реверс-инжиниринг API, применяемого веб-версией интернет-магазина маркетплейса.
— Определение необходимых запросов, определение необходимых заголовков и cookie, требуемых для достоверной эмуляции запроса браузера.
— Реализовал асинхронный парсер.
— Создал приложения с графическим интерфейсом для взаимодействия с пользователем
— Собрал все собранные данные в pandas dataframe и экспортировал в Excel-файл.В период тестирования были исправлены все баги.
В настоящее время успешно используется в компании Заказчика.ООО "ТРАННСТРОЙПРОЕКТ"
Python разработчик - 09.2022-09.2023Разработал серверную часть веб-приложения по управлению деловой перепиской в компании.
Применяемый стек — FastAPI, PostgreSQL, RabbitMQ, Aiogram, Docker.
Первоначальный прототип был разработан на Flask c веб-интерфейсом на основе шаблонизатора jinja2. После уточнения ТЗ и требуемого функционала сервис был доработан с применением технологий из вышеуказанного стека, сторонним разработчиком выполнена разработка frontend-части.
В проекте применена микросервисная архитектура, связь через RabbitMQ:
1. Основное API для взаимодействия с клиентским
интерфейсом;
2. Запись в БД и обработка запросов на чтение из нее.
3. Телеграмм-бот для уведомлений и построения логики согласования документов.Весь проект был развернут в Docker контейнерах при помощи Docker Compose.
— Реализовал аутентификацию пользователей реализована на протоколе OpenID Connect через Keycloak. — Реализовал авторизацию пользователей на основе групповых политик Active Directory, которая подключена к Keycload через LDAP.
— Реализовал CRUD для входящих и исходящих документов, взаимодействие с БД осуществляется через асинхронный движок asyncpg для SQLAlchemy.
— Реализовал уведомление через telegram всех заинтересованных лиц (создатель записи о документе и указанные ответственные лица) при изменении жизненных циклов документа
— Реализовал цепочка согласований с помощью мессенджера. При успешном создании документа он сохраняется в БД, а также на файловом сервере.
— Настроил еженедельный backup базы данных в файловое хранилище, ежемесячную сборка Excel таблицы со всеми документами и выгрузку ее на Google Drive.
— Настроил процесс CI/CD с тестированием с помощью фреймворка Pytest и деплоем на внутренний сервер компании
— Настроил Nginx в режиме реверс-прокси с получением let's encrypt сертификата
— настроил firewall и проброс портов на основном шлюзе.Приложение запущено в работу в июне 2023 года. Выявлены и исправлены все баги и в настоящее время работает без нареканий.
Проектная деятельность
Python разработчик - 03.2021-08.2022Выполнял различные заказы по парсингу, написанию ботов на фриланс биржах, нарабатывал опыт, знакомился с новыми фреймворками и технологиями.
Основной используемый стек telebot, с постепенным переходом на aiogram, requests, aiohttp, flask с переходом на FastAPI, Django
Образование
Мосты и транспортные тоннели
СибАДИ2008/2013Data Science
SkillFactory2023/2023
Обо мне
Начал карьеру в 2013 году как инженер-проектировщик в сфере строительства. За 5 лет вырос до должности начальника отдела проектирования. Осуществлял ведение проектов от формирования ТЗ до сдачи готовой проектной документации. Управлял штатом из 15 проектировщиков. За время работы на инженерных должностях создал более 20 мостовых сооружений, на территории России и за рубежом. Из них на данный момент 13 объектов уже построены и введены в эксплуатацию, остальные на стадии строительства.
Прошедшие 3 года активно развивался в сфере IT — направление back-end разработки. Начинал с простых интеграционных модулей для систем умного дома (IoBroker, HomeAssistant), выполнял небольшие проекты от заказчиков. К настоящему времени имею навыки разработки больших систем, самостоятельно и в команде. Созданные решения уже успешно продаются и используются компаниями.
Уверенно владею инструментами: Python, FastAPI, Django, Flask, RabbitMQ, Pydantic, Pandas, SQLAlchemy, Docker.
Активно занимаюсь своим профессиональным развитием, регулярно повышаю квалификацию и применяю новый опыт в проектах.
Мой гитлаб — https://gitlab.kostiakov.pro/albone-222 (личные проекты и проекты, открытые части коммерческих проектов)
Мой гитхаб — https://github.com/albone-222 (тестовые задания, командные пет-проекты, обучение DS)