Аватар

Валерий Гуров

C# | .NET | ASP.NET Core | Azure разработчик

Введение

Немного обо мне.

Старший .NET-разработчик с 8+ годами (20+ лет общего) опыта в создании масштабируемых и надежных систем с использованием C#, .NET, ASP.NET Core. Специализируюсь на архитектуре программного обеспечения, оптимизации производительности, интеграциях и внедрении практик безопасности и DevOps. Стремлюсь писать чистый, поддерживаемый код и создавать продукты высокого качества. Требователен к деталям, но стараюсь ориентироваться на баланс между совершенством и практичностью.

Достижения

Измеримое влияние моей работы.
  • Оптимизировал (без изменения архитектуры решения) процесс чтения данных (Entity Framework) для веб-страницы через избавление от запросов в цикле, объединения отдельных запросов в пакеты и более эффективные выражения LINQ. Это позволило уменьшить время загрузки страницы с 40 до 2 секунд.
  • Реализовал автоматическое распараллеливание процессов сбора данных с помощью TPL Dataflow, что увеличило скорость обработки в 2-10 раз.
  • Заменил неэффективные хранимые процедуры на оптимизированные запросы Entity Framework Core, что ускорило запись данных в 2-3 раза и улучшило доступность данных для конечных пользователей.
  • Внедрил журналирование с интеграцией ELK, что существенно сократило время расследования инцидентов.
  • Реализовал управление настройками распределённого монолита через HashiCorp Consul, что позволило оперативно менять поведение системы без простоев.
  • Интегрировал Azure Key Vault для безопасного хранения секретов без их фиксирования в исходном коде и репозитории.
  • Инициировал миграцию унаследованного распределённого монолита в AWS с использованием архитектуры, основанной на событиях (SNS, SQS), автоматическим масштабированием количества экземпляров, централизованной и персональной настройкой устойчивости и политики повторов.
  • Внедрил соглашения по стилю кода, статический анализ кода (ка локально, так и в процессе CI/CD), обзор кода, что существенно увеличило качество кода и уменьшило количество ошибок в конечном продукте.

Компетенция

Задачи, которые я могу выполнять.
01

Архитектура приложений

Проектирование архитектуры масштабируемых приложений C#/.NET в облачной среде (Azure/AWS).

02

Разработка приложений

Разработка RESTful API, приложений Blazor, распределенных систем с использованием SignalR, gRPC, WebSockert, RabbitMQ и других.

03

Оптимизация производительности

Оптимизация кода приложений и взаимодействия с базами данных (Entity Framework Core, SQL, NoSQL).

04

Инфраструктура

Внедрение CI/CD (Docker, Azure, AWS), модульного, интеграционного и других видов тестирования (MSTest, xUnit), безопасность (Azure Key Vault), работоспособность приложений (health checks, метрики, ELK).

05

Интеграция

Использование внешних систем, таких как 1С, Twilio, платежные системы банков, Telegram, для взаимодействия и обмена данными.

06

Техническое лидерство

Лидерство в технических вопросах, наставничество других членов команды, обзор кода (code review), внедрение стандартов кода.

Навыки

Личная оценка уровня моих навыков.
85%

C#

85%

.NET

85%

ASP.NET Core

80%

Blazor

85%

Entity Framework Core

85%

LINQ

85%

Web API

60%

gRPC

60%

WebSocket

60%

SignalR

50%

Azure

30%

AWS

60%

Microsoft SQL Server

30%

PostgreSQL

30%

MySQL

50%

MongoDB, LiteDB

50%

RabbitMQ

60%

Docker

30%

GitHub Actions

30%

Prometheus

55%

Telegram API

50%

HashiCorp Consul

45%

Microsoft Bot Framework

35%

XAML, WPF

20%

.NET MAUI

40%

TeamCity

30%

Azure DevOps

50%

GitLab

65%

.NET Aspire

45%

MassTransit

70%

MSTest

40%

xUnit

85%

1С

60%

Twilio

55%

Selenium WebDriver

60%

Puppeteer

40%

HTML, CSS

80%

Микрослужбы

40%

OpenTelemetry

65%

TPL Dataflow

25%

OData

50%

Redis

35%

ElasticSearch

30%

Apache Kafka

Опыт работы

Работа с компаниями.
July 2020 – February 2025

TemaBit

Разработчик C#

Украина

Система управления заданиями для водителей:

  • Спроектировал и реализовал основу системы управления заданиями для водителей на базе ASP.NET Core и Telegram, что позволило водителям работать с заданиями без создания специализированного и более сложного в реализации мобильного приложения.
  • Реализовал базовую подсистему потока интерфейса пользователя для взаимодействия с системой через чат бота Telegram.

Система сбора информации из внешних источников:

  • Спроектировал подсистему сбора данных через набор прокси-серверов с возможностью их ротации и подбора подходящего. Это позволило существенно уменьшить количество неудачных сессий сбора данных, что, в свою очередь, уменьшило вероятность отсутствия у пользователей актуальных данных для анализа.
  • Оптимизировал и унифицировал неэффективную запись данных в SQL Server, реализованную на хранимых процедурах, путём замены на Entity Framework Core и более эффективные алгоритмы обработки (да, такой вот парадокс). Это позволило уменьшить время записи в 2-3 раза и увеличить скорость получения новых данных конечными пользователями.
  • Реализовал управление настройками распределённого монолита в средах “Production” и “Test” с использованием HashiCorp Consul, что позволило оперативно менять поведение приложения без его простоя.
  • Внедрил полноценную систему журналирования с отправкой событий журнала в ELK. Это позволило существенно сократить время расследования инцидентов.
  • Реализовал мониторинг состояния (проверка работоспособности (health check), метрики). Это повысило информированность об оперативном состоянии приложения и позволило быстрее реагировать на сбои.

Новая версия системы сбора информации из внешних источников:

  • Инициировал реализацию новой версии приложения с миграцией в облако (AWS) и использованием архитектуры, основанной на событиях (SNS и SQS), автоматическим масштабированием количества экземпляров модулей сбора данных в зависимости от количества заданий.
  • Внедрил соглашения по стилю кода, анализ кода синтаксическими анализаторами, обзор кода как при локальной работе, так и в процессе CI/CD, что существенно увеличило качество самого кода и уменьшило количество ошибок в конечном продукте.
  • Реализовал модульные и интеграционные тесты, что существенно увеличило надёжность системы и уменьшило количество ошибок в производственной среде.
  • Реализовал автоматическое распараллеливание процесса сбора данных с помощью TPL Dataflow, что позволило на тех же самых аппаратных ресурсах увеличить скорость обработки в 2-10 раз в зависимости от источника данных.
  • Спроектировал и реализовал интеграцию с внешними источниками данных в интернете с поддержкой логики повторных попыток, устойчивости к сбоям и т.п. (с унифицированной настройкой общей политики и возможностью гибкой настройки для конкретного модуля), что позволило существенно повысить устойчивость процесса сбора и количество собираемых данных.

August 2019 – November 2019

Visartech

Разработчик C#

Украина

Система обработки и фильтрации входящих телефонных звонков:

  • Спроектировал и реализовал основу серверной части для системы обработки и фильтрации входящих телефонных звонков на базе ASP.NET Core и Azure App Services.
  • Реализовал интеграцию с Azure Key Vault для безопасного хранения секретов приложения.
  • Интегрировал приложение с Twilio для первичного управления входящими звонками и совершения исходящих звонков.
  • Задействовал SignalR и Azure SignalR Service для взаимодействия с мобильным приложением.

February 2019 – July 2019

Must2Go

Разработчик C#

Объединённые Арабские Эмираты

Серверная часть туристического сайта (ASP.NET Web API):

  • Интегрировал приложение с банковской системой, что позволило принимать платежи на сайте с использованием механизмов данного банка.
  • Разработал первичную версию нового механизма представления информации главной страницы сайта без радикальных изменений архитектуры приложения. Это позволило запустить новую возможность в работу максимально оперативно (с последующей реализацией более правильного варианта), что существенно повысило привлекательность сайта с точки зрения конечных пользователей.

December 2017 – December 2018

TQM systems

Разработчик C#

Украина

Интеграционная платформа для обмена данными:

  • Разработал и реализовал архитектуру модулей обмена (ASP.NET Core) с "1С:Предприятие 8" (несколько различных конфигураций), "Новой почтой", "Prom.ua", а также модулей для логистической компании и основного сайта системы. Это позволило добавлять в модуль новые сущности с минимальными затратами времени.

Образование

Оконченные учебные заведения.
1995 – 2001

Криворожский технический университет

Горное оборудование

Кривой Рог, Украина

Механико-машиностроительный факультет. Специалист.

Профили

Ссылки на профессиональные ресурсы.

Клиенты

Заказчики моих услуг.
  • Visartech
  • Must2Go
  • TQM systems
  • Employee Confidential
  • AutoMobile Technologies
  • TemaBit
Произошла необработанная ошибка. Перезагрузить 🗙

Восстановление связи с сервером...

Не удалось повторно подключиться... попробуем снова через сек.

Не удалось повторно подключиться.
Повторите попытку или перезагрузите страницу.

Сеанс был приостановлен сервером.

Не удалось возобновить сеанс.
Пожалуйста, перезагрузите страницу.