Я начинающий бэкенд разработчик. Более года на постоянной основе изучаю различные технологии и постоянно совершенствую свои навыки: прохожу курсы (Stepik, YouTube). Cейчас изучаю FastAPI и продолжаю изучение Asyncio и асинхронного программирования. Читаю статьи (Хабр и тематические группы в соц.сетях), реализовываю проекты и решаю задачи (LeetCode).
Имею аналитический склад ума, высокую обучаемость и развитые коммуникационные навыки. Готов решать нестандартные и трудные задачи и разбираться в них самостоятельно.
Моя цель: реализация и улучшение своих навыков на интересных проектах в компании и дальнейшее профессиональное развитие в области backend-разработки.
Основные навыки:
- Уверенное знание языка Python;
- Использование при работе с проектами локального и удаленного репозиторий Git/GitHub;
- Контейнеризация приложений (Docker + docker-compose);
- Работа с фреймворками: Django и Django Rest Framework. Использование паттерна разработки MVC (MTV);
- Использование ORM (Django ORM);
- Библиотека djoser для настройки авторизации по токену. Настройка Session-based, Token и JSON Web Token аутентификации;
- Создание API-интерфейса + добавление документации (swagger, redoc);
- Использование Postman для тестирование API;
- Связка Redis+Celery для реализации отложенных задач. Отдельное использование Redis для кеширования. Celery Beat для повторяющихся задач (например, отправка письма с какими-то данными каждый день в определенное время);
- Знание реляционных баз данных - PostgreSQL, SQLite3;
- HTML, CSS, Bootstrap для создания веб-интерфеса;
- Подключение к проекту платежной системы (был опыт с Stripe);
- Подключение авторизации по протоколу Auth2.0;
- Владение ООП (нет коммерческого опыта);
- Работа с сторонними API, например Currency API;
- Немного знаком с Linux (Ubuntu). Основы работы с терминалом и написание простых Bash-скриптов;
- Написание тестов с использованием Pytest (модульные тесты и интеграционные, такие как тестирование API в django rest framework);
- Применение логирования (модуль logging);
- Написание чистого кода, соблюдение стандартов PEP 8, DRY, KISS, YAGNI. Применение при разработке линтеров (isort) и форматеров (flake8). Использование аннотации типов.
Мои проекты:
Коммерческий проект (заказ от ЗМЗ - http://www.zlatmash.ru/):
- Мониторинг статуса заказов по заправке картриджей (https://github.com/AlexandrEmelyanov/cartridges):
Небольшой проект, в котором администратор ("принтерщик") ведет запись заказов и выставляет статус готовности картриджей к выдаче для каждого отдела организации. А сами пользователи отслеживают статус своего заказа. Деплой проекта выполнялся на локальную сеть предприятия.
Стек: Python (Django), SQLite3, HTML, CSS.
Учебные (некоммерческие) проекты:
1) Многопользовательский блог c реализованным API (https://github.com/AlexandrEmelyanov/blog):
Использован Django Rest Framework для создания API. Реализованы: CRUD по API, настроены права доступа. Реализована стандартная авторизация на основе session и cookie, а также по токену. Добавлена документация работы с API (swagger, redoc). Настроена admin панель для удобного взаимодействия с сайтом (фильтрация, вычисляемые поля и т.д.), отложенная задача по отправки подтверждающего письма на почту (Yandex SMTP) через Celery + Redis. Проект перемещен в docker (для запуска одной командой: docker-compose up).
2) Сервис уведомлений (https://gitlab.com/AlexandrEmelyanov/notification_service).
Техническое задание: https://vans-tan-09u.craft.me/n6OVYFVUpq0o6L
Разработан сервис управления рассылками API администрирования и получения статистики. Реализовано API (Django Rest Framework) CRUD операции для рассылок, клиентов и сообщений, получения общей и детальной статистики по рассылкам. С помощью Celery+Redis (Celery-beat) реализована отправка уведомлений на внешний API и отправка ежедневной статистики по отправленным рассылкам на почту управляющего (админа). Обеспечено подробное логирование на всех этапах обработки запросов. Организовано тестирование написанного кода с помощью Pytest. Настроена admin панель (реализована admin WEB UI) для управления рассылками и получения статистики по отправленным сообщениям. Подготовлен docker-compose для запуска всех сервисов проекта одной командой.
3) Интернет-магазин (https://github.com/AlexandrEmelyanov/Store):
К проекту подключена БД - PostgreSQL. Реализованы отложенные задачи (подтверждение регистрации по эл. почте) с помощью связки Redis+Celery. Отдельно использован Redis для кеширования. Подключена платежная система Stripe для оплаты товаров, webhook stripe для отлавливания результата оплаты и дальней обработки. Реализована авторизация через GitHub по протоколу OAuth 2.0 (через django-allauth).
4) Конвертер валют с веб-интерфейсом (https://github.com/AlexandrEmelyanov/converted_currency):
Реализована работа с внешним Currency API для получения актуальной информации о курсе валют и дальнейшей её обработки.
В случае вашей заинтересованности буду рад ответить на вопросы подробнее.