Обо мне

Проекты в которых учавствовал:

1) Краудфандинговая платформа по предоставлению краткосрочного, безналичного оборотного капитала предприятиям розничной торговли на закупку товаров у дистрибьюторов.

Первый проект, в котором я участвовал. Написал сервис по работе с пользователями. В этом сервисе я реализовал методы получения списка, добавления, удаления и редактирования пользователей, а также фильтрацию/сортировку/поиск для работы со списком. Полностью покрыл сервис unit тестами. Тесты были написаны с использованием NUnit, также в тестах использовались mock объекты. Проект был реализован на .NET Framework 4.6.2, в качестве базы использовалась MS SQL, а для работы с ней Entity Framework.

Использовал: .NET Framework, NUnit, Moq, AutoMapper, MS SQL, Entity Framework.

2) Кастомная СRM-система для управления игровыми событиями в многопользовательской онлайн игре World of Warcraft.

Присоединился к проекту, который уже несколько лет находился в production. Реализовывал новые фичи и правил баги в API этого проекта. Проект был написан на preview версии .NET Core 1.0.3. В последующем осуществлял миграцию на .NET Framework 4.6.2. и .NET Core 2.0. Был единственным back-end разработчиком на проекте. Проектировал архитектуру внутри API, также занимался расширением БД с использованием миграций. Описывал взаимодействие UI с API. В качестве ORM в проекте использовалась Entity Framework для основного context и Entity Framework Core для identity context. Unit тесты писал с использованием NUnit, в тестах использовались mock объекты. Для основных сервисов этого API были написаны end-to-end тесты.

Один из реализованных модулей - модуль генерации и управления redeem кодами. Для генерации был написан сервис.Также был реализован функционал, обеспечивающий безопасность от перебора кодов. Еще несколько крупных задач: реализация рассылки обновлений данных по WebSockets, для хранения подписанных на конкретные обновления пользователей использовался Redis, возможность скачивания отчетов в Excel формате, загрузка/выгрузка картинок, для хранения картинок использовалась Azure Blob Storage, реализация сложной логики работы фильтров\сортировки\поиска, рефакторинг кода.

Использовал: .NET Framework, .NET Core, NUnit, Moq, MS SQL, Entity Framework, Entity Framework Core, WebSockets, AutoMapper, log4net, Ninject, Redis, EPPlus.

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

Основная точка продаж заказчиков это сайт, построенный на платформе Shopify. Для упрощения рутинной работы персонала по переносу покупок между Shopify и CRM платформой было решено - автоматизировать этот процесс с подтверждением оплаты. Для этого я писал интеграцию WebApi c Admin REST API Shopify. Был реализован синхронизатор для переноса информации с оплаченных заказов, которую оставляли покупатели, из одной платформы в другую.

Использовал: .NET Framework, NUnit, Moq, MS SQL, Entity Framework, Entity Framework Core, AutoMapper, log4net, Ninject, TopShelf, ShopifySharp.

2.2. Написание инструмента для передачи данных клиентом в CRM систему после покупки игрового события.

Этот инструмент был необходим для упрощения и сокращения взаимодействия администраторов платформы и клиентов в момент передачи аккаунта в игре. У заказчика в качестве внутреннего мессенджера используется Slack, поэтому он был выбран в качестве интерфейса взаимодействия с администратором, а клиенту информация доставлялась на email. Для реализации этого функционала была написана интеграция в Slack, для создания различных сообщений, кнопок, ссылок и оповещений администратора.

Использовал: .NET Framework, NUnit, Moq, MS SQL, Entity Framework, Entity Framework Core, AutoMapper, log4net, Ninject, TopShelf, ShopifySharp, Slack API, RazorEngine.

3) Система для генерации чат-ботов на основе диалогов с реальными пользователями и возможностью доработки его базы знаний. Для дальнейшего внедрения чат-ботов в соц. сети, мессенджеры, системы работы с обращениями для соответствующего информирования клиентов.

Присоединился к длительное время существующему проекту. В тот момент реализовывалась админка для уже существующего функционала. Реализовывал поставленные фичи и правил баги. Реализовывал сервис управления пользователями - CRUD операции со списком. Для работы со списком реализовал поиск, фильтрацию и сортировку по всем видимым на странице полям. Покрыл тестами написанный сервис.

Также была необходимость заменить использующийся на проекте yandex speller. Была предложена возможность использовать модуль проверки орфографии от ОРФО. Для этого было реализовано отдельное API. Так как ОРФО изначально не имеет реализацию своего функционала, например через dll библиотеки, я реализовывал замену на сервере встроенного модуля проверки ошибок от windows орфографическим модулем от ОРФО. Также для реализованного API написал нагрузочные тесты.

Использовал: .NET Framework, NUnit, Moq, MS SQL, Entity Framework, Entity Framework Core, AutoMapper, NLog, Ninject.

4) Система для мониторинга эффективности работников буровых установок.

Реализовал API один с нуля на .NET Core 3.0 и Entity Framework Сore 3.0. База данных использовалась MySQL, для работы с ней Pomelo.EntityFrameworkCore.MySql. Реализовал базовые сервисы и контроллеры, включая фильтрацию/сортировку и поиск для всех эндпойнтов. Написал сервис расчёта статистики и отправки этих данных для отображения диаграмм. Реализовывал возможность скачивания статистики с графиками в excel и pdf форматах. Для хранения сырых и агрегированных данных использовался ElasticSearch. Сбор данных с буровых установок происходил по протоколу MQTT – для чего был написал отдельный сервис для передачи и сохранения данных. Также отдельный сервис был написан для агрегации сырых данных с буровых установок,который запускается с определенной периодичностью. Эти данные в дальнейшем были использованы в расчетах понятных клиенту показателей статистики. Проектировал и реализовывал алгоритмы для автоматической регистрации и обнаружению скважин и объектов бурения по данным gps, присылаемых с буровых установок. Была реализована регистрация пользователей сис админом через отправку письма с необходимой ссылкой для последующего задания пароля пользователем и входом. Также, через email, был реализован функционал для восстановления пароля.

Использовал: .NET Core, AutoMapper, EPPlus, EntityFrameworkCore, EntityFrameworkCore.MySql, NLog, Swagger, NEST, ElasticSearch, M2MqttDotnetCore, MQTT.

Профессиональные навыки
.NETRedisGitООПMySQLDockerC#ASP.NET MVCMicrosoft SQL serverLinq
Опыт работы
ИП Мясишев
Омск
.NET Developer
Июнь 2017 — По настоящее время (3 года и 3 месяца)
GitMySQLООПRedisSQLDocker.NETRabbitmqElasticsearch
Высшее образование
Омский государственный технический университет (бывший ОПИ)
Омск
Факультет: Информационных технологий и компьютерных систем
Сентябрь 2014—Июль 2018 (3 года и 10 месяцев)
Бакалавриат, АСОИиУ