Специалисты

Описание

Ключевые навыки
Programming Languages
- Python- JavaScript (ES6+)- Typescript- HTML/HTML5- CSS/CSS3- SQL
Framework/Libraries
- Django- Django-rest-framework- Django-ORM- Python asyncio- SQLAlchemy- FastAPI- Flask- aiohttp- Celery- Lodash- Axios- Moment.js- jQuery- Marshmallow- Pandas
Cloud services
- AWS- Heroku- Elasticsearch- STRIPE- EC2- S3 bucket
DBMS
- PostgreSQL- Redis- MongoD- MySQL- ClickHouse
Development Tools
- Git- Webpack
Application Type
- REST- HTTP- Open API- WebSocket
Testing
- Unit testing
Application/Web Servers
- Nginx- Apache Kafka- Apache Airflow- RabbitMQ
CI/CD
- Gitlab
Other
- Agile- Scrum- Kanban- Jira- Confluence- Docker- Kubernetes- Microservices- OAuth2- JWT- SOLID- OOP- Ajax- JSON- Unix/Linux- SSH

Опыт
Проект

Платформа для UX-исследований

Описание

Роль: Backend разработчик Описание проекта Платформа для UX-исследований предназначена для быстрого запуска и проведения исследования пользовательского опыта, связи с пользователями и награждения пользователей за участие в опросах. Современный python стек с использованием современных практик написания качественного кода: "чистая" архитектура и использование практик DDD. Реализована микросервисной архитектуры, те приложение разбито на необходимое количество независимых программых частей. Это физические контейнеры, связанные между собой rest/grpc протоколом, или программные модули, работающие в рамках одного процесса (например, Django или FastAPI приложения). Что было сделано Проект представляет собой микро сервисную архитектуру. Функционально состоит из двух частей: административной панели для внутренних сотрудников и личного кабинета для сторонних пользователей. Создан личный кабинет участников, через который они проходят опросы и выполняют задания. Реализована система начисления баллов и последующий обмен баллов на подарки. Для защиты от автоматизированного ввода данных используется современный механизм CAPTCHA. Авторизация в ЛК происходит через смс, реализован также алгоритм предварительного кодирования номера телефона до получения согласия на обработку данных. Административная панель представляет собой инструмент по созданию разных типов анкет посредством конструктора, также сбору и отображению статистических данных. Авторизация в админку происходит через KeyCloak. Общие требования: - Допустимое время загрузки любой страницы – 3 секунды. - Единовременное кол-во пользователей на платформе – 3000. - Общее количество пользователей – не ограничено. - При выполнении действий связанных с отправкой СМС должны использоваться следующие средства для ограничения работы ботов: - Сервис Yandex SmartCaptcha - Предусмотрена возможность настроить троттлинг - Реализовано покрытие кода юнит тестами.

Технологии

Python / React.js / JavaScript / Kafka / PostgreSQL Интеграции: Keycloak / CAPTCHA / смс сервис

Длительность

Февраль 2023 – Март 2025 месяцев

Проект

Система интернет-рекрутмента

Описание

Роль: Backend разработчик Описание проекта Система интернет-рекрутмента, ориентированная на японскую биржу труда. Обеспечивает быстрый и эффективный процесс трудоустройства на всех этапах и предоставляет набор инструментов для взаимодействия между работодателями и кадровыми агентствами. Она позволяет следить и управлять процессом найма кандидата на определенную вакансию. Текущий бизнес-план состоит в том, что HR-агентства будут платить за использование данного ресурса для найма кандидатов для своих клиентов. Основной функциональностью является возможность: - создавать вакансии; - создавать кандидатов; - назначать кандидатов на определенные вакансии; - менять их статус в процессе найма вплоть до отказа от кандидата; - назначать интервью и согласовывать его с клиентом с помощью email оповещений. Аналитические инструменты системы дают пользователям возможность находить преимущества и недостатки в своих бизнес-процессах, что позволяет им улучшать эффективность собственного бизнеса. Что было сделано Перед командой стояла задача - создать емкие и переиспользуемые компоненты с большим количеством функциональных возможностей. Результатом работы является производительное клиентское приложение на React.js, которое легко масштабируется и пополняется новыми инструментами в короткие сроки. Архитектура серверной части приложения имеет сложную структуру, и команда решала трудную задачу - обеспечить поддерживаемость приложения на протяжении всего цикла разработки. Для чего было принято решение развернуть stage сервер на Vultr. Для этого был выбран фреймворк Django на языке Python. Особенности языка и архитектура фреймворка обеспечили простоту понимания кода, быстроту отладки, а также создали фундамент для расширения возможностей системы при минимальных временных затратах. Изначально, в системе существовали 2 типа организаций - клиенты и агентства. В процессе разработки часто менялся фокус. В начале работы над проектом, фокус был на клиентские фичи, такие как deal pipeline, контракты и агентства, управляемые Клиентом. Далее визуальный дизайн изменился, фокус сместился в сторону агентств, а многие из особенностей были отменены или отложены. На позднем этапе была добавлена публичная страница с вакансиями организаций. Публичные страницы получили мобильные версии и предпросмотр ссылок. Также имелось отдельное расширение, которое позволяло импортировать кандидатов напрямую через Linkedin, а также скрипт, позволяющий импортировать данные из Zoho. Мы работали над многими элементами интерфейса, над бекендом и над расширением для импорта из LinkedIn. Из последнего – мы сделали публичные страницы организаций, их мобильную версию, возможность их превью, страницы для управления пользователями, возможность обрезать вводимые картинки над ограничением доступа к полям интервью в зависимости от ролей, модалки изменения времени, статуса и типа назначения интервью (согласовано через систему, назначено вручную или задним числом). В ходе работы над проектом нам удалось преодолеть несколько трудностей, таких как: - Необходимо было сделать превью для страниц, чего можно было достигнуть только с помощью серверного рендеринга. Проблема была в том, что у нас SPA и переписывать сайт или даже часть на серверный рендеринг ради этого функционала было бы лишним. Решением было использовать собранный index файл и вставить в него нужные метатеги на имеющемся бекенде. - Расширение LinkedIn было необходимо постоянно обновлять, так как LinkedIn обновляет разметку, в том числе чтобы противостоять скрепингу. - Компонент формы был написан достаточно запутанно, имея множество ситуативных методов в передаваемых свойствах компонента, особенно сложно было реализована дозагрузка файлов. В итоге был создан новый компонент формы, который использует контекст.

Технологии

Python / Django / Django-rest-framework / JavaScript / React.js / Redux / PostgreSQL / Redis / Docker / Lingui / Celery / SWR / SwaggerClient / drf-yasg / Lodash / Axios / Sass Интеграции: AWS S3 / Complex data through APIs / Google Analytics / Sentry / Transiflex / Zoho / reCAPTCHA / Zendesk Инструменты: Craco / Husky / Pipenv / Redux Devtools / Github Actions / Eslint / Prettier

Длительность

Апрель 2021 - Февраль 2023 месяца

Проект

сервис для контроля жизненно важных показателей человека, обеспечивающий круглосуточные оповещения врача о возможных проблемах, связанных с текущим состоянием пациента

Описание

Роль: Backend разработчик Что было сделано Мы создали MVP версию ERP системы для дистанционного мониторинга жизненно важных показателей человека. В начальной версии проекта разработаны личные кабинеты для врача и пациента и административная панель для оператора системы, подключен почтовый сервис для проверки и защиты от регистрации в систему ботов и недействительных пользователей и для осуществления дополнительно электронного оповещения всех участников системы. Возможности личного кабинета пациента: 1. регистрация; 2. редактирование профиля; 3. внесение жизненно важных показателей; 4. создание и выгрузка отчетов в PDF о тенденциях состояния здоровья; 5. графическое отображение изменения вносимых показателей; 6. отправка запроса на создание связи с врачом; 7. электронное оповещение, необходимое для осуществления своевременного взаимодействия между пациентом, администратором и врачами. Возможности личного кабинета врача: 1. отправка запроса на создание связи или разрыв связи с пациентом; 2. создание и выгрузка отчетов в PDF о тенденциях состояния здоровья пациентов; 3. внесение индивидуальных референсных значений показателей своим пациентам; 4. графическое отображение изменения вносимых пациентами показателей; 5. электронное оповещение, необходимое для осуществления своевременного взаимодействия между врачом, его пациентами, администратором системы. Административная панель предусматривает: 1. регистрацию и удаление из системы врачей и пациентов; 2. создание и аннулирование связи между врачом и пациентами; 3. внесение индивидуальных референсных значений показателей пациентам; 4. отображение всей информации о пациентах, врачах и внесенных показаниях; 5. отображение статистических данных;6. блокировка и разблокировка пользователей.

Технологии

JavaScript / Python / Django / React.js / PostgreSQL

Длительность

Июль 2020 — Март 2021 месяц

Проект

Сайт для студентов, проживающих в кампусах

Описание

Роль: Backend разработчик Данный сервис позволяет сдавать в аренду или арендовать одежду студентам в студенческих кампусах. Сервис имеет разделение по кампусам, то есть студенты могут сдавать в аренду или арендовать вещь только в своем кампусe. Попасть на сайт можно только с использованием зарегистрированного в домене кампуса адреса электронной почты. Сервис обладает следующими возможностями: - создавать, изменять и просматривать информацию своей учетной записи; - сдавать в аренду / арендовать одежду в своем кампусе; - просматривать, пополнять список сдаваемой вами одежды, также реализована система тегов и фильтров для удобства поиска; - оплачивать покупки известными методами оплаты; - сервис предоставляет механизм поиска сдаваемой в аренду одежды в кампусе, с использованием тегов и фильтров; - сервис предоставляет систему купонов, обеспечивающих скидку во время аренды одежды; - сервис предоставляет систему почтовых и мобильных оповещений на протяжении всего процесса аренды для арендатора и арендодателя. Что было сделано В процессе создания сервиса, основной нашей задачей было создание API с использованием серверной технологии Django REST Framework и языка программирования Python. Для создания клиентской части был использован Vue JS. Задачи, поставленные заказчиком, требовали: - решения задач, связанных с созданием и улучшением архитектуры проекта; - создания модели данных; - решения задач на уровне фреймворка. При разработке архитектуры проекта было решено разделить backend на несколько сущностей (Django приложений): - accounts (функционал, связанный с пользователями, системой авторизации и системой привилегий); - addresses (функционал, связанный с адресами места проживания); - articles (одежда для сдачи в аренду или аренды); - campuses (функционал, связанный с кампусами и разделением приложения на зоны); - coupons (функционал, связанный со скидочными купонами и механизмами их применения); - rentals (пользователи, которые могут взять одежду в аренду).

Технологии

Python / Django / Vue.js / PostgreSQL

Длительность

Июль 2019 — Июнь 2020 месяцев