Andrew Kobelev (andrew_kobe), 30 лет, Россия, Санкт-ПетербургAndrew Kobelev (andrew_kobe), 30 лет, Россия, Санкт-Петербург
Создаю эффективные решения с помощью Python. Главный скилл-умение решать задачи.Бэкенд разработчикВеб-разработчикМладший (Junior)
От 80 000 ₽Ищу работу

Контакты

Войти
Возраст: 30 лет
Опыт работы: 3 года и 3 месяца
Регистрация: 25.11.2024
Последний визит: 1 неделю назад
Гражданство: Казахстан
Местоположение: Россия, Санкт-Петербург
Дополнительно: готов к переезду и к удаленной работе
Знание языков: Английский А1

Обо мне

Почему я выбрал IT и остановил выбор на Python?
От развлечений до серьезных научных работ; Внести свою лепту в проект, полезный для человечества, над которым работает почти весь земной шар; Возможность быть частью чего то важного или СОЗДАВАТЬ то самое важное... - и это всё IT! Вот почему я выбрал эту сферу. Почему Python, а не Java, C, Go..? Во-первых, нужно было определиться (в конце концов), а во-вторых, Python - это взвешенный выбор. Язык я подбирал под себя индивидуально, как основной инструмент для ремесла - "хорошо лежит в руке, удобно.". Мое основное ремесло в том, что бы писать бэкенд и REST API к нему и наблюдать за тем, как оживают разные приложения обращаясь к эндпоинтам моего API - это еще и процесс, который особо радует меня и является причиной выбора именно бэкенда!

Что изучаю или собираюсь изучить?

ООП, Linux (Bash), алгоритмы (и математика), аспекты разработки ПО, сети, некоторые soft skills, telegram-боты - это темы, которые хочу особо ПРОКАЧАТЬ. Люблю читать, поэтому между делом читаю такие книги как ООП с помощью Python (Ирв Кальб); Soft skills для IT-специалистов (Дон Джонс); Совершенный код (Стив Макконнелл); Грокаем алгоритмы (Адитья Бхаргава); Командная строка Linux (Уильям Шоттс).. Так же читаю статьи на Хабр и штудирую бесплатные курсы на Яндекс Практикум (много полезного там).

Про сильные стороны и личные качества.

За 7 лет в HoReCa научился работать в команде, взаимодействуя с другими командами разных подразделений добиваясь общих целей. Так же я прокачал эмпатию, что особо помогало добиваться выигрыша для ОБЕИХ сторон. Я ценю чувства других людей, поэтому для меня важно, что бы выигрывал КАЖДЫЙ. Еще набрался много опыта работы с иностранцами, что помогло побороть языковой барьер и дало возможность находить общий язык с каждым, независимо от менталитета, плюс, прокачать английский язык (с уровня "не знаю для чего нужен английский.." до "мне срочно нужен английский, я знаю где его применить!")

А еще..
Иногда я музицирую (лет так с 17 примерно). Я человек, который написал музыкальный альбом не зная сольфеджио. Люблю музыку и прихожу к ней, когда накапливается желание выразить эмоции в нотах. Кстати, у музыки и программирования много общего..

Навыки

Внутри навыка можно посмотреть пройденные и доступные тесты
Python
PostgreSQL
Django
FastAPI
Docker
Flask
SQLalchemy
Bash
Git
CI/CD

Участие в профсообществах

Опыт работы

  • Проектная деятельность
    Санкт-Петербург
    Бэкенд разработчик (Младший)Python-разработчик
    Март 2022 — По настоящее время (3 года и 3 месяца)

    Стек и библиотеки, которые применял в проектах:

    Языки: Python / SQL / CSS / HTML / YAML / RegExp
    Фреймворки:
    Django / DRF / Flask / FastAPI / python-telegram-bot / Aiogram3
    Парсинг:
    bs4 / Scrapy / argparse
    Тестирование: Pytest / Unittest
    СУБД:
    PostgreSQL / SQLite
    Cloud: Docker / Git / Nginx / Uvicorn / Gunicorn / CI/CD (GitHub Actions)
    ORM:
    SQLAlchemy + Alembic
    Другие: Jinja2 / Aiogoogle / Djoser / JWT

    Проекты

    Пройдите по ссылке на GitHub, там можно ознакомиться с проектами, представленными ниже и другими, не представленными здесь: https://github.com/andrey-kobelev

    1. Телеграм-бот для внутреннего пользования сотрудниками компании: отвечает на часто задаваемые вопросы, отправляет нужные контакты, рассказывает про историю компании/клиентов. Интерфейс бота - многоуровневое меню с inline-кнопками. Разрабатывался бот в команде, с нуля, в формате хакатона.

    Команда: Техлид проекта; Тимлид от мастерской; Проджект менеджер; Тимлид команды разработчиков (это я); 7 разработчиков.

    Что делал я: изучил требования к проекту и определил стек технологий; обучал команду технологии и проводил гайды; составил User Flow в draw.io; спроектировал общую архитектуру приложения; декомпозировал проект на задачи и расписал задачи на доске по типу Канбан; проводил ревью всех ПР; спроектировал базу данных; реализовал всю часть касающуюся администрирования бота; предложил и внедрил систему разограничения доступа при взаимодействии с ботом.

    Стек: Python3.11, Aiogram3, SQLAlchemy, PostgreSQL, CI/CD (Docker, GitHub Actions)

    Готов рассказать о данном опыте в рамках интервью.

    2. Проект для сбора отзывов пользователей на произведения. Проект разрабатывался в команде. Цель команды была написать бэкенд и REST API для него. Я написал всю часть, касающуюся управления пользователями: систему регистрации и аутентификации, права доступа, работу с токеном, систему подтверждения через e-mail. Так же я реализовал импортирование данных из CSV файлов в базу данных.

    Стек: Python 3.9, Django3, DRF, Djoser, Simple JWT

    3. Веб-приложение "Продуктовый помощник и публикация рецептов" - одностраничное SPA-приложение. Написал с нуля бэкенд и REST API строго в соответствии со спецификацией. Спроектировал базу дынных, настроил админку, реализовал импорт тестовых данных в БД. Реализовал сервис для формирования списка покупок и последующего его скачивания (текстовый файл). Настроил инфраструктуру: запуск проекта в контейнерах, автоматическое тестирование и деплой проекта на удалённый сервер (CI/CD).

    Стек: Python 3.9, Django3, DRF, Gunicorn, PostgreSQL, React, Nginx, Node.js, Docker, Djoser

    4. Приложение для Благотворительного фонда поддержки питомцев. Фонд собирает пожертвования на различные целевые проекты. Написал само приложение и REST API к нему. Реализовал систему создания проектов администратором (другие пользователи не могут этого делать). Так же реализовал систему пожертвований, которые поступают в проекты по принципу First In, First Out: все пожертвования идут в проект, открытый раньше других; когда проект набирает необходимую сумму и закрывается — пожертвования начинают поступать в следующий проект. Добавил возможность формирования отчёта в гугл-таблице через Google API.

    Стек: Python 3.9, FastAPI, FastAPI Users, JWT, SQLAlchemy, Alembic, aiosqlite, Uvicorn, aiogoogle

    5. Сервис укорачивания ссылок. Написал как сервис, так и REST API к нему. Реализовал возможность ассоциировать длинную пользовательскую ссылку с короткой, которую предлагает сам пользователь или предоставляет сервис, для последующей переадресации на исходный адрес при обращении к короткой ссылки. Придумал алгоритм формирования коротких идентификаторов переменной длины. Подключил и настроил статику проекта. Описал собственные обработчики ошибок для пользовательского интерфейса и для API.

    Стек: Python 3.9, Flask, Flask-Migrate, Flask-SQLAlchemy, Flask-WTF, SQLite

    6. Парсинг сайта при помощи Beautiful Soup. Написал четыре парсера и объединил в одну многофункциональную программу. Сделал возможным запуск парсеров выборочно, при помощи аргументов командной строки. Для отслеживания прогресса парсинга использовал прогресс-бар. Реализовал два варианта формата вывода результатов (так же посредством аргументов командной строки): запись в CSV-файл и вывод в терминал в табличном виде. Написал и настроил систему логирования и всевозможные обработчики ошибок.

    Стек: Python 3.9, bs4, requiests-cache, tqdm, argparse, logging

    7. Тестирование новостного сайта и электронной записной книжки. Покрыл тестами новостной сайт на 90% применив pytest. Так же написал тесты на unittest для электронной записной книжки, покрыв тестами приложение на 90%.

    Стек: Python 3.9, Django3, pytest, unittest

    8. Бот-ассистент для отправки статуса домашней работы. Написал бота для личного пользования. Что реализовал: пулинг учебного сервера для запроса статуса домашней работы отправленной на ревью; парсинг полученных данных с учебного сервера; автоматическая отправка личного сообщения со статусом домашней работы самим ботом. Далее я расширил сферу деятельности бота - научил его отправлять статус деплоя проекта на сервер, посредством GitHub Actions. Так же прописал систему логирования ошибок и прочих событий работы бота.

    Стек: Python 3.9, python-telegram-bot, python-dotenv

Дополнительное образование

  • Яндекс Практикум

    Обучаем разработчиков, тестировщиков, аналитиков, дизайнеров, интернет-маркетологов
    Июнь 2023 — Декабрь 2024 (1 год и 6 месяцев)

    Пройдя самое первое ревью первого написанного учебного проекта, то мне показалось, что меня проверяют как то слабо, в духе: "И так сойдет.. едем дальше." - мне это не понравилось и я попросил своего куратора назначить мне САМОГО беспощадного и ответственного ревьюера. Со второго проекта и до самого конца, моим ревьюером был Андрей Квичанский (информацию о нем можно найти в интернете) - это лучшее что может произойти с тем, кто действительно готов стать программистом! На протяжении всей учебы я проходил самые жесткие, справедливые, конструктивные ревью, Андрей Квичанский не давал спуску от слова СОВСЕМ! В среднем, количество итераций ревью по каждому проекту было 6, максимум 7-8, вносил правки не только в логику кода, но даже в именование переменных, констант, классов, функций. Вот пример: "Нельзя использовать сокращения для имен. msg? Глутамат натрия?" - действительно, открыв проект спустя пол года, я бы сам запутался в том, что написал - именовать нужно как следует!)))

    Еще горжусь тем, что всю учебу прошел без применения GPT, подсказок и так далее - только голый сёрч информации в гугле. Были конечно моменты, тройка моментов, когда приходилось поднимать на уши ВСЕХ (одногруппники и наставники)! Но там были не очевидные моменты и в частности это происходило при изучении DevOps или алгоритмов.

    Помогал одногруппникам! Всегда был на связи и отвечал на просьбы помочь!

    Вишенкой на торте будет - командная работа! Никогда не представлял, как можно разрабатывать один проект в команде: ты бэкендер и еще условно 5 бэкендеров - ладно я, а вот что делать с остальными 5?))) Я не просто научился работать в команде, но даже занял место Тимлида и справился! Руководил разработкой телеграмм-бота для настоящей компании (подробнее в последнем опыте работы в Starlink).